i386.c (find_constant_1): Delete.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
2
3         * config/i386/i386.c (find_constant_1): Delete.
4         (find_constant): Use FOR_EACH_SUBRTX.
5
6 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7
8         * config/i386/i386.c (extended_reg_mentioned_1): Delete.
9         (x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX.
10
11 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12
13         * config/i386/i386.c: Include rtl-iter.h
14         (ix86_check_avx256_register): Take a const_rtx and return a bool.
15         (ix86_check_avx256_stores): Update call accordingly.
16         (ix86_avx_u128_mode_entry, ix86_avx_u128_mode_exit): Likewise.
17         (ix86_avx_u128_mode_needed): Likewise.  Use FOR_EACH_SUBRTX.
18
19 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
20
21         * config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
22         Take an rtx and return a bool.
23         * config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
24         Use FOR_EACH_SUBRTX_VAR.
25         * config/alpha/predicates.md (some_small_symbolic_operand): Update
26         accordingly.
27
28 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
29
30         * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
31         a bool.
32         * config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
33         (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX.  Return a bool.
34
35 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
36
37         * config/alpha/alpha.c (alpha_set_memflags_1): Delete.
38         (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR.
39
40 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
41
42         * config/alpha/alpha.c: Include rtl-iter.h.
43         (split_small_symbolic_operand_1): Delete.
44         (split_small_symbolic_operand): Use FOR_EACH_SUBRTX_PTR.
45
46 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
47
48         * config/s390/s390.c: Include rtl-iter.h.
49         (check_dpu): Delete.
50         (s390_loop_unroll_adjust): Only iterate over patterns.
51         Use FOR_EACH_SUBRTX.
52
53 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
54
55         * config/spu/spu.c: Include rtl-iter.h
56         (ea_symbol_ref): Replace with...
57         (ea_symbol_ref_p): ...this new function.
58         (spu_legitimate_address_p): Update call accordingly.
59         (spu_legitimate_constant_p): Likewise.  Use FOR_EACH_SUBRTX.
60
61 2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
62             Tom Tromey  <tromey@redhat.com>
63
64         * aclocal.m4, configure: Rebuild.
65         * Makefile.in (aclocal_deps): Add gcc-plugin.m4.
66         * configure.ac: Use GCC_ENABLE_PLUGINS.
67         * stor-layout.c (finish_bitfield_layout): Now public.  Change
68         argument type to 'tree'.
69         (finish_record_layout): Update.
70         * stor-layout.h (finish_bitfield_layout): Declare.
71
72 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
73
74         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again.
75         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
76         Restore, enable for bigendian, update to use __builtin..._scal...
77
78 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
79
80         * config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_,
81         reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove.
82         (reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_,
83         reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New.
84
85         * config/aarch64/aarch64-simd.md
86         (reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to...
87         (reduc_<maxmin_uns>_internal<mode>): ...this.
88         (reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI).
89         (reduc_<maxmin_uns>_scal_<mode>): New (*2).
90
91         (reduc_<maxmin_uns>_v2si): Combine with below, renaming...
92         (reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming...
93         (reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF).
94
95         * config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16,
96         vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64,
97         vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32,
98         vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8,
99         vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32,
100         vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16,
101         vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use
102         __builtin_aarch64_reduc_..._scal; remove vget_lane wrapper.
103
104 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
105
106         * config/aarch64/aarch64-simd-builtins.def
107         (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
108         Remove.
109         (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.
110
111         * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
112         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.
113
114         (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
115         (aarch64_reduc_plus_internal<mode>): ...this.
116
117         (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
118         (aarch64_reduc_plus_internalv2si): ...this.
119
120         (reduc_splus_<mode>/V2F): Rename to...
121         (aarch64_reduc_plus_internal<mode>): ...this.
122
123         * config/aarch64/iterators.md
124         (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
125         (UNSPEC_ADDV): New.
126         (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.
127
128         * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
129         vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
130         vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
131         vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
132         __builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.
133
134 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
135
136         PR tree-optimization/61114
137         * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
138         optabs, and note in reduc_[us](plus|min|max) to prefer the former.
139
140         * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
141         back to old reduc_... + BIT_FIELD_REF only if not.
142
143         * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
144         return the reduce-to-scalar (reduc_..._scal) optab.
145         (scalar_reduc_to_vector): New.
146
147         * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
148         reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
149         New.
150
151         * optabs.h (scalar_reduc_to_vector): Declare.
152
153         * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
154         to either scalar or vector.
155
156 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
157
158         PR tree-optimization/61114
159         * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
160         extract_bit_field around optab result.
161
162         * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
163         scalar not vector.
164
165         * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
166         for REDUC_{MIN,MAX,PLUS}_EXPR.
167
168         * tree-vect-loop.c (vect_analyze_loop): Update comment.
169         (vect_create_epilog_for_reduction): For direct vector reduction, use
170         result of tree code directly without extract_bit_field.
171
172         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
173         comment.
174
175 2014-10-27  Andrew MacLeod  <amacleod@redhat.com>
176
177         * basic-block.h: Remove all includes.
178         (enum profile_status_d, struct control_flow_graph): Move to cfg.h
179         * cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
180         * Makefile.in (GTFILES): Add cfg.h to list.
181         * cgraph.h (symbol_table::create_empty): Move to cgraph.c.
182         * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
183         * genconditions.c (write_header): Add predict.h and basic-block.h to
184         lits of includes.
185         * genemit.c (main): Ditto.
186         * genpreds.c (write_insn_preds_c): Ditto.
187         * genrecog.c (write_header): Ditto.
188         * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
189         to list of includes.
190         * alias.c: Adjust include files.
191         * asan.c: Ditto.
192         * auto-inc-dec.c: Ditto.
193         * auto-profile.c: Ditto.
194         * bb-reorder.c: Ditto.
195         * bt-load.c: Ditto.
196         * builtins.c: Ditto.
197         * caller-save.c: Ditto.
198         * calls.c: Ditto.
199         * cfg.c: Ditto.
200         * cfganal.c: Ditto.
201         * cfgbuild.c: Ditto.
202         * cfgcleanup.c: Ditto.
203         * cfgexpand.c: Ditto.
204         * cfghooks.c: Ditto.
205         * cfgloop.c: Ditto.
206         * cfgloopanal.c: Ditto.
207         * cfgloopmanip.c: Ditto.
208         * cfgrtl.c: Ditto.
209         * cgraphbuild.c: Ditto.
210         * cgraphclones.c: Ditto.
211         * cgraphunit.c: Ditto.
212         * combine-stack-adj.c: Ditto.
213         * combine.c: Ditto.
214         * compare-elim.c: Ditto.
215         * coverage.c: Ditto.
216         * cprop.c: Ditto.
217         * cse.c: Ditto.
218         * cselib.c: Ditto.
219         * data-streamer-in.c: Ditto.
220         * data-streamer-out.c: Ditto.
221         * data-streamer.c: Ditto.
222         * dce.c: Ditto.
223         * ddg.c: Ditto.
224         * ddg.h: Ditto.
225         * df-core.c: Ditto.
226         * df-problems.c: Ditto.
227         * df-scan.c: Ditto.
228         * df.h: Ditto.
229         * dojump.c: Ditto.
230         * dominance.c: Ditto.
231         * domwalk.c: Ditto.
232         * dse.c: Ditto.
233         * dwarf2cfi.c: Ditto.
234         * emit-rtl.c: Ditto.
235         * et-forest.c: Ditto.
236         * except.c: Ditto.
237         * expmed.c: Ditto.
238         * expr.c: Ditto.
239         * final.c: Ditto.
240         * fold-const.c: Ditto.
241         * function.c: Ditto.
242         * fwprop.c: Ditto.
243         * gcc-plugin.h: Ditto.
244         * gcse.c: Ditto.
245         * generic-match-head.c: Ditto.
246         * ggc-page.c: Ditto.
247         * gimple-builder.c: Ditto.
248         * gimple-expr.c: Ditto.
249         * gimple-fold.c: Ditto.
250         * gimple-iterator.c: Ditto.
251         * gimple-low.c: Ditto.
252         * gimple-match-head.c: Ditto.
253         * gimple-pretty-print.c: Ditto.
254         * gimple-ssa-isolate-paths.c: Ditto.
255         * gimple-ssa-strength-reduction.c: Ditto.
256         * gimple-streamer-in.c: Ditto.
257         * gimple-streamer-out.c: Ditto.
258         * gimple-streamer.h: Ditto.
259         * gimple-walk.c: Ditto.
260         * gimple.c: Ditto.
261         * gimplify-me.c: Ditto.
262         * gimplify.c: Ditto.
263         * graph.c: Ditto.
264         * graphite-blocking.c: Ditto.
265         * graphite-clast-to-gimple.c: Ditto.
266         * graphite-dependences.c: Ditto.
267         * graphite-interchange.c: Ditto.
268         * graphite-isl-ast-to-gimple.c: Ditto.
269         * graphite-optimize-isl.c: Ditto.
270         * graphite-poly.c: Ditto.
271         * graphite-scop-detection.c: Ditto.
272         * graphite-sese-to-poly.c: Ditto.
273         * graphite.c: Ditto.
274         * haifa-sched.c: Ditto.
275         * hw-doloop.c: Ditto.
276         * ifcvt.c: Ditto.
277         * init-regs.c: Ditto.
278         * internal-fn.c: Ditto.
279         * ipa-cp.c: Ditto.
280         * ipa-devirt.c: Ditto.
281         * ipa-icf-gimple.c: Ditto.
282         * ipa-icf.c: Ditto.
283         * ipa-inline-analysis.c: Ditto.
284         * ipa-inline.c: Ditto.
285         * ipa-polymorphic-call.c: Ditto.
286         * ipa-profile.c: Ditto.
287         * ipa-prop.c: Ditto.
288         * ipa-pure-const.c: Ditto.
289         * ipa-reference.c: Ditto.
290         * ipa-split.c: Ditto.
291         * ipa-utils.c: Ditto.
292         * ipa.c: Ditto.
293         * ira-build.c: Ditto.
294         * ira-color.c: Ditto.
295         * ira-conflicts.c: Ditto.
296         * ira-costs.c: Ditto.
297         * ira-emit.c: Ditto.
298         * ira-lives.c: Ditto.
299         * ira.c: Ditto.
300         * jump.c: Ditto.
301         * lcm.c: Ditto.
302         * loop-doloop.c: Ditto.
303         * loop-init.c: Ditto.
304         * loop-invariant.c: Ditto.
305         * loop-iv.c: Ditto.
306         * loop-unroll.c: Ditto.
307         * lower-subreg.c: Ditto.
308         * lra-assigns.c: Ditto.
309         * lra-coalesce.c: Ditto.
310         * lra-constraints.c: Ditto.
311         * lra-eliminations.c: Ditto.
312         * lra-lives.c: Ditto.
313         * lra-spills.c: Ditto.
314         * lra.c: Ditto.
315         * lto-cgraph.c: Ditto.
316         * lto-compress.c: Ditto.
317         * lto-opts.c: Ditto.
318         * lto-section-in.c: Ditto.
319         * lto-section-out.c: Ditto.
320         * lto-streamer-in.c: Ditto.
321         * lto-streamer-out.c: Ditto.
322         * lto-streamer.c: Ditto.
323         * mcf.c: Ditto.
324         * mode-switching.c: Ditto.
325         * modulo-sched.c: Ditto.
326         * omp-low.c: Ditto.
327         * optabs.c: Ditto.
328         * opts-global.c: Ditto.
329         * passes.c: Ditto.
330         * postreload-gcse.c: Ditto.
331         * postreload.c: Ditto.
332         * predict.c: Ditto.
333         * print-rtl.c: Ditto.
334         * profile.c: Ditto.
335         * recog.c: Ditto.
336         * ree.c: Ditto.
337         * reg-stack.c: Ditto.
338         * regcprop.c: Ditto.
339         * regcprop.h: Ditto.
340         * reginfo.c: Ditto.
341         * regrename.c: Ditto.
342         * regstat.c: Ditto.
343         * reload.c: Ditto.
344         * reload1.c: Ditto.
345         * reorg.c: Ditto.
346         * resource.c: Ditto.
347         * rtlanal.c: Ditto.
348         * sched-deps.c: Ditto.
349         * sched-ebb.c: Ditto.
350         * sched-int.h: Ditto.
351         * sched-rgn.c: Ditto.
352         * sched-vis.c: Ditto.
353         * sel-sched-dump.c: Ditto.
354         * sel-sched-ir.c: Ditto.
355         * sel-sched-ir.h: Ditto.
356         * sel-sched.c: Ditto.
357         * sese.c: Ditto.
358         * shrink-wrap.c: Ditto.
359         * stack-ptr-mod.c: Ditto.
360         * stmt.c: Ditto.
361         * store-motion.c: Ditto.
362         * symtab.c: Ditto.
363         * toplev.c: Ditto.
364         * tracer.c: Ditto.
365         * trans-mem.c: Ditto.
366         * tree-affine.c: Ditto.
367         * tree-call-cdce.c: Ditto.
368         * tree-cfg.c: Ditto.
369         * tree-cfgcleanup.c: Ditto.
370         * tree-chrec.c: Ditto.
371         * tree-complex.c: Ditto.
372         * tree-data-ref.c: Ditto.
373         * tree-dfa.c: Ditto.
374         * tree-eh.c: Ditto.
375         * tree-emutls.c: Ditto.
376         * tree-if-conv.c: Ditto.
377         * tree-inline.c: Ditto.
378         * tree-into-ssa.c: Ditto.
379         * tree-loop-distribution.c: Ditto.
380         * tree-nested.c: Ditto.
381         * tree-nrv.c: Ditto.
382         * tree-object-size.c: Ditto.
383         * tree-outof-ssa.c: Ditto.
384         * tree-parloops.c: Ditto.
385         * tree-phinodes.c: Ditto.
386         * tree-predcom.c: Ditto.
387         * tree-pretty-print.c: Ditto.
388         * tree-profile.c: Ditto.
389         * tree-scalar-evolution.c: Ditto.
390         * tree-sra.c: Ditto.
391         * tree-ssa-address.c: Ditto.
392         * tree-ssa-alias.c: Ditto.
393         * tree-ssa-ccp.c: Ditto.
394         * tree-ssa-coalesce.c: Ditto.
395         * tree-ssa-copy.c: Ditto.
396         * tree-ssa-copyrename.c: Ditto.
397         * tree-ssa-dce.c: Ditto.
398         * tree-ssa-dom.c: Ditto.
399         * tree-ssa-dse.c: Ditto.
400         * tree-ssa-forwprop.c: Ditto.
401         * tree-ssa-ifcombine.c: Ditto.
402         * tree-ssa-live.c: Ditto.
403         * tree-ssa-loop-ch.c: Ditto.
404         * tree-ssa-loop-im.c: Ditto.
405         * tree-ssa-loop-ivcanon.c: Ditto.
406         * tree-ssa-loop-ivopts.c: Ditto.
407         * tree-ssa-loop-manip.c: Ditto.
408         * tree-ssa-loop-niter.c: Ditto.
409         * tree-ssa-loop-prefetch.c: Ditto.
410         * tree-ssa-loop-unswitch.c: Ditto.
411         * tree-ssa-loop.c: Ditto.
412         * tree-ssa-math-opts.c: Ditto.
413         * tree-ssa-operands.c: Ditto.
414         * tree-ssa-phiopt.c: Ditto.
415         * tree-ssa-phiprop.c: Ditto.
416         * tree-ssa-pre.c: Ditto.
417         * tree-ssa-propagate.c: Ditto.
418         * tree-ssa-reassoc.c: Ditto.
419         * tree-ssa-sccvn.c: Ditto.
420         * tree-ssa-sink.c: Ditto.
421         * tree-ssa-strlen.c: Ditto.
422         * tree-ssa-structalias.c: Ditto.
423         * tree-ssa-tail-merge.c: Ditto.
424         * tree-ssa-ter.c: Ditto.
425         * tree-ssa-threadedge.c: Ditto.
426         * tree-ssa-threadupdate.c: Ditto.
427         * tree-ssa-uncprop.c: Ditto.
428         * tree-ssa-uninit.c: Ditto.
429         * tree-ssa.c: Ditto.
430         * tree-ssanames.c: Ditto.
431         * tree-stdarg.c: Ditto.
432         * tree-streamer-in.c: Ditto.
433         * tree-streamer-out.c: Ditto.
434         * tree-streamer.c: Ditto.
435         * tree-switch-conversion.c: Ditto.
436         * tree-tailcall.c: Ditto.
437         * tree-vect-data-refs.c: Ditto.
438         * tree-vect-generic.c: Ditto.
439         * tree-vect-loop-manip.c: Ditto.
440         * tree-vect-loop.c: Ditto.
441         * tree-vect-patterns.c: Ditto.
442         * tree-vect-slp.c: Ditto.
443         * tree-vect-stmts.c: Ditto.
444         * tree-vectorizer.c: Ditto.
445         * tree-vrp.c: Ditto.
446         * tree.c: Ditto.
447         * tsan.c: Ditto.
448         * ubsan.c: Ditto.
449         * valtrack.c: Ditto.
450         * valtrack.h: Ditto.
451         * value-prof.c: Ditto.
452         * var-tracking.c: Ditto.
453         * varasm.c: Ditto.
454         * varpool.c: Ditto.
455         * vtable-verify.c: Ditto.
456         * web.c: Ditto.
457         * config/aarch64/aarch64-builtins.c: Ditto.
458         * config/aarch64/aarch64.c: Ditto.
459         * config/alpha/alpha.c: Ditto.
460         * config/arc/arc.c: Ditto.
461         * config/arm/arm.c: Ditto.
462         * config/avr/avr.c: Ditto.
463         * config/bfin/bfin.c: Ditto.
464         * config/c6x/c6x.c: Ditto.
465         * config/cr16/cr16.c: Ditto.
466         * config/cris/cris.c: Ditto.
467         * config/darwin-c.c: Ditto.
468         * config/darwin.c: Ditto.
469         * config/epiphany/epiphany.c: Ditto.
470         * config/epiphany/mode-switch-use.c: Ditto.
471         * config/epiphany/resolve-sw-modes.c: Ditto.
472         * config/fr30/fr30.c: Ditto.
473         * config/frv/frv.c: Ditto.
474         * config/h8300/h8300.c: Ditto.
475         * config/i386/i386.c: Ditto.
476         * config/i386/winnt.c: Ditto.
477         * config/ia64/ia64.c: Ditto.
478         * config/iq2000/iq2000.c: Ditto.
479         * config/lm32/lm32.c: Ditto.
480         * config/m32c/m32c.c: Ditto.
481         * config/m32r/m32r.c: Ditto.
482         * config/m68k/m68k.c: Ditto.
483         * config/mcore/mcore.c: Ditto.
484         * config/mep/mep.c: Ditto.
485         * config/microblaze/microblaze.c: Ditto.
486         * config/mips/mips.c: Ditto.
487         * config/mmix/mmix.c: Ditto.
488         * config/mn10300/mn10300.c: Ditto.
489         * config/moxie/moxie.c: Ditto.
490         * config/msp430/msp430.c: Ditto.
491         * config/nds32/nds32-cost.c: Ditto.
492         * config/nds32/nds32-fp-as-gp.c: Ditto.
493         * config/nds32/nds32-intrinsic.c: Ditto.
494         * config/nds32/nds32-isr.c: Ditto.
495         * config/nds32/nds32-md-auxiliary.c: Ditto.
496         * config/nds32/nds32-memory-manipulation.c: Ditto.
497         * config/nds32/nds32-pipelines-auxiliary.c: Ditto.
498         * config/nds32/nds32-predicates.c: Ditto.
499         * config/nds32/nds32.c: Ditto.
500         * config/nios2/nios2.c: Ditto.
501         * config/pa/pa.c: Ditto.
502         * config/pdp11/pdp11.c: Ditto.
503         * config/rl78/rl78.c: Ditto.
504         * config/rs6000/rs6000.c: Ditto.
505         * config/rx/rx.c: Ditto.
506         * config/s390/s390.c: Ditto.
507         * config/sh/sh-mem.cc: Ditto.
508         * config/sh/sh.c: Ditto.
509         * config/sh/sh_optimize_sett_clrt.cc: Ditto.
510         * config/sh/sh_treg_combine.cc: Ditto.
511         * config/sparc/sparc.c: Ditto.
512         * config/spu/spu.c: Ditto.
513         * config/stormy16/stormy16.c: Ditto.
514         * config/tilegx/tilegx.c: Ditto.
515         * config/tilepro/tilepro.c: Ditto.
516         * config/v850/v850.c: Ditto.
517         * config/vax/vax.c: Ditto.
518         * config/xtensa/xtensa.c: Ditto.
519
520 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
521
522         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
523         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
524         Remove using preprocessor directives.
525
526 2014-10-27  Richard Biener  <rguenther@suse.de>
527
528         * match.pd (0 % X): Properly use the iterator iterating over
529         all modulo operators.
530         (X % 1): Likewise.
531
532 2014-10-27  Richard Biener  <rguenther@suse.de>
533
534         * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
535         (lattice): New global.
536         (fwprop_ssa_val): New function.
537         (fold_all_stmts): Likewise.
538         (pass_forwprop::execute): Finally fold all stmts.
539
540 2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
541
542         PR c++/53061
543         * doc/invoke.texi (fmessage-length): Update text to match reality.
544
545 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
546
547         * config/microblaze/microblaze.c: Include rtl-iter.h.
548         (microblaze_tls_referenced_p_1): Delete.
549         (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.
550
551 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
552
553         * config/mips/mips.c (mips_at_reg_p): Delete.
554         (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
555
556 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
557
558         * config/mips/mips.c (mips_record_lo_sum): Replace with...
559         (mips_record_lo_sums): ...this new function.
560         (mips_reorg_process_insns): Update accordingly.
561
562 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
563
564         * config/mips/mips.c (mips_sim_insn): Update comment.
565         (mips_sim_wait_regs_2): Delete.
566         (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
567
568 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
569
570         * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
571         and return a bool.  Iterate over all subrtxes here.
572         (r10k_needs_protection_p): Update accordingly.
573
574 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
575
576         * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
577         rather than an rtx pointer.  Change type of insn from "void *"
578         to its real type.  Return bool rather than int.  Iterate over
579         all subrtxes here.
580         (r10k_needs_protection_p_store): Update accordingly.
581         (r10k_needs_protection_p): Likewise.
582
583 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
584
585         * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
586         (mips16_rewrite_pool_refs): Take the insn and constant pool as
587         parameters.  Iterate over the instruction's pattern and return void.
588         (mips16_lay_out_constants): Update accordingly.
589
590 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
591
592         * config/mips/mips.c (mips_kernel_reg_p): Replace with...
593         (mips_refers_to_kernel_reg_p): ...this new function.
594         (mips_expand_prologue): Update accordingly.
595
596 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
597
598         * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
599         as a parameter instead of the containing MEM.  Iterate over all
600         subrtxes.  Don't return a value.
601         (mips_rewrite_small_data): Update call accordingly.
602
603 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
604
605         * config/mips/mips.c: Include rtl-iter.h.
606         (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
607         Take the context as a parameter instead of the containing MEM.
608         Iterate over all subrtxes.
609         (mips_small_data_pattern_p): Update call accordingly.
610
611 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
612
613         * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
614         (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
615
616 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
617
618         * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
619         return a bool.  Replace "void *" with specific type.  Iterate
620         over all subrtxes.
621         (mep_store_data_bypass_1): Update calls accordingly.
622
623 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
624
625         * config/mep/mep.c: Include rtl-iter.h.
626         (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
627         (xtensa_tls_referenced_p): Return a bool.  Use FOR_EACH_SUBRTX.
628
629 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
630
631         * config/xtensa/xtensa.c: Include rtl-iter.h.
632         (xtensa_tls_referenced_p_1): Delete.
633         (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
634
635 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
636
637         * config/sh/sh.c (sh_contains_memref_p_1): Delete.
638         (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
639
640 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
641
642         * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
643         rtx as argument and return the number of changes.
644         * config/sh/sh.c: Include rtl-iter.h.
645         (shmedia_cleanup_truncate): Take an rtx as argument and iterate
646         over all subrtxes.  Return the number of changes made.
647         * config/sh/sh.md: Update caller accordingly.
648
649 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
650
651         * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
652         (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
653
654 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
655
656         * config/m68k/m68k.c: Include rtl-iter.h.
657         (m68k_final_prescan_insn_1): Delete.
658         (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
659
660 2014-10-25  Jakub Jelinek  <jakub@redhat.com>
661
662         PR tree-optimization/63641
663         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
664         to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
665
666 2014-10-25  Alan Modra  <amodra@gmail.com>
667
668         PR rtl-optimization/63615
669         * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
670         decomposing PLUS or MINUS if operands are not placed adjacent
671         in the "ops" array.
672
673 2014-10-25  Joseph Myers  <joseph@codesourcery.com>
674
675         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
676         not allow e500 double in registers not satisyfing
677         SPE_SIMD_REGNO_P.
678
679 2014-10-24  Aldy Hernandez  <aldyh@redhat.com>
680
681         * dwarf2out.c (declare_in_namespace): Only emit external
682         declarations in the local scope once.
683
684 2014-10-24  Jonathan Wakely  <jwakely@redhat.com>
685
686         * ginclude/stdbool.h: Do not define bool, true or false in C++11.
687
688 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
689
690         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
691         update uses to use new macro arguments.
692         (__LD3_LANE_FUNC): Likewise.
693         (__LD4_LANE_FUNC): Likewise.
694
695 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
696
697         * config/aarch64/aarch64-builtins.c
698         (aarch64_types_loadstruct_lane_qualifiers): Define.
699         * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
700         ld4_lane): New builtins.
701         * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
702         New pattern.
703         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
704         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
705         (aarch64_ld2_lane<mode>): New expand.
706         (aarch64_ld3_lane<mode>): Likewise.
707         (aarch64_ld4_lane<mode>): Likewise.
708         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
709         UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
710
711 2014-10-24  Georg-Johann Lay  <avr@gjlay.de>
712
713         * avr-protos.h (avr_out_sign_extend): New.
714         * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
715         (avr_out_sign_extend): New function.
716         * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
717         (extendhisi2, extendpsisi2): Use it.
718         (adjust_len) [sext]: New.
719
720 2014-10-24  Martin Liska  <mliska@suse.cz>
721
722         * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
723         added.
724
725 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
726
727         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
728         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
729         * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
730         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
731
732 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
733
734         * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
735         do while (0).
736         * config/aarch64/aarch64.c (is_mem_p): Delete.
737         (is_memory_op): Rename to...
738         (has_memory_op): ... This.  Use FOR_EACH_SUBRTX.
739         (dep_between_memop_and_curr): Assert that the input is a SET.
740         (aarch64_madd_needs_nop): Add comment.  Do not call
741         dep_between_memop_and_curr on NULL body.
742         (aarch64_final_prescan_insn): Add comment.
743         Include rtl-iter.h.
744
745 2014-10-24  Richard Biener  <rguenther@suse.de>
746
747         * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
748         to genmatch BUILD_LIBS instead.
749
750 2014-10-24  Richard Biener  <rguenther@suse.de>
751
752         * genmatch.c (expr::gen_transform): Use fold_buildN_loc
753         and build_call_expr_loc.
754         (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
755         non_lvalue_loc to build it for GENERIC.
756         (decision_tree::gen_generic): Add location argument to
757         generic_simplify prototype.
758         (capture_info): New class.
759         (capture_info::capture_info): New constructor.
760         (capture_info::walk_match): New method.
761         (capture_info::walk_result): New method.
762         (capture_info::walk_c_expr): New method.
763         (dt_simplify::gen): Handle preserving side-effects for
764         GENERIC code generation.
765         (decision_tree::gen_generic): Do not reject operands
766         with TREE_SIDE_EFFECTS.
767         * generic-match.h: New file.
768         * generic-match-head.c: Include generic-match.h, not gimple-match.h.
769         * match.pd: Add some constant folding patterns from fold-const.c.
770         * fold-const.c: Include generic-match.h.
771         (fold_unary_loc): Dispatch to generic_simplify.
772         (fold_ternary_loc): Likewise.
773         (fold_binary_loc): Likewise.  Remove patterns now implemented
774         by generic_simplify.
775         * gimple-fold.c (replace_stmt_with_simplification): New function.
776         (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
777         (no_follow_ssa_edges): New function.
778         (fold_stmt): New overload with valueization hook.  Use
779         no_follow_ssa_edges for the overload without hook.
780         (fold_stmt_inplace): Likewise.
781         * gimple-fold.h (no_follow_ssa_edges): Declare.
782
783 2014-10-24  Felix Yang  <felix.yang@huawei.com>
784         Jiji Jiang  <jiangjiji@huawei.com>
785
786         PR target/63173
787         * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
788         (__LD3R_FUNC): Ditto.
789         (__LD4R_FUNC): Ditto.
790         (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
791          vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
792          vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
793          vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
794          vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
795          vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
796         (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
797          vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
798          vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
799          vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
800          vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
801          vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
802         (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
803          vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
804          vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
805          vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
806          vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
807          vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
808         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
809         UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
810         * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
811         builtins.
812         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
813         (aarch64_simd_ld3r<mode>): Likewise.
814         (aarch64_simd_ld4r<mode>): Likewise.
815         (aarch64_ld2r<mode>): New expand.
816         (aarch64_ld3r<mode>): Likewise.
817         (aarch64_ld4r<mode>): Likewise.
818
819 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
820
821         * rtlanal.c (get_base_term): Handle SCRATCH.
822
823 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
824
825         * haifa-sched.c (sched_init): Disable max_issue when scheduling for
826         register pressure.
827
828 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
829
830         * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
831         (cached_issue_rate): Remove.  Use dfa_lookahead and issue_rate instead.
832         (max_issue, choose_ready, sched_init): Update.
833
834 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
835
836         * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
837         * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
838         (rfs_result): Set INSN_LAST_RFS_WIN.  Update signature.
839         (rank_for_schedule): Update calls to rfs_result to pass new parameters.
840         (print_rank_for_schedule_stats): Print out elements of ready list that
841         ended up on their respective places due to each of the sorting
842         heuristics.
843         (ready_sort): Update.
844         (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
845         (schedule_block): Update.
846
847 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
848
849         * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
850         arrays.  Use sched_class_regs_num instead of ira_class_hard_regs_num.
851         (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
852         (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
853         (model_start_schedule): Update.
854         (sched_pressure_start_bb): New static function.  Calculate
855         sched_class_regs_num.
856         (schedule_block): Use it.
857         (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
858
859 2014-10-24  Richard Biener  <rguenther@suse.de>
860
861         * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
862         host library and make sure to pull in the required libintl
863         and libiconv dependencies.
864
865 2014-10-24  Richard Biener  <rguenther@suse.de>
866
867         * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
868
869 2014-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
870
871         PR bootstrap/63632
872         * collect2.c (main): Filter out -fno-lto.
873
874 2014-10-24  Martin Liska  <mliska@suse.cz>
875
876         * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
877         division by zero in dumps.
878         (sem_item_optimizer::merge_classes): Ditto.
879
880 2014-10-23  John David Anglin  <danglin@gcc.gnu.org>
881
882         * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
883
884 2014-10-23  Ian Lance Taylor  <iant@google.com>
885
886         * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
887
888 2014-10-23  Ian Lance Taylor  <iant@google.com>
889
890         * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
891
892 2014-10-23  Jakub Jelinek  <jakub@redhat.com>
893
894         PR debug/63623
895         * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
896         (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
897         instead of only handling autoinc in dest if it is a MEM.
898         (vt_stack_adjustments): Fix up formatting.
899
900 2014-10-23  DJ Delorie  <dj@redhat.com>
901
902         * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
903         independend of -mlarge.
904         * config/msp430/constraints.md (Ys): Update comment.
905
906 2014-10-23  Evgeny Stupachenko  <evstupac@gmail.com>
907
908         PR target/63534
909         PR target/63618
910         * cse.c (delete_trivially_dead_insns): Consider PIC register is used
911         while it is pseudo.
912         * dse.c (deletable_insn_p): Likewise.
913
914 2014-10-23  Georg-Johann Lay  <avr@gjlay.de>
915
916         * config/avr/avr.c: Fix GNU coding rules and typos.
917         * config/avr/avr.h: Dito.
918         * config/avr/avr-c.c: Dito.
919         * config/avr/avr.md: Dito.
920
921 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
922
923         * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
924         New.
925         (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
926         iterator.
927         (define_expand "abs<mode>2"): Ditto.
928
929 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
930
931         * tree-core.h (tree_var_decl): Extend `function_code' field
932         by one bit, move `regdecl_flag' field to ...
933         (tree_decl_with_vis): Here.
934         * tree.h (DECL_STATIC_CHAIN): Update struct name.
935
936 2014-10-23  Richard Biener  <rguenther@suse.de>
937
938         * Makefile.in (BUILD_CPPLIB): Add.
939         (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
940         Drop LIBIBERTY.
941
942 2014-10-23  Richard Biener  <rguenther@suse.de>
943
944         * fold-const.c (fold_binary_loc): Preserve side-effects of
945         X - X when simplifying to 0.
946         * stor-layout.c (finish_bitfield_representative): Strip
947         side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
948
949 2014-10-22  Richard Biener  <rguenther@suse.de>
950             Tobias Burnus <burnus@net-b.de>
951
952         PR lto/63603
953         * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
954
955 2014-10-22  Dehao Chen  <dehao@google.com>
956
957         * auto-profile.c: Change order of header files.
958
959 2014-10-22  Guozhi Wei  <carrot@google.com>
960
961         PR tree-optimization/63530
962         tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
963         pointer alignment according to DR_MISALIGNMENT.
964
965 2014-10-22  David Malcolm  <dmalcolm@redhat.com>
966
967         * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
968
969 2014-10-22  Andrew MacLeod  <amacleod@redhat.com>
970
971         * cfgbuild.h: New.  Add prototypes for cfgbuild.c.
972         * cfgcleanup.h: New.  Add prototypes for cfgcleanup.c.
973         * cfgloopmanip.h: New.  Add prototypes for cfgloopmanip.c.
974         * dominance.h: New.  Add prototypes for dominance.c.
975         * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
976         * cfghooks.h: (struct profile_record) Relocate here.
977         Relocate 2 prototypes from basic-block.h.
978         * basic-block.h: Move prototypes and struct to new header files.
979         Include cfgbuild.h, cfgcleanup.h, and dominance.h.
980         * rtl.h: Move a few prototypes to new header files.
981         * cfgcleanup.c (merge_memattrs): Make static.
982         * genopinit.c (main): Add predict.h to list of includes.
983         * predict.h: Update prototype list to match predict.c.
984         * predict.c (maybe_hot_count_p): Export.
985         (cgraph_edge::maybe_hot_p): Move to cgraph.c.
986         (cgraph_node::optimize_for_size_p): Move to cgraph.h.
987         * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
988         * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
989         * profile.h: Adjust prototypes.
990         * ifcvt.h: New.  Relocate struct ce_if_block here.
991         * ifcvt.c: Include ifcvt.h.
992         * config/frv/frv.c: Include ifcvt.h.
993         * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
994
995 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
996
997         * lra.c (lra): Remove call to recog_init.
998         * config/i386/i386.md (preferred_for_speed): New attribute
999         (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
1000         "enabled".  Remove check for sched1.
1001
1002 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
1003
1004         * recog.h (recog_data_d): Remove enabled_alternatives.
1005         * recog.c (extract_insn): Don't set it.
1006         * reload.c (find_reloads): Call get_enabled_alternatives.
1007
1008 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
1009
1010         * recog.h (constrain_operands): Add an alternative_mask parameter.
1011         (constrain_operands_cached): Likewise.
1012         (get_preferred_alternatives): Declare new form.
1013         * recog.c (get_preferred_alternatives): New bb-taking instance.
1014         (constrain_operands): Take the set of available alternatives as
1015         a parameter.
1016         (check_asm_operands, insn_invalid_p, extract_constrain_insn)
1017         (extract_constrain_insn_cached): Update calls to constrain_operands.
1018         * caller-save.c (reg_save_code): Likewise.
1019         * ira.c (setup_prohibited_mode_move_regs): Likewise.
1020         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
1021         * ree.c (combine_reaching_defs): Likewise.
1022         * reload.c (can_reload_into): Likewise.
1023         * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
1024         (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
1025         (emit_insn_if_valid_for_reload): Likewise.
1026         * reorg.c (fill_slots_from_thread): Likewise.
1027         * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
1028         * config/pa/pa.c (pa_can_combine_p): Likewise.
1029         * config/rl78/rl78.c (insn_ok_now): Likewise.
1030         * config/sh/sh.md (define_peephole2): Likewise.
1031         * final.c (final_scan_insn): Update call to constrain_operands_cached.
1032
1033 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
1034
1035         * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
1036         attributes.
1037         * genattr.c (main): Handle "preferred_for_size" and
1038         "preferred_for_speed" in the same way as "enabled".
1039         * recog.h (bool_attr): New enum.
1040         (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
1041         (get_preferred_alternatives, check_bool_attrs): Declare.
1042         * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
1043         (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
1044         New functions.
1045         (get_enabled_alternatives): Use get_bool_attr_mask.
1046         * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
1047         instead of recog_data.enabled_alternatives.
1048         * ira.c (ira_setup_alts): Likewise.
1049         * postreload.c (reload_cse_simplify_operands): Likewise.
1050         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
1051         * ira-lives.c (preferred_alternatives): New variable.
1052         (process_bb_node_lives): Set it.
1053         (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
1054         (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
1055         of recog_data.enabled_alternatives.
1056         * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
1057         to preferred_alternatives.
1058         * lra-constraints.c (process_alt_operands): Update accordingly.
1059         * lra.c (lra_set_insn_recog_data): Likewise.
1060         (lra_update_insn_recog_data): Assert check_bool_attrs.
1061
1062 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
1063
1064         * recog.h (extract_constrain_insn): Declare.
1065         * recog.c (extract_constrain_insn): New function.
1066         * lra.c (check_rtl): Use it.
1067         * postreload.c (reload_cse_simplify_operands): Likewise.
1068         * reg-stack.c (check_asm_stack_operands): Likewise.
1069         (subst_asm_stack_regs): Likewise.
1070         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
1071         * regrename.c (build_def_use): Likewise.
1072         * sel-sched.c (get_reg_class): Likewise.
1073         * config/arm/arm.c (note_invalid_constants): Likewise.
1074         * config/s390/predicates.md (execute_operation): Likewise.
1075
1076 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
1077             Yury Gribov  <y.gribov@samsung.com>
1078
1079         * common.opt (flag_sanitize_recover): New variable.
1080         (fsanitize-recover): Remove Var/Init, deprecate.
1081         (fsanitize-recover=): New option.
1082         * doc/invoke.texi (fsanitize-recover): Update docs.
1083         * opts.c (finish_options): Use opts->x_flag_sanitize
1084         instead of flag_sanitize.  Prohibit -fsanitize-recover
1085         for anything besides UBSan.  Formatting.
1086         (common_handle_option): Handle OPT_fsanitize_recover_
1087         and OPT_fsanitize_recover.  Use opts->x_flag_sanitize
1088         instead of flag_sanitize.
1089         * asan.c (pass_sanopt::execute): Fix up formatting.
1090         * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
1091         ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
1092         instrument_bool_enum_load, ubsan_instrument_float_cast,
1093         instrument_nonnull_arg, instrument_nonnull_return): Check
1094         bits in flag_sanitize_recover bitmask instead of
1095         flag_sanitize_recover as bool flag.
1096
1097 2014-10-22  Jiong Wang <jiong.wang@arm.com>
1098
1099         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
1100
1101 2014-10-22  Renlin Li <renlin.li@arm.com>
1102
1103         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
1104         __ARM_FEATURE_IDIV__.
1105
1106 2014-10-22  Richard Biener  <rguenther@suse.de>
1107
1108         * Makefile.in (s-match): Adjust dependencies to only catch
1109         match.pd.
1110
1111 2014-10-22  Richard Biener  <rguenther@suse.de>
1112         Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
1113
1114         * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
1115         (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
1116         (gimple-match.c): Generate by triggering s-match.
1117         (generic-match.c): Likewise.
1118         (s-match): Rule to build gimple-match.c and generic-match.c
1119         by running the genmatch generator program.
1120         (build/hash-table.o): Dependencies to build hash-table.c for the host.
1121         (build/genmatch.o): Dependencies to build genmatch.
1122         (genprog): Add match.
1123         (build/genmatch): Likewise.
1124         (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
1125         * generic-match-head.c: New file.
1126         * gimple-match-head.c: Likewise.
1127         * gimple-match.h: Likewise.
1128         * genmatch.c: Likewise.
1129         * match.pd: Likewise.
1130         * builtins.h (fold_builtin_n): Export.
1131         * builtins.c (fold_builtin_n): Likewise.
1132         * gimple-fold.h (gimple_build): Declare various overloads.
1133         (gimple_simplify): Likewise.
1134         (gimple_convert): Re-implement in terms of gimple_build.
1135         * gimple-fold.c (gimple_convert): Remove.
1136         (gimple_build): New functions.
1137         * doc/match-and-simplify.texi: New file.
1138         * doc/gccint.texi: Add menu item Match and Simplify and include
1139         match-and-simplify.texi.
1140
1141 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
1142
1143         PR target/63594
1144         * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
1145         V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
1146         even for just TARGET_AVX2, not only for
1147         TARGET_AVX512VL && TARGET_AVX512BW.  For V{32HI,64QI}mode,
1148         call ix86_vector_duplicate_value only if TARGET_AVX512BW,
1149         otherwise build it using concatenation of 256-bit
1150         broadcast.
1151         * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
1152         avx512 broadcast patterns.
1153         (vec_dup<mode>): Likewise.  For avx2 use
1154         v<sseintprefix>broadcast<bcstscalarsuff> instead of
1155         vbroadcast<ssescalarmodesuffix>.
1156         (AVX2_VEC_DUP_MODE): New mode iterator.
1157         (*vec_dup<mode>): New TARGET_AVX2 define_insn with
1158         AVX2_VEC_DUP_MODE iterator, add a splitter for that.
1159
1160         PR target/63542
1161         * config/i386/i386.c (ix86_pic_register_p): Also return
1162         true if x is a hard register with ORIGINAL_REGNO equal to
1163         pic_offset_table_rtx pseudo REGNO.
1164         (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
1165         after reload, subtract GOT_SYMBOL_NAME symbol if possible.
1166
1167 2014-10-22  Alan Modra  <amodra@gmail.com>
1168
1169         * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
1170         * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
1171         (gcc_obstack_init): Use obstack_specify_allocation in place of
1172         _obstack_begin.
1173         * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
1174         (regexp_representation): Likewise.
1175         * godump.c (go_output_type): Likewise.
1176
1177 2014-10-21  John David Anglin  <danglin@gcc.gnu.org>
1178
1179         * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
1180         * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
1181         * config/pa/pa.opt (mjump-in-delay): Ignore option.  Update comment.
1182
1183 2014-10-21 Manuel López-Ibáñez  <manu@gcc.gnu.org>
1184
1185         * doc/invoke.texi (pedantic-errors): Explain better.
1186
1187 2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
1188             Vidya Praveen <vidya.praveen@atmel.com>
1189             Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
1190             Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
1191             Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
1192
1193         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
1194         __MEMX for avrtiny.
1195         * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
1196         (avr_nonconst_pointer_addrspace): Likewise.
1197         * config/avr/avr.h (AVR_HAVE_LPM): Define.
1198
1199         Added AVRTINY architecture to avr target.
1200         * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
1201         (base_arch_s): member added for AVRTINY architecture.
1202         * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
1203         alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
1204         AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
1205         and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
1206         respectively. LAST_CALLEE_SAVED_REG macro added for the last register
1207         in callee saved register list.
1208         (avr_option_override): CCP address updated for AVRTINY.
1209         (avr_init_expanders): tmp and zero rtx initialized as per arch.
1210         Reset avr_have_dimode if AVRTINY.
1211         (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
1212         (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
1213         (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
1214         Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
1215         (expand_epilogue): Likewise.
1216         (avr_print_operand): Print CCP address in case of AVRTINY also.
1217         <TBD>bad address
1218         (function_arg_regno_p): Check different register list for arguments
1219         if AVRTINY.
1220         (init_cumulative_args): Check for AVRTINY to update number of argument
1221         registers.
1222         (tiny_valid_direct_memory_access_range): New function. Return false if
1223         direct memory access range is not in accepted range for AVRTINY.
1224         (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
1225         indirect load (with displacement) for AVRTINY.
1226         (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
1227         avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
1228         (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
1229         indirect load (no displacement) for AVRTINY.
1230         (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
1231         indirect load (with displacement) for AVRTINY.
1232         (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
1233         indirect load for pre-decrement address.
1234         (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
1235         functions. Update instruction length for AVRTINY.
1236         (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
1237         SImode.
1238         (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
1239         (out_movsi_r_mr): Likewise, for SImode.
1240         (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
1241         indirect store (no displacement) for AVRTINY.
1242         (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
1243         indirect store (with displacement) for AVRTINY.
1244         (out_movsi_mr_r): Emit out insn for IO address store. Update store
1245         instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
1246         store functions.
1247         (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
1248         indirect load (no displacement) for PSImode in AVRTINY.
1249         (avr_out_load_psi_reg_disp_tiny): New function to handle register
1250         indirect load (with displacement) for PSImode in AVRTINY.
1251         (avr_out_load_psi): Call PSImode register indirect load functions for
1252         AVRTINY. Update instruction length for AVRTINY.
1253         (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
1254         indirect store (no displacement) for PSImode in AVRTINY.
1255         (avr_out_store_psi_reg_disp_tiny): New function to handle register
1256         indirect store (with displacement) for PSImode in AVRTINY.
1257         (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
1258         register indirect store functions for AVRTINY.
1259         (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
1260         register indirect store (with displacement) for AVRTINY.
1261         (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
1262         register indirect store function for QImode in AVRTINY.
1263         (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
1264         (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
1265         indirect store (no displacement) for HImode in AVRTINY.
1266         (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
1267         indirect store (with displacement) for HImode in AVRTINY.
1268         (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
1269         indirect store for post-increment address in HImode.
1270         (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
1271         register indirect store function for HImode in AVRTINY.
1272         (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
1273         in case of AVRTINY.
1274         (order_regs_for_local_alloc): Updated register allocation order for
1275         AVRTINY.
1276         (avr_conditional_register_usage): New function. It is a target hook
1277         (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
1278         used registers list and register allocation order for AVRTINY.
1279         (avr_return_in_memory): Update return value size for AVRTINY.
1280         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
1281         for AVRTINY arch and tiny program memory base address.
1282         * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
1283         (avr_texinfo): Added description for AVRTINY arch.
1284         * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
1285         STATIC_CHAIN_REGNUM for AVRTINY.
1286         * config/avr/avr-mcus.def: Added AVRTINY arch devices.
1287         * config/avr/avr.md: Added constants for tmp/ zero registers in
1288         AVRTINY. Attributes for AVRTINY added.
1289         (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
1290         memory access range.
1291         (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
1292         in AVRTINY memory access range.
1293         (*mov<mode>): Likewise for HImode and SImode.
1294         (*movsf): Likewise for SFmode.
1295         (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
1296         not have sbiw.
1297         * config/avr/avr-protos.h: Added function prototype for
1298         tiny_valid_direct_memory_access_range.
1299         * config/avr/avr-tables.opt: Regenerate.
1300         * gcc/config/avr/t-multilib: Regenerate.
1301         * doc/avr-mmcu.texi: Regenerate.
1302
1303 2014-10-21  Andrew Pinski  <apinski@cavium.com>
1304
1305         * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
1306         available option also.
1307         * config/aarch64/aarch64-cost-tables.h: New file.
1308         * config/aarch64/aarch64-cores.def (thunderx): New core.
1309         * config/aarch64/aarch64-tune.md: Regenerate.
1310         * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
1311         of config/arm/aarch-cost-tables.h.
1312         (thunderx_regmove_cost): New variable.
1313         (thunderx_tunings): New variable.
1314
1315 2014-10-21  Dehao Chen  <dehao@google.com>
1316
1317         * auto-profile.c: New file.
1318         * auto-profile.h: New file.
1319         * basic-block.h (maybe_hot_count_p): New export func.
1320         (add_working_set): New export func.
1321         * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
1322         (GCOV_TAG_AFDO_FUNCTION): Likewise.
1323         (GCOV_TAG_AFDO_WORKING_SET): Likewise.
1324         * opts.c (enable_fdo_optimizations): New func.
1325         (common_handle_option): Handle -fauto-profile flag.
1326         * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
1327         (class pass_early_inline): Export early_inliner.
1328         (early_inliner): Likewise.
1329         (pass_early_inline::execute): Likewise.
1330         * ipa-inline.h (early_inliner): Likewise.
1331         * predict.c (maybe_hot_count_p): New export func.
1332         (counts_to_freqs): AutoFDO logic.
1333         (rebuild_frequencies): Likewise.
1334         * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
1335         * profile.c (add_working_set): New func.
1336         * Makefile.in (auto-profile.o): New object file.
1337         * passes.def (pass_ipa_auto_profile): New pass.
1338         * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
1339         * tree-pass.h (make_pass_ipa_auto_profile): New pass.
1340         * toplev.c (compile_file): AutoFDO logic.
1341         * doc/invoke.texi (-fauto-profile): New doc.
1342         * coverage.c (coverage_init): AutoFDO logic.
1343         * common.opt (-fauto-profile): New flag.
1344         * timevar.def (TV_IPA_AUTOFDO): New tag.
1345         * value-prof.c (gimple_alloc_histogram_value): New export func.
1346         (check_ic_target): Likewise.
1347         * value-prof.h (gimple_alloc_histogram_value): Likewise.
1348         (check_ic_target): Likewise.
1349
1350 2014-10-21  David Malcolm  <dmalcolm@redhat.com>
1351
1352         * cgraph.c (cgraph_c_finalize): New function.
1353         * cgraph.h (cgraph_c_finalize): New prototype.
1354         (cgraphunit_c_finalize): New prototype.
1355         * cgraphunit.c (first_analyzed): Move from analyze_functions
1356         to file-scope.
1357         (first_analyzed_var): Likewise.
1358         (analyze_functions): Move static variables into file-scope.
1359         (cgraphunit_c_finalize): New function.
1360         * diagnostic.c (diagnostic_finish): Free the memory for
1361         context->classify_diagnostic and context->printer, running the
1362         destructor for the latter.
1363         (bt_stop): Use toplev::main.
1364         * dwarf2out.c (dwarf2out_finalize): New function.
1365         * dwarf2out.h (dwarf2out_c_finalize): New prototype.
1366         * gcse.c (gcse_c_finalize): New function.
1367         * gcse.h (gcse_c_finalize): New prototype.
1368         * ggc-page.c (init_ggc): Make idempotent.
1369         * input.c (input_location): Initialize to UNKNOWN_LOCATION.
1370         * ipa-cp.c (ipa_cp_c_finalize): New function.
1371         * ipa-prop.h (ipa_cp_c_finalize): New prototype.
1372         * ipa-pure-const.c (function_insertion_hook_holder): Move to be
1373         a field of class pass_ipa_pure_const.
1374         (node_duplication_hook_holder): Likewise.
1375         (node_removal_hook_holder): Likewise.
1376         (register_hooks): Convert to method...
1377         (pass_ipa_pure_const::register_hooks): ...here, converting
1378         static variable init_p into...
1379         (pass_ipa_pure_const::init_p): ...new field.
1380         (pure_const_generate_summary): Update invocation of
1381         register_hooks to invoke as a method of current_pass.
1382         (pure_const_read_summary): Likewise.
1383         (propagate): Convert to...
1384         (pass_ipa_pure_const::execute): ...method.
1385         * ipa-reference.c (ipa_init): Move static bool init_p from here
1386         to...
1387         (ipa_init_p): New file-scope variable, so that it can be reset
1388         when repeatedly invoking the compiler within one process by...
1389         (ipa_reference_c_finalize): New function.
1390         * ipa-reference.h (ipa_reference_c_finalize): New.
1391         * main.c (main): Replace invocation of toplev_main with
1392         construction of a toplev instance, and call its "main" method.
1393         * params.c (global_init_params): Add an assert that
1394         params_finished is false.
1395         (params_c_finalize): New.
1396         * params.h (params_c_finalize): New.
1397         * passes.c (execute_ipa_summary_passes): Set "current_pass" before
1398         invoking generate_summary, for the benefit of pass_ipa_pure_const.
1399         (ipa_write_summaries_2): Assign "pass" to "current_pass" global
1400         before calling write_summary hook.
1401         (ipa_write_optimization_summaries_1): Likewise when calling
1402         write_optimization_summary hook.
1403         (ipa_read_summaries_1): Likewise for read_summary hook.
1404         (ipa_read_optimization_summaries_1): Likewise for
1405         read_optimization_summary hook.
1406         (execute_ipa_stmt_fixups): Likewise.
1407         * stringpool.c (init_stringpool): Clean up if we're called more
1408         than once.
1409         * timevar.c (timevar_init): Ignore repeated calls.
1410         * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
1411         "ipa-prop.h".
1412         (general_init): Reset "input_location" to UNKNOWN_LOCATION.
1413         (initialize_rtl): Move static local "initialized_once"
1414         into file scope, and rename to...
1415         (rtl_initialized): New variable.
1416         (do_compile): Move timevar initialization from here to
1417         toplev::start_timevars.
1418         (toplev::toplev, toplev::~toplev, toplev::start_timevars,
1419         toplev::finalize): New functions.
1420         (toplev_main): Rename to...
1421         (toplev::main): ...this.
1422         * toplev.h (class toplev): New class.
1423
1424 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
1425
1426         * loop-doloop.c: Include loop-unroll.h.
1427
1428 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
1429
1430         * cfg.h: New.  Header file for cfg.c.
1431         * cfganal.h: New.  Header file for cfganal.c.
1432         * lcm.h: New.  Header file for lcm.c.
1433         * loop-unroll.h: New.  Header file for loop-unroll.h.
1434         * cfgloop.h: (unroll_loops): Remove prototype.
1435         * basic-block.h: Move prototypes and structs to new header files.
1436         Include cfg.h, cfganal.h, and lcm.h.
1437         * loop-init.c: Include loop-unroll.h.
1438         * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
1439         * modulo-sched.c: Include loop-unroll.h.
1440
1441 2014-10-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1442
1443         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
1444         MARKER_BYTE_UNKNOWN markers when handling casts.
1445
1446 2014-10-21  Richard Biener  <rguenther@suse.de>
1447
1448         * tree-ssa-phiopt.c (value_replacement): Properly verify we
1449         are the non-singleton PHI.
1450
1451 2014-10-21  Jakub Jelinek  <jakub@redhat.com>
1452
1453         PR tree-optimization/63563
1454         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
1455         if either dra or drb stmts are not normal loads/stores.
1456
1457 2014-10-21  Ilya Tocar  <ilya.tocar@intel.com>
1458
1459         * config/i386/i386.c (expand_vec_perm_1): Fix
1460         expand_vec_perm_palignr case.
1461         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
1462         VI1_AVX512.
1463
1464 2014-10-21  Zhenqiang Chen  <zhenqiang.chen@arm.com>
1465
1466         * cfgloopanal.c (seq_cost): Delete.
1467         * rtl.h (seq_cost): New prototype.
1468         * rtlanal.c (seq_cost): New function.
1469         * tree-ssa-loop-ivopts.c (seq_cost): Delete.
1470
1471 2014-10-20  Andrew MacLeod  <amacleod@redhat.com>
1472
1473         * cfgrtl.h: New.  Add prototypes for cfgrtl.c.
1474         * basic-block.h: Remove prototypes for cfgrtl.c.
1475         * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
1476         prototypes to cfgrtl.h.
1477         * profile.h (profile_info): Add extern export declaration.
1478         * rtl.h: Remove prototypes for cfgrtl.h.
1479         * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
1480         * ipa-inline.c: Include profile.h.
1481         * loop-unroll.c: Ditto.
1482         * modulo-sched.c: Ditto.
1483         * postreload-gcse.c: Ditto.
1484         * predict.c: Ditto.
1485         * sched-ebb.c: Ditto.
1486         * sched-rgn.c: Ditto.
1487         * tracer.c: Ditto.
1488         * tree-ssa-loop-ivcanon.c: Ditto.
1489
1490 2014-10-20  Richard Biener  <rguenther@suse.de>
1491
1492         * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
1493         operands to get a def operand kind match.  Signal mismatches
1494         to the parent so we can try swapping its operands.
1495         (vect_build_slp_tree): Try swapping operands if they have
1496         a mismatched operand kind.
1497
1498 2014-10-20  Alan Modra  <amodra@gmail.com>
1499
1500         PR debug/60655
1501         * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
1502         Increase "ops" array size.  Correct array size tests.  Init
1503         n_constants in loop.  Break out of innermost loop when finding
1504         a trivial CONST expression.
1505
1506 2014-10-20  Martin Liska  <mliska@suse.cz>
1507
1508         PR ipa/63583
1509         * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
1510         Gimple tempate string is compared.
1511
1512 2014-10-20  Uros Bizjak  <ubizjak@gmail.com>
1513
1514         * varasm.c (const_alias_set): Remove.
1515         (init_varasm_once): Remove initialization of const_alias_set.
1516         (build_constant_desc): Do not set alias set to const_alias_set.
1517
1518 2014-10-19  Ilya Verbin  <ilya.verbin@intel.com>
1519
1520         * configure: Regenerate.
1521         * configure.ac: Move the test for section attribute specifier "e" in GAS
1522         out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
1523         * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
1524         * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
1525         ifdef HAVE_GAS_SECTION_EXCLUDE.
1526
1527 2014-10-19  Andreas Schwab  <schwab@linux-m68k.org>
1528
1529         * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
1530         match_operand expression.
1531
1532 2014-10-19  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
1533             David Edelsohn  <dje.gcc@gmail.com>
1534
1535         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
1536         function.
1537         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
1538
1539 2014-10-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1540
1541         * doc/invoke.texi (Options to Request or Suppress Warnings):
1542         Explain options precedence.
1543         (Wtrampolines): Do not indent paragraph.
1544
1545 2014-10-18  John David Anglin  <danglin@gcc.gnu.org>
1546
1547         * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
1548         * config/pa/pa-protos.h (pa_following_call): Delete declaration.
1549         (pa_jump_in_call_delay): Likewise.
1550         * config/pa/pa.c (pa_option_override): Remove jump in call delay
1551         override.
1552         (pa_output_millicode_call): Remove support for jump in call delay.
1553         (pa_output_call): Likewise.
1554         (pa_jump_in_call_delay): Delete.
1555         (pa_following_call): Likewise.
1556         * config/pa/pa.md (in_call_delay): Remove jump in delay check.
1557         (uncond_branch): Remove following call check from attribute length.
1558
1559 2014-10-18  Oleg Endo  <olegendo@gcc.gnu.org>
1560
1561         PR target/53513
1562         * config/sh/sh-modes.def (PSI): Remove.
1563         * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
1564         * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
1565         (sh_reorg): Remove commented out FPSCR code.
1566         (fpscr_set_from_mem): Use SImode instead of PSImode.  Emit lds_fpscr
1567         insn instead of move insn.
1568         (sh_hard_regno_mode_ok): Return SImode for FPSCR.
1569         (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
1570         handling.
1571         (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
1572         (sh1_builtin_p): Uncomment.
1573         (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
1574         (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
1575         * config/sh/sh/predicates.md (fpscr_operand): Simplify.
1576         (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
1577         (general_movsrc_operand, general_movdst_operand): Disallow
1578         fpscr_operand.
1579         * config/sh/sh.md (FPSCR_FR): New constant.
1580         (push_fpscr): Emit sts_fpscr insn.
1581         (pop_fpscr): Emit lds_fpscr_insn.
1582         (movsi_ie): Disallow FPSCR operands.
1583         (fpu_switch, unnamed related split, extend_psi_si,
1584         truncate_si_psi): Remove insns.
1585         (lds_fpscr, sts_fpscr): New insns.
1586         (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
1587
1588 2014-10-17  Eric Botcazou  <ebotcazou@adacore.com>
1589
1590         * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
1591         (clone_inlined_nodes): Do not overwrite the clone if above predicate
1592         returns true.
1593
1594 2014-10-17  Ilya Tocar  <ilya.tocar@intel.com>
1595
1596         * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
1597         (expand_vec_perm_d): Ditto.
1598         (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
1599         V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
1600         V4DFmode.
1601         (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
1602         (ix86_expand_sse_unpack): Handle V64QImode.
1603         (expand_vec_perm_blend): Update conditions for TARGET, handle
1604         V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
1605         (expand_vec_perm_pshufb): Handle V64QImode.
1606         (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
1607         V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
1608         (ix86_expand_vec_perm_const_1): Call  ix86_expand_vec_perm_vpermi2.
1609         (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
1610         (ix86_expand_vecop_qihi): Handle V64QImode.
1611         * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
1612         (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
1613         (define_mode_iterator VEC_PERM_CONST): Add V32HI.
1614         (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
1615         (mul<mode>3): Use VI1_AVX512.
1616         (<sse2_avx2>_packsswb): Ditto.
1617         (<sse2_avx2>_packuswb): Ditto.
1618         (<ssse3_avx2>_pshufb<mode>3): Ditto.
1619         (<shift_insn><mode>3): Ditto.
1620
1621 2014-10-17  Kirill Yukhin  <kirill.yukhin@intel.com>
1622
1623         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
1624         conditions to fix bootstrap.
1625
1626 2014-10-17  Andrew MacLeod  <amacleod@redhat.com>
1627
1628         gcc-plugin.h:  Add tm.h and flattened includes from function.h.
1629
1630 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1631             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1632             Anna Tikhonova  <anna.tikhonova@intel.com>
1633             Ilya Tocar  <ilya.tocar@intel.com>
1634             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1635             Ilya Verbin  <ilya.verbin@intel.com>
1636             Kirill Yukhin  <kirill.yukhin@intel.com>
1637             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1638
1639         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
1640         and V32HI modes, update V8HI, V16QI, V32QI modes handling.
1641         (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
1642         * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
1643         (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
1644         (define_expand "vec_init<mode>"): Use VF48_I1248.
1645
1646 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1647             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1648             Anna Tikhonova  <anna.tikhonova@intel.com>
1649             Ilya Tocar  <ilya.tocar@intel.com>
1650             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1651             Ilya Verbin  <ilya.verbin@intel.com>
1652             Kirill Yukhin  <kirill.yukhin@intel.com>
1653             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1654
1655         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
1656         expand_sse2_mulvxdi3.
1657
1658 2014-10-17  Richard Biener  <rguenther@suse.de>
1659
1660         * fold-const.c (fold_comparison): Remove redundant constant
1661         folding and operand swapping.
1662         (fold_binary_loc): Do comparison operand swapping here.
1663         (fold_ternary_loc): Canonicalize operand order for
1664         commutative ternary operations.
1665         * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
1666         and FMA_EXPR.
1667
1668 2014-10-17  Jakub Jelinek  <jakub@redhat.com>
1669
1670         PR tree-optimization/63464
1671         * gimple.h (gimple_seq_discard): New prototype.
1672         * gimple.c: Include stringpool.h and tree-ssanames.h.
1673         (gimple_seq_discard): New function.
1674         * optabs.h (lshift_cheap_p): New prototype.
1675         * optabs.c (lshift_cheap_p): New function, moved from...
1676         * tree-switch-conversion.c (lshift_cheap_p): ... here.
1677         * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
1678         (reassoc_branch_fixups): New variable.
1679         (update_range_test): Add otherrangep and seq arguments.
1680         Unshare exp.  If otherrange is NULL, use for other ranges
1681         array of pointers pointed by otherrangep instead.
1682         Emit seq before gimplified statements for tem.
1683         (optimize_range_tests_diff): Adjust update_range_test
1684         caller.
1685         (optimize_range_tests_xor): Likewise.  Fix up comment.
1686         (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
1687         functions.
1688         (optimize_range_tests): Adjust update_range_test caller.
1689         Call optimize_range_tests_to_bit_test.
1690         (branch_fixup): New function.
1691         (execute_reassoc): Call branch_fixup.
1692
1693         PR tree-optimization/63302
1694         * tree-ssa-reassoc.c (optimize_range_tests_xor,
1695         optimize_range_tests_diff): Use !integer_pow2p () instead of
1696         tree_log2 () < 0.
1697
1698 2014-10-17  Martin Liska  <mliska@suse.cz>
1699
1700         * ipa-icf.c (sem_function::merge): Local flags are set to false
1701         to enforce equal calling convention to be used.
1702         * opts.c (common_handle_option): Indentation fix.
1703
1704 2014-10-17  Marc Glisse  <marc.glisse@inria.fr>
1705
1706         * tree-into-ssa.c (is_old_name): Replace "new" with "old".
1707
1708 2014-10-17  Tom de Vries  <tom@codesourcery.com>
1709
1710         PR rtl-optimization/61605
1711         * regcprop.c (copyprop_hardreg_forward_1): Use
1712         regs_invalidated_by_this_call instead of regs_invalidated_by_call.
1713
1714 2014-10-17  Tom de Vries  <tom@codesourcery.com>
1715
1716         PR rtl-optimization/61605
1717         * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p.  Don't
1718         notice stores for noops.  Don't regard noops as copies.
1719
1720 2014-10-17  Uros Bizjak  <ubizjak@gmail.com>
1721
1722         * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
1723         register in a special way.
1724         (__cpuid_count): Ditto.
1725         * config/i386/driver-i386.h: Protect with
1726         "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
1727         (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
1728         is required to compile the function.
1729
1730 2014-10-16  DJ Delorie  <dj@redhat.com>
1731
1732         * flag-types.h (sanitize_code): Don't assume targets have 32-bit
1733         integers.
1734
1735         * config/rs6000/rs6000-c.c (rid_int128): New.
1736         (rs6000_macro_to_expand): Use instead of RID_INT128.
1737
1738 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
1739
1740         * function.h: Flatten file.  Remove includes, adjust prototypes to
1741         reflect only what is in function.h.
1742         (enum direction, struct args_size, struct locate_and_pad_arg_data,
1743         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
1744         from expr.h.
1745         (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
1746         (optimize_function_for_size_p, optimize_function_for_speed_p): Move
1747         prototypes to predict.h.
1748         (init_varasm_status): Move prototype to varasm.h.
1749         * expr.h: Adjust include files.
1750         (enum direction, struct args_size, struct locate_and_pad_arg_data,
1751         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
1752         to function.h.
1753         (locate_and_pad_parm): Move prototype to function.h.
1754         * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
1755         assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
1756         assign_temp, reposition_prologue_and_epilogue_notes,
1757         prologue_epilogue_contains, sibcall_epilogue_contains,
1758         update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
1759         set_return_jump_label): Move prototypes to function.h.
1760         * predict.h (optimize_function_for_size_p,
1761         optimize_function_for_speed_p): Relocate prototypes from function.h.
1762         * shrink-wrap.h (emit_return_into_block, active_insn_between,
1763         convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
1764         function.h.
1765         * varasm.h (init_varasm_status): Relocate prototype from function.h.
1766         * genattrtab.c (write_header): Add predict.h to include list.
1767         * genconditions.c (write_header): Add predict.h to include list.
1768         * genemit.c (main): Adjust header file includes.
1769         * gengtype.c (ifiles): Add flattened function.h header files.
1770         * genoutput.c (output_prologue): Add predict.h to include list.
1771         * genpreds.c (write_insn_preds_c): Adjust header file includes.
1772         * genrecog.c (write_header): Add flattened function.h header files.
1773         * alias.c: Adjust include files.
1774         * auto-inc-dec.c: Likewise.
1775         * basic-block.h: Likewise.
1776         * bb-reorder.c: Likewise.
1777         * bt-load.c: Likewise.
1778         * builtins.c: Likewise.
1779         * caller-save.c: Likewise.
1780         * calls.c: Likewise.
1781         * cfgbuild.c: Likewise.
1782         * cfgcleanup.c: Likewise.
1783         * cfgexpand.c: Likewise.
1784         * cfgloop.c: Likewise.
1785         * cfgloop.h: Likewise.
1786         * cfgrtl.c: Likewise.
1787         * cgraph.h: Likewise.
1788         * cgraphclones.c: Likewise.
1789         * cgraphunit.c: Likewise.
1790         * combine-stack-adj.c: Likewise.
1791         * combine.c: Likewise.
1792         * coverage.c: Likewise.
1793         * cprop.c: Likewise.
1794         * cse.c: Likewise.
1795         * cselib.c: Likewise.
1796         * dbxout.c: Likewise.
1797         * ddg.c: Likewise.
1798         * df-core.c: Likewise.
1799         * df-problems.c: Likewise.
1800         * df-scan.c: Likewise.
1801         * dojump.c: Likewise.
1802         * dwarf2cfi.c: Likewise.
1803         * dwarf2out.c: Likewise.
1804         * emit-rtl.c: Likewise.
1805         * except.c: Likewise.
1806         * explow.c: Likewise.
1807         * expr.c: Likewise.
1808         * final.c: Likewise.
1809         * function.c: Likewise.
1810         * gcse.c: Likewise.
1811         * gimple-fold.c: Likewise.
1812         * gimple-low.c: Likewise.
1813         * gimple-streamer.h: Likewise.
1814         * haifa-sched.c: Likewise.
1815         * ifcvt.c: Likewise.
1816         * ira.c: Likewise.
1817         * jump.c: Likewise.
1818         * lcm.c: Likewise.
1819         * loop-invariant.c: Likewise.
1820         * lra-assigns.c: Likewise.
1821         * lra-coalesce.c: Likewise.
1822         * lra-constraints.c: Likewise.
1823         * lra-eliminations.c: Likewise.
1824         * lra-lives.c: Likewise.
1825         * lra-spills.c: Likewise.
1826         * lra.c: Likewise.
1827         * lto-cgraph.c: Likewise.
1828         * lto-section-in.c: Likewise.
1829         * lto-section-out.c: Likewise.
1830         * lto-streamer-in.c: Likewise.
1831         * lto-streamer-out.c: Likewise.
1832         * mode-switching.c: Likewise.
1833         * modulo-sched.c: Likewise.
1834         * omp-low.c: Likewise.
1835         * optabs.c: Likewise.
1836         * passes.c: Likewise.
1837         * postreload-gcse.c: Likewise.
1838         * postreload.c: Likewise.
1839         * predict.c: Likewise.
1840         * profile.c: Likewise.
1841         * recog.c: Likewise.
1842         * ree.c: Likewise.
1843         * reg-stack.c: Likewise.
1844         * regcprop.c: Likewise.
1845         * reginfo.c: Likewise.
1846         * regrename.c: Likewise.
1847         * reload.c: Likewise.
1848         * reload1.c: Likewise.
1849         * reorg.c: Likewise.
1850         * resource.c: Likewise.
1851         * rtlanal.c: Likewise.
1852         * sched-deps.c: Likewise.
1853         * sched-ebb.c: Likewise.
1854         * sched-rgn.c: Likewise.
1855         * sel-sched-dump.c: Likewise.
1856         * sel-sched-ir.c: Likewise.
1857         * sel-sched.c: Likewise.
1858         * shrink-wrap.c: Likewise.
1859         * simplify-rtx.c: Likewise.
1860         * statistics.c: Likewise.
1861         * stmt.c: Likewise.
1862         * stor-layout.c: Likewise.
1863         * store-motion.c: Likewise.
1864         * symtab.c: Likewise.
1865         * targhooks.c: Likewise.
1866         * toplev.c: Likewise.
1867         * trans-mem.c: Likewise.
1868         * tree-cfg.c: Likewise.
1869         * tree-cfgcleanup.c: Likewise.
1870         * tree-dfa.c: Likewise.
1871         * tree-eh.c: Likewise.
1872         * tree-inline.c: Likewise.
1873         * tree-into-ssa.c: Likewise.
1874         * tree-nested.c: Likewise.
1875         * tree-nrv.c: Likewise.
1876         * tree-profile.c: Likewise.
1877         * tree-ssa-alias.c: Likewise.
1878         * tree-ssa-ccp.c: Likewise.
1879         * tree-ssa-copy.c: Likewise.
1880         * tree-ssa-copyrename.c: Likewise.
1881         * tree-ssa-dom.c: Likewise.
1882         * tree-ssa-operands.c: Likewise.
1883         * tree-ssa-propagate.c: Likewise.
1884         * tree-ssa-structalias.c: Likewise.
1885         * tree-ssa-tail-merge.c: Likewise.
1886         * tree-ssa-threadedge.c: Likewise.
1887         * tree-ssa-threadupdate.c: Likewise.
1888         * tree-ssa-uncprop.c: Likewise.
1889         * tree-ssa-uninit.c: Likewise.
1890         * tree-ssa.c: Likewise.
1891         * tree-stdarg.c: Likewise.
1892         * tree-tailcall.c: Likewise.
1893         * tree.c: Likewise.
1894         * tsan.c: Likewise.
1895         * valtrack.c: Likewise.
1896         * varasm.c: Likewise.
1897         * vmsdbgout.c: Likewise.
1898         * web.c: Likewise.
1899         * config/aarch64/aarch64.c: Add flattened includes from function.h.
1900         * config/alpha/alpha.c: Likewise.
1901         * config/arc/arc.c: Likewise.
1902         * config/arm/arm.c: Likewise.
1903         * config/avr/avr-log.c: Likewise.
1904         * config/avr/avr.c: Likewise.
1905         * config/bfin/bfin.c: Likewise.
1906         * config/c6x/c6x.c: Likewise.
1907         * config/cr16/cr16.c: Likewise.
1908         * config/cris/cris.c: Likewise.
1909         * config/darwin.c: Likewise.
1910         * config/epiphany/epiphany.c: Likewise.
1911         * config/epiphany/mode-switch-use.c: Likewise.
1912         * config/epiphany/resolve-sw-modes.c: Likewise.
1913         * config/fr30/fr30.c: Likewise.
1914         * config/frv/frv.c: Likewise.
1915         * config/h8300/h8300.c: Likewise.
1916         * config/i386/i386.c: Likewise.
1917         * config/ia64/ia64.c: Likewise.
1918         * config/iq2000/iq2000.c: Likewise.
1919         * config/lm32/lm32.c: Likewise.
1920         * config/m32c/m32c.c: Likewise.
1921         * config/m32r/m32r.c: Likewise.
1922         * config/m68k/m68k.c: Likewise.
1923         * config/mcore/mcore.c: Likewise.
1924         * config/mep/mep-pragma.c: Likewise.
1925         * config/mep/mep.c: Likewise.
1926         * config/microblaze/microblaze.c: Likewise.
1927         * config/mips/mips.c: Likewise.
1928         * config/mmix/mmix.c: Likewise.
1929         * config/mn10300/mn10300.c: Likewise.
1930         * config/moxie/moxie.c: Likewise.
1931         * config/msp430/msp430.c: Likewise.
1932         * config/nds32/nds32-cost.c: Likewise.
1933         * config/nds32/nds32-fp-as-gp.c: Likewise.
1934         * config/nds32/nds32-intrinsic.c: Likewise.
1935         * config/nds32/nds32-isr.c: Likewise.
1936         * config/nds32/nds32-md-auxiliary.c: Likewise.
1937         * config/nds32/nds32-memory-manipulation.c: Likewise.
1938         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1939         * config/nds32/nds32-predicates.c: Likewise.
1940         * config/nds32/nds32.c: Likewise.
1941         * config/nios2/nios2.c: Likewise.
1942         * config/pa/pa.c: Likewise.
1943         * config/pdp11/pdp11.c: Likewise.
1944         * config/rl78/rl78.c: Likewise.
1945         * config/rs6000/rs6000.c: Likewise.
1946         * config/rx/rx.c: Likewise.
1947         * config/s390/s390.c: Likewise.
1948         * config/score/score.c: Likewise.
1949         * config/sh/sh.c: Likewise.
1950         * config/sparc/sparc.c: Likewise.
1951         * config/spu/spu.c: Likewise.
1952         * config/stormy16/stormy16.c: Likewise.
1953         * config/tilegx/tilegx.c: Likewise.
1954         * config/tilepro/tilepro.c: Likewise.
1955         * config/v850/v850.c: Likewise.
1956         * config/vax/vax.c: Likewise.
1957         * config/xtensa/xtensa.c: Likewise.
1958
1959 2014-10-16  Richard Earnshaw  <rearnsha@arm.com>
1960
1961         * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
1962         (TARGET_LEGITIMIZE_ADDRESS): Redefine.
1963
1964 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
1965
1966         * config/sh/sh-protos.h (fldi_ok): Remove.
1967         * config/sh/sh.c (fldi_ok): Likewise.
1968         (sh_secondary_reload): Don't use fldi_ok.
1969         * config/sh/constraints.md (G constraint, H constraint): Don't use
1970         fldi_ok.
1971
1972 2014-10-16  Martin Liska  <mliska@suse.cz>
1973
1974         * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
1975         Cast to unsigned long.
1976         (sem_item_optimizer::dump_cong_classes): Likewise.
1977
1978 2014-10-16  Tom de Vries  <tom@codesourcery.com>
1979
1980         * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
1981         with SSA_NAME_IN_FREELIST.
1982
1983 2014-10-16  Richard Biener  <rguenther@suse.de>
1984
1985         PR middle-end/63554
1986         * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
1987         (fold_builtin_strncat_chk): Move ...
1988         * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
1989         (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
1990
1991 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
1992
1993         PR target/59401
1994         * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
1995         GBR to 0.
1996
1997 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1998             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1999             Anna Tikhonova  <anna.tikhonova@intel.com>
2000             Ilya Tocar  <ilya.tocar@intel.com>
2001             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2002             Ilya Verbin  <ilya.verbin@intel.com>
2003             Kirill Yukhin  <kirill.yukhin@intel.com>
2004             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2005
2006         * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
2007         V64QI modes.
2008
2009 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2010             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2011             Anna Tikhonova  <anna.tikhonova@intel.com>
2012             Ilya Tocar  <ilya.tocar@intel.com>
2013             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2014             Ilya Verbin  <ilya.verbin@intel.com>
2015             Kirill Yukhin  <kirill.yukhin@intel.com>
2016             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2017
2018         * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
2019         V16SI, V32HI, V64QI modes.
2020
2021 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
2022
2023         PR target/53513
2024         * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
2025         expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
2026
2027         * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
2028         to match fp insn patterns.
2029         (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
2030         list.
2031         (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
2032         expand_df_unop, expand_df_binop): Remove.
2033         (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
2034         FPSCR_STAT_REG as not call clobbered.
2035         (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
2036         invoking fpscr_set_from_mem.
2037
2038         * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
2039         (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
2040         FPSCR_STAT_REG.
2041         (REGISTER_NAMES): Adjust.
2042         (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
2043         (FIRST_PSEUDO_REGISTER): Increase to 156.
2044         (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
2045         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
2046         FPSCR_STAT_REG.
2047         (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
2048         FPSCR_MODES_REG and FPSCR_STAT_REG.
2049         (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
2050
2051         * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
2052         FPSCR_SZ): Add new constants.
2053         (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
2054
2055         (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
2056         (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
2057         Use TARGET_FPU_ANY condition.
2058         (fpu_switch peephole2): Remove.
2059         (fpu_switch split): Use simple_mem_operand to capture the mem and
2060         adjust split implementation.
2061         (extend_psi_si, truncate_si_psi): New insns.
2062         (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants.  Add
2063         set of FPSCR_MODES_REG.
2064
2065         (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
2066         reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
2067         calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
2068         call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
2069         call_value_compact, call_value_compact_rettramp, call,
2070         call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
2071         sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
2072         sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
2073         sibcall_value_compact, sibcall_value, call_value_pop_compact,
2074         call_value_pop_compact_rettramp, various unnamed splits):
2075         Replace use of FPSCR_REG with use of FPSCR_MODES_REG.  Adjust gen_*
2076         function uses.
2077
2078         (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
2079         (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
2080         (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
2081         (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
2082         (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
2083
2084         (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
2085         *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
2086         cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
2087         subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
2088         cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
2089         truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
2090         and use of FPSCR_MODES_REG.  Adjust gen_* function uses.
2091
2092 2014-10-16  Martin Liska  <mliska@suse.cz>
2093             Jan Hubicka  <hubicka@ucw.cz>
2094
2095         * Makefile.in: New object files included.
2096         * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
2097         is printed.
2098         (verify_edge_corresponds_to_fndecl): More sensitive verification
2099         of nodes that are merged by IPA ICF.
2100         * cgraph.h (cgraph_node::num_references): New function.
2101         * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
2102         * common.opt: New options ipa-icf, ipa-icf-functions and
2103         ipa-icf-variables introduced.
2104         * doc/invoke.texi: Documentation of new options introduced.
2105         * ipa-icf-gimple.c: New file.
2106         * ipa-icf-gimple.h: New file.
2107         * ipa-icf.c: New file.
2108         * ipa-icf.h: New file.
2109         * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
2110         (input_overwrite_node): Likewise.
2111         * lto-section-in.c: New icf section added.
2112         * lto-streamer.h (enum lto_section_type): Likewise.
2113         * opts.c (common_handle_option): New option added.
2114         * passes.def: New pass included.
2115         * timevar.def: Time variable for IPA ICF added.
2116         * tree-pass.h: New IPA ICF pass entry point added.
2117
2118 2014-10-16  Richard Biener  <rguenther@suse.de>
2119
2120         PR tree-optimization/63168
2121         * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
2122         latches if after merging they are no longer simple.
2123         * cfghooks.c (merge_blocks): Handle merging a latch block
2124         into another block.
2125
2126 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2127             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2128             Anna Tikhonova  <anna.tikhonova@intel.com>
2129             Ilya Tocar  <ilya.tocar@intel.com>
2130             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2131             Ilya Verbin  <ilya.verbin@intel.com>
2132             Kirill Yukhin  <kirill.yukhin@intel.com>
2133             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2134
2135         * config/i386/sse.md
2136         (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
2137         support AVX-512VL instructions.
2138
2139 2014-10-16  DJ Delorie  <dj@redhat.com>
2140
2141         * tree-core.h: Fix comment to not assume pointers are multiples of
2142         bytes.
2143
2144 2014-10-15  Tom Tromey  <tromey@redhat.com>
2145
2146         * timevar.h (class auto_timevar): New class.
2147
2148 2014-10-15  Uros Bizjak  <ubizjak@gmail.com>
2149
2150         PR go/59432
2151         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
2152         Remove the second alternative.
2153         (regprefix): Remove mode attribute.
2154         (atomic_compare_and_swap<mode>): Do not fixup operand 2.
2155         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
2156
2157         Revert:
2158         2013-11-05  Ian Lance Taylor  <iant@google.com>
2159
2160         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
2161         If possible, add .cfi directives to record change to bx.
2162         * config/i386/i386.c (ix86_emit_cfi): New function.
2163         * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
2164
2165 2014-10-15  Jan Hubicka  <hubicka@ucw.cz>
2166
2167         PR lto/62026
2168         * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
2169         to duplicate.
2170         * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
2171         at WPA time.
2172
2173 2014-10-15  Vladimir Makarov  <vmakarov@redhat.com>
2174
2175         PR rtl-optimization/63448
2176         * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
2177         (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
2178         (LRA_MAX_INHERITANCE_PASSES): Use it.
2179         (lra_constraint_iter_after_spill): Remove.
2180         (lra_assignment_iter): New.
2181         (lra_assignment_iter_after_spill): New.
2182         * lra-assigns.c (lra_assignment_iter): New.
2183         (lra_assignment_iter_after_spill): New.
2184         (former_reload_pseudo_spill_p): New.
2185         (spill_for): Set up former_reload_pseudo_spill_p.
2186         (setup_live_pseudos_and_spill_after_risky): Ditto.
2187         (assign_by_spills): Ditto.
2188         (lra_assign): Increment lra_assignment_iter.  Print the iteration
2189         number.  Reset former_reload_pseudo_spill_p.  Check
2190         lra_assignment_iter_after_spill.
2191         * lra.c (lra): Remove lra_constraint_iter_after_spill.  Initialize
2192         lra_assignment_iter and lra_assignment_iter_after_spill.
2193         * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
2194         (lra_constraints): Remove code with
2195         lra_assignment_iter_after_spill.
2196
2197 2014-10-15  Teresa Johnson  <tejohnson@google.com>
2198
2199         PR bootstrap/63432
2200         * tree-ssa-threadupdate.c (recompute_probabilities): Better
2201         overflow checking.
2202
2203 2014-10-15  Renlin Li <renlin.li@arm.com>
2204
2205         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
2206         __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
2207         __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
2208         __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
2209
2210 2014-10-15  Richard Biener  <rguenther@suse.de>
2211
2212         * gimple-fold.c (gimple_fold_call): Properly keep virtual
2213         SSA form up-to-date when devirtualizing a call to
2214         __builtin_unreachable and avoid fixing up EH info here.
2215
2216 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2217             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2218             Anna Tikhonova  <anna.tikhonova@intel.com>
2219             Ilya Tocar  <ilya.tocar@intel.com>
2220             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2221             Ilya Verbin  <ilya.verbin@intel.com>
2222             Kirill Yukhin  <kirill.yukhin@intel.com>
2223             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2224
2225         * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
2226         to support AVX-512BW.
2227         (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
2228         (define_expand "<plusminus_insn><mode>3"): Remove masking support.
2229         (define_insn "*<plusminus_insn><mode>3"): Ditto.
2230         (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
2231         (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
2232         (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
2233         (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
2234         (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
2235         (define_insn "*andnot<mode>3"): Ditto.
2236         (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
2237         (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
2238         (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
2239         (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
2240         (define_insn "*abs<mode>2"): Remove masking support.
2241         (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
2242         (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
2243         (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
2244
2245 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2246             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2247             Anna Tikhonova  <anna.tikhonova@intel.com>
2248             Ilya Tocar  <ilya.tocar@intel.com>
2249             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2250             Ilya Verbin  <ilya.verbin@intel.com>
2251             Kirill Yukhin  <kirill.yukhin@intel.com>
2252             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2253
2254         * config/i386/predicates.md (define_predicate "constm1_operand"): New.
2255         * config/i386/sse.md
2256         (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
2257         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
2258         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
2259         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
2260         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
2261         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
2262         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
2263
2264 2014-10-15  Renlin Li <renlin.li@arm.com>
2265
2266         * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
2267
2268 2014-10-15  Jakub Jelinek  <jakub@redhat.com>
2269
2270         * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
2271         MINUS_EXPR in unsigned type to avoid undefined behavior.
2272
2273 2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>
2274
2275         * stor-layout.c (self_referential_size): Do not promote arguments.
2276
2277 2014-10-15  Marek Polacek  <polacek@redhat.com>
2278
2279         * doc/invoke.texi: Update to reflect that GNU11 is the default
2280         mode for C.
2281         * c-common.h (c_language_kind): Update comment.
2282
2283 2014-10-15  Richard Biener  <rguenther@suse.de>
2284
2285         * hash-table.c: Include bconfig.h if building for the host.
2286         * hash-table.h: Do not include ggc.h on the host but just declare
2287         a few ggc allocation templates.
2288
2289 2014-10-15  Joern Rennecke  <joern.rennecke@embecosm.com>
2290             Jeff Law  <law@redhat.com>
2291
2292         * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
2293         multiple hard registers, use smaller mode derived from MODE.
2294
2295 2014-10-15  Andreas Schwab  <schwab@suse.de>
2296
2297         * explow.c (convert_memory_address_addr_space_1): Mark in_const
2298         as ATTRIBUTE_UNUSED.
2299
2300 2014-10-14  Jan Hubicka  <hubicka@ucw.cz>
2301
2302         * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
2303         (decide_unrolling): ... this one.
2304         (peel_loops_completely): Remove.
2305         (decide_peel_simple): Remove.
2306         (decide_peel_once_rolling): Remove.
2307         (decide_peel_completely): Remove.
2308         (peel_loop_simple): Remove.
2309         (peel_loop_completely): Remove.
2310         (unroll_and_peel_loops): Rename to ...
2311         (unroll_loops): ... this one; handle only unrolling.
2312         * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
2313         LPT_PEEL_SIMPLE.
2314         (UAP_PEEL): Remove.
2315         (unroll_and_peel_loops): Remove.
2316         (unroll_loops): New.
2317         * passes.def: Replace
2318         pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
2319         * loop-init.c (gate_rtl_unroll_and_peel_loops,
2320         rtl_unroll_and_peel_loops): Rename to ...
2321         (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
2322         (pass_rtl_unroll_and_peel_loops): Rename to ...
2323         (pass_rtl_unroll_loops): ... this one.
2324         * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
2325         (make_pass_rtl_unroll_loops): New.
2326         * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
2327         (canonicalize_loop_induction_variables): Update.
2328
2329 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
2330
2331         * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
2332         * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
2333         !TARGET_HARD_FLOAT_POSTINC.
2334         (*lsip, *ssip): new instructions.
2335
2336 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
2337
2338         * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
2339         remove.
2340
2341 2014-10-14  Andrew Pinski  <apinski@cavium.com>
2342
2343         * explow.c (convert_memory_address_addr_space): Rename to ...
2344         (convert_memory_address_addr_space_1): This.  Add in_const argument.
2345         Inside a CONST RTL, permute the conversion and addition of constant
2346         for zero and sign extended pointers.
2347         (convert_memory_address_addr_space): New function.
2348
2349 2014-10-14  Andrew Pinski  <apinski@cavium.com>
2350
2351         Revert:
2352         2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
2353
2354         PR middle-end/49721
2355         * explow.c (convert_memory_address_addr_space): Also permute the
2356         conversion and addition of constant for zero-extend.
2357
2358 2014-10-14  DJ Delorie  <dj@redhat.com>
2359
2360         * config/msp430/msp430-modes.def (PSI): Add.
2361
2362         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
2363         (msp430_hard_regno_nregs_with_padding): New.
2364         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
2365         (msp430_hard_regno_nregs_has_padding): New.
2366         (msp430_hard_regno_nregs_with_padding): New.
2367         (msp430_unwind_word_mode): Use PSImode instead of SImode.
2368         (msp430_addr_space_legitimate_address_p): New.
2369         (msp430_asm_integer): New.
2370         (msp430_init_dwarf_reg_sizes_extra): New.
2371         (msp430_print_operand): Use X suffix for PSImode even in small model.
2372         * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
2373         (PTR_SIZE): ...but 4 bytes for EH.
2374         (SIZE_TYPE): Use __int20.
2375         (PTRDIFF_TYPE): Likewise.
2376         (INCOMING_FRAME_SP_OFFSET): Adjust.
2377         * config/msp430/msp430.md (movqi_topbyte): New.
2378         (movpsi): Use fixed suffixes.
2379         (movsipsi2): Enable for 430X, not large model.
2380         (extendhipsi2): Likewise.
2381         (zero_extendhisi2): Likewise.
2382         (zero_extendhisipsi2): Likewise.
2383         (extend_and_shift1_hipsi2): Likewise.
2384         (extendpsisi2): Likewise.
2385         (*bitbranch<mode>4_z): Fix suffix logic.
2386
2387 2014-10-14  Eric Botcazou  <ebotcazou@adacore.com>
2388
2389         PR ada/62019
2390         * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
2391         do not choke on null node.
2392         <VAR_DECL>: Likewise.
2393
2394 2014-10-14  DJ Delorie  <dj@redhat.com>
2395
2396         * machmode.h (int_n_data_t): New.
2397         (int_n_enabled_p): New.
2398         (int_n_data): New.
2399         * tree.c (int_n_enabled_p): New.
2400         (int_n_trees): New.
2401         (make_or_reuse_type): Check for all __intN types, not just
2402         __int128.
2403         (build_common_tree_nodes): Likewise.  Also fill in integer_typs[]
2404         entries.
2405         * tree.h (int128_integer_type_node): Remove.
2406         (int128_unsigned_type_node): Remove.
2407         (int_n_trees_t): New.
2408         (int_n_enabled_p): New.
2409         (int_n_trees): New.
2410         * toplev.c (standard_type_bitsize): New.
2411         (do_compile): Check which __intN types are enabled for the current
2412         run.
2413         * builtin-types.def (BT_INT128): Remove.
2414         (BT_UINT128): Remove.
2415         * machmode.def: Add macro to create __int128 for all targets.
2416         * stor-layout.c (mode_for_size): Support __intN types.
2417         (smallest_mode_for_size): Likewise.
2418         (initialize_sizetypes): Support __intN types.
2419         * genmodes.c (struct mode_data): Add int_n field.
2420         (blank_mode): Likewise.
2421         (INT_N): New.
2422         (make_int_n): New.
2423         (emit_insn_modes_h): Count __intN entries and define
2424         NUM_INT_N_ENTS.
2425         (emit_mode_int_n): New.
2426         (emit_insn_modes_c): Call it.
2427         * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
2428         types, not just __int128.
2429         * tree-core.h (integer_type_kind): Remove __int128-specific
2430         entries, reserve spots for __intN entries.
2431
2432         * config/msp430/msp430-modes.def (PSI): Add.
2433
2434 2014-10-14  Kito Cheng  <kito@0xlab.org>
2435
2436         * ira.c: Fix typo in comment.
2437         * ira.h: Ditto.
2438         * ira-build.c: Ditto.
2439         * ira-color.c: Ditto.
2440         * ira-emit.c: Ditto.
2441         * ira-int.h: Ditto.
2442         * ira-lives.c: Ditto.
2443
2444 2014-10-14  Uros Bizjak  <ubizjak@gmail.com>
2445
2446         PR rtl-optimization/63475
2447         * alias.c (true_dependence_1): Always use get_addr to extract
2448         true address operands from x_addr and mem_addr.  Use extracted
2449         address operands to check for references with alignment ANDs.
2450         Use extracted address operands with find_base_term and
2451         base_alias_check. For noncanonicalized operands call canon_rtx with
2452         extracted address operand.
2453         (write_dependence_1): Ditto.
2454         (may_alias_p): Ditto.  Remove unused calls to canon_rtx.
2455
2456 2014-10-14  Evgeny Stupachenko  <evstupac@gmail.com>
2457
2458         PR target/63534
2459         * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
2460         __morestack local.
2461
2462 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2463             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2464             Anna Tikhonova  <anna.tikhonova@intel.com>
2465             Ilya Tocar  <ilya.tocar@intel.com>
2466             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2467             Ilya Verbin  <ilya.verbin@intel.com>
2468             Kirill Yukhin  <kirill.yukhin@intel.com>
2469             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2470
2471         * config/i386/i386.c
2472         (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
2473         (ix86_expand_int_vcond): Ditto.
2474
2475 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2476             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2477             Anna Tikhonova  <anna.tikhonova@intel.com>
2478             Ilya Tocar  <ilya.tocar@intel.com>
2479             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2480             Ilya Verbin  <ilya.verbin@intel.com>
2481             Kirill Yukhin  <kirill.yukhin@intel.com>
2482             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2483
2484         * config/i386/i386.c
2485         (emit_reduc_half): Handle V64QI and V32HI mode.
2486         * config/i386/sse.md
2487         (define_mode_iterator VI_AVX512BW): New.
2488         (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
2489
2490 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2491             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2492             Anna Tikhonova  <anna.tikhonova@intel.com>
2493             Ilya Tocar  <ilya.tocar@intel.com>
2494             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2495             Ilya Verbin  <ilya.verbin@intel.com>
2496             Kirill Yukhin  <kirill.yukhin@intel.com>
2497             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2498
2499         * config/i386/sse.md
2500         (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
2501
2502 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2503             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2504             Anna Tikhonova  <anna.tikhonova@intel.com>
2505             Ilya Tocar  <ilya.tocar@intel.com>
2506             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2507             Ilya Verbin  <ilya.verbin@intel.com>
2508             Kirill Yukhin  <kirill.yukhin@intel.com>
2509             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2510
2511         * config/i386/i386.c
2512         (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
2513         * config/i386/sse.md
2514         (define_mode_iterator VI): Add V64QI and V32HI modes.
2515
2516 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2517             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2518             Anna Tikhonova  <anna.tikhonova@intel.com>
2519             Ilya Tocar  <ilya.tocar@intel.com>
2520             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2521             Ilya Verbin  <ilya.verbin@intel.com>
2522             Kirill Yukhin  <kirill.yukhin@intel.com>
2523             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2524
2525         * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
2526
2527 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2528             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2529             Anna Tikhonova  <anna.tikhonova@intel.com>
2530             Ilya Tocar  <ilya.tocar@intel.com>
2531             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2532             Ilya Verbin  <ilya.verbin@intel.com>
2533             Kirill Yukhin  <kirill.yukhin@intel.com>
2534             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2535
2536         * config/i386/sse.md
2537         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
2538         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
2539
2540 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2541             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2542             Anna Tikhonova  <anna.tikhonova@intel.com>
2543             Ilya Tocar  <ilya.tocar@intel.com>
2544             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2545             Ilya Verbin  <ilya.verbin@intel.com>
2546             Kirill Yukhin  <kirill.yukhin@intel.com>
2547             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2548
2549         * config/i386/sse.md
2550         (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
2551         (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
2552
2553 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2554             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2555             Anna Tikhonova  <anna.tikhonova@intel.com>
2556             Ilya Tocar  <ilya.tocar@intel.com>
2557             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2558             Ilya Verbin  <ilya.verbin@intel.com>
2559             Kirill Yukhin  <kirill.yukhin@intel.com>
2560             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2561
2562         * config/i386/sse.md
2563         (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
2564         (define_mode_iterator VI2_AVX2): Add V32HI mode.
2565         (define_expand "mul<mode>3<mask_name>"): Add masking.
2566         (define_insn "*mul<mode>3<mask_name>"): Ditto.
2567         (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
2568         (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
2569         (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
2570         (define_mode_attr SDOT_PMADD_SUF): Ditto.
2571         (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
2572         (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
2573         (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
2574         (define_insn "avx2_packusdw"): Delete.
2575         (define_insn "sse4_1_packusdw"): Ditto.
2576         (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
2577
2578 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2579             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2580             Anna Tikhonova  <anna.tikhonova@intel.com>
2581             Ilya Tocar  <ilya.tocar@intel.com>
2582             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2583             Ilya Verbin  <ilya.verbin@intel.com>
2584             Kirill Yukhin  <kirill.yukhin@intel.com>
2585             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2586
2587         * config/i386/sse.md
2588         (define_insn "vec_dup<mode>"): Update constraints.
2589
2590 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2591             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2592             Anna Tikhonova  <anna.tikhonova@intel.com>
2593             Ilya Tocar  <ilya.tocar@intel.com>
2594             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2595             Ilya Verbin  <ilya.verbin@intel.com>
2596             Kirill Yukhin  <kirill.yukhin@intel.com>
2597             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2598
2599         * config/i386/sse.md
2600         (define_mode_iterator SSESCALARMODE): Add V4TI mode.
2601         (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
2602         (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
2603
2604 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2605             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2606             Anna Tikhonova  <anna.tikhonova@intel.com>
2607             Ilya Tocar  <ilya.tocar@intel.com>
2608             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2609             Ilya Verbin  <ilya.verbin@intel.com>
2610             Kirill Yukhin  <kirill.yukhin@intel.com>
2611             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2612
2613         * config/i386/sse.md
2614         (define_expand "mul<mode>3<mask_name>"): Add masking.
2615
2616 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2617             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2618             Anna Tikhonova  <anna.tikhonova@intel.com>
2619             Ilya Tocar  <ilya.tocar@intel.com>
2620             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2621             Ilya Verbin  <ilya.verbin@intel.com>
2622             Kirill Yukhin  <kirill.yukhin@intel.com>
2623             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2624
2625         * config/i386/sse.md
2626         (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
2627         (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
2628
2629 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2630             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2631             Anna Tikhonova  <anna.tikhonova@intel.com>
2632             Ilya Tocar  <ilya.tocar@intel.com>
2633             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2634             Ilya Verbin  <ilya.verbin@intel.com>
2635             Kirill Yukhin  <kirill.yukhin@intel.com>
2636             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2637
2638         * config/i386/sse.md
2639         (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
2640         (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
2641         (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
2642         Ditto.
2643
2644 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2645             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2646             Anna Tikhonova  <anna.tikhonova@intel.com>
2647             Ilya Tocar  <ilya.tocar@intel.com>
2648             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2649             Ilya Verbin  <ilya.verbin@intel.com>
2650             Kirill Yukhin  <kirill.yukhin@intel.com>
2651             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2652
2653         * config/i386/sse.md
2654         (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
2655         use VF_128_256 mode iterator and update assembler emit code.
2656         (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
2657         (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
2658         Add masking, use VF_128_256 mode iterator.
2659         (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
2660         (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
2661         Add masking, use VF_128_256 mode iterator and update assembler emit
2662         code.
2663         (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
2664         (define_mode_attr avx512flogicsuff): Delete.
2665         (define_insn "avx512f_<logic><mode>"): Ditto.
2666         (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
2667         MODE_TI.
2668         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
2669
2670 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2671             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2672             Anna Tikhonova  <anna.tikhonova@intel.com>
2673             Ilya Tocar  <ilya.tocar@intel.com>
2674             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2675             Ilya Verbin  <ilya.verbin@intel.com>
2676             Kirill Yukhin  <kirill.yukhin@intel.com>
2677             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2678
2679         * config/i386/sse.md
2680         (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
2681         (define_expand "vashr<mode>3<mask_name>"): Add masking,
2682         use VI12_128 mode iterator.
2683         (define_expand "ashrv2di3<mask_name>"): New.
2684
2685 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2686             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2687             Anna Tikhonova  <anna.tikhonova@intel.com>
2688             Ilya Tocar  <ilya.tocar@intel.com>
2689             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2690             Ilya Verbin  <ilya.verbin@intel.com>
2691             Kirill Yukhin  <kirill.yukhin@intel.com>
2692             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2693
2694         * config/i386/i386.c
2695         (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
2696         CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
2697         CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
2698         CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
2699         CODE_FOR_avx512vl_ucmpv4si3_mask.
2700         * config/i386/sse.md
2701         (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
2702         "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
2703         (define_insn
2704         "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
2705         (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
2706         (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
2707         (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
2708         (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
2709         (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
2710
2711 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2712             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2713             Anna Tikhonova  <anna.tikhonova@intel.com>
2714             Ilya Tocar  <ilya.tocar@intel.com>
2715             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2716             Ilya Verbin  <ilya.verbin@intel.com>
2717             Kirill Yukhin  <kirill.yukhin@intel.com>
2718             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2719
2720         * config/i386/sse.md
2721         (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
2722         (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
2723         (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
2724         (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
2725         (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
2726         (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
2727         (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
2728         (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
2729         (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
2730
2731 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2732             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2733             Anna Tikhonova  <anna.tikhonova@intel.com>
2734             Ilya Tocar  <ilya.tocar@intel.com>
2735             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2736             Ilya Verbin  <ilya.verbin@intel.com>
2737             Kirill Yukhin  <kirill.yukhin@intel.com>
2738             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2739
2740         * config/i386/sse.md
2741         (define_insn "avx512f_blendm<mode>"): Delete.
2742         (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
2743         (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
2744         (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
2745         V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
2746         (define_insn
2747         "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2748         Remove.
2749         (define_insn
2750         "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2751         New.
2752         (define_insn
2753         "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2754         Ditto.
2755         (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
2756         (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
2757         (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
2758         (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
2759         Delete.
2760         (define_insn
2761         "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
2762         New.
2763         (define_insn
2764         "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
2765         Ditto.
2766         (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
2767         Delete.
2768         (define_insn
2769         "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
2770         New.
2771         (define_insn
2772         "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
2773         Ditto.
2774
2775 2014-10-14  Richard Biener  <rguenther@suse.de>
2776
2777         PR tree-optimization/63512
2778         * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
2779         modified.
2780
2781 2014-10-14  Oleg Endo  <olegendo@gcc.gnu.org>
2782
2783         PR target/63260
2784         * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
2785         abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute.  Remove use
2786         of FPSCR.
2787         (negsf2_i): Rename to *negsf2_i.
2788         (abssf2_i): Rename to *abssf2_i.
2789         (negdf2_i): Rename to *negdf2_i.
2790         (absdf2_i): Rename to *absdf2_i.
2791
2792 2014-10-14  Felix Yang  <felix.yang@huawei.com>
2793             Jeff Law  <law@redhat.com>
2794
2795         * ira.c (struct equivalence): Change member "is_arg_equivalence" and
2796         "replace" into boolean bitfields; turn member "loop_depth" into a short
2797         integer; add new member "no_equiv" and "reserved".
2798         (no_equiv): Set no_equiv of struct equivalence if register is marked
2799         as having no known equivalence.
2800         (update_equiv_regs): Check all definitions for a multiple-set
2801         register to make sure that the RHS have the same value.
2802
2803 2014-10-13  Richard Henderson  <rth@redhat.com>
2804
2805         * combine-stack-adj.c (no_unhandled_cfa): New.
2806         (maybe_merge_cfa_adjust): New.
2807         (combine_stack_adjustments_for_block): Use them.
2808
2809 2014-10-13  Aldy Hernandez  <aldyh@redhat.com>
2810
2811         * Makefile.in (TAGS): Tag ../include files.
2812
2813 2014-10-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2814
2815         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
2816         to rs6000_dbx_register_number.
2817         (DWARF_FRAME_REGNUM): Redefine as identity map.
2818         (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
2819         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
2820         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
2821         argument to handle .debug_frame and .eh_frame directly.  Always
2822         translate SPE high register numbers.  Add special treatment for CR,
2823         but only in .debug_frame.  Respect RS6000_USE_DWARF_NUMBERING.
2824
2825         * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
2826         * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
2827         (RS6000_USE_DWARF_NUMBERING): Define.
2828         * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
2829         (RS6000_USE_DWARF_NUMBERING): Define.
2830         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
2831         (RS6000_USE_DWARF_NUMBERING): Define.
2832         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
2833         (RS6000_USE_DWARF_NUMBERING): Define.
2834         * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
2835         * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
2836
2837 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
2838
2839         * config/i386/i386.c (ix86_address_cost): Lower cost for
2840         when address contains GOT register.
2841
2842 2014-10-13  Ilya Enkovich  <ilya.enkovich@intel.com>
2843             Vladimir Makarov  <vmakarov@redhat.com>
2844
2845         PR target/8340
2846         PR middle-end/47602
2847         PR rtl-optimization/55458
2848         * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
2849         (ix86_init_pic_reg): New.
2850         (ix86_select_alt_pic_regnum): Add check on pseudo register.
2851         (ix86_save_reg): Likewise.
2852         (ix86_expand_prologue): Remove PIC register initialization
2853         now performed in ix86_init_pic_reg.
2854         (ix86_output_function_epilogue): Add check on pseudo register.
2855         (set_pic_reg_ever_alive): New.
2856         (legitimize_pic_address): Replace df_set_regs_ever_live with new
2857         set_pic_reg_ever_alive.
2858         (legitimize_tls_address): Likewise.
2859         (ix86_pic_register_p): New check.
2860         (ix86_delegitimize_address): Add check on pseudo register.
2861         (ix86_expand_call): Insert move from pseudo PIC register to ABI
2862         defined REAL_PIC_OFFSET_TABLE_REGNUM.
2863         (TARGET_INIT_PIC_REG): New.
2864         (TARGET_USE_PSEUDO_PIC_REG): New.
2865         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
2866         if pic_offset_table_rtx exists.
2867         * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
2868         Document.
2869         * doc/tm.texi: Regenerate.
2870         * function.c (assign_parms): Generate pseudo register for PIC.
2871         * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
2872         register.
2873         * ira-color.c (color_pass): Add check on pseudo register.
2874         * ira-emit.c (change_loop): Don't create copies for PIC pseudo
2875         register.
2876         * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
2877         register.
2878         (ira): Add target specific PIC register initialization.
2879         (do_reload): Keep PIC pseudo register.
2880         * lra-assigns.c (spill_for): Add checks on pseudo register.
2881         * lra-constraints.c (contains_symbol_ref_p): New.
2882         (lra_constraints): Enable lra risky transformations when PIC is pseudo
2883         register.
2884         * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
2885         * target.def (use_pseudo_pic_reg): New.
2886         (init_pic_reg): New.
2887
2888 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
2889
2890         * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
2891         Remove m_SILVERMONT and m_INTEL from the tune.
2892
2893 2014-10-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2894
2895         PR libfortran/63471
2896         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
2897         when _HPUX_SOURCE is defined.
2898
2899 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
2900
2901         PR tree-optimization/62127
2902         * tree.c (remap_type_1): When remapping array, remap
2903         also its type.
2904
2905 2014-10-13  Christophe Lyon  <christophe.lyon@linaro.org>
2906
2907         * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
2908         longer impact parallelization.
2909
2910 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
2911
2912         PR bootstrap/63496
2913         * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
2914
2915 2014-10-13  Marat Zakirov  <m.zakirov@samsung.com>
2916
2917         * asan.c (instrument_derefs): BIT_FIELD_REF added.
2918
2919 2014-10-13  Richard Biener  <rguenther@suse.de>
2920
2921         PR tree-optimization/63419
2922         * gimple-fold.h (gimple_convert): New function.
2923         * gimple-fold.c (gimple_convert): Likewise.
2924         * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
2925         to split out required conversions early.
2926
2927 2014-10-13  Richard Sandiford  <richard.sandiford@arm.com>
2928
2929         * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
2930         Add the parts of an insn in reverse order, with the pattern at
2931         the top of the queue.  Detect when we're iterating over a SEQUENCE
2932         pattern and in that case just consider patterns of subinstructions.
2933
2934 2014-10-12  Oleg Endo  <olegendo@gcc.gnu.org>
2935
2936         PR target/59401
2937         * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
2938         of rtx.
2939         * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
2940         insn walking.
2941         (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
2942         address.  Use def chains to handle GBR clobbering call insns.
2943
2944 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
2945
2946         * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
2947         config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
2948         config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
2949         function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
2950         output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
2951         tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
2952         * doc/gty.texi (for_user): Document new option.
2953         * gengtype.c (create_user_defined_type): Don't try to get a struct for
2954         char.
2955         (walk_type): Don't error out on for_user option.
2956         (write_func_for_structure): Emit user marking routines if requested by
2957         for_user option.
2958         (write_local_func_for_structure): Likewise.
2959         (main): Mark types with for_user option as used.
2960         * ggc.h (gt_pch_nx): Add overload for unsigned int.
2961         * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
2962         * hash-table.h (ggc_hasher): New struct.
2963         (hash_table::create_ggc): New function.
2964         (gt_pch_nx): New overload for hash_table.
2965
2966 2014-10-11  Oleg Endo  <olegendo@gcc.gnu.org>
2967
2968         * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
2969         * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
2970         * config/sh/sh.c: Likewise.
2971         * config/sh/sh-mem.cc: Likewise.
2972         * config/sh/sh.md: Likewise.
2973         * config/sh/predicates.md: Likewise.
2974         * config/sh/sync.md: Likewise.
2975
2976 2014-10-11  Martin Liska  <mliska@suse.cz>
2977
2978         PR middle-end/63376
2979         * cgraphunit.c (symbol_table::process_new_functions): Missing call
2980         for call_cgraph_insertion_hooks added.
2981
2982 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
2983
2984         PR c/63495
2985         * stor-layout.c (min_align_of_type): Don't decrease alignment
2986         through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
2987         TYPE_USER_ALIGN is set.
2988
2989 2014-10-10  Uros Bizjak  <ubizjak@gmail.com>
2990
2991         PR rtl-optimization/63483
2992         * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
2993         references when alignment ANDs are involved.
2994         (write_dependence_p): Ditto.
2995         (may_alias_p): Ditto.
2996
2997 2014-10-10  Marek Polacek  <polacek@redhat.com>
2998
2999         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
3000         * doc/invoke.texi: Document -fsanitize=object-size.
3001         * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
3002         or it into SANITIZE_UNDEFINED.
3003         * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
3004         * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
3005         * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
3006         * opts.c (common_handle_option): Handle -fsanitize=object-size.
3007         * ubsan.c: Include tree-object-size.h.
3008         (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
3009         (ubsan_expand_bounds_ifn): Use false instead of 0.
3010         (ubsan_expand_objsize_ifn): New function.
3011         (instrument_object_size): New function.
3012         (pass_ubsan::execute): Add object size instrumentation.
3013         * ubsan.h (ubsan_expand_objsize_ifn): Declare.
3014
3015 2014-10-10  Richard Henderson  <rth@redhat.com>
3016
3017         PR target/63404
3018         * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
3019         Restrict the set of expressions we're willing to move.
3020
3021 2014-10-10  Jeff Law  <law@redhat.com>
3022
3023         * ira.c (struct equivalence): Promote INIT_INSNs field to
3024         an rtx_insn_list.  Add comments.
3025         (no_equiv): Promote LIST to an rtx_insn_list.  Update
3026         testing for and creating the special marker.  Use methods
3027         to extract the insn and next pointers.  Promote INSN to an
3028         rtx_insn.
3029         (update_equiv_regs): Update test for special marker in the
3030         INIT_INSNs list.
3031
3032 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3033
3034         * configure.ac: Add --enable-fix-cortex-a53-835769 option.
3035         * configure: Regenerate.
3036         * config/aarch64/aarch64.c (aarch64_override_options): Handle
3037         TARGET_FIX_ERR_A53_835769_DEFAULT.
3038         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
3039         value to 2.
3040         * doc/install.texi (aarch64*-*-*): Document
3041         new --enable-fix-cortex-a53-835769 option.
3042
3043 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3044             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3045
3046         * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
3047         (ADJUST_INSN_LENGTH): Define.
3048         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
3049         * config/aarch64/aarch64.c (is_mem_p): New function.
3050         (is_memory_op): Likewise.
3051         (aarch64_prev_real_insn): Likewise.
3052         (is_madd_op): Likewise.
3053         (dep_between_memop_and_curr): Likewise.
3054         (aarch64_madd_needs_nop): Likewise.
3055         (aarch64_final_prescan_insn): Likewise.
3056         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
3057         and -mno-fix-cortex-a53-835769 options.
3058
3059 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
3060
3061         PR tree-optimization/63464
3062         * tree-switch-conversion.c (struct case_bit_test): Remove
3063         hi and lo fields, add wide_int mask field.
3064         (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
3065         hi/lo fields into wide_int mask operations, optimize by pretending
3066         minval to be 0 if maxval is small enough.
3067         (process_switch): Adjust caller.
3068
3069 2014-10-10  Richard Biener  <rguenther@suse.de>
3070
3071         PR tree-optimization/63379
3072         * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
3073         a neutral operand for min/max when it is not a reduction chain.
3074
3075 2014-10-10  Richard Biener  <rguenther@suse.de>
3076
3077         PR tree-optimization/63476
3078         * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
3079         (BB_LIVE_VOP_ON_EXIT): New define.
3080         (create_expression_by_pieces): Assign VUSEs to stmts.
3081         (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
3082         (pass_pre::execute): Assert virtual SSA form is up-to-date
3083         after insertion.
3084
3085 2014-10-10  Eric Botcazou  <ebotcazou@adacore.com>
3086
3087         * lra-assigns.c (assign_by_spills): Error out on spill failure.
3088
3089 2014-10-09  Markus Trippelsdorf  <markus@trippelsdorf.de>
3090
3091         * pa-polymorphic-call.c (check_stmt_for_type_change): Move
3092         assertion.
3093
3094 2014-10-09  Richard Biener  <rguenther@suse.de>
3095
3096         PR tree-optimization/63380
3097         * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
3098         may trap.
3099
3100 2014-10-09  Joern Rennecke  <joern.rennecke@embecosm.com>
3101
3102         * config/avr/avr.opt (mmcu=): Change to have a string value.
3103         (mn-flash=, mskip-bug, march=, mrmw): New options.
3104         (HeaderInclude): New.
3105         (mmcu=): Remove Var / Init clauses.
3106         * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
3107         -specs option.
3108         (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
3109         (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
3110         (SYMBOL_FLAG_IO_LOW): Define.
3111         (avr_device_to_as, avr_device_to_ld): Don't declare.
3112         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
3113         (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
3114         (EXTRA_SPEC_FUNCTIONS): Don't define.
3115         (ASM_SPEC): Translate -arch= option to -mmcu= option.
3116         (LINK_SPEC): Translate -arch= option to -m= option.
3117         Don't use device_to_ld / device_to_data_start.
3118         (STARTFILE_SPEC): Now empty.
3119         (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
3120         * config/avr/gen-avr-mmcu-specs.c: New file.
3121         * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
3122         (s-device-specs): Likewise.
3123         (GCC_PASSES): Add s-device-specs.
3124         (install-driver): Depend on install-device-specs.
3125         (install-device-specs): New rule.
3126         * config/avr/avr.c (avr_option_override): Look up mcu arch by
3127         avr_arch_index and provide fallback initialization for avr_n_flash.
3128         (varasm.h): #include.
3129         (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
3130         (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
3131         (avr_attribute_table): Add "io", "address" and "io_low".
3132         (avr_asm_output_aligned_decl_common): Change type of decl to tree.
3133         Add special handling for symbols with "io" and/or "address" attributes.
3134         (avr_asm_asm_output_aligned_bss): New function.
3135         (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
3136         as appropriate.  Handle io_low attribute.
3137         (avr_out_sbxx_branch): Handle symbolic io addresses.
3138         (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
3139         avr_n_flash instead of avr_current_device->n_flash.
3140         (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
3141         (avr_emit_movmemhi): Likewise.
3142         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
3143         Use TARGET_RMW instead of avr_current_device->dev_attributes.
3144         Don't define avr_current_device->macro (that's the specfile's job).
3145         Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
3146         * config/avr/avr.c (avr_2word_insn_p): Likewise.
3147         * config/avr/avr.md (*cpse.ne): Likewise.
3148         (mov<mode>): Use avr_eval_addr_attrib.
3149         (cbi): Change constraint for low_io_address_operand operand to "i".
3150         (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
3151         * config/avr/predicates.md (io_address_operand):
3152         Allow SYMBOL_REF with SYMBOL_FLAG_IO.
3153         (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
3154         * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
3155         Update prototype.
3156         (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
3157         * config/avr/genmultilib.awk: Use -march=.
3158         Remove Multilib matches processing.
3159         * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
3160         * config/avr/avr-arch.h: Add double include guard.
3161         (avr_mcu_t) <library_name>: Update comment.
3162         * config/avr/driver-avr.c (avr_device_to_as): Delete.
3163         (avr_device_to_ld, avr_device_to_data_start): Likewise.
3164         (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
3165         (avr_device_to_sp8): Likewise.
3166         * config/avr/genopt.sh:  Instead avr_mcu, emit an Enum for avr_arch.
3167
3168         * doc/extend.texi (io, address): Document new AVR variable attributes.
3169         (io_low): Likewise.
3170
3171 2014-10-09  Marek Polacek  <polacek@redhat.com>
3172
3173         * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
3174
3175 2014-10-08  Richard Biener  <rguenther@suse.de>
3176
3177         PR tree-optimization/61969
3178         * tree-nrv.c (pass_nrv::execute): Properly test for automatic
3179         variables.
3180
3181 2014-10-09  Richard Biener  <rguenther@suse.de>
3182
3183         PR tree-optimization/63445
3184         * tree-vrp.c (simplify_cond_using_ranges): Only warn about
3185         overflow for non-equality compares.
3186
3187 2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
3188
3189         PR rtl-optimization/57003
3190         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
3191         also check CALL_INSN_FUNCTION_USAGE for clobbers again after
3192         killing regs_invalidated_by_call.
3193
3194 2014-10-08  Teresa Johnson  <tejohnson@google.com>
3195
3196         PR bootstrap/63432.
3197         * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
3198         (ssa_fix_duplicate_block_edges): Invoke it.
3199         (mark_threaded_blocks): Make two passes to avoid ordering dependences.
3200
3201 2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
3202
3203         PR target/52941
3204         * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
3205         atomic_fetch_<fetchop_name>si_hard,
3206         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
3207         atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
3208         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
3209         atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
3210
3211 2014-10-08  Rong Xu  <xur@google.com>
3212
3213         * gcov-tool.c (profile_overlap): New driver function
3214         to compute profile overlap.
3215         (print_overlap_usage_message): New.
3216         (overlap_usage): New.
3217         (do_overlap): New.
3218         (print_usage): Add calls to overlap function.
3219         (main): Ditto.
3220         * doc/gcov-tool.texi: Add documentation.
3221
3222 2014-10-08  Steve Ellcey  <sellcey@mips.com>
3223
3224         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
3225         LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
3226
3227 2014-10-08  Jan Hubicka  <hubicka@ucw.cz>
3228
3229         * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
3230         pattern matching of MEM_REF.
3231         (check_stmt_for_type_change): Update.
3232
3233 2014-10-08  Steve Ellcey  <sellcey@mips.com>
3234
3235         * config/mips/linux64.h: Remove.
3236         * config/mips/gnu-user64.h: Remove.
3237         * gcc.config (mips*-*-*): Remove references to linux64.h and
3238         gnu-user64.h
3239         * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
3240         with modified version from gnu-user64.h.
3241         (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
3242         (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
3243         * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
3244         linux64.h.
3245         (GNU_USER_LINK_EMULATION64): Ditto.
3246         (GNU_USER_LINK_EMULATIONN32): Ditto.
3247         (GLIBC_DYNAMIC_LINKER32): Ditto.
3248         (GLIBC_DYNAMIC_LINKER64): Ditto.
3249         (GLIBC_DYNAMIC_LINKERN32): Ditto.
3250         (UCLIBC_DYNAMIC_LINKER32): Ditto.
3251         (UCLIBC_DYNAMIC_LINKER64): Ditto.
3252         (UCLIBC_DYNAMIC_LINKERN32): Ditto.
3253         (BIONIC_DYNAMIC_LINKERN32): Ditto.
3254         (GNU_USER_DYNAMIC_LINKERN32): Ditto.
3255         (GLIBC_DYNAMIC_LINKER): Delete.
3256         (UCLIBC_DYNAMIC_LINKER): Delete.
3257
3258 2014-10-08  Joern Rennecke  <joern.rennecke@embecosm.com>
3259             Richard Biener  <rguenther@suse.de>
3260
3261         * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
3262         Get address space from operand 0 (BASE).
3263
3264 2014-10-07  Iain Sandoe  <iain@codesourcery.com>
3265
3266         PR target/61387
3267         * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
3268
3269 2014-10-07  Aldy Hernandez  <aldyh@redhat.com>
3270
3271         * dwarf2out.c: Remove current_function_has_inlines.
3272         (gen_subprogram_die): Same.
3273         (gen_inlined_subroutine_die): Same.
3274
3275 2014-10-07  Ilya Tocar  <ilya.tocar@intel.com>
3276
3277         * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
3278         type.
3279         (_addcarry_u64): Ditto.
3280         (_addcarryx_u64): Ditto.
3281
3282 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
3283
3284         * cgraph.h (cgraph_node::get_fun): Declare.
3285         * cgraph.c (cgraph_node::get_fun): New method.
3286         * ipa-inline.c (can_inline_edge_p): Use it.
3287
3288 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
3289
3290         * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
3291         and -ftrapping-math.
3292         * lto-wrapper.c (merge_and_complain): Likewise.
3293         (run_gcc): Likewise.
3294
3295 2014-10-06  Rong Xu  <xur@google.com>
3296
3297         * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
3298         * tree-profile.c: (params.h): New include.
3299         (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
3300         and __gcov_indirect_call_topn_counters for
3301         indirect_call_topn_profile.
3302         (gimple_init_edge_profiler): New decls for
3303         __gcov_indirect_call_topn_profiler.
3304         (gimple_gen_ic_profiler): Generate the correct profiler call.
3305         (gimple_gen_ic_func_profiler): Fix format.
3306         * value-prof.c (params.h): New include.
3307         (dump_histogram_value): Hanlde indirect_call_topn counters.
3308         (stream_in_histogram_value): Ditto.
3309         (gimple_indirect_call_to_profile): Use indirect_call_topn
3310         profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
3311         (gimple_find_values_to_profile): Hanlde indirect_call_topn
3312         counters.
3313         * value-prof.h (enum hist_type): Histrogram type for
3314         indirect_call_topn counters.
3315         * profile.c (instrument_values): Instrument
3316         indirect_call_topn counters.
3317
3318 2014-10-06  Rong Xu  <xur@google.com>
3319
3320         * Makefile.in: Fix dependence.
3321         * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
3322         indirect call topn profiler.
3323         * gcov-io.h: Ditto.
3324
3325 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
3326
3327         * calls.c (expand_call): Do not use the target as the return slot if
3328         it is not sufficiently aligned.
3329
3330 2014-10-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3331
3332         * config/rs6000/rs6000.c (analyze_swaps commentary): Add
3333         discussion of permutes and why we don't handle them.
3334
3335 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
3336
3337         * config/sparc/predicates.md (int_register_operand): Delete.
3338
3339 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
3340
3341         * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
3342
3343 2014-10-06  Jakub Jelinek  <jakub@redhat.com>
3344
3345         * ubsan.h (ubsan_get_source_location): New prototype.
3346         * ubsan.c (ubsan_source_location_type): New variable.
3347         Function renamed to ...
3348         (ubsan_get_source_location_type): ... this.  Cache
3349         return value in ubsan_source_location_type variable.
3350         (ubsan_source_location, ubsan_create_data): Use
3351         ubsan_get_source_location_type instead of
3352         ubsan_source_location_type.
3353         * asan.c (asan_protect_global): Don't protect globals
3354         with ubsan_get_source_location_type () type.
3355         (asan_add_global): Provide global decl location info
3356         if possible.
3357
3358 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
3359
3360         * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
3361         sanity check.
3362
3363 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
3364
3365         * ipa-polymorphic-call.c (possible_placement_new): Fix condition
3366         on size.
3367         (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
3368         into vptr pointer.
3369         (ipa_polymorphic_call_context::dump): Fix formating.
3370         (walk_ssa_copies): Add logic avoiding loops; update uses.
3371         * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
3372
3373 2014-10-02  Mark Wielaard  <mjw@redhat.com>
3374
3375         PR debug/63239
3376         * dwarf2out.c (gen_subprogram_die): When a member function is
3377         explicitly deleted then add a DW_AT_GNU_deleted attribute.
3378         * langhooks.h (struct lang_hooks_for_decls): Add
3379         function_decl_deleted_p langhook.
3380         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
3381         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
3382
3383 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
3384
3385         * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
3386         NULL pointer checks.
3387         (ipa_polymorphic_call_context::get_dynamic_type): Return true
3388         if type doesn't change.
3389         * cgraph.h (cgraph_indirect_call_info): New flag.
3390         * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
3391         (cgraph_node::dump): Dump it.
3392         * ipa-prop.c (ipa_analyze_call_uses):  Ignore return valud
3393         of context.get_dynamic_type.
3394         (ipa_make_edge_direct_to_target): Do not speculate
3395         edge that is already speuclative.
3396         (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
3397         speculate to __builtin_unreachable
3398         (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
3399         vptr_changed.
3400         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
3401
3402 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
3403
3404         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
3405         get_dynamic_type; drop TODO.
3406         * ipa-polymorphic-call.c
3407         (ipa_polymorphic_call_context::get_dynamic_type): Be ready
3408         for otr_type to be unknown.
3409
3410 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
3411
3412         * common/config/score/score-common.c: Remove.
3413         * config.gcc: Remove support for score-*.
3414         * config/score/constraints.md: Remove.
3415         * config/score/elf.h: Remove.
3416         * config/score/predicates.md: Remove.
3417         * config/score/score-conv.h: Remove.
3418         * config/score/score-generic.md: Remove.
3419         * config/score/score-modes.def: Remove.
3420         * config/score/score-protos.h: Remove.
3421         * config/score/score.c: Remove.
3422         * config/score/score.h: Remove.
3423         * config/score/score.md: Remove.
3424         * config/score/score.opt: Remove.
3425         * doc/md.texi: Don't document score-*.
3426
3427 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
3428
3429         PR pch/63429
3430         * genconditions.c: Directly include ggc.h before rtl.h.
3431
3432 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
3433
3434         * ipa-polymorphic-call.c
3435         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
3436         code determining speculative type.
3437         (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
3438
3439 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3440
3441         * altivec.md (altivec_lvsl): New define_expand.
3442         (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
3443         (altivec_lvsr): New define_expand.
3444         (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
3445         * rs6000.c (rs6000_expand_builtin): Change to use
3446         altivec_lvs[lr]_direct; remove commented-out code.
3447
3448 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3449
3450         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3451         Issue a warning message when vec_lvsl or vec_lvsr is used with a
3452         little endian target.
3453
3454 2014-10-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3455
3456         * tree-pretty-print.c (dump_location): Make it extern. Dump also
3457         the column.
3458         * tree-pretty-print.h (dump_location): Declare.
3459         * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
3460         (pp_gimple_stmt_1): Likewise.
3461         (dump_implicit_edges): Likewise.
3462         * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
3463         LOCATION_LINE.
3464
3465
3466 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
3467
3468         * gcc.c (driver::global_initializations): Remove "const" so
3469         that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
3470         and decoded_options_count.
3471
3472 2014-10-03  Maciej W. Rozycki  <macro@codesourcery.com>
3473
3474         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
3475         macro.
3476         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
3477         TARGET_E500_DOUBLE case here.
3478
3479 2014-10-03  Marc Glisse  <marc.glisse@inria.fr>
3480
3481         PR c++/54427
3482         PR c++/57198
3483         PR c++/58845
3484         * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
3485
3486 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
3487
3488         * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
3489         * lto-cgraph.c (lto_output_edge, input_edge): Stream
3490         in_polymorphic_cdtor
3491         * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
3492         (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
3493         * cgraphclones.c (cgraph_edge::clone): Likewise.
3494         * ipa-prop.c (update_jump_functions_after_inlining,
3495         try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
3496         to possible_dynamic_type_change.
3497         (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
3498         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
3499         IN_POLY_CDOTR argument.
3500
3501         * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
3502         for BASE and OUTER_TYPE being NULL.
3503         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
3504         in_poly_cdtor parameter.
3505
3506 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
3507
3508         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
3509         (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
3510         TARGET_AVX512F.
3511         (expand_vec_perm_1): Likewise.
3512
3513 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
3514             Uros Bizjak  <ubizjak@gmail.com>
3515
3516         PR tree-optimization/61403
3517         * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
3518         error in comment.  Also optimize 256-bit vectors for AVX2
3519         or AVX (floating vectors only), provided the first permutation
3520         can be performed in one insn.
3521
3522 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
3523
3524         * gcc.c (class driver): New class.
3525         (main): Reimplement in terms of driver::main, moving most of the
3526         locals to be locals within individual methods of class driver.
3527         The remaining locals "explicit_link_files", "decoded_options" and
3528         "decoded_options_count" are used by multiple driver:: methods, and
3529         so become member data.  Doing so isolates the argc/argv reads and
3530         writes.  Replace "goto out" with a special exit code from
3531         new method driver::prepare_infiles.  Split out the old
3532         implementation of main into the following...
3533         (driver::main): New function, corresponding to the old "main"
3534         implementation.
3535         (driver::set_progname): New function, taken from the old
3536         "main" implementation.
3537         (driver::expand_at_files): Likewise.
3538         (driver::decode_argv): Likewise.
3539         (driver::global_initializations): Likewise.
3540         (driver::build_multilib_strings): Likewise.
3541         (driver::set_up_specs): Likewise.
3542         (driver::putenv_COLLECT_GCC): Likewise.
3543         (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
3544         (driver::handle_unrecognized_options): Likewise.
3545         (driver::maybe_print_and_exit): Likewise.
3546         (driver::prepare_infiles): Likewise.
3547         (driver::do_spec_on_infiles): Likewise.
3548         (driver::maybe_run_linker): Likewise.
3549         (driver::final_actions): Likewise.
3550         (driver::get_exit_code): Likewise.
3551
3552 2014-10-03  Yury Gribov  <y.gribov@samsung.com>
3553
3554         * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
3555         don't emit empty ctors.
3556
3557 2014-10-03  Eric Botcazou  <ebotcazou@adacore.com>
3558
3559         * convert.c (convert_to_integer): Do not introduce useless conversions
3560         between integral types.
3561
3562 2014-10-03  David Sherwood  <david.sherwood@arm.com>
3563
3564         * ira-int.h (ira_allocno): Mark hard_regno as signed.
3565
3566 2014-10-03  Ilya Enkovich  <ilya.enkovich@intel.com>
3567
3568         * lra-constraints.c (inherit_in_ebb): Handle calls with
3569         multiple return values.
3570         * caller-save.c (save_call_clobbered_regs): Likewise.
3571
3572 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
3573
3574         * tree-vect-data-refs.c (vect_permute_load_chain,
3575         vect_shift_permute_load_chain): Fix a typo in temporary var names,
3576         suffle3 to shuffle3.
3577
3578         PR libgomp/61200
3579         * omp-low.c (taskreg_contexts): New variable.
3580         (scan_omp_parallel): Push newly created context into taskreg_contexts
3581         vector and move record layout code to finish_taskreg_scan.
3582         (scan_omp_task): Likewise.
3583         (finish_taskreg_scan): New function.
3584         (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
3585         vector elements and release it.
3586
3587         PR target/62128
3588         * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
3589         of palignr arguments can't be used due to min 0 or max - min
3590         too high, try also op0, op1 order of palignr arguments.
3591
3592 2014-10-02  Jan Hubicka  <hubicka@ucw.cz>
3593
3594         * cgraph.h (ipa_polymorphic_call_context):
3595         Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
3596         private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
3597         * ipa-polymorphic-call.c
3598         (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
3599         past end of dynamic types.
3600         (ipa_polymorphic_call_context::stream_out,
3601         speculative_outer_type): Stream dynamic flag.
3602         (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
3603         (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
3604         Clear DYNAMIC.
3605         (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
3606         set it.
3607         (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
3608         * ipa-prop.c (update_jump_functions_after_inlining,
3609         try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
3610
3611 2014-10-02  Teresa Johnson  <tejohnson@google.com>
3612
3613         * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
3614         up when synthesizing counts to avoid rounding errors.
3615
3616 2014-10-02  Teresa Johnson  <tejohnson@google.com>
3617
3618         PR middle-end/63422
3619         * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
3620         asserts to handle incoming insanities.
3621
3622 2014-10-02  Martin Jambor  <mjambor@suse.cz>
3623
3624         PR tree-optimization/63375
3625         * tree-sra.c (build_access_from_expr_1): Disqualify volatile
3626         references.
3627
3628 2014-10-02  Olivier Hainque  <hainque@adacore.com>
3629
3630         * Makefile.in (CROSS): Define, to @CROSS.
3631
3632 2014-10-02  Jakub Jelinek  <jakub@redhat.com>
3633
3634         PR target/62128
3635         * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
3636         if it expands to a single insn only.
3637         (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument.  If true,
3638         fail unless in_order is true.  Add forward declaration.
3639         (expand_vec_perm_vperm2f128): Fix up comment about which permutation
3640         is useful for one_operand_p.
3641         (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
3642
3643 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3644
3645         * cgraphclones.c (build_function_type_skip_args): Do not make new
3646         type variant of old.
3647
3648 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3649
3650         * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
3651         when speculation is added.
3652         (ipa_edge_args): Add polymorphic_call_contexts.
3653         (ipa_get_ith_polymorhic_call_context): New accesor.
3654         (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
3655         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
3656         (ipa_compute_jump_functions_for_edge): Compute contexts.
3657         (update_jump_functions_after_inlining): Update contexts.
3658         (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
3659         update dumping; add speculative edge creation.
3660         (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
3661         context updating.
3662         (update_indirect_edges_after_inlining): Pass down context.
3663         (ipa_edge_duplication_hook): Duplicate contexts.
3664         (ipa_write_node_info): Stream out contexts.
3665         (ipa_read_node_info): Stream in contexts.
3666         * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
3667         types.
3668         (try_speculative_devirtualization): New function.
3669         * ipa-utils.h (try_speculative_devirtualization): Declare.
3670
3671 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3672
3673         * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
3674         dumping during WPA.
3675
3676 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3677
3678         * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
3679         type variants.
3680
3681 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3682
3683         * ipa-polymorphic-call.c
3684         (ipa_polymorphic_call_context::restrict_to_inner_class):
3685         Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
3686         use speculation_consistent_p to do so; Add CONSDER_BASES
3687         and CONSIDER_PLACEMENT_NEW parameters.
3688         (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
3689         short circuit obvious cases.
3690         (ipa_polymorphic_call_context::dump): Improve formatting.
3691         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
3692         combine_speculation_with to record speculations; Do not ICE when
3693         object is located in pointer type decl; do not ICE for methods
3694         of UNION_TYPE; do not record nonpolymorphic types.
3695         (ipa_polymorphic_call_context::speculation_consistent_p): New method.
3696         (ipa_polymorphic_call_context::combine_speculation_with): New method.
3697         (ipa_polymorphic_call_context::combine_with): New method.
3698         (ipa_polymorphic_call_context::make_speculative): Move here; use
3699         combine speculation.
3700         * cgraph.h (ipa_polymorphic_call_context): Update
3701         restrict_to_inner_class prototype; add offset_by, make_speculative,
3702         combine_with, useless_p, combine_speculation_with and
3703         speculation_consistent_p methods.
3704         (ipa_polymorphic_call_context::offset_by): New method.
3705         (ipa_polymorphic_call_context::useless_p): New method.
3706
3707 2014-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3708
3709         PR rtl-optimization/62151
3710         * combine.c (can_combine_p): Allow the destination register of INSN
3711         to be clobbered in I3.
3712         (subst): Do not substitute into clobbers of registers.
3713
3714 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
3715
3716         PR debug/63342
3717         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
3718         offset, TARGET_MEM_REF and SSA_NAME.
3719
3720         * config/i386/i386.c (expand_vec_perm_palignr): Handle
3721         256-bit vectors for TARGET_AVX2.
3722
3723         * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
3724         dfirst permutation.
3725
3726         PR target/63428
3727         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
3728         argument to avx2_permv2ti.
3729
3730 2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3731
3732         * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
3733
3734 2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
3735
3736         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
3737         (fmod<mode>3): Ditto.
3738         (fpremxf4_i387): Ditto.
3739         (reminderxf3): Ditto.
3740         (reminder<mode>3): Ditto.
3741         (fprem1xf4_i387): Ditto.
3742
3743 2014-09-30  Teresa Johnson  <tejohnson@google.com>
3744
3745         * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
3746         duplicate_blocks bitmap.
3747         (remove_ctrl_stmt_and_useless_edges): Ditto.
3748         (create_block_for_threading): Ditto.
3749         (compute_path_counts): New function.
3750         (update_profile): Ditto.
3751         (recompute_probabilities): Ditto.
3752         (update_joiner_offpath_counts): Ditto.
3753         (freqs_to_counts_path): Ditto.
3754         (clear_counts_path): Ditto.
3755         (ssa_fix_duplicate_block_edges): Update profile info.
3756         (ssa_create_duplicates): Pass new parameter.
3757         (ssa_redirect_edges): Remove old profile update.
3758         (thread_block_1): New duplicate_blocks bitmap,
3759         remove old profile update.
3760         (thread_single_edge): Pass new parameter.
3761
3762 2014-09-30  Ilya Tocar  <ilya.tocar@intel.com>
3763
3764         PR middle-end/62120
3765         * varasm.c (decode_reg_name_and_count): Check availability for
3766         registers from ADDITIONAL_REGISTER_NAMES.
3767
3768 2014-09-30  David Malcolm  <dmalcolm@redhat.com>
3769
3770         PR plugins/63410
3771         * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
3772         (PLUGIN_HEADERS): Add pass-instances.def.
3773
3774 2014-09-30  James Greenhalgh  <james.greenhalgh@arm.com>
3775
3776         * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
3777         iterator.
3778         * config/aarch64/aarch64-simd.md
3779         (aarch64_sqdmull_laneq<mode>): Expand iterator.
3780         * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
3781         (vqdmulls_lane_s32): Fix return type.
3782         (vqdmulls_laneq_s32): New.
3783
3784 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
3785
3786         PR inline-asm/63282
3787         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
3788         or invert_jump_1 if jump isn't any_condjump_p.
3789
3790 2014-09-30  Terry Guo  <terry.guo@arm.com>
3791
3792         * config/arm/arm-cores.def (cortex-m7): New core name.
3793         * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
3794         (fpv5-d16): Ditto.
3795         * config/arm/arm-tables.opt: Regenerated.
3796         * config/arm/arm-tune.md: Regenerated.
3797         * config/arm/arm.h (TARGET_VFP5): New macro.
3798         * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
3799         * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
3800         smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
3801         * doc/invoke.texi: Document new cpu and fpu names.
3802
3803 2014-09-30  Jiong Wang  <jiong.wang@arm.com>
3804
3805         * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
3806         before sinking insn.
3807
3808 2014-09-30  David Sherwood  <david.sherwood@arm.com>
3809
3810         * ira-int.h (ira_allocno): Add "wmode" field.
3811         * ira-build.c (create_insn_allocnos): Add new "parent" function
3812         parameter.
3813         * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
3814         that cannot be accessed in wmode.
3815
3816 2014-09-30  Markus Trippelsdorf  <markus@trippelsdorf.de>
3817
3818         * data-streamer.c (bp_unpack_var_len_int): Avoid signed
3819         integer overflow.
3820
3821 2014-09-29  Andi Kleen  <ak@linux.intel.com>
3822
3823         * opts.c (print_filtered_help): Print --param min/max/default
3824         with -Q.
3825
3826 2014-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3827
3828         * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
3829
3830 2014-09-29  Eric Botcazou  <ebotcazou@adacore.com>
3831
3832         * tree-vrp.c (get_single_symbol): New function.
3833         (build_symbolic_expr): Likewise.
3834         (symbolic_range_based_on_p): New predicate.
3835         (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
3836         for PLUS and MINUS.  Do not drop symbolic ranges at the end.
3837         (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
3838         operand is symbolic and based on the other operand.
3839
3840 2014-09-29  Chen Gang  <gang.chen.5i5j@gmail.com>
3841
3842         * config/microblaze/microblaze.md (call_internal1): Use VOID
3843         instead of SI to fix "((void (*)(void)) 0)()" issue
3844
3845 2014-09-29  Nick Clifton  <nickc@redhat.com>
3846
3847         * config/msp430/msp430.c (msp430_expand_prologue): Return a
3848         CLOBBER rtx for naked functions.
3849         (msp430_expand_epilogue): Likewise.
3850         (msp430_use_f5_series_hwmult): Cache result.
3851         (use_32bit_hwmult): Cache result.
3852         (msp430_no_hwmult): New function.
3853         (msp430_output_labelref): Use it.
3854
3855 2014-09-29  Jakub Jelinek  <jakub@redhat.com>
3856
3857         PR middle-end/63247
3858         * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
3859         of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
3860         use the alignment of avar rather than ovar.
3861
3862 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
3863
3864         * config/pa/pa.c (pa_output_function_epilogue): Only update
3865         last_address when a nonnote insn is found.
3866
3867 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
3868
3869         PR ipa/60665
3870         * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
3871
3872 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
3873
3874         PR ipa/62121
3875         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
3876         fix pasto in checking array size.
3877
3878 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
3879
3880         PR middle-end/35545
3881         * passes.def (pass_tracer): Move before last dominator pass.
3882
3883 2014-09-26  Thomas Schwinge  <thomas@codesourcery.com>
3884
3885         * gcc.c (try_generate_repro): Remove argument "prog".  Change all
3886         users.
3887         (run_attempt): Handle errors of "pex_run" invocation.
3888
3889 2014-09-26  Christophe Lyon  <christophe.lyon@linaro.org>
3890
3891         * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
3892         (CC1_SPEC): Define.
3893         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
3894         (TARGET_ASAN_SHADOW_OFFSET): Define.
3895
3896 2014-09-26  Martin Liska  <mliska@suse.cz>
3897
3898         * cgraph.c (cgraph_node::release_body): New argument keep_arguments
3899         introduced.
3900         * cgraph.h: Likewise.
3901         * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
3902         * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
3903         * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
3904         * tree-ssa-alias.h: Likewise.
3905
3906 2014-09-26  Jakub Jelinek  <jakub@redhat.com>
3907             Max Ostapenko  <m.ostapenko@partner.samsung.com>
3908
3909         * common.opt: New option.
3910         * doc/invoke.texi: Describe new option.
3911         * gcc.c (execute): Don't free first string early, but at the end
3912         of the function.  Call retry_ice if compiler exited with
3913         ICE_EXIT_CODE.
3914         (main): Factor out common code.
3915         (print_configuration): New function.
3916         (files_equal_p): Likewise.
3917         (check_repro): Likewise.
3918         (run_attempt): Likewise.
3919         (do_report_bug): Likewise.
3920         (append_text): Likewise.
3921         (try_generate_repro): Likewise
3922
3923 2014-09-25  Andi Kleen  <ak@linux.intel.com>
3924
3925         * config/i386/i386.c (x86_print_call_or_nop): New function.
3926         (x86_function_profiler): Support -mnop-mcount and
3927         -mrecord-mcount.
3928         * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
3929         * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
3930
3931 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
3932
3933         * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
3934         * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
3935         * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
3936         Remove.
3937
3938 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
3939
3940         * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
3941         type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
3942         types_odr_comparable): Declare.
3943         (polymorphic_type_binfo_p): Move here from ipa-devirt.c
3944         * ipa-polymorphic-call.c: New file.
3945         (contains_polymorphic_type_p, possible_placement_new,
3946         ipa_polymorphic_call_context::restrict_to_inner_class,
3947         contains_type_p, decl_maybe_in_construction_p,
3948         ipa_polymorphic_call_context::stream_out,
3949         ipa_polymorphic_call_context::debug,
3950         ipa_polymorphic_call_context::stream_in,
3951         ipa_polymorphic_call_context::set_by_decl,
3952         ipa_polymorphic_call_context::set_by_invariant,
3953         walk_ssa_copies,
3954         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3955         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
3956         extr_type_from_vtbl_ptr_store, record_known_type
3957         check_stmt_for_type_change,
3958         ipa_polymorphic_call_context::get_dynamic_type): Move here from
3959         ipa-devirt.c
3960         * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
3961         and streamer-hooks.h
3962         (contains_polymorphic_type_p, possible_placement_new,
3963         ipa_polymorphic_call_context::restrict_to_inner_class,
3964         contains_type_p, decl_maybe_in_construction_p,
3965         ipa_polymorphic_call_context::stream_out,
3966         ipa_polymorphic_call_context::debug,
3967         ipa_polymorphic_call_context::stream_in,
3968         ipa_polymorphic_call_context::set_by_decl,
3969         ipa_polymorphic_call_context::set_by_invariant,
3970         walk_ssa_copies,
3971         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3972         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
3973         extr_type_from_vtbl_ptr_store, record_known_type
3974         check_stmt_for_type_change,
3975         ipa_polymorphic_call_context::get_dynamic_type): Move to
3976         ipa-polymorphic-call.c
3977         (type_all_derivations_known_p, types_odr_comparable,
3978         types_must_be_same_for_odr): Export.
3979         (type_known_to_have_no_deriavations_p): New function.
3980         * Makefile.in: Add ipa-polymorphic-call.c
3981
3982 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
3983
3984         * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
3985         for better storage.
3986         (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
3987         (possible_polymorphic_call_targets): Instead of computing both
3988         speculative and non-speculative answers, do just one at a time.
3989         Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
3990         (dump_targets): Break out from ...
3991         (dump_possible_polymorphic_call_targets): ... here; dump both speculative
3992         and non-speculative lists.
3993         (ipa_devirt): Update for new possible_polymorphic_call_targets API.
3994         * ipa-utils.h (possible_polymorphic_call_targets): Update.
3995
3996 2014-09-25  Uros Bizjak  <ubizjak@gmail.com>
3997
3998         PR rtl-optimization/63348
3999         * emit-rtl.c (try_split): Do not emit extra barrier.
4000
4001 2014-09-25  James Greenhalgh  <james.greenhalgh@arm.com>
4002
4003         * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
4004         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
4005         new predicates.
4006         (aarch64_<sur>shll2_n<mode>): Likewise.
4007         (aarch64_<sur>shr_n<mode>): Likewise.
4008         (aarch64_<sur>sra_n<mode>: Likewise.
4009         (aarch64_<sur>s<lr>i_n<mode>): Likewise.
4010         (aarch64_<sur>qshl<u>_n<mode>): Likewise.
4011         * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
4012         * config/aarch64/iterators.md (ve_mode): New.
4013         (offsetlr): Remap to infix text for use in new predicates.
4014         * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
4015         (aarch64_simd_shift_imm_hi): Likewise.
4016         (aarch64_simd_shift_imm_si): Likewise.
4017         (aarch64_simd_shift_imm_di): Likewise.
4018         (aarch64_simd_shift_imm_offset_qi): Likewise.
4019         (aarch64_simd_shift_imm_offset_hi): Likewise.
4020         (aarch64_simd_shift_imm_offset_si): Likewise.
4021         (aarch64_simd_shift_imm_offset_di): Likewise.
4022         (aarch64_simd_shift_imm_bitsize_qi): Likewise.
4023         (aarch64_simd_shift_imm_bitsize_hi): Likewise.
4024         (aarch64_simd_shift_imm_bitsize_si): Likewise.
4025         (aarch64_simd_shift_imm_bitsize_di): Likewise.
4026
4027 2014-09-25  Jiong Wang  <jiong.wang@arm.com>
4028
4029         * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
4030         new created BB as the intersection of live-in from "old_dest" and
4031         live-out from "bb".
4032
4033 2014-09-25  Felix Yang  <felix.yang@huawei.com>
4034
4035         * lra.c (lra_set_insn_recog_data): Fix typo in comment.
4036         * genautomata.c (merge_states): Ditto.
4037
4038 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
4039
4040         PR target/62218
4041         * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
4042         in instruction sequence.
4043
4044 2014-09-25  Nick Clifton  <nickc@redhat.com>
4045
4046         PR target/62218
4047         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
4048         in instruction sequence.
4049
4050 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4051
4052         PR target/63335
4053         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
4054         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
4055
4056 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4057             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4058             Anna Tikhonova  <anna.tikhonova@intel.com>
4059             Ilya Tocar  <ilya.tocar@intel.com>
4060             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4061             Ilya Verbin  <ilya.verbin@intel.com>
4062             Kirill Yukhin  <kirill.yukhin@intel.com>
4063             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4064
4065         * config/i386/sse.md
4066         (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
4067         (define_expand "<avx2_avx512>_perm<mode>"): ... this.
4068         (define_expand "avx512f_perm<mode>_mask"): Rename to ...
4069         (define_expand "<avx512>_perm<mode>_mask"): ... this.
4070         Use VI8F_256_512 mode iterator.
4071         (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
4072         (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
4073
4074 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4075             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4076             Anna Tikhonova  <anna.tikhonova@intel.com>
4077             Ilya Tocar  <ilya.tocar@intel.com>
4078             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4079             Ilya Verbin  <ilya.verbin@intel.com>
4080             Kirill Yukhin  <kirill.yukhin@intel.com>
4081             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4082
4083         * config/i386/sse.md
4084         (define_insn "avx_movshdup256<mask_name>"): Add masking.
4085         (define_insn "sse3_movshdup<mask_name>"): Ditto.
4086         (define_insn "avx_movsldup256<mask_name>"): Ditto.
4087         (define_insn "sse3_movsldup<mask_name>"): Ditto.
4088         (define_insn "vec_dupv2df<mask_name>"): Ditto.
4089         (define_insn "*vec_concatv2df"): Add EVEX version.
4090
4091 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4092             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4093             Anna Tikhonova  <anna.tikhonova@intel.com>
4094             Ilya Tocar  <ilya.tocar@intel.com>
4095             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4096             Ilya Verbin  <ilya.verbin@intel.com>
4097             Kirill Yukhin  <kirill.yukhin@intel.com>
4098             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4099
4100         * config/i386/sse.md
4101         (define_insn "vec_set<mode>_0"): Add EVEX version.
4102
4103 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4104             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4105             Anna Tikhonova  <anna.tikhonova@intel.com>
4106             Ilya Tocar  <ilya.tocar@intel.com>
4107             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4108             Ilya Verbin  <ilya.verbin@intel.com>
4109             Kirill Yukhin  <kirill.yukhin@intel.com>
4110             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4111
4112         * config/i386/sse.md
4113         (define_insn
4114         "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
4115         New.
4116         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
4117         (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
4118         (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
4119         "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
4120         (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
4121         (define_expand "sse2_cvtpd2ps_mask): New.
4122         (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
4123         (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
4124
4125 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4126             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4127             Anna Tikhonova  <anna.tikhonova@intel.com>
4128             Ilya Tocar  <ilya.tocar@intel.com>
4129             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4130             Ilya Verbin  <ilya.verbin@intel.com>
4131             Kirill Yukhin  <kirill.yukhin@intel.com>
4132             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4133
4134         * config/i386/i386.c
4135         (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
4136         (ufix_notruncv8dfv8si2_mask_round): ... this.
4137         * config/i386/sse.md
4138         (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
4139         (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
4140         (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
4141         (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
4142         (define_expand "sse2_cvtpd2dq"): Delete.
4143         (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
4144         make 2nd operand const0 vector.
4145         (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
4146         Delete.
4147         (define_mode_attr pd2udqsuff): New.
4148         (define_insn
4149         "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
4150         (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
4151         (define_insn "*avx_cvttpd2dq256_2"): Delete.
4152         (define_expand "sse2_cvttpd2dq"): Ditto.
4153         (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
4154         make 2nd operand const0 vector.
4155
4156 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
4157
4158         PR tree-optimization/63341
4159         * tree-vectorizer.h (vect_create_data_ref_ptr,
4160         vect_create_addr_base_for_vector_ref): Add another tree argument
4161         defaulting to NULL_TREE.
4162         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
4163         argument, pass it down to vect_create_addr_base_for_vector_ref.
4164         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
4165         add that to base_offset too if non-NULL.
4166         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
4167         for dr_explicit_realign_optimized set it to vector byte size
4168         - 1 instead of setting offset, pass byte_offset down to
4169         vect_create_data_ref_ptr.
4170
4171 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
4172
4173         * ipa-devirt.c (possible_polymorphic_call_targets): Remove
4174         forgotten debug output; canonicalize querries more wtih LTO.
4175
4176 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
4177
4178         * cgraph.h (class ipa_polymorphic_call_context): Move here from
4179         ipa-utils.h; add stream_int and stream_out methods.
4180         (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
4181         OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
4182         MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
4183         add CONTEXT.
4184         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4185         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4186         ipa_polymorphic_call_context::clear_speculation,
4187         ipa_polymorphic_call_context::clear_outer_type): Move here from
4188         ipa-utils.h
4189         * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
4190         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4191         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4192         ipa_polymorphic_call_context::clear_speculation,
4193         ipa_polymorphic_call_context::clear_outer_type): Likewise.
4194         * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
4195         streamer-hooks.h
4196         (ipa_polymorphic_call_context::stream_out): New method.
4197         (ipa_polymorphic_call_context::stream_in): New method.
4198         (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
4199         * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
4200         OUTER_TYPE.
4201         (ipa_analyze_call_uses): Simplify.
4202         (update_indirect_edges_after_inlining): Do not care about outer_type.
4203         (ipa_write_indirect_edge_info): Update.
4204         (ipa_write_indirect_edge_info): Likewise.
4205         * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
4206         (dump_edge_flags): Break out from ...
4207         (cgraph_node::dump): ... here; dump indirect edges.
4208
4209 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
4210
4211         * ipa-utils.h (polymorphic_call_context): Add
4212         metdhos dump, debug and clear_outer_type.
4213         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
4214         (ipa_polymorphic_call_context::clear_outer_type): New method.
4215         * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
4216         * ipa-devirt.c (types_odr_comparable): New function.
4217         (types_must_be_same_for_odr): New function.
4218         (odr_subtypes_equivalent_p): Simplify.
4219         (possible_placement_new): Break out from ...
4220         (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
4221         be more cuatious about returning false in cases the context may be
4222         valid in derived type or via placement new.
4223         (contains_type_p): Clear maybe_derived_type
4224         (ipa_polymorphic_call_context::dump): New method.
4225         (ipa_polymorphic_call_context::debug): New method.
4226         (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
4227         (ipa_polymorphic_call_context::set_by_invariant): Simplify.
4228         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
4229         (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
4230         to suceed on all valid cases; remove confused sanity check.
4231         (dump_possible_polymorphic_call_targets): Simplify.
4232
4233 2014-09-24  Aldy Hernandez  <aldyh@redhat.com>
4234
4235         * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
4236         lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
4237         tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
4238         varpool.c: Rename all instances of DECL_ABSTRACT to
4239         DECL_ABSTRACT_P.
4240
4241 2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4242
4243         * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
4244         special handling for stores whose SET_SRC is an UNSPEC (such as
4245         UNSPEC_STVE).
4246
4247 2014-09-24  Jiong Wang  <jiong.wang@arm.com>
4248
4249         * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
4250         !REG_P (src) to release more instruction sink opportunities.
4251
4252 2014-09-24  Wilco Dijkstra  <wilco.dijkstra@arm.com>
4253
4254         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
4255         move costs for 128-bit types.
4256
4257 2014-09-24  Martin Jambor  <mjambor@suse.cz>
4258
4259         * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
4260         when duplicating a PASS_THROUGH jump function when creating a
4261         speculative edge.
4262
4263 2014-09-24  Marek Polacek  <polacek@redhat.com>
4264
4265         PR c/61405
4266         PR c/53874
4267         * asan.c (maybe_instrument_call): Add default case.
4268         * ipa-pure-const.c (special_builtin_state): Likewise.
4269         * predict.c (expr_expected_value_1): Likewise.
4270         * lto-streamer-out.c (write_symbol): Initialize variable.
4271
4272 2014-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4273
4274         * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
4275         the lane.
4276         (vmuld_laneq_f64): Likewise.
4277         (vmuls_lane_f32): Likewise.
4278         (vmuls_laneq_f32): Likewise.
4279
4280 2014-09-24  Kirill Yukhin  <kirill.yukhin@intel.com>
4281
4282         PR bootstrap/63235
4283         * varpool.c (varpool_node::add): Pass decl attributes
4284         to lookup_attribute.
4285
4286 2014-09-24  Jakub Jelinek  <jakub@redhat.com>
4287
4288         PR sanitizer/63316
4289         * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
4290
4291 2014-09-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4292
4293         PR tree-optimization/63266
4294         * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
4295         marker for unknown byte value.
4296         (MARKER_MASK): New macro.
4297         (MARKER_BYTE_UNKNOWN): New macro.
4298         (HEAD_MARKER): New macro.
4299         (do_shift_rotate): Mark bytes with unknown values due to sign
4300         extension when doing an arithmetic right shift. Replace hardcoded
4301         mask for marker by new MARKER_MASK macro.
4302         (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
4303         numbers accordingly.
4304
4305 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4306             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4307             Anna Tikhonova  <anna.tikhonova@intel.com>
4308             Ilya Tocar  <ilya.tocar@intel.com>
4309             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4310             Ilya Verbin  <ilya.verbin@intel.com>
4311             Kirill Yukhin  <kirill.yukhin@intel.com>
4312             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4313
4314         * config/i386/sse.md
4315         (define_insn
4316         "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
4317         Add masking.
4318         (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
4319         (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
4320
4321 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4322             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4323             Anna Tikhonova  <anna.tikhonova@intel.com>
4324             Ilya Tocar  <ilya.tocar@intel.com>
4325             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4326             Ilya Verbin  <ilya.verbin@intel.com>
4327             Kirill Yukhin  <kirill.yukhin@intel.com>
4328             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4329
4330         * config/i386/sse.md
4331         (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
4332         (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
4333         (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
4334         (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
4335         (define_expand "avx512vl_pshuflw_mask"): New.
4336         (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
4337         (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
4338         (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
4339         (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
4340         (define_expand "avx512vl_pshufhw_mask"): New.
4341         (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
4342
4343 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4344             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4345             Anna Tikhonova  <anna.tikhonova@intel.com>
4346             Ilya Tocar  <ilya.tocar@intel.com>
4347             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4348             Ilya Verbin  <ilya.verbin@intel.com>
4349             Kirill Yukhin  <kirill.yukhin@intel.com>
4350             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4351
4352         * config/i386/i386.c
4353         (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
4354         CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
4355         CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
4356         CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
4357         CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
4358         * config/i386/sse.md
4359         (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
4360         (define_insn
4361         "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
4362         (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
4363         (define_insn
4364         "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
4365         (define_expand "avx512vl_pshufdv3_mask"): Ditto.
4366         (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
4367         (define_expand "avx512vl_pshufd_mask"): New.
4368         (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
4369
4370 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4371             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4372             Anna Tikhonova  <anna.tikhonova@intel.com>
4373             Ilya Tocar  <ilya.tocar@intel.com>
4374             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4375             Ilya Verbin  <ilya.verbin@intel.com>
4376             Kirill Yukhin  <kirill.yukhin@intel.com>
4377             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4378
4379         * config/i386/i386.c
4380         (CODE_FOR_avx2_extracti128): Rename to ...
4381         (CODE_FOR_avx_vextractf128v4di): this.
4382         (CODE_FOR_avx2_inserti128): Rename to ...
4383         (CODE_FOR_avx_vinsertf128v4di): this.
4384         (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
4385         CODE_FOR_avx_vextractf128v4di.
4386         (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
4387         CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
4388         CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
4389         CODE_FOR_avx512vl_vinsertv8si.
4390         * config/i386/sse.md
4391         (define_expand
4392         "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
4393         AVX512_VEC mode iterator.
4394         (define_insn
4395         "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
4396         Ditto.
4397         (define_expand
4398         "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
4399         AVX512_VEC_2 mode iterator.
4400         (define_insn "vec_set_lo_<mode><mask_name>"): New.
4401         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4402         (define_expand "avx512vl_vinsert<mode>"): Ditto.
4403         (define_insn "avx2_vec_set_lo_v4di"): Delete.
4404         (define_insn "avx2_vec_set_hi_v4di"): Ditto.
4405         (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
4406         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4407         (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
4408         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4409         (define_expand "avx2_extracti128"): Delete.
4410         (define_expand "avx2_inserti128"): Ditto.
4411
4412 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4413             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4414             Anna Tikhonova  <anna.tikhonova@intel.com>
4415             Ilya Tocar  <ilya.tocar@intel.com>
4416             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4417             Ilya Verbin  <ilya.verbin@intel.com>
4418             Kirill Yukhin  <kirill.yukhin@intel.com>
4419             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4420
4421         * config/i386/sse.md
4422         (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
4423         (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
4424         (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
4425         (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
4426         (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
4427         (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
4428         (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
4429         (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
4430         (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
4431         (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
4432         (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
4433         (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
4434         (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
4435
4436 2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>
4437
4438         PR rtl-optimization/63210
4439         * ira-color.c (assign_hard_reg): Ignore conflict cost if the
4440         HARD_REGNO is not available for CONFLICT_A.
4441
4442 2014-09-23  Andi Kleen  <ak@linux.intel.com>
4443
4444         * cgraph.h (symtab_node): Add no_reorder attribute.
4445         (symbol_table::output_asm_statements): Remove.
4446         * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
4447         (cgraph_node::create_version_clone): Dito.
4448         (symbol_table::output_asm_statements): Remove.
4449         * trans-mem.c (ipa_tm_create_version_alias): Dito.
4450         * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
4451         (output_in_order): Add no_reorder flag. Only handle no_reorder
4452         nodes when set.
4453         (symbol_table::compile): Add separate pass for no_reorder nodes.
4454         (process_common_attributes): Set no_reorder flag in symtab node.
4455         Add node argument.
4456         (process_function_and_variable_attributes): Pass symtab nodes to
4457         process_common_attributes.
4458         * doc/extend.texi (no_reorder): Document no_reorder attribute.
4459         * lto-cgraph.c (lto_output_node): Serialize no_reorder.
4460         (lto_output_varpool_node): Dito.
4461         (input_overwrite_node): Dito.
4462         (input_varpool_node): Dito.
4463         * varpool.c (varpool_node::add): Set no_reorder attribute.
4464         (symbol_table::remove_unreferenced_decls): Handle no_reorder.
4465         (symbol_table::output_variables): Dito.
4466         * symtab.c (symtab_node::dump_base): Print no_reorder.
4467
4468 2014-09-23  Jiong Wang  <jiong.wang@arm.com>
4469
4470         * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
4471         be INVALID_REGNUM.
4472
4473 2014-09-23  Thomas Schwinge  <thomas@codesourcery.com>
4474
4475         * configure: Regenerate.
4476
4477 2014-09-23  Alan Lawrence  <alan.lawrence@arm.com>
4478
4479         * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
4480         when result_mode == shift_mode.
4481
4482 2014-09-23  Kostya Serebryany  <kcc@google.com>
4483
4484         Update to match the changed asan API.
4485         * asan.c (asan_global_struct): Update the __asan_global definition
4486         to match the new API.
4487         (asan_add_global): Ditto.
4488         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
4489         to __asan_init_v4.
4490
4491 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
4492
4493         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
4494         refine the constraints used on 32/64-bit floating point moves.
4495         (f32_av): Likewise.
4496         (f64_vsx): Likewise.
4497         (f64_dm): Likewise.
4498         (f64_av): Likewise.
4499         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
4500         (BOOL_REGS_OP1): Likewise.
4501         (BOOL_REGS_OP2): Likewise.
4502         (BOOL_REGS_UNARY): Likewise.
4503         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
4504         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
4505         for moves involving VSX registers.  Do not use constraints that
4506         target VSX registers for decimal types.
4507         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
4508         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
4509
4510 2014-09-23  Jan Hubicka  <hubicka@ucw.cz>
4511
4512         * tree.h (int_bit_position): Turn into inline function;
4513         implement using wide int.
4514         * tree.c (int_bit_position): Remove.
4515
4516 2014-09-23  Richard Sandiford  <richard.sandiford@arm.com>
4517
4518         PR bootstrap/63280
4519         * target-globals.c (target_globals::~target_globals): Fix location
4520         of ira_int destruction.
4521
4522 2014-09-23  Renlin Li  <renlin.li@arm.com>
4523
4524         * config/aarch64/aarch64.md (return): New.
4525         (simple_return): Likewise.
4526         * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
4527         * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
4528
4529 2014-09-23  Wilco Dijkstra  <wdijkstr@arm.com>
4530
4531         * common/config/aarch64/aarch64-common.c:
4532         (default_options aarch_option_optimization_table):
4533         Default to -fsched-pressure.
4534
4535 2014-09-23  Ilya Enkovich  <ilya.enkovich@intel.com>
4536
4537         * cfgcleanup.c (try_optimize_cfg): Do not remove label
4538         with LABEL_PRESERVE_P flag set.
4539
4540 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4541             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4542             Anna Tikhonova  <anna.tikhonova@intel.com>
4543             Ilya Tocar  <ilya.tocar@intel.com>
4544             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4545             Ilya Verbin  <ilya.verbin@intel.com>
4546             Kirill Yukhin  <kirill.yukhin@intel.com>
4547             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4548
4549         * config/i386/sse.md
4550         (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
4551         (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
4552         (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
4553         (define_insn "sse2_shufpd_v2df_mask"): New.
4554
4555 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4556             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4557             Anna Tikhonova  <anna.tikhonova@intel.com>
4558             Ilya Tocar  <ilya.tocar@intel.com>
4559             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4560             Ilya Verbin  <ilya.verbin@intel.com>
4561             Kirill Yukhin  <kirill.yukhin@intel.com>
4562             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4563
4564         * config/i386/sse.md
4565         (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
4566         (define_insn "avx_shufps256_1<mask_name>"): Ditto.
4567         (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
4568         (define_insn "sse_shufps_v4sf_mask"): New.
4569
4570 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4571             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4572             Anna Tikhonova  <anna.tikhonova@intel.com>
4573             Ilya Tocar  <ilya.tocar@intel.com>
4574             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4575             Ilya Verbin  <ilya.verbin@intel.com>
4576             Kirill Yukhin  <kirill.yukhin@intel.com>
4577             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4578
4579         * config/i386/sse.md
4580         (define_insn "avx_unpckhps256<mask_name>"): Add masking.
4581         (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
4582         (define_insn "avx_unpcklps256<mask_name>"): Ditto.
4583         (define_insn "unpcklps128_mask"): New.
4584
4585 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4586             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4587             Anna Tikhonova  <anna.tikhonova@intel.com>
4588             Ilya Tocar  <ilya.tocar@intel.com>
4589             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4590             Ilya Verbin  <ilya.verbin@intel.com>
4591             Kirill Yukhin  <kirill.yukhin@intel.com>
4592             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4593
4594         * config/i386/sse.md
4595         (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
4596         (define_insn "avx512vl_unpckhpd128_mask"): New.
4597         (define_expand "avx_movddup256<mask_name>"): Add masking.
4598         (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
4599         (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
4600         (define_insn "avx512vl_unpcklpd128_mask"): New.
4601
4602 2014-09-22  Joseph Myers  <joseph@codesourcery.com>
4603
4604         * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4605         * doc/tm.texi: Regenerate.
4606         * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
4607         * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4608         * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
4609         Remove.
4610         * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4611         * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4612         * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4613         * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4614         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
4615         Remove.
4616         * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4617         * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4618         * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4619         * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4620         * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4621         * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4622         * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4623         * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4624         * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4625         * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4626         * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
4627         Remove.
4628
4629 2014-09-22  Jan Hubicka  <hubicka@ucw.cz>
4630
4631         * tree-ssa-ccp.c (prop_value_d): Rename to ...
4632         (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
4633         * ipa-prop.c (struct type_change_info): Rename to ...
4634         (prop_type_change_info): ... this; update uses.
4635         * ggc-page.c (globals): Rename to ...
4636         (static struct ggc_globals): ... this; update uses.
4637         * tree-ssa-loop-im.c (mem_ref): Rename to ...
4638         (im_mem_ref): ... this; update uses.
4639         * ggc-common.c (loc_descriptor): Rename to ...
4640         (ggc_loc_descriptor): ... this; update uses.
4641         * lra-eliminations.c (elim_table): Rename to ...
4642         (lra_elim_table): ... this; update uses.
4643         * bitmap.c (output_info): Rename to ...
4644         (bitmap_output_info): ... this; update uses.
4645         * gcse.c (expr): Rename to ...
4646         (gcse_expr) ... this; update uses.
4647         (occr): Rename to ...
4648         (gcse_occr): .. this; update uses.
4649         * tree-ssa-copy.c (prop_value_d): Rename to ...
4650         (prop_value_t): ... this.
4651         * predict.c (block_info_def): Rename to ...
4652         (block_info): ... this; update uses.
4653         (edge_info_def): Rename to ...
4654         (edge_info): ... this; update uses.
4655         * profile.c (bb_info): Rename to ...
4656         (bb_profile_info): ... this; update uses.
4657         * alloc-pool.c (output_info): Rename to ...
4658         (pool_output_info): ... this; update uses.
4659         * ipa-cp.c (topo_info): Rename to ..
4660         (ipa_topo_info): ... this; update uses.
4661         * tree-nrv.c (nrv_data): Rename to ...
4662         (nrv_data_t): ... this; update uses.
4663         * ipa-split.c (bb_info): Rename to ...
4664         (split_bb_info): ... this one.
4665         * profile.h (edge_info): Rename to ...
4666         (edge_profile_info): ... this one; update uses.
4667         * dse.c (bb_info): Rename to ...
4668         (dse_bb_info): ... this one; update uses.
4669         * cprop.c (occr): Rename to ...
4670         (cprop_occr): ... this one; update uses.
4671         (expr): Rename to ...
4672         (cprop_expr): ... this one; update uses.
4673
4674 2014-09-22  Jason Merrill  <jason@redhat.com>
4675
4676         * Makefile.in (check-parallel-%): Add @.
4677
4678 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
4679
4680         * config/aarch64/geniterators.sh: New.
4681         * config/aarch64/iterators.md (VDQF_DF): New.
4682         * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
4683         * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
4684
4685 2014-09-22  Peter A. Bigot  <pab@pabigot.com>
4686
4687         * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
4688         -lnosys when -msim absent.
4689
4690 2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
4691
4692         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
4693
4694 2014-09-22  Richard Biener  <rguenther@suse.de>
4695
4696         * gimplify.c (gimplify_init_constructor): Do not leave
4697         non-GIMPLE vector constructors around.
4698         * tree-cfg.c (verify_gimple_assign_single): Verify that
4699         CONSTRUCTORs have gimple elements.
4700
4701 2014-09-22  Jakub Jelinek  <jakub@redhat.com>
4702
4703         PR debug/63328
4704         * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
4705         insert a debug source bind stmt setting DEBUG_EXPR_DECL
4706         instead of a normal gimple assignment stmt.
4707
4708 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
4709
4710         * config/bfin/bfin.md: Fix use of constraints in define_split.
4711
4712 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4713
4714         * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
4715         GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
4716
4717 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4718
4719         * hard-reg-set.h: Include hash-table.h.
4720         (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
4721         field.
4722         * target-globals.c (target_globals::~target_globals): Call
4723         hard_regs->finalize.
4724         * rtl.h (subreg_shape): New structure.
4725         (shape_of_subreg): New function.
4726         (simplifiable_subregs): Declare.
4727         * reginfo.c (simplifiable_subreg): New structure.
4728         (simplifiable_subregs_hasher): Likewise.
4729         (simplifiable_subregs): New function.
4730         (invalid_mode_changes): Delete.
4731         (alid_mode_changes, valid_mode_changes_obstack): New variables.
4732         (record_subregs_of_mode): Remove subregs_of_mode parameter.
4733         Record valid mode changes in valid_mode_changes.
4734         (find_subregs_of_mode): Remove subregs_of_mode parameter.
4735         Update calls to record_subregs_of_mode.
4736         (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
4737         handling.  Initialize new variables.  Update call to
4738         find_subregs_of_mode.
4739         (invalid_mode_change_p): Check new variables instead of
4740         invalid_mode_changes.
4741         (finish_subregs_of_mode): Finalize new variables instead of
4742         invalid_mode_changes.
4743         (target_hard_regs::finalize): New function.
4744         * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
4745         even when CLASS_CANNOT_CHANGE_MODE is undefined.
4746
4747 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4748
4749         * combine.c (subst): Use simplify_subreg_regno rather than
4750         REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
4751
4752 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4753
4754         * rtl.h (subreg_info): Expand commentary
4755         * rtlanal.c (subreg_get_info): Likewise.
4756
4757 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4758
4759         * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
4760         (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
4761         (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
4762
4763 2014-09-22  Zhenqiang Chen  <zhenqiang.chen@arm.com>
4764
4765         * config/arm/arm.c: #include "tm-constrs.h"
4766         (thumb1_size_rtx_costs): Adjust rtx costs.
4767
4768 2014-09-22  Hans-Peter Nilsson  <hp@axis.com>
4769
4770         * configure.ac (target_header_dir): Move block defining
4771         this to before the block setting inhibit_libc.
4772         (inhibit_libc): When considering $with_headers, just
4773         check it it's explicitly "no".  If not, also check if
4774         $target_header_dir/stdio.h is present.  If not, set
4775         inhibit_libc=true.
4776         * configure: Regenerate.
4777
4778 2014-09-21  Patrick Oppenlander  <pattyo.lists@gmail.com>
4779
4780         * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
4781
4782 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4783
4784         * config/rs6000/rs6000.md (div<mode>3): Fix comment.  Use a different
4785         insn for divides by integer powers of two.
4786         (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
4787         (mod<mode>3): Fix formatting.
4788         (three anonymous define_insn and two define_split): Delete.
4789
4790 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4791
4792         * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
4793         *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
4794         (floatdisf2_internal2): Ditto.
4795         (ashrdi3_no_power): Ditto.  Fix formatting.
4796
4797 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4798
4799         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
4800         popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
4801         Tidy.
4802
4803 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4804
4805         * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
4806         constant, use addsi3 directly.
4807         (three anonymous define_insn, two define_split): Delete.
4808         (sub<mode>3): Move.  Do not allow constant second operand.
4809         Generate different insn for constant first operand.
4810         (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
4811         (subf<mode>3_imm): New.
4812         (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
4813         (*plus_ltu<mode>): Only handle registers.
4814         (*plus_ltu<mode>_1): New.  Handle integer third operand.
4815         (*plus_gtu<mode>): Only handle registers.
4816         (*plus_gtu<mode>_1): New.  Handle integer third operand.
4817
4818 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4819
4820         * config/rs6000/rs6000.md (iorxor): New code_iterator.
4821         (iorxor): New code_attr.
4822         (IORXOR): New code_attr.
4823         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
4824         (ior<mode>3, xor<mode>3): Delete.
4825         (<iorxor><mode>3): New.
4826         (splitter for "big" integer ior, xor): New.
4827         (*bool<mode>3): Move.  Also handle AND.
4828         (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
4829         (splitter for "big" integer ior, xor): Delete.
4830
4831 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4832
4833         * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
4834         (two anonymous define_insn and two define_split): Delete.
4835         (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
4836
4837 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4838
4839         * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
4840         (two anonymous define_insn and two define_split): Delete.
4841         (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
4842
4843 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4844
4845         * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
4846
4847 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4848
4849         * config/rs6000/predicates.md (ca_operand): Allow subregs.
4850         (input_operand): Do not allow ca_operand.
4851         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
4852         carry bit, allow SImode and Pmode.
4853         (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
4854
4855 2014-09-21  Uros Bizjak  <ubizjak@gmail.com>
4856
4857         * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
4858         clobbered registers using clobber_reg.  Remove UNSPEC decoration.
4859         * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
4860         (*call_rex64_ms_sysv): Remove.
4861         (*call_value_rex64_ms_sysv): Ditto.
4862         * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
4863
4864 2014-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>
4865
4866         * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
4867         operand 3 to "CnL".
4868
4869 2014-09-20  Andreas Schwab  <schwab@suse.de>
4870
4871         * config/ia64/ia64.md: Remove constraints from define_split
4872         patterns.
4873
4874 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4875
4876         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
4877         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
4878         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
4879         (get_dynamic_type): Remove.
4880         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
4881         (clear_speculation): Bring to ipa-deivrt.h
4882         (get_class_context): Rename to ...
4883         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
4884         (contains_type_p): Update.
4885         (get_dynamic_type): Rename to ...
4886         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
4887         (possible_polymorphic_call_targets): UPdate.
4888         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
4889         * ipa-prop.c (ipa_analyze_call_uses): Update.
4890
4891 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4892
4893         * ipa-visibility.c (varpool_node::externally_visible_p): Do not
4894         privatize dynamic TLS variables.
4895
4896 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4897
4898         * diagnostic.c (warning_n): New function.
4899         * diagnostic-core.h (warning_n): Declare.
4900         * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
4901         output dynamic counts when available.
4902
4903 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4904
4905         PR tree-optimization/63255
4906         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
4907         issue in setting body_removed flag.
4908
4909 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4910
4911         PR c++/61825
4912         * c-family/c-common.c (handle_alias_ifunc_attribute): Check
4913         that visibility change is possible
4914         (handle_weakref_attribute): Likewise.
4915         * cgraph.h (symtab_node): Add method get_create and
4916         field refuse_visibility_changes.
4917         (symtab_node::get_create): New method.
4918         * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
4919         * varasm.c (mark_weak): Verify that visibility change is
4920         possible.
4921
4922 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
4923
4924         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
4925         for base_reg_operand to be common between LO_SUM and PLUS.
4926         (fusion_gpr_mem_combo): New predicate to match a fused address
4927         that combines the addis and memory offset address.
4928
4929         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
4930         calling signature.
4931         (emit_fusion_gpr_load): Likewise.
4932
4933         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
4934         signature to pass each argument separately, rather than
4935         using an operands array.  Rewrite the insns found by peephole2 to
4936         be a single insn, rather than hoping the insns will still be
4937         together when the peephole pass is done.  Drop being called via a
4938         normal peephole.
4939         (emit_fusion_gpr_load): Change calling signature to be called from
4940         the fusion_gpr_load_<mode> insns with a combined memory address
4941         instead of the peephole pass passing the addis and offset
4942         separately.
4943
4944         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
4945         fusion.
4946         (power8 fusion peephole): Drop support for doing power8 via a
4947         normal peephole that was created by the peephole2 pass.
4948         (power8 fusion peephole2): Create a new insn with the fused
4949         address, so that the fused operation is kept together after
4950         register allocation is done.
4951         (fusion_gpr_load_<mode>): Likewise.
4952
4953 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4954
4955         PR lto/63286
4956         * tree.c (need_assembler_name_p): Do not mangle variadic types.
4957
4958 2014-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
4959
4960         * recog.c (scratch_operand): Do not simply allow all hard registers:
4961         only allow those that are allocatable.
4962
4963 2014-09-19  Felix Yang  <felix.yang@huawei.com>
4964
4965         * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
4966         comments and fix spacing to conform to coding style.
4967
4968 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4969
4970         * genrecog.c (validate_pattern): Allow empty constraints in
4971         a match_scratch.
4972
4973 2014-09-19  Aldy Hernandez  <aldyh@redhat.com>
4974
4975         * dwarf2out.c (decl_ultimate_origin): Update comment.
4976         * tree.c (block_ultimate_origin): Same.
4977
4978 2014-09-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4979
4980         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
4981         Update GCC version name to GCC 5.
4982         (rs6000_function_arg_boundary): Likewise.
4983         (rs6000_function_arg): Likewise.
4984
4985 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4986
4987         * config/sh/sh.md: Fix use of constraints in define_split.
4988
4989 2014-09-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
4990
4991         PR ipa/61998
4992         * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
4993
4994 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4995
4996         * doc/md.texi (Modifiers): Consistently use "read/write"
4997         nomenclature rather than "input/output".
4998         * genrecog.c (constraints_supported_in_insn_p): New.
4999         (validate_pattern): If needed, also check constraints on
5000         MATCH_SCRATCH operands.
5001         * genoutput.c (validate_insn_alternatives): Catch earlyclobber
5002         operands with no '=' or '+' modifier.
5003
5004 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
5005
5006         * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
5007         scratch register as written.
5008
5009 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5010
5011         * config/s390/s390.c (s390_emit_epilogue): Remove bogus
5012         assignment.
5013
5014 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5015
5016         * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
5017         expanders.
5018
5019 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5020
5021         PR target/62662
5022         * config/s390/s390.c (s390_emit_epilogue): When doing the return
5023         address load optimization force s390_optimize_prologue to leave it
5024         that way.  Only do the optimization if we already decided to push
5025         r14 into a stack slot.
5026
5027 2014-09-19  Marat Zakirov  <m.zakirov@samsung.com>
5028
5029         * asan.c (build_check_stmt): Alignment arg was added.
5030         (asan_expand_check_ifn): Optimization for alignment >= 8.
5031
5032 2014-09-19  Olivier Hainque  <hainque@adacore.com>
5033
5034         * config/i386/vxworksae.h: Remove obsolete definitions.
5035         (STACK_CHECK_PROTECT): Define.
5036         * config/i386/vx-common.h: Remove.  Merge contents within
5037         config/i386/vxworks.h.
5038         * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
5039         i386/vx-common.h.
5040
5041 2014-09-19  Olivier Hainque  <hainque@adacore.com>
5042
5043         * config.gcc (powerpc-wrs-vxworksmils): New configuration.
5044         * config/rs6000/t-vxworksmils: New file.
5045         * config/rs6000/vxworksmils.h: New file.
5046
5047 2014-09-19  Olivier Hainque  <hainque@adacore.com>
5048
5049         * varasm.c (default_section_type_flags): Flag .persistent.bss
5050         sections as SECTION_BSS.
5051
5052 2014-09-19  Nick Clifton  <nickc@redhat.com>
5053
5054         * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
5055         pop'ed registers so that DCE does not eliminate them.
5056
5057 2014-09-18  Jan Hubicka  <hubicka@ucw.cz>
5058
5059         PR lto/63298
5060         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
5061
5062 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
5063
5064         * system.h (LIBGCC2_TF_CEXT): Poison.
5065         * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
5066         * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
5067         * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
5068         * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
5069         * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
5070         * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
5071         * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
5072         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
5073         * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
5074
5075 2014-09-19  Kito Cheng  <kito@0xlab.org>
5076
5077         * except.h: Fix header guard.
5078         * addresses.h: Add missing header guard.
5079         * cfghooks.h: Likewise.
5080         * collect-utils.h: Likewise.
5081         * collect2-aix.h: Likewise.
5082         * conditions.h: Likewise.
5083         * cselib.h: Likewise.
5084         * dwarf2asm.h: Likewise.
5085         * graphds.h: Likewise.
5086         * graphite-scop-detection.h: Likewise.
5087         * gsyms.h: Likewise.
5088         * hw-doloop.h: Likewise.
5089         * incpath.h: Likewise.
5090         * ipa-inline.h: Likewise.
5091         * ipa-ref.h: Likewise.
5092         * ira-int.h: Likewise.
5093         * ira.h: Likewise.
5094         * lra-int.h: Likewise.
5095         * lra.h: Likewise.
5096         * lto-section-names.h: Likewise.
5097         * read-md.h: Likewise.
5098         * reload.h: Likewise.
5099         * rtl-error.h: Likewise.
5100         * sdbout.h: Likewise.
5101         * targhooks.h: Likewise.
5102         * tree-affine.h: Likewise.
5103         * xcoff.h: Likewise.
5104         * xcoffout.h: Likewise.
5105
5106 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
5107
5108         PR debug/63285
5109         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
5110         if advance != 0.
5111
5112 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
5113
5114         PR target/61360
5115         * lra.c (lra): Call recog_init.
5116
5117 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
5118
5119         PR c++/62017
5120         * asan.c (transform_statements): Don't instrument clobber statements.
5121
5122 2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5123
5124         * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
5125         to neon_load1_1reg<q>.
5126
5127 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
5128
5129         PR debug/63284
5130         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
5131         if there are only debug stmts after the noreturn call, instead
5132         remove the debug stmts.
5133
5134 2014-09-17  Jan Hubicka  <hubicka@ucw.cz>
5135
5136         * ipa-devirt.c (type_pair, default_hashset_traits): New types.
5137         (odr_types_equivalent_p): Use pair hash.
5138         (odr_subtypes_equivalent_p): Likewise, do structural compare
5139         on ODR types that may be mismatched.
5140         (warn_odr): Support warning when only one field is given.
5141         (odr_types_equivalent_p): Strenghten comparsions made;
5142         support VOIDtype.
5143         (add_type_duplicate): Update VISITED hash set.
5144
5145 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5146
5147         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
5148         Enable selection of 'posix' or no thread model.
5149
5150 2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
5151
5152         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
5153         when architecture is older than ARMv7.
5154
5155 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
5156
5157         PR target/61853
5158         * config/pa/pa.c (pa_function_value): Directly handle aggregates
5159         that fit exactly in a word or double word.
5160
5161 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
5162
5163         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
5164         zmm/k regs support.
5165
5166 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5167             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5168             Anna Tikhonova  <anna.tikhonova@intel.com>
5169             Ilya Tocar  <ilya.tocar@intel.com>
5170             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5171             Ilya Verbin  <ilya.verbin@intel.com>
5172             Kirill Yukhin  <kirill.yukhin@intel.com>
5173             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5174
5175         * config/i386/i386.c
5176         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
5177         * config/i386/sse.md
5178         (define_mode_iterator VI48F_256): New.
5179         (define_mode_attr extract_type): Ditto.
5180         (define_mode_attr extract_suf): Ditto.
5181         (define_mode_iterator AVX512_VEC): Ditto.
5182         (define_expand
5183         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
5184         AVX512_VEC.
5185         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
5186         (define_insn
5187         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
5188         Ditto.
5189         (define_mode_attr extract_type_2): Ditto.
5190         (define_mode_attr extract_suf_2): Ditto.
5191         (define_mode_iterator AVX512_VEC_2): Ditto.
5192         (define_expand
5193         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
5194         AVX512_VEC_2 mode iterator.
5195         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
5196         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
5197         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
5198         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
5199         (define_split for V16FI mode): Ditto.
5200         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
5201         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
5202         (define_split for VI8F_256 mode): Ditto.
5203         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
5204         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
5205         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
5206         (define_split for VI4F_256 mode): Ditto.
5207         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
5208         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
5209         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
5210         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
5211         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
5212         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
5213         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
5214         Update `type' attribute, remove explicit `memory' attribute calculation.
5215
5216 2014-09-16  Kito Cheng  <kito@0xlab.org>
5217
5218         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
5219         ira_spilled_reg_stack_slots_num if using lra.
5220         (do_reload): Remove release ira_spilled_reg_stack_slots part.
5221         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
5222         make sure not using lra.
5223         (ira_reuse_stack_slot): Likewise.
5224         (ira_mark_new_stack_slot): Likewise.
5225
5226 2014-09-15  Andi Kleen  <ak@linux.intel.com>
5227
5228         * function.c (allocate_struct_function): Force
5229         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
5230         profiling is disabled.
5231
5232 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
5233
5234         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
5235         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
5236         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
5237         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
5238         macro with statically checked member functions.
5239         * rtl.h (rtx_insn::deleted): New method.
5240         (rtx_insn::set_deleted): Likewise.
5241         (rtx_insn::set_undeleted): Likewise.
5242         (INSN_DELETED_P): Remove.
5243
5244 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
5245
5246         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
5247         result of emit_jump_insn_before to a new variable.
5248         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
5249         (mark_jump_label_1): Likewise.
5250         (mark_jump_label_asm): Likewise.
5251         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
5252         * rtl.h (mark_jump_label): Adjust.
5253
5254 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
5255
5256         * Makefile.in (dg_target_exps): Remove.
5257         (check_gcc_parallelize): Change to just an upper bound number.
5258         (check-%-subtargets): Always print the non-parallelized goals.
5259         (check_p_vars, check_p_comma, check_p_subwork): Remove.
5260         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
5261         check_p_numbers3, check_p_numbers4, check_p_numbers5,
5262         check_p_numbers6): New variables.
5263         (check_p_numbers): Set to sequence from 1 to 9999.
5264         (check_p_subdirs): Set to sequence from 1 to minimum of
5265         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
5266         or 128.
5267         (check-%, check-parallel-%): Rewritten so that for parallelized
5268         testing each job runs all the *.exp files, with
5269         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
5270
5271 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
5272
5273         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
5274         rtx to rtx_insn *.
5275         (arc_sets_cc_p): Likewise.
5276         * config/arc/arc.c (arc_print_operand): Use methods of
5277         "final_sequence" for clarity, and to enable strengthening of
5278         locals "jump" and "delay" from rtx to rtx_insn *.
5279         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
5280         rtx_insn *; use method of rtx_sequence for typesafety.
5281         (arc_get_insn_variants): Use insn method of rtx_sequence for
5282         typesafety.
5283         (arc_pad_return): Likewise.
5284         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
5285         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
5286         dyn_cast to rtx_sequence *, using insn method for typesafety.
5287         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
5288         rtx_sequence * and use insn method when invoking get_attr_length.
5289         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
5290         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
5291         rtx_sequence *, introducing a local "seq", using its insn method
5292         from typesafety and clarity.
5293         (add_sched_insns_for_speculation): Strengthen local "next" from
5294         rtx to rtx_insn *.
5295         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
5296         (predicate_insn): Likewise.
5297         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
5298         second param.
5299         * config/cris/cris.c (cris_notice_update_cc): Likewise.
5300         * config/epiphany/epiphany-protos.h
5301         (extern void epiphany_insert_mode_switch_use): Likewise for param
5302         "insn".
5303         (get_attr_sched_use_fpu): Likewise for param.
5304         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
5305         Likewise for param "insn".
5306         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
5307         param "insn" of "target_insert_mode_switch_use" callback.
5308         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
5309         (frv_issues_to_branch_unit_p): Likewise.
5310         (frv_pack_insn_p): Likewise.
5311         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
5312         const rtx * (i.e. mutable rtx_def * const *) to
5313         rtx_insn * const *.
5314         * config/i386/i386-protos.h (standard_sse_constant_opcode):
5315         Strengthen first param from rtx to rtx_insn *.
5316         (output_fix_trunc): Likewise.
5317         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
5318         (output_fix_trunc): Likewise.
5319         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
5320         local "insn".
5321         (min_insn_size): Likewise for param "insn".
5322         (get_mem_group): Likewise.
5323         (is_cmp): Likewise.
5324         (get_insn_path): Likewise.
5325         (get_insn_group): Likewise.
5326         (count_num_restricted): Likewise.
5327         (fits_dispatch_window): Likewise.
5328         (add_insn_window): Likewise.
5329         (add_to_dispatch_window): Likewise.
5330         (debug_insn_dispatch_info_file): Likewise.
5331         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
5332         first param.
5333         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
5334         "cmp" and local "prev".
5335         (m32c_output_compare): Likewise for param "insn".
5336         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
5337         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
5338         (define_predicate "large_insn_p"): Likewise.
5339         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
5340         param from rtx to rtx_insn *.
5341         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
5342         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
5343         (m68k_sched_attr_size): Likewise.
5344         (sched_get_opxy_mem_type): Likewise for param "insn".
5345         (m68k_sched_attr_op_mem): Likewise.
5346         (sched_mem_operand_p): Likewise.
5347         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
5348         * config/mep/mep.c (mep_multi_slot): Likewise.
5349         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
5350         first param.
5351         (mips_sync_loop_insns): Likewise.
5352         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
5353         method of "final_sequence" for typesafety.
5354         (mips_process_sync_loop): Strengthen param "insn" from rtx to
5355         rtx_insn *.
5356         (mips_output_sync_loop): Likewise.
5357         (mips_sync_loop_insns): Likewise.
5358         (mips_74k_agen_init): Likewise.
5359         (mips_sched_init): Use NULL rather than NULL_RTX when working with
5360         insns.
5361         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
5362         Strengthen param "insn" from rtx to rtx_insn *.
5363         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
5364         local "insn".
5365         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
5366         param.
5367         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
5368         "insn".  Use method of rtx_sequence for typesafety.
5369         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
5370         rtx_insn *.
5371         (branch_needs_nop_p): Likewise.
5372         (use_skip_p): Likewise.
5373         (pa_insn_refs_are_delayed): Likewise.
5374         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
5375         for locals "insn", "ninsn".
5376         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
5377         "insn".
5378         (is_cracked_insn): Likewise.
5379         (is_branch_slot_insn): Likewise.
5380         (is_nonpipeline_insn): Likewise.
5381         (insn_terminates_group_p): Likewise.
5382         (insn_must_be_first_in_group): Likewise.
5383         (insn_must_be_last_in_group): Likewise.
5384         (force_new_group): Likewise for param "next_insn".
5385         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
5386         "insn".
5387         (s390_sched_score): Likewise.
5388         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
5389         (rtx sfunc_uses_reg): Likewise for sole param.
5390         * config/sh/sh.c (sh_print_operand): Use insn method of
5391         final_sequence for typesafety.
5392         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
5393         Use insn method of final_sequence for typesafety.
5394         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
5395         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
5396         for param.
5397         (eligible_for_return_delay): Likewise.
5398         (eligible_for_sibcall_delay): Likewise.
5399         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
5400         (eligible_for_return_delay): Likewise.
5401         (eligible_for_sibcall_delay): Likewise.
5402         * config/stormy16/stormy16-protos.h
5403         (xstormy16_output_cbranch_hi): Likewise for final param.
5404         (xstormy16_output_cbranch_si): Likewise.
5405         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
5406         (xstormy16_output_cbranch_si): Likewise.
5407         * config/v850/v850-protos.h (notice_update_cc): Likewise.
5408         * config/v850/v850.c (notice_update_cc): Likewise.
5409
5410         * final.c (get_attr_length_1): Strengthen param "insn" and param
5411         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
5412         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
5413         (get_attr_min_length): Likewise.
5414         (shorten_branches): Likewise for signature of locals "length_fun"
5415         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
5416         from a checked cast and use its methods for clarity and to enable
5417         strengthening local "inner_insn" from rtx to rtx_insn *.
5418         * genattr.c (gen_attr): When writing out the prototypes of the
5419         various generated "get_attr_" functions, strengthen the params of
5420         the non-const functions from rtx to rtx_insn *.
5421         Similarly, strengthen the params of insn_default_length,
5422         insn_min_length, insn_variable_length_p, insn_current_length.
5423         (main): Similarly, strengthen the param of num_delay_slots,
5424         internal_dfa_insn_code, insn_default_latency, bypass_p,
5425         insn_latency, min_issue_delay, print_reservation,
5426         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
5427         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
5428         to hook_int_rtx_insn_unreachable.
5429         * genattrtab.c (write_attr_get): When writing out the generated
5430         "get_attr_" functions, strengthen the param "insn" from rtx to
5431         rtx_insn *, eliminating a checked cast.
5432         (make_automaton_attrs): When writing out prototypes of
5433         "internal_dfa_insn_code_", "insn_default_latency_" functions
5434         and the "internal_dfa_insn_code" and "insn_default_latency"
5435         callbacks, strengthen their params from rtx to rtx_insn *
5436         * genautomata.c (output_internal_insn_code_evaluation): When
5437         writing out code, add a checked cast from rtx to rtx_insn * when
5438         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
5439         (output_dfa_insn_code_func): Strengthen param of generated
5440         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
5441         (output_trans_func): Likewise for generated function
5442         "state_transition".
5443         (output_internal_insn_latency_func): When writing out generated
5444         function "internal_insn_latency", rename params from "insn" and
5445         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
5446         locals "insn" and "insn2" as rtx_insn * with checked casts once
5447         we've proven that we're not dealing with const0_rtx.
5448         (output_insn_latency_func):  Strengthen param of generated
5449         function "insn_latency" from rtx to rtx_insn *.
5450         (output_print_reservation_func): Likewise for generated function
5451         "print_reservation".
5452         (output_insn_has_dfa_reservation_p): Likewise for generated
5453         function "insn_has_dfa_reservation_p".
5454         * hooks.c (hook_int_rtx_unreachable): Rename to...
5455         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
5456         from rtx to rtx_insn *.
5457         * hooks.h (hook_int_rtx_unreachable): Likewise.
5458         (extern int hook_int_rtx_insn_unreachable): Likewise.
5459         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
5460         (get_attr_min_length): Likewise.
5461         * recog.c (get_enabled_alternatives): Likewise.
5462         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
5463         * reorg.c (find_end_label): Introduce local rtx "pat" and
5464         strengthen local "insn" from rtx to rtx_insn *.
5465         (redundant_insn): Use insn method of "seq" rather than element for
5466         typesafety; strengthen local "control" from rtx to rtx_insn *.
5467         * resource.c (mark_referenced_resources): Add checked cast to
5468         rtx_insn * within INSN/JUMP_INSN case.
5469         (mark_set_resources): Likewise.
5470         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
5471         rtx to rtx_insn *.
5472
5473 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
5474
5475         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
5476         param "label" from rtx to rtx_insn *.
5477         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
5478         and local "op".
5479         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
5480         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
5481         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
5482         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
5483         * final.c (default_label_align_after_barrier_max_skip): Strengthen
5484         param from rtx to rtx_insn *.
5485         (default_loop_align_max_skip): Likewise.
5486         (default_label_align_max_skip): Likewise.
5487         (default_jump_align_max_skip): Likewise.
5488         * target.def (label_align_after_barrier_max_skip): Likewise.
5489         (loop_align_max_skip): Likewise.
5490         (label_align_max_skip): Likewise.
5491         (jump_align_max_skip): Likewise.
5492         * targhooks.h (default_label_align_after_barrier_max_skip):
5493         Likewise.
5494         (default_loop_align_max_skip): Likewise.
5495         (default_label_align_max_skip): Likewise.
5496         (default_jump_align_max_skip): Likewise.
5497
5498 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
5499
5500         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
5501         from const_rtx to const rtx_insn *.  Update union members from rtx
5502         to rtx_insn *.
5503         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
5504         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
5505         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
5506         strengthen both params from const_rtx to const rtx_insn *.
5507         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
5508         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
5509         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
5510         rtx_insn *.
5511         * target.def (can_follow_jump): Strengthen both params from
5512         const_rtx to const rtx_insn *, and update default implementation
5513         from hook_bool_const_rtx_const_rtx_true to
5514         hook_bool_const_rtx_insn_const_rtx_insn_true.
5515
5516 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
5517
5518         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
5519         "insn" from rtx to rtx_insn *.
5520         * sched-int.h (deps_start_bb): Likewise for 2nd param.
5521
5522 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5523             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5524             Anna Tikhonova  <anna.tikhonova@intel.com>
5525             Ilya Tocar  <ilya.tocar@intel.com>
5526             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5527             Ilya Verbin  <ilya.verbin@intel.com>
5528             Kirill Yukhin  <kirill.yukhin@intel.com>
5529             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5530
5531         * config/i386/sse.md
5532         (define_insn "vcvtph2ps<mask_name>"): Add masking.
5533         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
5534         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
5535         (define_expand "vcvtps2ph_mask"): New.
5536         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
5537         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
5538         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
5539
5540 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5541             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5542             Anna Tikhonova  <anna.tikhonova@intel.com>
5543             Ilya Tocar  <ilya.tocar@intel.com>
5544             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5545             Ilya Verbin  <ilya.verbin@intel.com>
5546             Kirill Yukhin  <kirill.yukhin@intel.com>
5547             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5548
5549         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
5550         New.
5551         (define_mode_iterator VI24_AVX512BW_1): Ditto.
5552         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
5553         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
5554         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
5555         also for TARGET_AVX512VL.
5556         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
5557
5558 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
5559
5560         * doc/install.texi (Options specification): add
5561         --disable-libsanitizer item.
5562
5563 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
5564             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5565
5566         PR target/61407
5567         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
5568         and above.
5569         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
5570         kernel version check to avoid incrementing it after every major OS X
5571         release.
5572         (darwin_default_min_version): Avoid static memory buffer.
5573
5574 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
5575
5576         * tree.c (need_assembler_name_p): Store C++ type mangling only
5577         for aggregates.
5578
5579 2014-09-13  Marek Polacek  <polacek@redhat.com>
5580
5581         * tree.c (protected_set_expr_location): Don't check whether T is
5582         non-null here.
5583
5584 2014-09-12  DJ Delorie  <dj@redhat.com>
5585
5586         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
5587         (extend_and_shift1_hipsi2): Likewise.
5588         (extend_and_shift2_hipsi2): Likewise.
5589
5590 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
5591
5592         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
5593         with NULL when dealing with an insn.
5594         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
5595         from rtx to rtx_insn *.
5596         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
5597         const_rtx to const rtx_insn *.
5598         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
5599
5600 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
5601
5602         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
5603         assert.
5604
5605 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
5606
5607         * target.def (libgcc_floating_mode_supported_p): New hook.
5608         * targhooks.c (default_libgcc_floating_mode_supported_p): New
5609         function.
5610         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
5611         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
5612         (LIBGCC2_HAS_TF_MODE): Remove.
5613         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
5614         * doc/tm.texi: Regenerate.
5615         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
5616         machine mode.
5617         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
5618         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
5619         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
5620         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
5621         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5622         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
5623         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
5624         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
5625         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
5626         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
5627         function.
5628         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
5629         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5630         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5631         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5632         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5633         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5634         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5635         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
5636         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
5637         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
5638         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5639         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
5640         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
5641         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
5642         Remove.
5643         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
5644         New macro.
5645         (ia64_libgcc_floating_mode_supported_p): New function.
5646         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
5647         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
5648         (IA64_NO_LIBGCC_TFMODE): Define.
5649         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
5650         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
5651         macro.
5652         (pdp11_scalar_mode_supported_p): New function.
5653         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
5654         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
5655
5656 2014-09-12  Richard Biener  <rguenther@suse.de>
5657
5658         PR middle-end/63237
5659         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
5660
5661 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
5662
5663         * tree.c (integer_each_onep): New function.
5664         * tree.h (integer_each_onep): Declare it.
5665         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
5666         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
5667         (X & 1) == 0 for vector and complex.
5668
5669 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5670
5671         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
5672         for A57.
5673         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
5674         cost to spilling from integer to FP registers.
5675
5676 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5677
5678         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
5679         move handling.
5680         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
5681         are now handled correctly.
5682
5683 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5684
5685         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
5686         handling of CALLER_SAVE_REGS and POINTER_REGS.
5687
5688 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5689
5690         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
5691         the number of hard registers.
5692
5693 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5694             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5695             Anna Tikhonova  <anna.tikhonova@intel.com>
5696             Ilya Tocar  <ilya.tocar@intel.com>
5697             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5698             Ilya Verbin  <ilya.verbin@intel.com>
5699             Kirill Yukhin  <kirill.yukhin@intel.com>
5700             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5701
5702         * config/i386/sse.md
5703         (define_mode_iterator VI48_AVX512VL): New.
5704         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
5705         "avx512f_vternlog<mode>_maskz" and update mode iterator.
5706         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
5707         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
5708         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
5709         "avx512f_vternlog<mode>_mask" and update mode iterator.
5710         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
5711         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
5712         iterator.
5713         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
5714         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
5715         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
5716         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
5717         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
5718         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
5719
5720 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5721             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5722             Anna Tikhonova  <anna.tikhonova@intel.com>
5723             Ilya Tocar  <ilya.tocar@intel.com>
5724             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5725             Ilya Verbin  <ilya.verbin@intel.com>
5726             Kirill Yukhin  <kirill.yukhin@intel.com>
5727             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5728
5729         * config/i386/sse.md (VI128_256): Delete.
5730         (define_mode_iterator VI124_256): New.
5731         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
5732         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
5733         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
5734         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
5735         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
5736         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
5737         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
5738         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
5739         iterator.
5740         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
5741         in presence of AVX-512.
5742
5743 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5744             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5745             Anna Tikhonova  <anna.tikhonova@intel.com>
5746             Ilya Tocar  <ilya.tocar@intel.com>
5747             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5748             Ilya Verbin  <ilya.verbin@intel.com>
5749             Kirill Yukhin  <kirill.yukhin@intel.com>
5750             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5751
5752         * config/i386/sse.md
5753         (define_expand "<avx512>_gathersi<mode>"): Rename from
5754         "avx512f_gathersi<mode>".
5755         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
5756         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
5757         (define_expand "<avx512>_gatherdi<mode>"): Rename from
5758         "avx512f_gatherdi<mode>".
5759         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
5760         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
5761         wide versions.
5762         (define_expand "<avx512>_scattersi<mode>"): Rename from
5763         "avx512f_scattersi<mode>".
5764         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
5765         (define_expand "<avx512>_scatterdi<mode>"): Rename from
5766         "avx512f_scatterdi<mode>".
5767         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
5768
5769 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
5770
5771         * ira.h (ira_finish_once): Delete.
5772         * ira-int.h (target_ira_int::~target_ira_int): Declare.
5773         (target_ira_int::free_ira_costs): Likewise.
5774         (target_ira_int::free_register_move_costs): Likewise.
5775         (ira_finish_costs_once): Delete.
5776         * ira.c (free_register_move_costs): Replace with...
5777         (target_ira_int::free_register_move_costs): ...this new function.
5778         (target_ira_int::~target_ira_int): Define.
5779         (ira_init): Call free_register_move_costs as a member function rather
5780         than a global function.
5781         (ira_finish_once): Delete.
5782         * ira-costs.c (free_ira_costs): Replace with...
5783         (target_ira_int::free_ira_costs): ...this new function.
5784         (ira_init_costs): Call free_ira_costs as a member function rather
5785         than a global function.
5786         (ira_finish_costs_once): Delete.
5787         * target-globals.c (target_globals::~target_globals): Call the
5788         target_ira_int destructor.
5789         * toplev.c: Include lra.h.
5790         (finalize): Call lra_finish_once rather than ira_finish_once.
5791
5792 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
5793
5794         * common.opt (flto-odr-type-merging): New flag.
5795         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
5796         (types_same_for_odr): Likewise.
5797         (odr_subtypes_equivalent_p): Likewise.
5798         (add_type_duplicate): Do not walk type variants.
5799         (register_odr_type): New function.
5800         * ipa-utils.h (register_odr_type): Declare.
5801         (odr_type_p): New function.
5802         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
5803         TYPE_DECLs
5804         * doc/invoke.texi (-flto-odr-type-merging): Document.
5805         * tree.c (need_assembler_name_p): Compute ODR names when asked
5806         for it.
5807         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
5808
5809 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
5810
5811         PR target/63228
5812         * config/i386/i386.c (ix86_option_override_internal): Also turn
5813         off OPTION_MASK_ABI_X32 for -m16.
5814
5815 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
5816
5817         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
5818         GPR instead of P.
5819
5820 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
5821
5822         PR target/58757
5823         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
5824         Directly forward to __*_DENORM_MIN__.
5825
5826 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
5827
5828         * rtl.h (LABEL_REF_LABEL): New macro.
5829
5830         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
5831         of XEXP (, 0), where we know that we have a LABEL_REF.
5832         * cfgbuild.c (make_edges): Likewise.
5833         (purge_dead_tablejump_edges): Likewise.
5834         * cfgexpand.c (convert_debug_memory_address): Likewise.
5835         * cfgrtl.c (patch_jump_insn): Likewise.
5836         * combine.c (distribute_notes): Likewise.
5837         * cse.c (hash_rtx_cb): Likewise.
5838         (exp_equiv_p): Likewise.
5839         (fold_rtx): Likewise.
5840         (check_for_label_ref): Likewise.
5841         * cselib.c (rtx_equal_for_cselib_1): Likewise.
5842         (cselib_hash_rtx): Likewise.
5843         * emit-rtl.c (mark_label_nuses): Likewise.
5844         * explow.c (convert_memory_address_addr_space): Likewise.
5845         * final.c (output_asm_label): Likewise.
5846         (output_addr_const): Likewise.
5847         * gcse.c (add_label_notes): Likewise.
5848         * genconfig.c (walk_insn_part): Likewise.
5849         * genrecog.c (validate_pattern): Likewise.
5850         * ifcvt.c (cond_exec_get_condition): Likewise.
5851         (noce_emit_store_flag): Likewise.
5852         (noce_get_alt_condition): Likewise.
5853         (noce_get_condition): Likewise.
5854         * jump.c (maybe_propagate_label_ref): Likewise.
5855         (mark_jump_label_1): Likewise.
5856         (redirect_exp_1): Likewise.
5857         (rtx_renumbered_equal_p): Likewise.
5858         * lra-constraints.c (operands_match_p): Likewise.
5859         * reload.c (operands_match_p): Likewise.
5860         (find_reloads): Likewise.
5861         * reload1.c (set_label_offsets): Likewise.
5862         * reorg.c (get_branch_condition): Likewise.
5863         * rtl.c (rtx_equal_p_cb): Likewise.
5864         (rtx_equal_p): Likewise.
5865         * rtlanal.c (reg_mentioned_p): Likewise.
5866         (rtx_referenced_p): Likewise.
5867         (get_condition): Likewise.
5868         * sched-vis.c (print_value): Likewise.
5869         * varasm.c (const_hash_1): Likewise.
5870         (compare_constant): Likewise.
5871         (const_rtx_hash_1): Likewise.
5872         (output_constant_pool_1): Likewise.
5873
5874 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
5875
5876         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
5877         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
5878         instead of minus.
5879         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
5880         cr6_test_for_lt_reverse): Ditto.
5881
5882 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
5883
5884         PR c++/61489
5885         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
5886
5887 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
5888
5889         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
5890         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
5891         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
5892         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
5893         Delete.
5894
5895         (aarch64_fold_builtin): Remove all reinterpret cases.
5896
5897         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
5898
5899         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
5900
5901         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
5902         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
5903         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
5904         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
5905         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
5906         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
5907         aarch64_reinterpretv2df<mode>): Delete.
5908
5909         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
5910
5911         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
5912         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
5913         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
5914         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
5915         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
5916         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
5917         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
5918         vreinterpret_u32_f64): Use cast.
5919
5920         * config/aarch64/iterators.md (VD_RE): Delete.
5921
5922 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
5923
5924         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
5925         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
5926         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
5927         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
5928         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
5929         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
5930         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
5931         Replace inline assembler with __aarch64_vset_lane_any.
5932
5933 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
5934
5935         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
5936         types.
5937         (vmull_high_lane_s32): Likewise.
5938         (vmull_high_lane_u16): Likewise.
5939         (vmull_high_lane_u32): Likewise.
5940
5941 2014-09-11  Jason Merrill  <jason@redhat.com>
5942
5943         PR c++/58678
5944         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
5945
5946 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
5947
5948         PR target/63223
5949         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
5950         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
5951         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
5952
5953 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5954             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5955             Anna Tikhonova  <anna.tikhonova@intel.com>
5956             Ilya Tocar  <ilya.tocar@intel.com>
5957             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5958             Ilya Verbin  <ilya.verbin@intel.com>
5959             Kirill Yukhin  <kirill.yukhin@intel.com>
5960             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5961
5962         * config/i386/sse.md
5963         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
5964         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
5965         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
5966         New.
5967         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
5968         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
5969         iterator.
5970         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
5971         New.
5972         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
5973         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
5974         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
5975         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
5976         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
5977         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
5978         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
5979         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
5980         iterator.
5981         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
5982         New.
5983         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
5984         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
5985         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
5986
5987 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
5988
5989         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
5990         to access removed nodes.
5991
5992 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
5993
5994         PR tree-optimization/63186
5995         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
5996         (mark_nonssa_use): Likewise.
5997         (verify_non_ssa_vars): Verify all header blocks for label
5998         definitions.
5999
6000 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
6001             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
6002             Anna Tikhonova  <anna.tikhonova@intel.com>
6003             Ilya Tocar  <ilya.tocar@intel.com>
6004             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6005             Ilya Verbin  <ilya.verbin@intel.com>
6006             Kirill Yukhin  <kirill.yukhin@intel.com>
6007             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6008
6009         * config/i386/sse.md
6010         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
6011         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
6012         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
6013         "<avx2_avx512f>_permvar<mode><mask_name>".
6014         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
6015         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
6016         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
6017         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
6018         Ditto.
6019         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
6020         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
6021         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
6022         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
6023
6024 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
6025
6026         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
6027         V2DF, V4SF, DF, and DI modes.
6028         (vsx_fmav2df2): Likewise.
6029         (vsx_float_fix_<mode>2): Likewise.
6030         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
6031
6032 2014-09-10  Xinliang David Li  <davidxl@google.com>
6033
6034         PR target/63209
6035         * config/arm/arm.md (movcond_addsi): Handle case where source
6036         and target operands are the same.
6037
6038 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
6039
6040         * final.c (this_is_asm_operands): Strengthen this variable from
6041         rtx to const rtx_insn *.
6042         * output.h (this_is_asm_operands): Likewise.
6043         * rtl-error.c (location_for_asm): Strengthen param "insn" from
6044         const_rtx to const rtx_insn *.
6045         (diagnostic_for_asm): Likewise.
6046         * rtl-error.h (error_for_asm): Likewise.
6047         (warning_for_asm): Likewise.
6048
6049 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
6050
6051         * genextract.c (print_header): When writing out insn_extract to
6052         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
6053         * recog.h (insn_extract): Strengthen the param from rtx to
6054         rtx_insn *.
6055
6056 2014-09-10  Mike Stump  <mikestump@comcast.net>
6057
6058         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
6059         8.6.1.
6060
6061 2014-09-10  Martin Jambor  <mjambor@suse.cz>
6062
6063         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
6064         (analyze): Do not set analyze flag if expand_thunk returns false;.
6065         (create_wrapper): Likewise.
6066         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
6067
6068 2014-09-10  Martin Jambor  <mjambor@suse.cz>
6069
6070         PR ipa/61654
6071         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
6072         new decl properly.  Analyze the new thunk if it is expanded.
6073
6074 2014-09-10  Andreas Schwab  <schwab@suse.de>
6075
6076         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
6077         [USED_FOR_TARGET]: Define.
6078
6079 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
6080
6081         * config/mips/mips.c (mips_secondary_reload_class): Handle
6082         regno < 0 case.
6083
6084 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
6085
6086         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
6087         assignment.
6088
6089 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
6090
6091         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
6092         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
6093         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
6094         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
6095         flag_delete_null_pointer_checks for them.
6096         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
6097         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
6098         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
6099         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
6100         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
6101         stmt's iterator.
6102         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
6103         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
6104         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
6105         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
6106         * doc/invoke.texi (-fsanitize=nonnull-attribute,
6107         -fsanitize=returns-nonnull-attribute): Document.
6108
6109         * ubsan.h (struct ubsan_mismatch_data): Removed.
6110         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
6111         * ubsan.c (ubsan_source_location): For unknown locations,
6112         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
6113         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
6114         Allow more than one location and arbitrary extra arguments passed
6115         in ... instead of through MISMATCH pointer.
6116         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
6117         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
6118         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
6119         callers.
6120
6121 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
6122             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
6123             Anna Tikhonova  <anna.tikhonova@intel.com>
6124             Ilya Tocar  <ilya.tocar@intel.com>
6125             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6126             Ilya Verbin  <ilya.verbin@intel.com>
6127             Kirill Yukhin  <kirill.yukhin@intel.com>
6128             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6129
6130         * config/i386/sse.md
6131         (define_mode_iterator VI48F): New.
6132         (define_insn "<avx512>_compress<mode>_mask"): Rename from
6133         "avx512f_compress<mode>_mask" and update mode iterator.
6134         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
6135         "avx512f_compressstore<mode>_mask" and update mode iterator.
6136         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
6137         "avx512f_expand<mode>_maskz" and update mode iterator.
6138         (define_insn "<avx512>_expand<mode>_mask"): Rename from
6139         "avx512f_expand<mode>_mask" and update mode iterator.
6140
6141 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
6142             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
6143             Anna Tikhonova  <anna.tikhonova@intel.com>
6144             Ilya Tocar  <ilya.tocar@intel.com>
6145             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6146             Ilya Verbin  <ilya.verbin@intel.com>
6147             Kirill Yukhin  <kirill.yukhin@intel.com>
6148             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6149
6150         * config/i386/i386.c
6151         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
6152         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
6153         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
6154         avx512dq_rangepv4sf_mask.
6155         * config/i386/sse.md
6156         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
6157         UNSPEC_RANGE.
6158         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
6159         (define_insn "reduces<mode>"): Ditto.
6160         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
6161         Ditto.
6162         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
6163         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
6164         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
6165
6166 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
6167             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
6168             Anna Tikhonova  <anna.tikhonova@intel.com>
6169             Ilya Tocar  <ilya.tocar@intel.com>
6170             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6171             Ilya Verbin  <ilya.verbin@intel.com>
6172             Kirill Yukhin  <kirill.yukhin@intel.com>
6173             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6174
6175         * config/i386/i386.c
6176         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
6177         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
6178         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
6179         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
6180         avx512vl_getmantv2df_mask.
6181         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
6182         avx512f_vgetmantv4sf_round.
6183         * config/i386/sse.md
6184         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
6185         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
6186         mode iterator.
6187         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
6188         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
6189         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
6190         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
6191         iterator..
6192         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
6193         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
6194         update mode iterator.
6195         (define_expand
6196         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
6197         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
6198         mode iterator.
6199         (define_insn
6200         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
6201         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
6202         update mode iterator.
6203         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
6204         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
6205         iterator..
6206         (define_insn
6207         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
6208         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
6209         mode iterator..
6210         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
6211         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
6212         update mode iterator.
6213         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
6214         "avx512f_getmant<mode><round_saeonly_name>".
6215
6216 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
6217
6218         PR ipa/63166
6219         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
6220
6221 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
6222             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
6223             Anna Tikhonova  <anna.tikhonova@intel.com>
6224             Ilya Tocar  <ilya.tocar@intel.com>
6225             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6226             Ilya Verbin  <ilya.verbin@intel.com>
6227             Kirill Yukhin  <kirill.yukhin@intel.com>
6228             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6229
6230         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
6231         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
6232         (define_mode_iterator FMAMODE_AVX512): New.
6233         (define_mode_iterator FMAMODE): Remove conditions.
6234         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
6235         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
6236         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
6237         mode iterator.
6238         (define_mode_iterator FMAMODE_NOVF512): Remove.
6239         (define_insn "*fma_fmadd_<mode>"): Rename from
6240         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
6241         FMAMODE mode iterator.
6242         (define_mode_iterator VF_SF_AVX512VL): New.
6243         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
6244         Use VF_SF_AVX512VL mode iterator.
6245         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
6246         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
6247         iterator.
6248         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
6249         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6250         iterator.
6251         (define_insn "*fma_fmsub_<mode>"): Rename from
6252         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
6253         FMAMODE mode iterator.
6254         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
6255         Use VF_SF_AVX512VL mode iterator.
6256         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
6257         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
6258         iterator.
6259         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
6260         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6261         iterator.
6262         (define_insn "*fma_fnmadd_<mode>"): Rename from
6263         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
6264         use FMAMODE mode iterator.
6265         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
6266         Use VF_SF_AVX512VL mode iterator.
6267         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
6268         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
6269         iterator.
6270         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
6271         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6272         iterator.
6273         (define_insn "*fma_fnmsub_<mode>"): Rename from
6274         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
6275         FMAMODE mode iterator.
6276         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
6277         Use VF_SF_AVX512VL mode iterator.
6278         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
6279         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
6280         iterator.
6281         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
6282         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6283         iterator.
6284         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
6285         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
6286         use VF_AVX512VL mode iterator.
6287         (define_insn "*fma_fmaddsub_<mode>"): Rename from
6288         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
6289         remove subst usage.
6290         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
6291         Use VF_SF_AVX512VL mode iterator.
6292         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
6293         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
6294         iterator.
6295         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
6296         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6297         iterator.
6298         (define_insn "*fma_fmsubadd_<mode>"): Rename from
6299         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
6300         remove usage of subst.
6301         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
6302         Use VF_SF_AVX512VL mode iterator.
6303         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
6304         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
6305         iterator.
6306         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
6307         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6308         iterator.
6309
6310 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
6311
6312         Revert r213751:
6313         * calls.c (precompute_arguments): Check
6314          promoted_for_signed_and_unsigned_p and set the promoted mode.
6315         (promoted_for_signed_and_unsigned_p): New function.
6316         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
6317         and set the promoted mode.
6318         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
6319         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
6320         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
6321
6322 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6323
6324         * opth-gen.awk: Generate mapping from cpp message reasons to the
6325         options that enable them.
6326         * doc/options.texi (CppReason): Document.
6327
6328 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6329
6330         * doc/invoke.texi (Wnormalized=): Update.
6331
6332 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
6333
6334         PR target/63195
6335         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
6336         operands.  Split off the constant operand alternative to ...
6337         (*bool<mode>3_imm): New.
6338
6339 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6340
6341         * rtl.h (single_set_2): Strengthen first param from const_rtx to
6342         const rtx_insn *, and move prototype to above...
6343         (single_set): ...this.  Convert this from a macro to an inline
6344         function, enforcing the requirement that the param is a const
6345         rtx_insn *.
6346         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
6347
6348         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
6349         Strengthen both params from rtx to rtx_insn *.
6350         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
6351         Likewise; introduce locals "producer_set", "consumer_set", using
6352         them in place of "producer" and "consumer" when dealing with SET
6353         rather than insn.
6354         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
6355         when invoking single_set in region guarded by INSN_P.
6356         (avr_out_bitop): Likewise.
6357         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
6358         region guarded by GET_CODE check, using methods to strengthen
6359         local "this_insn" from rtx to rtx_insn *, and for clarity.
6360         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
6361         Strengthen local "insn" from rtx to rtx_insn *.
6362         (define_insn_and_split "xload<mode>_A"): Likewise.
6363         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
6364         "insn".
6365         (find_load): Likewise for return type.
6366         (workaround_speculation): Likewise for both locals named
6367         "load_insn".
6368         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
6369         local "cc0_user".
6370         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
6371         for local "prev".
6372         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
6373         param 2.
6374         * config/h8300/h8300.c (notice_update_cc): Likewise.
6375         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
6376         "insn" and "dep_insn".
6377         (exact_store_load_dependency): Likewise for both params.
6378         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
6379         since this now clashes with inline function.  Instead, delay
6380         calling single_set until the point where its needed, and then
6381         assign the result to "compare_set" and rework the conditional that
6382         follows.
6383         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
6384         local "last" from rtx to rtx_insn *.
6385         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
6386         second param.
6387         (mips_store_data_bypass_p): Likewise for both params.
6388         * config/mips/mips.c (mips_load_store_insns): Likewise for second
6389         param.
6390         (mips_store_data_bypass_p): Likewise for both params.
6391         (mips_orphaned_high_part_p): Likewise for param "insn".
6392         * config/mn10300/mn10300.c (extract_bundle): Likewise.
6393         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
6394         Introduce local rtx "insn2_pat".
6395         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
6396         "ninsn".
6397         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
6398         Introduce local rtx "set", using it in place of "insn" for the
6399         result of single_set.  This appears to fix a bug, since the call
6400         to find_regno_note on a SET does nothing.
6401         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
6402         params from rtx to rtx_insn *.
6403         (set_to_load_agen): Likewise.
6404         * config/s390/s390.c (s390_label_align): Likewise for local
6405         "prev_insn".  Introduce new rtx locals "set" and "src", using
6406         them in place of "prev_insn" for the results of single_set
6407         and SET_SRC respectively.
6408         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
6409         Introduce new rtx local "set" using in place of "jump" for the
6410         result of single_set.  Use SET_SRC (set) rather than plain
6411         XEXP (set, 1).
6412         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
6413         rtx to rtx_insn *.
6414         (noncall_uses_reg): Likewise.
6415         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
6416         guarded by GET_CODE check, using its methods for clarity, and to
6417         enable strengthening local "this_insn" from rtx to rtx_insn *.
6418         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
6419         "insn" from rtx to rtx_insn *.
6420         (define_expand "umulhisi3"): Likewise.
6421         (define_expand "smulsi3_highpart"): Likewise.
6422         (define_expand "umulsi3_highpart"): Likewise.
6423         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
6424         local "after".  Replace GET_CODE check with a dyn_cast,
6425         introducing new local rtx_sequence * "seq", using insn method for
6426         typesafety.
6427
6428         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
6429         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
6430         place of "insn" once we're dealing with patterns rather than the
6431         input insn.
6432         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
6433         (scan_trace): Likewise for local "elt", updating lookups within
6434         sequence to use insn method rather than element method.
6435         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
6436         to rtx_insn *.
6437         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
6438         * ifcvt.c (noce_try_abs): Likewise for local "insn".
6439         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
6440         invoking single_set.
6441         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
6442         "insn" from rtx to rtx_insn *.
6443         (skip_usage_debug_insns): Likewise for return type, adding a
6444         checked cast.
6445         (check_secondary_memory_needed_p): Likewise for local "insn".
6446         (inherit_reload_reg): Likewise.
6447         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
6448         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
6449         checked casts.
6450         (store_data_bypass_p): Likewise for both params.
6451         (if_test_bypass_p): Likewise.
6452         * recog.h (store_data_bypass_p): Likewise for both params.
6453         (if_test_bypass_p): Likewise.
6454         * reload.c (find_equiv_reg): Likewise for local "where".
6455         * reorg.c (delete_jump): Likewise for param "insn".
6456         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
6457         to const rtx_insn *.
6458         * store-motion.c (replace_store_insn): Likewise for param "del".
6459         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
6460         and use its methods for clarity, and to strengthen local "del"
6461         from rtx to rtx_insn *.
6462         (build_store_vectors): Use insn method of "st" when calling
6463         replace_store_insn for typesafety and clarity.
6464
6465 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6466
6467         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
6468         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
6469         on how to make it legal in future.
6470
6471 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6472
6473         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
6474         to rtx_insn *.
6475         (restinsn): Likewise.
6476         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
6477         Likewise for param.
6478         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
6479         Likewise.
6480         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
6481         first param.
6482         (arc_hazard): Likewise for both params.
6483         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
6484         checked casts to rtx_sequence * and uses of the insn method for
6485         type-safety.
6486         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
6487         (arc_adjust_insn_length): Likewise for param "insn".
6488         (struct insn_length_parameters_s): Likewise for first param of
6489         "get_variants" callback field.
6490         (arc_get_insn_variants): Likewise for first param and local
6491         "inner".  Replace a check of GET_CODE with a dyn_cast to
6492         rtx_sequence *, using methods for type-safety and clarity.
6493         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
6494         rtx_sequence * and uses of the insn method for type-safety when
6495         invoking arc_adjust_insn_length.
6496         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
6497         for param.
6498         (arm_address_offset_is_imm): Likewise.
6499         (struct tune_params): Likewise for params 1 and 3 of the
6500         "sched_adjust_cost" callback field.
6501         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
6502         params 1 and 3 ("insn" and "dep").
6503         (xscale_sched_adjust_cost): Likewise.
6504         (fa726te_sched_adjust_cost): Likewise.
6505         (cortexa7_older_only): Likewise for param "insn".
6506         (cortexa7_younger): Likewise.
6507         (arm_attr_length_move_neon): Likewise.
6508         (arm_address_offset_is_imm): Likewise.
6509         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
6510         * config/avr/avr.c (avr_notice_update_cc): Likewise.
6511         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
6512         (workaround_speculation): Likewise for local "last_condjump".
6513         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
6514         (shadow_or_blockage_p): Likewise.
6515         (get_unit_reqs): Likewise.
6516         (get_unit_operand_masks): Likewise.
6517         (c6x_registers_update): Likewise.
6518         (returning_call_p): Likewise.
6519         (can_use_callp): Likewise.
6520         (convert_to_callp): Likewise.
6521         (find_last_same_clock): Likwise for local "t".
6522         (reorg_split_calls): Likewise for local "shadow".
6523         (hwloop_pattern_reg): Likewise for param "insn".
6524         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
6525         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
6526         (frv_extract_membar): Likewise.
6527         (frv_optimize_membar_local): Strengthen param "last_membar" from
6528         rtx * to rtx_insn **.
6529         (frv_optimize_membar_global): Strengthen param "membar" from rtx
6530         to rtx_insn *.
6531         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
6532         to rtx_insn **.
6533         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
6534         both params from rtx to rtx_insn *.
6535         (ia64_ld_address_bypass_p): Likewise.
6536         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
6537         "insn".
6538         (ia64_safe_type): Likewise.
6539         (group_barrier_needed): Likewise.
6540         (safe_group_barrier_needed): Likewise.
6541         (ia64_single_set): Likewise.
6542         (is_load_p): Likewise.
6543         (record_memory_reference): Likewise.
6544         (get_mode_no_for_insn): Likewise.
6545         (important_for_bundling_p): Likewise.
6546         (unknown_for_bundling_p): Likewise.
6547         (ia64_st_address_bypass_p): Likewise for both params.
6548         (ia64_ld_address_bypass_p): Likewise.
6549         (expand_vselect): Introduce new local rtx_insn * "insn", using it
6550         in place of rtx "x" after the emit_insn call.
6551         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
6552         Strengthen param from rtx to rtx_insn *.
6553         (ix86_agi_dependent): Likewise for both params.
6554         (ix86_attr_length_immediate_default): Likewise for param 1.
6555         (ix86_attr_length_address_default): Likewise for param.
6556         (ix86_attr_length_vex_default): Likewise for param 1.
6557         * config/i386/i386.c (ix86_attr_length_immediate_default):
6558         Likewise for param "insn".
6559         (ix86_attr_length_address_default): Likewise.
6560         (ix86_attr_length_vex_default): Likewise.
6561         (ix86_agi_dependent): Likewise for both params.
6562         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
6563         (vselect_insn): Likewise for this variable.
6564         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
6565         for param 1.
6566         (m68k_sched_attr_opy_type): Likewise.
6567         * config/m68k/m68k.c (sched_get_operand): Likewise.
6568         (sched_attr_op_type): Likewise.
6569         (m68k_sched_attr_opx_type): Likewise.
6570         (m68k_sched_attr_opy_type): Likewise.
6571         (sched_get_reg_operand): Likewise.
6572         (sched_get_mem_operand): Likewise.
6573         (m68k_sched_address_bypass_p): Likewise for both params.
6574         (sched_get_indexed_address_scale): Likewise.
6575         (m68k_sched_indexed_address_bypass_p): Likewise.
6576         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
6577         (m68k_sched_indexed_address_bypass_p): Likewise.
6578         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
6579         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
6580         removing another.
6581         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
6582         params from rtx to rtx_insn *.
6583         (mips_fmadd_bypass): Likewise.
6584         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
6585         (mips_linked_madd_p): Likewise.
6586         (mips_macc_chains_last_hilo): Likewise for this variable.
6587         (mips_macc_chains_record): Likewise for param.
6588         (vr4130_last_insn): Likewise for this variable.
6589         (vr4130_swap_insns_p): Likewise for both params.
6590         (mips_ls2_variable_issue): Likewise for param.
6591         (mips_need_noat_wrapper_p): Likewise for param "insn".
6592         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
6593         in place of "x" after the emit_insn.
6594         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
6595         params from rtx to rtx_insn *.
6596         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
6597         (pa_combine_instructions): Introduce local "par" for result of
6598         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
6599         to make_insn_raw.
6600         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
6601         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
6602         (rl78_alloc_physical_registers_op1): Likewise.
6603         (rl78_alloc_physical_registers_op2): Likewise.
6604         (rl78_alloc_physical_registers_ro1): Likewise.
6605         (rl78_alloc_physical_registers_cmp): Likewise.
6606         (rl78_alloc_physical_registers_umul): Likewise.
6607         (rl78_alloc_address_registers_macax): Likewise.
6608         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
6609         * config/s390/predicates.md (execute_operation): Likewise for
6610         local "insn".
6611         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
6612         params.
6613         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
6614         (addr_generation_dependency_p): Likewise for param "insn".
6615         (s390_agen_dep_p): Likewise for both params.
6616         (s390_fpload_toreg): Likewise for param "insn".
6617         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
6618         * config/sh/sh.c (sh_loop_align): Likewise for param and local
6619         "next".
6620         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
6621         * config/sh/sh_treg_combine.cc
6622         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
6623         and local "i".
6624         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
6625         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
6626         "and_insn", "load", "shift".
6627         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
6628         "insn".
6629         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
6630         for XEXP (note, 0) of the REG_CC_SETTER note.
6631         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
6632         rtx_insn *, eliminating a checked cast made redundant by this.
6633         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
6634         to rtx_insn *.
6635         * genattr.c (main): When writing out the prototype to
6636         const_num_delay_slots, strengthen the param from rtx to
6637         rtx_insn *.
6638         * genattrtab.c (write_const_num_delay_slots): Likewise when
6639         writing out the implementation of const_num_delay_slots.
6640         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
6641         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
6642         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
6643         favor of new rtx locals "src" and "set" and new local rtx_insn *
6644         "insn" and "seq".
6645         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
6646         to rtx_insn *.
6647         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
6648         locals "cond", "if_then_else", "set" and new rtx_insn * locals
6649         "insn" and "seq".
6650         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
6651         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
6652         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
6653         the top-level scope, replacing with new more tightly-scoped rtx
6654         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
6655         "new_insn", "copy_of_insn_b", and make local rtx "set" more
6656         tightly-scoped.
6657         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
6658         rtx_insn *.
6659         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
6660         "move_insn".
6661         (ira_setup_alts): Likewise for param "insn".
6662         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
6663         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
6664         and an rtx_insn *.
6665         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
6666         new more-tightly scoped rtx locals "add3_insn", "insn",
6667         "add2_insn" and rtx_insn * "move_insn".
6668         * postreload-gcse.c (eliminate_partially_redundant_load): Add
6669         checked cast on result of gen_move_insn when invoking
6670         extract_insn.
6671         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
6672         rtx_insn *.
6673         (verify_changes): Add a checked cast on "object" when invoking
6674         insn_invalid_p.
6675         (extract_insn_cached): Strengthen param "insn" from rtx to
6676         rtx_insn *.
6677         (extract_constrain_insn_cached): Likewise.
6678         (extract_insn): Likewise.
6679         * recog.h (insn_invalid_p): Likewise for param 1.
6680         (recog_memoized): Likewise for param.
6681         (extract_insn): Likewise.
6682         (extract_constrain_insn_cached): Likewise.
6683         (extract_insn_cached): Likewise.
6684         * reload.c (can_reload_into): Likewise for local "test_insn".
6685         * reload.h (cleanup_subreg_operands): Likewise for param.
6686         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
6687         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
6688         result of emit_insn.  Remove a checked cast made redundant by this
6689         change.
6690         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
6691         rtx to rtx_insn *.
6692         * sel-sched.c (get_reg_class): Likewise.
6693
6694 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6695             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6696
6697         * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
6698         * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
6699         Define.
6700         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
6701
6702 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6703
6704         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
6705         const rtx_insn *, and from rtx to rtx_insn * for the other
6706         overloaded variant.
6707         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
6708         INSN_LOCATION, since we know INSN_P holds.
6709         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
6710         (insn_file): Likewise.
6711         (insn_scope): Likewise.
6712         (insn_location): Likewise.
6713
6714         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
6715         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
6716         for the result of gen_load_const_gp.
6717         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
6718         param from rtx to rtx_insn *.
6719         * config/rs6000/rs6000.c (output_call): Likewise.
6720         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
6721         introducing a checked cast to rtx_sequence * and use of the insn
6722         method.
6723         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
6724         from rtx to rtx_insn *.
6725         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
6726         (insn_line): Likewise.
6727         (insn_file): Likewise.
6728         (insn_location): Likewise.
6729         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
6730         from rtx to rtx_insn *.
6731         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
6732         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
6733         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
6734         via a checked cast.
6735         * reorg.c (relax_delay_slots): Strengthen locals named "after"
6736         from rtx to rtx_insn *; use methods of "pat" for type-safety.
6737
6738 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6739
6740         * combine.c (try_combine): Eliminate checked cast on result of
6741         gen_rtx_INSN.
6742         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
6743         autogenerated one by strengthening the return type and params 2 and 3
6744         from rtx to rtx_insn *, and by naming the params.
6745         * gengenrtl.c (special_rtx): Add INSN to those that are
6746         special-cased.
6747         * rtl.h (gen_rtx_INSN): New prototype.
6748
6749 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6750
6751         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
6752         than NULL_RTX.
6753         (no_equiv): Likewise.
6754         (update_equiv_regs): Likewise.
6755         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
6756         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
6757         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
6758         clarity.
6759         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
6760         from rtx to rtx_insn_list *.
6761         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
6762         rtx_insn_list * and use methods for clarity and typesafety.
6763         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
6764         "list".
6765         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
6766         redundant check on INSN_P (insns): this cannot hold, as "insns" is
6767         an INSN_LIST, not an insn.
6768         (reverse_equiv_p): Strengthen local "insns" from rtx to
6769         rtx_insn_list * and use methods for clarity and typesafety.
6770         (contains_reloaded_insn_p): Likewise for local "list".
6771
6772 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
6773
6774         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
6775         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
6776         (arm_builtin_vectorized_function): Likewise.
6777         * config/arm/arm_neon_builtins.def: New macro for copysignf.
6778         * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
6779
6780 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
6781
6782         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
6783         * builtins.h (default_target_builtins): Likewise.
6784         * gcse.h (default_target_gcse): Likewise.
6785         * target-globals.h (target_globals): Add a destructor.  Convert
6786         void-pointer fields back to their real type and change from
6787         GTY((atomic)) to GTY((skip)).
6788         (restore_target_globals): Remove casts accordingly.
6789         * target-globals.c (save_target_globals): Use XCNEW rather than
6790         ggc_internal_cleared_alloc to allocate non-GC structures.
6791         Use ggc_cleared_alloc to allocate the target_globals structure
6792         itself.
6793         (target_globals::~target_globals): Define.
6794
6795 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6796
6797         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
6798         mnemonic instead of fldmfdd.
6799         * config/arm/arm.c (vfp_output_fstmd): Rename to...
6800         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
6801         Output vpush when address register is SP.
6802         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
6803         (vfp_output_vstmd): ... This.
6804         * config/arm/vfp.md (push_multi_vfp): Update call to
6805         vfp_output_vstmd.
6806
6807 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6808
6809         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
6810
6811 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6812
6813         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
6814         (*sqrtdf2_vfp): Likewise.
6815         (*cmpsf_vfp): Likewise.
6816         (*cmpsf_trap_vfp): Likewise.
6817         (*cmpdf_vfp): Likewise.
6818         (*cmpdf_trap_vfp): Likewise.
6819
6820 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6821
6822         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
6823         (*truncdfsf2_vfp): Likewise.
6824         (*truncsisf2_vfp): Likewise.
6825         (*truncsidf2_vfp): Likewise.
6826         (fixuns_truncsfsi2): Likewise.
6827         (fixuns_truncdfsi2): Likewise.
6828         (*floatsisf2_vfp): Likewise.
6829         (*floatsidf2_vfp): Likewise.
6830         (floatunssisf2): Likewise.
6831         (floatunssidf2): Likewise.
6832
6833 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6834
6835         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
6836         (*muldf3_vfp): Likewise.
6837         (*mulsf3negsf_vfp): Likewise.
6838         (*muldf3negdf_vfp): Likewise.
6839         (*mulsf3addsf_vfp): Likewise.
6840         (*muldf3adddf_vfp): Likewise.
6841         (*mulsf3subsf_vfp): Likewise.
6842         (*muldf3subdf_vfp): Likewise.
6843         (*mulsf3negsfaddsf_vfp): Likewise.
6844         (*fmuldf3negdfadddf_vfp): Likewise.
6845         (*mulsf3negsfsubsf_vfp): Likewise.
6846         (*muldf3negdfsubdf_vfp): Likewise.
6847
6848 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6849
6850         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
6851         (*absdf2_vfp): Likewise.
6852         (*negsf2_vfp): Likewise.
6853         (*negdf2_vfp): Likewise.
6854         (*addsf3_vfp): Likewise.
6855         (*adddf3_vfp): Likewise.
6856         (*subsf3_vfp): Likewise.
6857         (*subdf3_vfp): Likewise.
6858         (*divsf3_vfp): Likewise.
6859         (*divdf3_vfp): Likewise.
6860
6861 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6862
6863         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
6864         multiple.
6865         (arm_print_operand): Don't convert real values to decimal
6866         representation in default case.
6867         (fp_immediate_constant): Delete.
6868         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
6869         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
6870         syntax.
6871         (*thumb2_movsi_vfp): Likewise.
6872         (*movdi_vfp): Likewise.
6873         (*movdi_vfp_cortexa8): Likewise.
6874         (*movhf_vfp_neon): Likewise.
6875         (*movhf_vfp): Likewise.
6876         (*movsf_vfp): Likewise.
6877         (*thumb2_movsf_vfp): Likewise.
6878         (*movdf_vfp): Likewise.
6879         (*thumb2_movdf_vfp): Likewise.
6880         (*movsfcc_vfp): Likewise.
6881         (*thumb2_movsfcc_vfp): Likewise.
6882         (*movdfcc_vfp): Likewise.
6883         (*thumb2_movdfcc_vfp): Likewise.
6884
6885 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
6886
6887         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
6888         (-mtune): Likewise.
6889         (-mcpu): Likewise.
6890
6891 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6892
6893         PR target/61749
6894         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
6895         Use qualifier_immediate for last operand.  Rename to...
6896         (aarch64_types_ternop_lane_qualifiers): ... This.
6897         (TYPES_QUADOP): Rename to...
6898         (TYPES_TERNOP_LANE): ... This.
6899         (aarch64_simd_expand_args): Return const0_rtx when encountering user
6900         error.  Change return of 0 to return of NULL_RTX.
6901         (aarch64_crc32_expand_builtin): Likewise.
6902         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
6903         ICE when expanding unknown builtin.
6904         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
6905         TERNOP_LANE qualifiers.
6906         (sqdmlsl_lane): Likewise.
6907         (sqdmlal_laneq): Likewise.
6908         (sqdmlsl_laneq): Likewise.
6909         (sqdmlal2_lane): Likewise.
6910         (sqdmlsl2_lane): Likewise.
6911         (sqdmlal2_laneq): Likewise.
6912         (sqdmlsl2_laneq): Likewise.
6913
6914 2014-09-09  Nick Clifton  <nickc@redhat.com>
6915
6916         * doc/invoke.texi (Optimization Options): Add missing @gol to the
6917         end of a line.
6918         (S/390 and zSeries Options): Remove superfluous word from the
6919         description of the -mhotpatch option.
6920
6921 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
6922
6923         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
6924         * ira.c: #include "shrink-wrap.h"
6925         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
6926         * ifcvt.c: #include "shrink-wrap.h"
6927         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
6928
6929 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
6930
6931         * common/config/picochip/picochip-common.c: Remove.
6932         * config.gcc: Remove support for picochip.
6933         * config/picochip/constraints.md: Remove.
6934         * config/picochip/dfa_space.md: Remove.
6935         * config/picochip/dfa_speed.md: Remove.
6936         * config/picochip/picochip-protos.h: Remove.
6937         * config/picochip/picochip.c: Remove.
6938         * config/picochip/picochip.h: Remove.
6939         * config/picochip/picochip.md: Remove.
6940         * config/picochip/picochip.opt: Remove.
6941         * config/picochip/predicates.md: Remove.
6942         * config/picochip/t-picochip: Remove.
6943         * doc/md.texi: Don't document picochi.
6944
6945 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
6946
6947         * basic-block.h (control_flow_insn_p): Strengthen param from
6948         const_rtx to const rtx_insn *.
6949         * cfgbuild.c (control_flow_insn_p): Likewise.
6950
6951 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
6952
6953         * gcse.c (modify_mem_list): Strengthen this variable from
6954         vec<rtx> * to vec<rtx_insn *> *.
6955         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
6956         vec<rtx_insn *>.
6957         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
6958         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
6959         (record_last_mem_set_info): Strengthen param "insn" from rtx to
6960         rtx_insn *.
6961         (record_last_set_info): Likewise for local "last_set_insn".
6962
6963 2014-09-08  DJ Delorie  <dj@redhat.com>
6964
6965         * doc/invoke.texi (MSP430 Options): Add -minrt.
6966
6967 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6968
6969         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
6970         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
6971         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
6972         handling SH_SPLAT.
6973         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
6974         of extracted lane.
6975         (adjust_splat): New function.
6976         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
6977         (dump_swap_insn_table): Add case for SH_SPLAT.
6978
6979 2014-09-08  Richard Biener  <rguenther@suse.de>
6980
6981         PR ipa/63196
6982         * tree-inline.c (copy_loops): The source loop header should
6983         always be non-NULL.
6984         (tree_function_versioning): If loops need fixup after removing
6985         unreachable blocks fix them.
6986         * omp-low.c (simd_clone_adjust): Do not add incr block to
6987         loop under construction.
6988
6989 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6990
6991         * config/aarch64/aarch64-builtins.c
6992         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
6993
6994 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
6995
6996         * config/i386/cygming.h (TF_SIZE): Remove.
6997         * config/i386/darwin.h (TF_SIZE): Remove.
6998         * config/i386/dragonfly.h (TF_SIZE): Remove.
6999         * config/i386/freebsd.h (TF_SIZE): Remove.
7000         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
7001         * config/i386/openbsdelf.h (TF_SIZE): Remove.
7002         * config/i386/sol2.h (TF_SIZE): Remove.
7003         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
7004         * config/ia64/linux.h (TF_SIZE): Remove.
7005         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
7006         * doc/tm.texi: Regenerate.
7007         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
7008
7009 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
7010
7011         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
7012         Remove.
7013         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
7014         Remove.
7015         * doc/tm.texi: Regenerate.
7016         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
7017         Poison.
7018         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
7019         * config/cris/cris.h (__make_dp): Remove.
7020
7021 2014-09-08  Richard Biener  <rguenther@suse.de>
7022
7023         PR bootstrap/63204
7024         * cfgloop.c (mark_loop_for_removal): Track former header
7025         unconditionally.
7026         * cfgloop.h (struct loop): Add former_header member unconditionally.
7027         * loop-init.c (fix_loop_structure): Enable bogus loop removal
7028         diagnostic unconditionally.
7029
7030 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
7031
7032         PR target/63190
7033         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
7034         constraint for operand0 and remove write only modifier from operand3.
7035
7036 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
7037
7038         PR rtl-optimization/62208
7039         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
7040         rather than const0_rtx in eq/ne-xor simplifications.
7041
7042 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
7043
7044         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
7045         (arc_output_mi_thunk): Likewise.
7046
7047         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
7048         arguments to silence bogus warning.
7049
7050 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
7051
7052         PR middle-end/63171
7053         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
7054
7055 2014-09-06  Tom de Vries  <tom@codesourcery.com>
7056
7057         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
7058         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
7059         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
7060
7061 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
7062
7063         PR target/63188
7064         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
7065         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
7066
7067 2014-09-05  Easwaran Raman  <eraman@google.com>
7068
7069         PR rtl-optimization/62146
7070         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
7071         hoisted instruction unconditional.
7072
7073 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
7074
7075         PR target/63187
7076         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
7077         Do not allow any_mask_operand for operands[2].
7078         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
7079
7080 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7081
7082         * config/arc/arc.c (arc_print_operand): Use insn method of
7083         final_sequence for type-safety.
7084         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
7085         "insn" from rtx to rtx_insn *.
7086         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
7087         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
7088         Likewise for locals "branch", "label".
7089         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
7090         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
7091         (same_cmp_following_p): Likewise for locals "i2", "i3".
7092         * config/sh/sh_optimize_sett_clrt.cc
7093         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
7094         param "cbranch_insn".
7095         * function.c (convert_jumps_to_returns): Likewis for local "jump".
7096         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
7097         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
7098         const rtx_insn *.
7099         (condjump_p): Likewise.
7100         (condjump_in_parallel_p): Likewise.
7101         (pc_set): Likewise.
7102         (any_uncondjump_p): Likewise.
7103         (any_condjump_p): Likewise.
7104         (condjump_label): Likewise.
7105         (returnjump_p): Strengthen param "insn" from rtx to
7106         const rtx_insn *.
7107         (onlyjump_p): Strengthen param "insn" from const_rtx to
7108         const rtx_insn *.
7109         (jump_to_label_p): Likewise.
7110         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
7111         (invert_jump): Likewise.
7112         * reorg.c (simplejump_or_return_p): Add checked cast when calling
7113         simplejump_p.
7114         (get_jump_flags): Strengthen param "insn" from rtx to
7115         const rtx_insn *.
7116         (get_branch_condition): Likewise.
7117         (condition_dominates_p): Likewise.
7118         (make_return_insns): Move declaration of local "pat" earlier, to
7119         after we've handled NONJUMP_INSN_P and non-sequences, using its
7120         methods to simplify the code and for type-safety.
7121         * rtl.h (find_constant_src): Strengthen param from const_rtx to
7122         const rtx_insn *.
7123         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
7124         (condjump_p): Strengthen param from const_rtx to
7125         const rtx_insn *.
7126         (any_condjump_p): Likewise.
7127         (any_uncondjump_p): Likewise.
7128         (pc_set): Likewise.
7129         (condjump_label): Likewise.
7130         (simplejump_p): Likewise.
7131         (returnjump_p): Likewise.
7132         (onlyjump_p): Likewise.
7133         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
7134         (invert_jump): Likewise.
7135         (condjump_in_parallel_p): Strengthen param from const_rtx to
7136         const rtx_insn *.
7137         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
7138         to const rtx_insn *.
7139         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
7140         to const rtx_insn *.
7141         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
7142
7143 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7144
7145         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
7146         above the conditional, and convert the check on GET_CODE to a
7147         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
7148         the conditional.  Simplify the conditional by using methods of
7149         "trial_seq".
7150
7151 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7152
7153         * haifa-sched.c (check_clobbered_conditions): Strengthen local
7154         "link" from rtx to rtx_insn_list *, and use its methods for
7155         clarity and type-safety.
7156         (toggle_cancelled_flags): Likewise.
7157         (restore_last_backtrack_point): Likewise.
7158         (queue_to_ready): Use insn method of "link" in one place.
7159         (schedule_block): Strengthen local "link" from rtx to
7160         rtx_insn_list *, and use its methods for clarity and type-safety.
7161
7162 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7163
7164         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
7165         param "insn" from const_rtx to const rtx_insn *.
7166         (sched_get_reverse_condition_uncached): Likewise.
7167         (sched_get_condition_with_rev): Likewise.
7168         (sched_has_condition_p): Likewise.
7169         (sched_insns_conditions_mutex_p): Likewise for both params.
7170         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
7171         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
7172         (setup_insn_reg_uses): Move local "list" to be more tightly
7173         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
7174         its methods for clarity and type-safety.
7175         (sched_analyze_1): Strengthen local "pending" from rtx to
7176         rtx_insn_list *, and local "pending_mem" from rtx to
7177         rtx_expr_list *.  Use methods of each for clarity and type-safety.
7178         (sched_analyze_2): Likewise.
7179         (sched_analyze_insn): Likewise.
7180
7181         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
7182         param from const_rtx to const rtx_insn *.
7183         (sched_insns_conditions_mutex_p): Likewise for both params.
7184         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
7185         param.
7186
7187         * system.h (CONST_CAST_RTX_INSN): New macro.
7188
7189 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7190
7191         * recog.c (peep2_attempt): Strengthen return type from rtx to
7192         rtx_insn *.
7193         (peep2_update_life): Likewise for params "last", "prev", removing
7194         a checked cast made redundant by this.
7195         (peephole2_optimize): Likewise for local "last".
7196
7197 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7198
7199         * basic-block.h (set_block_for_insn): Eliminate this macro in
7200         favor of...
7201         * rtl.h (set_block_for_insn): New inline function, imposing the
7202         requirement that the "insn" param is an rtx_insn *.
7203
7204 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7205
7206         * caller-save.c (setup_save_areas): Strengthen local "insn" from
7207         rtx to rtx_insn *.
7208         * final.c (get_call_reg_set_usage): Likewise for first param,
7209         eliminating a checked cast.
7210         * regs.h (get_call_reg_set_usage): Likewise for first param.
7211         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
7212         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
7213         cast, replacing references to "x" with "call_insn" where
7214         appropriate.
7215         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
7216         rtx_insn *, adding a checked cast.
7217
7218 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7219
7220         * output.h (final_scan_insn): Strengthen first param from rtx to
7221         rtx_insn *.
7222
7223         * final.c (final_scan_insn): Likewise, renaming it back from
7224         "uncast_insn" to "insn", eliminating the checked cast.
7225
7226         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
7227         "vec" with an rtx_sequence * "seq", taking a copy of
7228         "final_sequence", and using methods of "seq" for clarity, and for
7229         type-safety in the calls to final_scan_insn.
7230         * config/mips/mips.c (mips_output_conditional_branch): Use methods
7231         of "final_sequence" for clarity, and for type-safety in the call to
7232         final_scan_insn.
7233         * config/sh/sh.c (print_slot): Strengthen param from rtx to
7234         rtx_sequence * and rename from "insn" to "seq".
7235
7236 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7237
7238         * jump.c (delete_related_insns): Introduce a new local "table" by
7239         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
7240         get_labels method of "table" to simplify access to the labels in
7241         the jump table.
7242
7243 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7244
7245         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
7246         f_minmaxs, f_minmaxd types.
7247
7248 2014-09-05  Richard Biener  <rguenther@suse.de>
7249
7250         * cfgloop.c (mark_loop_for_removal): Record former header
7251         when ENABLE_CHECKING.
7252         * cfgloop.h (strut loop): Add former_header member when
7253         ENABLE_CHECKING.
7254         * loop-init.c (fix_loop_structure): Sanity check loops
7255         marked for removal if they re-appeared.
7256
7257 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7258
7259         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
7260         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
7261
7262         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
7263         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
7264         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
7265         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
7266         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
7267         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
7268         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
7269         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
7270         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
7271         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
7272         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
7273         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
7274         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
7275         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
7276         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
7277         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
7278         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
7279         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
7280         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
7281         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
7282         with int{32,16,8}_t.
7283
7284 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7285
7286         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
7287         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
7288         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
7289         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
7290         Remove temporary __asm__ and reimplement.
7291
7292 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7293
7294         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
7295         handling cmge, cmgt, cmeq, cmtst.
7296
7297         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
7298         cmlt, cmgeu, cmgtu, cmtst): Remove.
7299
7300         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
7301         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
7302         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
7303         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
7304
7305 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7306
7307         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
7308         TYPES_TST): Define.
7309         (aarch64_fold_builtin): Update pattern for cmtst.
7310
7311         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
7312         Declare.
7313
7314         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
7315
7316         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
7317         Switch operands, separate out more cases, refactor.
7318
7319         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
7320
7321         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
7322         argument; rename old version to...
7323         (aarch64_const_vec_all_same_in_range_p): ...this.
7324         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
7325
7326         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
7327
7328 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7329
7330         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
7331         Remove qualifier_const_pointer, update comment.
7332
7333 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7334
7335         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
7336
7337 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7338
7339         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
7340         varargs with pointer parameter.
7341         (aarch64_simd_expand_builtin): pass pointer into previous.
7342
7343 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7344
7345         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
7346         alus_ext.
7347
7348 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7349
7350         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
7351         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
7352         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
7353         Replace temporary asm with call to builtin.
7354         (vrbit_p8, vrbitq_p8): New functions.
7355
7356 2014-09-05  Richard Biener  <rguenther@suse.de>
7357
7358         * cfgloop.c (mark_loop_for_removal): New function.
7359         * cfgloop.h (mark_loop_for_removal): Declare.
7360         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
7361         (merge_blocks): Likewise.
7362         (duplicate_block): Likewise.
7363         * except.c (sjlj_emit_dispatch_table): Likewise.
7364         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
7365         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
7366         (thread_through_loop_header): Likewise.
7367
7368 2014-09-05  Richard Biener  <rguenther@suse.de>
7369
7370         PR middle-end/63148
7371         * fold-const.c (try_move_mult_to_index): Remove.
7372         (fold_binary_loc): Do not call it.
7373         * tree-data-ref.c (dr_analyze_indices): Strip conversions
7374         from the base object again.
7375
7376 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
7377
7378         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
7379         DImode.
7380
7381 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
7382
7383         PR target/55701
7384         * config/arm/arm.md (setmem): New pattern.
7385         * config/arm/arm-protos.h (struct tune_params): New fields.
7386         (arm_gen_setmem): New prototype.
7387         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
7388         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
7389         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
7390         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
7391         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
7392         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
7393         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
7394         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
7395         (arm_const_inline_cost): New function.
7396         (arm_block_set_max_insns): New function.
7397         (arm_block_set_non_vect_profit_p): New function.
7398         (arm_block_set_vect_profit_p): New function.
7399         (arm_block_set_unaligned_vect): New function.
7400         (arm_block_set_aligned_vect): New function.
7401         (arm_block_set_unaligned_non_vect): New function.
7402         (arm_block_set_aligned_non_vect): New function.
7403         (arm_block_set_vect, arm_gen_setmem): New functions.
7404
7405 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
7406
7407         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
7408
7409 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
7410
7411         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
7412
7413 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
7414
7415         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
7416         an rtx.
7417         * valtrack.h: Adjust.
7418
7419 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
7420
7421         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
7422         an rtx.
7423         (emit_jump_insn_before_noloc): Likewise.
7424         (emit_call_insn_before_noloc): Likewise.
7425         (emit_label_before): Likewise.
7426         (emit_label_after): Likewise.
7427         (emit_insn_before_setloc): Likewise.
7428         (emit_jump_insn_before_setloc): Likewise.
7429         (emit_call_insn_before_setloc): Likewise.
7430         (emit_call_insn_before): Likewise.
7431         * rtl.h: Adjust.
7432
7433 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7434
7435         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
7436         rtx_insn *, eliminating a checked cast.
7437
7438 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7439
7440         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
7441         const_rtx to const rtx_insn *.
7442         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
7443         cast.
7444
7445 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7446
7447         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
7448         fixup_args_size_notes.
7449         * expr.c (fixup_args_size_notes): Strengthen first two params from
7450         rtx to rtx_insn *, eliminating a checked cast.
7451         * rtl.h (fixup_args_size_notes): Strengthen first two params from
7452         rtx to rtx_insn *.
7453
7454 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7455
7456         * haifa-sched.c (get_ready_element): Strengthen return type from
7457         rtx to rtx_insn *.
7458         * sched-int.h (get_ready_element): Likewise.
7459
7460 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
7461
7462         PR target/63165
7463         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
7464         indexed_or_indirect_operand instead of memory_operand.
7465         (floatsi<mode>2_lfiwzx_mem): Ditto.
7466
7467 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
7468
7469         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
7470         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
7471         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
7472
7473 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
7474
7475         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
7476         rtx.
7477         (get_last_nonnote_insn): Likewise.
7478         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
7479         * resource.c (find_basic_block): Likewise.
7480         * rtl.h: Adjust.
7481         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
7482         const_rtx.
7483
7484 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
7485
7486         * genattr.c (main): Within the prototype of insn_latency written
7487         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
7488         * genautomata.c (output_internal_maximal_insn_latency_func):
7489         Within the implementation of insn_latency written out to
7490         insn-automata.c, strengthen both params from rtx to rtx_insn *,
7491         eliminating a pair of checked casts.
7492
7493 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
7494
7495         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
7496         rtx_insn *.
7497
7498         * rtl.h (eh_returnjump_p): Likewise.
7499
7500 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
7501
7502         * Makefile.in (TAGS): Handle constructs in timevar.def.
7503
7504 2014-09-04  Guozhi Wei  <carrot@google.com>
7505
7506         PR target/62040
7507         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
7508         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
7509         it into two patterns.
7510         (move_lo_quad_internal_be_<mode>): Likewise.
7511
7512 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7513
7514         * doc/options.texi: Document that Var and Init are required if CPP
7515         is given.
7516         * optc-gen.awk: Require Var and Init if CPP is given.
7517         * common.opt (Wpedantic): Use Init.
7518
7519 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7520
7521         * config/rs6000/rs6000.c (special_handling_values): Add
7522         SH_EXTRACT.
7523         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
7524         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
7525         as swappable with special handling SH_EXTRACT.  Remove
7526         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
7527         optimization.
7528         (adjust_extract): New function.
7529         (handle_special_swappables): Add default to case statement; add
7530         case for SH_EXTRACT that calls adjust_extract.
7531         (dump_swap_insn_table): Handle SH_EXTRACT.
7532
7533 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7534
7535         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
7536         selection of 0th memory doubleword, regardless of endianness.
7537
7538 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7539
7540         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
7541
7542 2014-09-04  Alan Modra  <amodra@gmail.com>
7543
7544         PR debug/60655
7545         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
7546         can't be output.
7547
7548 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
7549
7550         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
7551         * targhooks.c (default_dwarf_frame_reg_mode): New function.
7552         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
7553         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
7554         * doc/tm.texi: Regenerate.
7555         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
7556         selection logic to default_dwarf_frame_reg_mode.
7557
7558 2014-09-03  Marek Polacek  <polacek@redhat.com>
7559
7560         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
7561         by -Wall.
7562
7563 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
7564
7565         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
7566         the automodified register.
7567
7568 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
7569
7570         * output.h (get_some_local_dynamic_name): Declare.
7571         * final.c (some_local_dynamic_name): New variable.
7572         (get_some_local_dynamic_name): New function.
7573         (final_end_function): Clear some_local_dynamic_name.
7574         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
7575         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
7576         (print_operand): Report an error if '%&' is used inappropriately.
7577         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
7578         (get_some_local_dynamic_name_1): Delete.
7579         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
7580         (rs6000_get_some_local_dynamic_name): Delete.
7581         (rs6000_get_some_local_dynamic_name_1): Delete.
7582         (print_operand): Report an error if '%&' is used inappropriately.
7583         * config/s390/s390.c (machine_function): Remove some_ld_name.
7584         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
7585         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
7586         * config/sparc/sparc.c: Include rtl-iter.h.
7587         (machine_function): Remove some_ld_name.
7588         (sparc_print_operand): Report an error if '%&' is used inappropriately.
7589         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
7590
7591 2014-09-03  Richard Henderson  <rth@redhat.com>
7592
7593         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
7594         (aarch64_popwb_pair_reg): Remove.
7595         (aarch64_set_frame_expr): Remove.
7596         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
7597         the restore ops performed by the insns generated.
7598         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
7599         insn.  Perform the calls_eh_return addition later; do not attempt to
7600         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
7601         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
7602         special markup at all.  Load cfun->machine->frame.hard_fp_offset
7603         into a local variable.
7604         (aarch64_frame_pointer_required): Don't check calls_alloca.
7605
7606 2014-09-03  Richard Biener  <rguenther@suse.de>
7607
7608         * opts.c (default_options_optimization): Adjust
7609         max-combine-insns to 2 for -Og.
7610
7611 2014-09-03  Martin Jambor  <mjambor@suse.cz>
7612
7613         PR ipa/62015
7614         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
7615         pass-trough jump functions correctly.
7616
7617 2014-09-03  Martin Jambor  <mjambor@suse.cz>
7618
7619         PR ipa/61986
7620         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
7621         created replacements in ascending order of offsets.
7622         (known_aggs_to_agg_replacement_list): Likewise.
7623
7624 2014-09-03  Martin Liska  <mliska@suse.cz>
7625
7626         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
7627         is set to set uninitialized value for vnresult.
7628
7629 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7630
7631         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
7632         for TARGET_MUST_PASS_IN_STACK.
7633
7634 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7635
7636         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
7637         for TARGET_ARG_PARTIAL_BYTES.
7638
7639 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7640
7641         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
7642         instructions for varargs implementation.
7643         (nds32_expand_epilogue): Emit stack adjustment instructions for
7644         varargs implementation.
7645
7646 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7647
7648         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
7649         optimization detection.
7650
7651 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7652
7653         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
7654         arguments.
7655         (nds32_function_arg_advance): Deal with nameless arguments.
7656         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
7657         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
7658         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
7659
7660 2014-09-03  Richard Biener  <rguenther@suse.de>
7661
7662         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
7663         (struct bb_bitmap_sets): Remove deferred member.
7664         (BB_DEFERRED): Remove.
7665         (defer_or_phi_translate_block): Remove.
7666         (compute_antic_aux): Remove deferring of blocks, assert
7667         proper iteration order.
7668         (compute_antic): Do not set BB_DEFERRED.
7669         (eliminate): Allocate el_avail of proper size initially.
7670
7671 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7672
7673         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
7674         according to the value of crtl->args.pretend_args_size.
7675
7676 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7677
7678         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
7679         varargs information.
7680
7681 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7682
7683         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
7684         implementation for TARGET_SETUP_INCOMING_VARARGS.
7685         (nds32_strict_argument_naming): Refine comment.
7686         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
7687         Define for future implementation.
7688
7689 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
7690
7691         * config/i386/adxintrin.h (_subborrow_u32): New.
7692         (_addcarry_u32): Ditto.
7693         (_subborrow_u64): Ditto.
7694         (_addcarry_u64): Ditto.
7695         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
7696         IX86_BUILTIN_SBB64.
7697         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
7698         __builtin_ia32_sbb_u64
7699
7700 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7701
7702         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
7703         GPR-specific stuff.
7704         (nds32_function_arg_advance): Likewise.
7705         (nds32_init_cumulative_args): Likewise.
7706         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
7707         (NDS32_FIRST_GPR_REGNUM): Define.
7708         (NDS32_LAST_GPR_REGNUM): Define.
7709         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
7710         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
7711         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
7712         (machine_function): Use GRP-specific stuff.
7713
7714 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7715
7716         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
7717         (nds32_expand_epilogue): Likewise.
7718         (nds32_expand_prologue_v3push): Likewise.
7719         (nds32_expand_epilogue_v3pop): Likewise.
7720
7721 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7722
7723         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
7724         v3push/v3pop for variadic function.
7725         * config/nds32/nds32.md (prologue, epilogue): Likewise.
7726
7727 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7728
7729         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
7730         Check rtx for varargs implementation.
7731         (nds32_output_stack_pop): Likewise.
7732         * config/nds32/nds32-protos.h: Have a rtx argument for
7733         nds32_output_stack_push and nds32_output_stack_pop.
7734         * config/nds32/nds32.md: Likewise.
7735
7736 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7737
7738         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
7739         to check if FUNC is an interrupt service routine.
7740         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
7741
7742 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7743
7744         * config/nds32/nds32.h (machine_function): Add some fields for variadic
7745         arguments implementation.
7746
7747 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7748
7749         * config/nds32/nds32-predicates.c
7750         (nds32_valid_stack_push_pop): Rename to ...
7751         (nds32_valid_stack_push_pop_p): ... this.
7752         * config/nds32/nds32-protos.h: Likewise.
7753         * config/nds32/predicates.md: Likewise.
7754
7755 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7756
7757         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
7758         (nds32_emit_stack_v3push): ... this.
7759         (nds32_gen_stack_v3pop): Rename to ...
7760         (nds32_emit_stack_v3pop): ... this and consider CFA restore
7761         information.
7762
7763 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7764
7765         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
7766         (nds32_emit_stack_push_multiple): ... this.
7767         (nds32_gen_stack_pop_multiple): Rename to ...
7768         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
7769         information.
7770
7771 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7772
7773         PR target/61078
7774         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
7775         and add a second splitter to handle the remaining cases.
7776
7777 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7778
7779         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
7780
7781 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
7782
7783         * cfgexpand.c (label_rtx_for_bb): Change type to
7784         hash_map<basic_block, rtx_code_label *> *.
7785         (expand_gimple_basic_block): Adjust.
7786         (pass_expand::execute): Likewise.
7787
7788 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
7789
7790         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
7791         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
7792         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
7793         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
7794         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
7795         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
7796         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
7797         of rtx.
7798
7799 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
7800
7801         * alloc-pool.c: Include coretypes.h.
7802         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
7803         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
7804         hash_set instead of htab.
7805         * ggc-page.c (in_gc): New variable.
7806         (ggc_free): Do nothing if a collection is taking place.
7807         (ggc_collect): Set in_gc appropriately.
7808         * ggc.h (gt_ggc_mx(const char *)): New function.
7809         (gt_pch_nx(const char *)): Likewise.
7810         (gt_ggc_mx(int)): Likewise.
7811         (gt_pch_nx(int)): Likewise.
7812         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
7813         (hash_map::hash_entry::pch_nx): Likewise.
7814         (hash_map::hash_entry::pch_nx_helper): Likewise.
7815 (hash_map::hash_map): Adjust.
7816 (hash_map::create_ggc): New function.
7817 (gt_ggc_mx): Likewise.
7818 (gt_pch_nx): Likewise.
7819         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
7820 (default_hashset_traits::pch_nx): Likewise.
7821 (hash_set::hash_entry::ggc_mx): Likewise.
7822 (hash_set::hash_entry::pch_nx): Likewise.
7823 (hash_set::hash_entry::pch_nx_helper): Likewise.
7824 (hash_set::hash_set): Adjust.
7825 (hash_set::create_ggc): New function.
7826 (hash_set::elements): Likewise.
7827 (gt_ggc_mx): Likewise.
7828 (gt_pch_nx): Likewise.
7829         * hash-table.h (hash_table::hash_table): Adjust.
7830 (hash_table::m_ggc): New member.
7831         (hash_table::~hash_table): Adjust.
7832         (hash_table::expand): Likewise.
7833         (hash_table::empty): Likewise.
7834 (gt_ggc_mx): New function.
7835         (hashtab_entry_note_pointers): Likewise.
7836 (gt_pch_nx): Likewise.
7837
7838 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7839
7840         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
7841         built-in definition.
7842         (XVCVUXDDP_SCALE): Likewise.
7843         (XVCVDPSXDS_SCALE): Likewise.
7844         (XVCVDPUXDS_SCALE): Likewise.
7845         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
7846         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
7847         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
7848         VSX_BUILTIN_XVCVDPUXDS_SCALE.
7849         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
7850         prototype.
7851         * config/rs6000/rs6000.c (real.h): New include.
7852         (rs6000_scale_v2df): New function.
7853         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
7854         (UNSPEC_VSX_XVCVUXDDP): Likewise.
7855         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
7856         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
7857         (vsx_xvcvsxddp_scale): New define_expand.
7858         (vsx_xvcvsxddp): New define_insn.
7859         (vsx_xvcvuxddp_scale): New define_expand.
7860         (vsx_xvcvuxddp): New define_insn.
7861         (vsx_xvcvdpsxds_scale): New define_expand.
7862         (vsx_xvcvdpsxds): New define_insn.
7863         (vsx_xvcvdpuxds_scale): New define_expand.
7864         (vsx_xvcvdpuxds): New define_insn.
7865         * doc/extend.texi (vec_ctf): Add new prototypes.
7866         (vec_cts): Likewise.
7867         (vec_ctu): Likewise.
7868         (vec_splat): Likewise.
7869         (vec_div): Likewise.
7870         (vec_mul): Likewise.
7871
7872 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7873
7874         PR target/62275
7875         * config/arm/neon.md
7876         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
7877         <v_cmp_result>): New pattern.
7878         * config/arm/iterators.md (NEON_VCVT): New int iterator.
7879         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
7880         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
7881         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
7882         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
7883         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
7884
7885 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7886
7887         PR target/62275
7888         * config/arm/iterators.md (FIXUORS): New code iterator.
7889         (VCVT): New int iterator.
7890         (su_optab): New code attribute.
7891         (su): Likewise.
7892         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
7893
7894 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7895
7896         * config/aarch64/predicates.md (aarch64_comparison_operation):
7897         New special predicate.
7898         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
7899         aarch64_comparison_operation instead of matching an operator.
7900         Update operand numbers.
7901         (csinc3<mode>_insn): Likewise.
7902         (*csinv3<mode>_insn): Likewise.
7903         (*csneg3<mode>_insn): Likewise.
7904         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
7905         * config/aarch64/aarch64.c (aarch64_get_condition_code):
7906         Return -1 instead of aborting on invalid condition codes.
7907         (aarch64_print_operand): Update aarch64_get_condition_code callsites
7908         to assert that the returned condition code is valid.
7909         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
7910
7911 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
7912
7913         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
7914         tree.def, and gimple.def
7915
7916 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
7917             Balaji V. Iyer  <balaji.v.iyer@intel.com>
7918             Igor Zamyatin  <igor.zamyatin@intel.com>
7919
7920         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
7921         (__cilkrts_cilk_for_64): Likewise.
7922         * cilk-common.c (declare_cilk_for_builtin): New function.
7923         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
7924         __cilkrts_cilk_for_64 bultins.
7925         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
7926         CILK_TI_F_LOOP_64.
7927         (cilk_for_32_fndecl): New define.
7928         (cilk_for_64_fndecl): Likewise.
7929         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
7930         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
7931         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
7932         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
7933         GF_OMP_FOR_COMBINED_INTO.
7934         * gimplify.c (gimplify_scan_omp_clauses): Added
7935         OMP_CLAUSE__CILK_FOR_COUNT_ case.
7936         (gimplify_adjust_omp_clauses): Ditto.
7937         (gimplify_omp_for): Added CILK_FOR case.
7938         (gimplify_expr): Ditto.
7939         * omp-low.c: Include cilk.h.
7940         (extract_omp_for_data): Set appropriate kind for
7941         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
7942         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
7943         (create_omp_child_function_name): Added second argument to handle
7944         cilk_for case.
7945         (cilk_for_check_loop_diff_type): New function.
7946         (expand_cilk_for_call): Likewise.
7947         (expand_cilk_for): Likewise.
7948         (create_omp_child_function): Set cilk_for_count; handle the cases when
7949         it is true; call create_omp_child_function_name with second argument.
7950         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
7951         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
7952         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
7953         * tree-nested.c (convert_nonlocal_omp_clauses): Added
7954         OMP_CLAUSE__CILK_FOR_COUNT_ case.
7955         (convert_local_omp_clauses): Ditto.
7956         * tree-pretty-print.c (dump_omp_clause): Added
7957         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
7958         (dump_generic_node): Added CILK_FOR case.
7959         * tree.c (omp_clause_num_ops): New element
7960         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
7961         (omp_clause_code_name): New element _Cilk_for_count_.
7962         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
7963         * tree.def: Add tree code for CILK_FOR.
7964
7965 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7966
7967         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
7968         (ppc403-compare): Add "exts with dot" case.
7969         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
7970         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
7971         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
7972         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
7973         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
7974         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
7975         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
7976         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
7977         cell-cmp-microcoded): Similarly.
7978         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
7979         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
7980         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
7981         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
7982         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
7983         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
7984         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
7985         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
7986         (power6-compare): Add "exts with dot" case.
7987         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
7988         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
7989         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
7990
7991         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
7992         if avoiding Cell microcode.
7993         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
7994         (is_cracked_insn): Ditto.
7995         (insn_must_be_first_in_group): Ditto.
7996         * config/rs6000/rs6000.md (dot): Adjust comment.
7997         (cell_micro): Handle exts+dot.
7998         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
7999         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
8000         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
8001         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
8002         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
8003         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
8004         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
8005
8006 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
8007
8008         * config/rs6000/rs6000.md (QHSI): Delete.
8009         (EXTQI, EXTHI, EXTSI): New mode iterators.
8010         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
8011         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
8012         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
8013         9 anonymous instructions, and 8 splitters): Delete.
8014         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
8015         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
8016         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
8017         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
8018         *zero_extendsi<mode>2_dot2): New.
8019
8020 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
8021
8022         * config/rs6000/rs6000.md (any_extend): New code iterator.
8023         (u, su): New code attributes.
8024         (dmode, DMODE): New mode attributes.
8025         (<su>mul<mode>3_highpart): New.
8026         (*<su>mul<mode>3_highpart): New.
8027         (<su>mulsi3_highpart_le): New.
8028         (<su>muldi3_highpart_le): New.
8029         (<su>mulsi3_highpart_64): New.
8030         (<u>mul<mode><dmode>3): New.
8031         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
8032         splitters): Delete.
8033         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
8034         splitters): Delete.
8035
8036 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
8037
8038         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
8039         *mulsi3_internal2, and two splitters): Delete.
8040         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
8041         Delete.
8042         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
8043
8044 2014-09-02  Richard Biener  <rguenther@suse.de>
8045
8046         PR tree-optimization/62695
8047         * tree-ssa-structalias.c (find_func_clobbers): Add missing
8048         vector truncate.
8049
8050 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
8051
8052         PR target/62312
8053         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
8054
8055 2014-09-01  Andi Kleen  <ak@linux.intel.com>
8056
8057         * file-find.c (add_prefix_begin): Add.
8058         (do_add_prefix): Rename from add_prefix with first argument.
8059         (add_prefix): Add new wrapper.
8060         * file-find.h (add_prefix_begin): Add.
8061         * gcc-ar.c (main): Support -B option.
8062
8063 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
8064
8065         * genemit.c: Include dumpfile.h.
8066         (gen_split): Print name of splitter function to dump file.
8067
8068 2014-09-01  Richard Biener  <rguenther@suse.de>
8069
8070         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
8071         Use stack auto_vecs for constraint expressions.
8072         (find_func_aliases_for_call): Likewise.
8073         (find_func_aliases): Likewise.
8074         (find_func_clobbers): Likewise.
8075
8076 2014-09-01  Richard Biener  <rguenther@suse.de>
8077
8078         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
8079         operands vector in most cases.  Remove redundant code.
8080
8081 2014-09-01  Olivier Hainque  <hainque@adacore.com>
8082
8083         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
8084         $WIND_BASE instead of designating a harcoded arbitrary home dir.
8085         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
8086
8087 2014-09-01  Richard Biener  <rguenther@suse.de>
8088
8089         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
8090         copy_reference_ops_from_call, vn_nary_op_compute_hash,
8091         vn_reference_compute_hash, vn_reference_insert): Remove.
8092         (vn_reference_lookup_call): New function.
8093         * tree-ssa-sccvn.c (vn_reference_compute_hash,
8094         copy_reference_ops_from_ref, copy_reference_ops_from_call,
8095         vn_reference_insert, vn_nary_op_compute_hash): Make static.
8096         (create_reference_ops_from_call): Remove.
8097         (vn_reference_lookup_3): Properly update shared_lookup_references.
8098         (vn_reference_lookup_pieces): Assert that we updated
8099         shared_lookup_references properly.
8100         (vn_reference_lookup): Likewise.
8101         (vn_reference_lookup_call): New function.
8102         (visit_reference_op_call): Use it.  Avoid re-building the
8103         reference ops.
8104         (visit_reference_op_load): Remove redundant lookup.
8105         (visit_reference_op_store): Perform special tail-merging work
8106         only when possibly doing tail-merging.
8107         (visit_use): Likewise.
8108         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
8109
8110 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
8111
8112         PR target/62025
8113         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
8114         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
8115         (find_inc): Revert 2014-08-13 change.
8116
8117 2014-09-01  Marek Polacek  <polacek@redhat.com>
8118
8119         PR middle-end/61903
8120         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
8121         Change the type of V to unsigned HOST_WIDE_INT.
8122
8123 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8124
8125         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
8126         the size of byte markers.
8127         (do_shift_rotate): Fix confusion between host, target and marker byte
8128         size.
8129         (verify_symbolic_number_p): Likewise.
8130         (find_bswap_or_nop_1): Likewise.
8131         (find_bswap_or_nop): Likewise.
8132
8133 2014-09-01  Olivier Hainque  <hainque@adacore.com>
8134
8135         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
8136         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
8137
8138 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
8139
8140         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
8141         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
8142         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
8143
8144 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
8145
8146         PR sanitizer/61897
8147         PR sanitizer/62140
8148         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
8149         (build_check_stmt): Likewise.
8150         (instrument_strlen_call): Likewise.
8151         (asan_expand_check_ifn): Likewise and fix types.
8152         (maybe_cast_to_ptrmode): New function.
8153
8154 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8155
8156         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
8157
8158 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
8159
8160         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
8161
8162 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
8163
8164         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
8165         prefix to function labels when generating fast indirect calls.
8166
8167 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
8168
8169         PR bootstrap/62304
8170
8171         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
8172         param back from rtx_insn * to rtx.  Rename param from "label" to
8173         "label_or_return", reintroducing "label" as an rtx_insn * after
8174         we've ensured it's not a RETURN.
8175         (first_active_target_insn): Likewise for return type and param;
8176         add a checked cast to rtx_insn * once we've ensured "insn" is not
8177         a RETURN.
8178         (steal_delay_list_from_target): Convert param "pnew_thread" back
8179         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
8180         with JUMP_LABEL.
8181         (own_thread_p): Convert param "thread" back from an rtx_insn * to
8182         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
8183         cast once we've established we're not dealing with a RETURN,
8184         renaming subsequent uses of "thread" to "thread_insn".
8185         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
8186         to JUMP_LABEL.
8187         (follow_jumps): Convert return type and param "label" from
8188         rtx_insn * back to rtx.  Move initialization of "value" to after
8189         the handling for ANY_RETURN_P, adding a checked cast there to
8190         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
8191         rename to "this_label_or_return", reintroducing "this_label" as
8192         an rtx_insn * once we've handled the case where it could be an
8193         ANY_RETURN_P.
8194         (fill_slots_from_thread): Rename param "thread" to
8195         "thread_or_return", converting from an rtx_insn * back to an rtx.
8196         Reintroduce name "thread" as an rtx_insn * local with a checked
8197         cast once we've handled the case of it being an ANY_RETURN_P.
8198         Convert local "new_thread" from an rtx_insn * back to an rtx.
8199         Add a checked cast when assigning to "trial" from "new_thread".
8200         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
8201         checked cast to rtx_insn * from "new_thread" when invoking
8202         get_label_before.
8203         (fill_eager_delay_slots): Convert locals "target_label",
8204         "insn_at_target" from rtx_insn * back to rtx.
8205         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
8206         (relax_delay_slots): Convert locals "trial", "target_label" from
8207         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
8208         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
8209         invoking update_block.
8210         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
8211         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
8212
8213         * resource.h (mark_target_live_regs): Undo erroneous conversion
8214         of second param of r214693, converting it back from rtx_insn * to
8215         rtx, since it could be a RETURN.
8216
8217         * resource.c (find_dead_or_set_registers): Similarly, convert
8218         param "jump_target" back from an rtx_insn ** to an rtx *, as we
8219         could be writing back a RETURN.  Rename local rtx_insn * "next" to
8220         "next_insn", and introduce "lab_or_return" as a local rtx,
8221         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
8222         (mark_target_live_regs): Undo erroneous conversion
8223         of second param of r214693, converting it back from rtx_insn * to
8224         rtx, since it could be a RETURN.  Rename it from "target" to
8225         "target_maybe_return", reintroducing the name "target" as a local
8226         rtx_insn * with a checked cast, after we've handled the case of
8227         ANY_RETURN_P.
8228
8229 2014-08-29  DJ Delorie  <dj@redhat.com>
8230
8231         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
8232         pointer size up to a power of two.
8233         * defaults.h (DWARF2_ADDR_SIZE): Round up.
8234         (POINTER_SIZE_UNITS): New, rounded up value.
8235         * dwarf2asm.c (size_of_encoded_value): Use it.
8236         (dw2_output_indirect_constant_1): Likewise.
8237         * expmed.c (init_expmed_one_conv): We now know the sizes of
8238         partial int modes.
8239         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
8240         * optabs.c (expand_float): Use precision, not size.
8241         (expand_fix): Likewise.
8242         * simplify-rtx (simplify_unary_operation_1): Likewise.
8243         * tree-dfa.c (get_ref_base_and_extent): Likewise.
8244         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
8245         (default_assemble_integer) Likewise.
8246         (dump_tm_clone_pairs): Likewise.
8247         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
8248         * var-tracking.c (adjust_mems): Allow partial-int modes also.
8249         (prepare_call_arguments): Likewise.
8250         * stor-layout.c (finalize_type_size): Preserve precision.
8251         (layout_type): Use precision, not size.
8252
8253         * expr.c (convert_move): If the target has an explicit converter,
8254         use it.
8255
8256 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
8257
8258         * gdbinit.in: Skip various inline functions in rtl.h when
8259         stepping.
8260
8261 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
8262
8263         PR bootstrap/62301
8264         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
8265
8266 2014-08-29  Richard Biener  <rguenther@suse.de>
8267
8268         PR tree-optimization/62291
8269         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
8270         exactly the vector size needed and use quick_push.
8271         (phi_translate_1): Adjust comment.
8272         (valid_in_sets): Remove block argument and remove pointless
8273         checking of NAMEs.
8274         (dependent_clean): Adjust for removal of block argument.
8275         (clean): Likewise.
8276         (compute_antic_aux): Likewise.
8277         (compute_partial_antic_aux): Likewise.
8278
8279 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8280             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8281             Anna Tikhonova  <anna.tikhonova@intel.com>
8282             Ilya Tocar  <ilya.tocar@intel.com>
8283             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8284             Ilya Verbin  <ilya.verbin@intel.com>
8285             Kirill Yukhin  <kirill.yukhin@intel.com>
8286             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8287
8288         * config/i386/sse.md
8289         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
8290         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
8291         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
8292         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
8293
8294 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8295             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8296             Anna Tikhonova  <anna.tikhonova@intel.com>
8297             Ilya Tocar  <ilya.tocar@intel.com>
8298             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8299             Ilya Verbin  <ilya.verbin@intel.com>
8300             Kirill Yukhin  <kirill.yukhin@intel.com>
8301             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8302
8303         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
8304         * config/i386/sse.md
8305         (define_mode_iterator VI4_128_8_256): New.
8306         (define_mode_iterator VI2_128_4_256): Ditto.
8307         (define_mode_iterator PMOV_DST_MODE): Rename into
8308         (define_mode_iterator PMOV_DST_MODE_1): this.
8309         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
8310         Use PMOV_DST_MODE_1 mode iterator.
8311         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
8312         Ditto.
8313         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
8314         Ditto.
8315         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
8316         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
8317         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
8318         (define_mode_iterator PMOV_DST_MODE_2): New.
8319         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
8320         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
8321         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
8322         Ditto.
8323         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
8324         (define_mode_attr pmov_dst_3): Ditto.
8325         (define_mode_attr pmov_dst_zeroed_3): Ditto.
8326         (define_mode_attr pmov_suff_3): Ditto.
8327         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
8328         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
8329         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
8330         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
8331         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
8332         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
8333         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
8334         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
8335         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
8336         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
8337         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
8338         (define_mode_attr pmov_dst_4): Ditto.
8339         (define_mode_attr pmov_dst_zeroed_4): Ditto.
8340         (define_mode_attr pmov_suff_4): Ditto.
8341         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
8342         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
8343         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
8344         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
8345         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
8346         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
8347         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
8348         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
8349         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
8350         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
8351         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
8352
8353 2014-08-29  Richard Biener  <rguenther@suse.de>
8354
8355         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
8356         NON_LVALUE_EXPR in gimple.
8357
8358 2014-08-29  Richard Biener  <rguenther@suse.de>
8359
8360         PR middle-end/62292
8361         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
8362         from previous refactoring.
8363         (gimple_fold_builtin_strncpy): Likewise.
8364
8365 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
8366
8367         PR bootstrap/62300
8368         * function.c (assign_parm_setup_reg): Remove erroneous checked
8369         cast to rtx_insn * on result of gen_extend_insn in favor of
8370         introducing a new local rtx "pat".
8371
8372 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8373
8374         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
8375         to silence warning.
8376         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
8377
8378 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8379
8380         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
8381         (next_insn): Likewise.
8382         * emit-rtl.c (next_insn): Likewise.
8383         (previous_insn): Likewise.
8384         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
8385         "insn" and "next" from rtx to rtx_insn *.
8386         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
8387         "insn", "insn1", "vliw_start",  "prologue_end_note",
8388         "last_insn_in_packet".
8389
8390 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8391
8392         * shrink-wrap.h (active_insn_between): Strengthen both params from
8393         rtx to rtx_insn *.
8394         * function.c (active_insn_between): Likewise.
8395
8396 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8397
8398         * genattr.c (main): When writing out insn-attr.h, strengthen param
8399         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
8400         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
8401         writing out the definition of dfa_clear_single_insn_cache to the
8402         generated insn-automata.c
8403
8404 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8405
8406         * resource.h (clear_hashed_info_for_insn): Strengthen param from
8407         rtx to rtx_insn *.
8408         (incr_ticks_for_insn): Likewise.
8409         (init_resource_info): Likewise.
8410
8411         * resource.c (init_resource_info): Likewise.
8412         (clear_hashed_info_for_insn): Likewise.
8413         (incr_ticks_for_insn): Likewise.
8414
8415         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
8416         rtx to rtx_insn *.
8417         (steal_delay_list_from_target): Use methods of "seq".
8418         (try_merge_delay_insns): Use methods of "merged_insns".
8419         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
8420         (reorg_redirect_jump): Likewise for param "jump".
8421
8422 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8423
8424         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
8425         rtx to rtx_insn *.
8426         * config/s390/s390.c (s390_split_branches): Eliminate top-level
8427         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
8428         "set_insn".
8429         (s390_mainpool_finish): In three places, split out a local rtx
8430         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
8431         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
8432         and split another local rtx "insn" out into rtx "pat" and
8433         rtx_insn * "insn".
8434         * config/sh/sh.c (output_branchy_insn): Rather than working
8435         directly on operands[9], introduce local rtx_code_label *
8436         variables named "lab" in two places, working on them, and then
8437         assigning them to operands[9], so that the intervening operations
8438         are known by the type system to be on insns.
8439
8440 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8441
8442         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
8443         const rtx_insn *.
8444
8445         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
8446         in invocation of INSN_HAS_LOCATION.
8447
8448 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8449
8450         * config/rs6000/altivec.h (vec_xl): New #define.
8451         (vec_xst): Likewise.
8452         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
8453         (XXSPLTD_V2DI): Likewise.
8454         (DIV_V2DI): Likewise.
8455         (UDIV_V2DI): Likewise.
8456         (MUL_V2DI): Likewise.
8457         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8458         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
8459         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
8460         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
8461         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
8462         (UNSPEC_VSX_DIVSD): Likewise.
8463         (UNSPEC_VSX_DIVUD): Likewise.
8464         (UNSPEC_VSX_MULSD): Likewise.
8465         (vsx_mul_v2di): New insn-and-split.
8466         (vsx_div_v2di): Likewise.
8467         (vsx_udiv_v2di): Likewise.
8468         (vsx_xxspltd_<mode>): New insn.
8469
8470 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8471
8472         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
8473         NEXT_INSN.
8474         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
8475         (NEXT_INSN): Likewise.
8476         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
8477         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
8478         const rtx_insn *.
8479         (no_labels_between_p): Likewise for both params.
8480
8481         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
8482         cast when using NEXT_INSN on operands[2].
8483         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
8484         "insn" from rtx to rtx_insn *, adding a checked cast.
8485         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
8486         rtx_insn *.
8487         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
8488         for third param.
8489         (arc_text_label): Likewise for param "insn".
8490         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
8491         "insn".
8492         (arc_ccfsm_record_condition): Likewise for param "jump".
8493         (arc_text_label): Likewise for local "label".
8494         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
8495         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
8496         a method for typesafety.  Add a checked cast.
8497         * config/arc/constraints.md (Clb): Add a checked cast when getting
8498         the CODE_LABEL from a LABEL_REF.
8499         * config/arm/arm.c (require_pic_register): Strengthen locals
8500         "seq", "insn" from rtx to rtx_insn *.
8501         (create_fix_barrier): Likewise for locals "selected", "next".
8502         (thumb1_reorg): Likewise for locals "prev", "insn".
8503         (arm_expand_prologue): Likewise for local "last".
8504         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
8505         operands[0].
8506         (thumb2_output_casesi): Likewise for operands[2].
8507         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
8508         strengthen local "insn" from rtx to rtx_insn *.
8509         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
8510         type and param "insn".
8511         (find_prev_insn_start): Likewise.
8512         (hwloop_optimize): Likewise for locals "insn", "last_insn",
8513         "prev".
8514         (gen_one_bundle): Likewise for loal "t".
8515         (find_load): Likewise for param "insn".
8516         (workaround_speculation): Likewise for locals "insn", "next",
8517         "target", "next_tgt".
8518         * config/c6x/c6x.c (assign_reservations): Likewise for both params
8519         and for locals "insn", "within", "last".
8520         (count_unit_reqs): Likewise for params "head", "tail" and local
8521         "insn".
8522         (try_rename_operands): Likewise for params "head", "tail".
8523         (reshuffle_units): Likewise for locals "head", "tail", "insn".
8524         (struct c6x_sched_context): Likewise for fields
8525         "last_scheduled_insn", "last_scheduled_iter0".
8526         (init_sched_state): Replace NULL_RTX with NULL.
8527         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
8528         to rtx_insn *.
8529         (undo_split_delayed_nonbranch): Likewise for param and for local
8530         "prev".
8531         (conditionalize_after_sched): Likewise for local "insn".
8532         (bb_earliest_end_cycle): Likewise.
8533         (filter_insns_above): Likewise for locals "insn", "next".
8534         (hwloop_optimize): Remove redundant checked cast.
8535         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
8536         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
8537         NULL_RTX with NULL.
8538         (cris_simple_epilogue): Likewise.
8539         (cris_expand_prologue): Likewise.
8540         (cris_expand_epilogue): Likewise.
8541         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
8542         local "insn" from rtx to rtx_insn *.
8543         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
8544         (struct frv_packet_group): Likewise for the elements within array
8545         fields "insns", "sorted", and for field "nop".
8546         (frv_packet): Likewise for the elements within array field
8547         "insns".
8548         (frv_add_insn_to_packet): Likewise for param "insn".
8549         (frv_insert_nop_in_packet): Likewise for param "insn" and local
8550         "last".
8551         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
8552         (frv_sort_insn_group_1): Likewise for local "insn".
8553         (frv_optimize_membar_local): Likewise.
8554         (frv_align_label): Likewise for locals "x", "last", "barrier",
8555         "label".
8556         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
8557         local.
8558         (ia64_sched_init): Likewise for local "insn".
8559         (scheduled_good_insn): Likewise for param "last".
8560         (struct _ia64_sched_context): Likewise for field
8561         "last_scheduled_insn".
8562         (ia64_init_sched_context): Replace NULL_RTX with NULL.
8563         (struct bundle_state): Likewise for field "insn".
8564         (issue_nops_and_insn): Likewise for param "insn".
8565         (get_next_important_insn): Likewise for return type and both
8566         params.
8567         (ia64_add_bundle_selector_before): Likewise for param "insn".
8568         (bundling): Likewise for params "prev_head_insn", "tail" and
8569         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
8570         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
8571         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
8572         Strengthen final param from rtx to rtx_insn *.
8573         (iq2000_move_1word): Likewise for second param.
8574         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
8575         param "cur_insn" and local "next_insn".
8576         (iq2000_move_1word): Likewise for param "insn".
8577         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
8578         casts when using NEXT_INSN on operands[1].
8579         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
8580         "insn" from rtx to rtx_insn *.
8581         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
8582         "x", introducing local rtx_insn * "insn" for when working with the
8583         CODE_LABEL of the LABEL_REF.
8584         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
8585         rtx_insn *.
8586         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
8587         param.
8588         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
8589         type.
8590         (conditionalize_block): Likewise for return type and param.
8591         (mcore_is_dead): Likewise for param "first" and local "insn".
8592         (emit_new_cond_insn): Likewise for return type.
8593         (conditionalize_block): Likewise for return type, param, and
8594         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
8595         "newinsn".
8596         (conditionalize_optimization): Likewise for local "insn".
8597         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
8598         using NEXT_INSN.
8599         * config/microblaze/microblaze.md: Add checked casts when using
8600         NEXT_INSN.
8601         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
8602         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
8603         and rtx_insn * "insn".
8604         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
8605         checked cast when using NEXT_INSN on operands[2].
8606         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
8607         local "insn" from rtx to rtx_insn *.
8608         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
8609         Likewise.
8610         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
8611         Add a checked cast when using NEXT_INSN on operands[1].
8612         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
8613         rtx to rtx_insn *.
8614         (pa_output_cbranch): Likewise for final param.
8615         (pa_output_lbranch): Likewise for second param.
8616         (pa_output_bb): Likewise for third param.
8617         (pa_output_bvb): Likewise.
8618         (pa_output_dbra): Likewise for second param.
8619         (pa_output_movb): Likewise.
8620         (pa_output_parallel_movb): Likewise.
8621         (pa_output_parallel_addb): Likewise.
8622         (pa_output_millicode_call): Likewise for first param.
8623         (pa_output_mul_insn): Likewise for second param.
8624         (pa_output_div_insn): Likewise for third param.
8625         (pa_output_mod_insn): Likewise for second param.
8626         (pa_jump_in_call_delay): Likewise for param.
8627         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
8628         (pa_output_div_insn): Likewise.
8629         (pa_output_mod_insn): Likewise.
8630         (pa_output_cbranch): Likewise.
8631         (pa_output_lbranch): Likewise.
8632         (pa_output_bb): Likewise.
8633         (pa_output_bvb): Likewise.
8634         (pa_output_dbra): Likewise.
8635         (pa_output_movb): Likewise.
8636         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
8637         to simplify and for typesafety.
8638         (pa_output_call): Use method of rtx_sequence *.
8639         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
8640         (pa_jump_in_call_delay): Likewise.
8641         (pa_output_parallel_movb): Likewise.
8642         (pa_output_parallel_addb): Likewise.
8643         (pa_following_call): Likewise.
8644         (pa_combine_instructions): Likewise for locals "anchor",
8645         "floater".
8646         (pa_can_combine_p): Likewise for params "anchor", "floater" and
8647         locals "start", "end".
8648         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
8649         param "insn" and local "local_insn".
8650         (picochip_final_prescan_insn): Likewise for local "local_insn".
8651         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
8652         local "insn".
8653         (uses_TOC): Likewise.
8654         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
8655         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
8656         splitting out to more tightly-scoped locals, 3 as rtx and one as
8657         rtx_insn *.
8658         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
8659         to rtx_insn *.
8660         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
8661         where needed.
8662         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
8663         to rtx_insn *.
8664         (fixup_addr_diff_vecs): Likewise.
8665         (reg_unused_after): Likewise for param 2.
8666         (sh_can_redirect_branch): Likewise for both params.
8667         (check_use_sfunc_addr): Likewise for param 1.
8668         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
8669         (find_barrier): Likewise for local "last_got".
8670         (gen_block_redirect): Likewise for return type, param "jump" and
8671         locals "prev", "scan", "next", "insn".
8672         (struct far_branch): Likewise for fields "near_label",
8673         "insert_place", "far_label".
8674         (gen_far_branch): Likewise for local "jump".
8675         (fixup_addr_diff_vecs): Likewise for param "first" and locals
8676         "insn", "prev".
8677         (barrier_align): Likewise for param and for locals "prev", "x".
8678         Introduce local rtx_sequence * "prev_seq" and use insn method for
8679         typesafety and clarity.
8680         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
8681         (get_dest_uid): Likewise for local "dest".
8682         (split_branches): Likewise for locals "next", "beyond", "label",
8683         "block", "far_label".  Add checked casts when assigning to
8684         bp->far_label and "far_label".
8685         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
8686         (sequence_insn_p): Likewise.
8687         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
8688         more loop-scoped rtx "insn" when walking LABEL_REFS.
8689         (sh_can_redirect_branch): Strengthen both params from rtx to
8690         rtx_insn *.
8691         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
8692         new local rtx_sequence * "seq" via a dyn_cast, and use a method
8693         for clarity and typesafety.
8694         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
8695         "insn" from rtx to rtx_insn *.
8696         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
8697         when using NEXT_INSN on the CODE_LABEL in operands[2].
8698         (define_insn "casesi_worker_2"): Likewise.
8699         (define_insn "casesi_shift_media"): Likewise.
8700         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
8701         operands[3].
8702         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
8703         Strengthen field "insn" from rtx to rtx_insn *.
8704         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
8705         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
8706         param "start_insn" and local "start_insn".
8707         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
8708         field "insn".
8709         (find_set_of_reg_bb): Likewise for param "insn".
8710         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
8711         (trace_reg_uses): Likewise for param "start_insn".
8712         (sh_treg_combine::cbranch_trace): Likewise for field
8713         "cbranch_insn".
8714         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
8715         param "insn".
8716         (sh_treg_combine::record_set_of_reg): Likewise for param
8717         "start_insn" and local "i".
8718         (sh_treg_combine::can_remove_cstore): Likewise for local
8719         "prev_insn".
8720         (sh_treg_combine::try_optimize_cbranch): Likewise for param
8721         "insn".
8722         (sh_treg_combine::execute): Likewise for local "i".
8723         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
8724         param.
8725         (sparc_check_64): Likewise for second param.
8726         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
8727         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
8728         dyn_cast, using its insn method for typesafety and clarity.
8729         (empty_delay_slot): Strengthen param "insn" from rtx to
8730         rtx_insn *.
8731         (set_extends): Likewise.
8732         (sparc_check_64): Likewise.
8733         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
8734         for locals "seq", "last_insn".
8735         (combine_bnp): Likewise for param "insn".
8736         (xstormy16_reorg): Likewise for local "insn".
8737         * config/v850/v850.c (substitute_ep_register): Likewise for params
8738         "first_insn", "last_insn" and local "insn".
8739         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
8740         elements of "regs" array, and local "insn".
8741         * except.c (emit_note_eh_region_end): Likewise for param "insn".
8742         * final.c (final_sequence): Strengthen this global from rtx to
8743         rtx_sequence *.
8744         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
8745         rtx_insn *.
8746         (final_scan_insn): Update assignment to "final_sequence" to be
8747         from "seq", the cast version of "body", for type-safety.
8748         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
8749         "insns" from rtx to rtx_insn *.
8750         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
8751         * genattr.c (main): When writing out generated insn-attr.h,
8752         strengthen params 1 and 3 of eligible_for_delay,
8753         eligible_for_annul_true, eligible_for_annul_false from rtx to
8754         rtx_insn *.
8755         * genattrtab.c (write_eligible_delay): Likewise when writing out
8756         generated insn-attrtab.c; also local "insn" the generated
8757         functions.
8758         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
8759         to rtx_insn *.
8760         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
8761         "start_label" from rtx to rtx_insn *.
8762         * ira.c (decrease_live_ranges_number): Likewise for local "p".
8763         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
8764         "insns" and local "insn".
8765         (validate_equiv_mem): Likewise for param "start" and local "insn".
8766         (memref_used_between_p): Likewise for params "start", "end" and
8767         local "insn".
8768         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
8769         final param.
8770         * loop-doloop.c (doloop_optimize): Within region guarded by
8771         INSN_P (doloop_pat), introduce a new local rtx_insn *
8772         "doloop_insn" via a checked cast, and use it for typesafety,
8773         eventually writing the value back into doloop_pat.
8774         * output.h (final_sequence): Strengthen this global from rtx to
8775         rtx_sequence *.
8776         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
8777         reintroducing "insn" as an rtx_insn * via a checked cast.
8778         Strengthen param "attempt" and local "new_insn"from rtx to
8779         rtx_insn *.
8780         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
8781         to rtx_insn *.
8782         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
8783         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
8784         "p" in favor of more tightly-scoped replacements, sometimes rtx
8785         and sometimes rtx_insn *, as appropriate.
8786         (delete_output_reload): Eliminate top-level rtx "i1", splitting
8787         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
8788         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
8789         local "trial" from rtx to rtx_insn *.
8790         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
8791         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
8792         rtx_sequence * and use methods for clarity and typesafety.
8793         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
8794         rtx to rtx_insn *.  Strenghten local "li" from rtx to
8795         rtx_insn_list * and use its methods for clarity and typesafety.
8796         (steal_delay_list_from_target): Strengthen param "insn" from rtx
8797         to rtx_insn *.
8798         (steal_delay_list_from_fallthrough): Likewise.
8799         (try_merge_delay_insns): Likewise for param "thread" and locals
8800         "trial", "next_trial", "delay_insn".
8801         (redundant_insn): Likewise for param "target" and local "trial".
8802         (own_thread_p): Likewise for param "thread" and locals
8803         "active_insn", "insn".
8804         (get_label_before): Likewise for param "insn".
8805         (fill_simple_delay_slots): Likewise for local "new_label"; use
8806         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
8807         (label_before_next_insn): Strengthen return type and local "insn"
8808         from rtx to rtx_insn *.
8809         (relax_delay_slots): Likewise for locals "other", "tmp".
8810         (make_return_insns): Likewise for param "first" and locals "insn",
8811         "jump_insn", "prev".  Move declaration of "pat" to its assignment
8812         and strengthen from rtx to rtx_sequence *.  Use its methods for
8813         clarity and typesafety.
8814         * rtlanal.c (no_labels_between_p): Strengthen params from
8815         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
8816         rtx_insn *.
8817         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
8818         from const_rtx to const rtx_insn *.
8819         (reg_set_between_p): Rename param "from_insn" to
8820         "uncast_from_insn", and reintroduce "from_insn" as a
8821         const rtx_insn * via a checked cast.
8822         (modified_between_p): Likewise for param "start" as "uncast_start".
8823         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
8824         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
8825         "tmp", head" from rtx to rtx_insn *.
8826         (recompute_rev_top_order): Likewise for local "insn".
8827         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
8828         * store-motion.c (build_store_vectors): Likewise for local "insn".
8829         Strengthen local "st" from rtx to rtx_insn_list * and use methods
8830         for clarity and typesafety.
8831         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
8832         rtx to rtx_insn *.
8833         (computation_cost): Likewise for local "seq".
8834         (get_address_cost): Likewise.
8835
8836 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8837
8838         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
8839         const rtx_insn *.
8840         (label_is_jump_target_p): Likewise for second param.
8841
8842         * rtlanal.c (tablejump_p): Likewise for param "insn".
8843         (label_is_jump_target_p): Likewise for param "jump_insn".
8844
8845 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8846
8847         * rtl.h (find_first_parameter_load): Strengthen return type and
8848         both params from rtx to rtx_insn *.
8849         * rtlanal.c (find_first_parameter_load): Strengthen return type,
8850         both params and locals "before", "first_set" from rtx to
8851         rtx_insn *.  Remove now-redundant cast.
8852         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
8853
8854 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8855
8856         * rtl.h (find_last_value): Delete.
8857         * rtlanal.c (find_last_value): Delete.
8858
8859 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8860
8861         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
8862         from rtx to rtx_insn *.
8863         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
8864         rtx "note" with new local rtx_insn * "new_head" when calculating
8865         head insn of new basic block.
8866         * combine.c (combine_split_insns): Strengthen return type and local
8867         "ret" from rtx to rtx_insn *.
8868         (likely_spilled_retval_p): Likewise for locals "use" and "p".
8869         (try_combine): Eliminate local "m_split", splitting into new
8870         locals "m_split_insn" and "m_split_pat".
8871         (find_split_point): Strengthen local "seq" from rtx into
8872         rtx_insn *.
8873         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
8874         locals "label", "branch".
8875         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
8876         for local "insn".
8877         (define_expand "umulsi3_highpart"): Likewise for local "insn".
8878         * dse.c (note_add_store_info): Likewise for fields "first",
8879         "current".
8880         (note_add_store): Likewise for local "insn".
8881         (emit_inc_dec_insn_before): Likewise for locals "insn",
8882         "new_insn", "cur".
8883         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
8884         (replace_read): Likewise for locals "insns", "this_insn".
8885         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
8886         (notice_eh_throw): Likewise for param "insn".
8887         (before_next_cfi_note): Likewise for return type, param, and local
8888         "prev".
8889         (connect_traces): Likewise for local "note".
8890         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
8891         (verify_rtl_sharing): Likewise.
8892         (unshare_all_rtl_in_chain): Likewise for param "insn".
8893         (get_first_nonnote_insn): Likewise for local "insn".
8894         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
8895         "seq" and use its methods to clarify things.
8896         (next_insn): Strengthen return type from rtx to rtx_insn *.
8897         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
8898         local rtx_insn * using a checked cast, dropping a checked cast
8899         made redundant by this change.  Use a cast to and method of
8900         rtx_sequence to clarify the code.
8901         (previous_insn): Rename param "insn" to "uncast_insn" and
8902         reintroduce "insn" as a local rtx_insn * using a checked cast,
8903         dropping a checked cast made redundant by this change.  Use a cast
8904         to and method of rtx_sequence to clarify the code.
8905         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
8906         reintroduce "insn" as a local rtx_insn * using a checked cast,
8907         dropping a checked cast made redundant by this change.
8908         (next_nonnote_insn_bb): Likewise.
8909         (prev_nonnote_insn): Likewise.
8910         (prev_nonnote_insn_bb): Likewise.
8911         (next_nondebug_insn): Likewise.
8912         (prev_nondebug_insn): Likewise.
8913         (next_nonnote_nondebug_insn): Likewise.
8914         (prev_nonnote_nondebug_insn): Likewise.
8915         (next_real_insn): Likewise.
8916         (prev_real_insn): Likewise.
8917         (next_active_insn): Likewise.
8918         (prev_active_insn): Likewise.
8919         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
8920         clarity.
8921         (prev_cc0_setter): Likewise.
8922         (try_split): Rename param "trial" to "uncast_trial" and
8923         reintroduce "insn" as a local rtx_insn * using a checked cast,
8924         dropping checked casts made redundant by this change.
8925         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
8926         rtx to rtx_insn *.
8927         (remove_insn): Rename param "insn" to "uncast_insn" and
8928         reintroduce "insn" as a local rtx_insn * using a checked cast.
8929         (emit_pattern_after_setloc): Likewise for param "after", as
8930         "uncast_after".
8931         (emit_pattern_after): Likewise.  Strengthen local "prev" from
8932         rtx to rtx_insn *.
8933         (emit_pattern_before_setloc): Rename param "before" to
8934         "uncast_before" and reintroduce "before" as a local rtx_insn *
8935         using a checked cast.  Strengthen locals "first", "last" from
8936         rtx to rtx_insn *.
8937         (emit_pattern_before): Likewise rename/cast param "before" to
8938         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
8939         * except.c (copy_reg_eh_region_note_forward): Strengthen param
8940         "first" and local "insn" from rtx to rtx_insn *.
8941         (copy_reg_eh_region_note_backward): Likewise for param "last"
8942         and local "insn".
8943         * expr.c (fixup_args_size_notes): Rename param "last" to
8944         "uncast_last" and reintroduce "last" as a local rtx_insn *
8945         using a checked cast.  Strengthen local "insn" from rtx to
8946         rtx_insn *.
8947         * function.c (set_insn_locations): Strengthen param "insn" from
8948         rtx to rtx_insn *.
8949         (record_insns): Likewise for param "insns" and local "tmp".
8950         (active_insn_between): Rename param "tail" to
8951         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
8952         using a checked cast.
8953         (thread_prologue_and_epilogue_insns): Split out top-level local
8954         rtx "seq" into three different rtx_insn * locals.  Strengthen
8955         local "prologue_seq" from rtx to rtx_insn *.
8956         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
8957         from rtx to rtx_insn *.
8958         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
8959         (priority): Likewise for locals "prev_first", "twin".
8960         (setup_insn_max_reg_pressure): Likewise for param "after".
8961         (sched_setup_bb_reg_pressure_info): Likewise.
8962         (no_real_insns_p): Strengthen params from const_rtx to
8963         const rtx_insn *.
8964         (schedule_block): Strengthen local "next_tail" from rtx to
8965         rtx_insn *.
8966         * ifcvt.c (find_active_insn_before): Strengthen return type and
8967         param "insn" from rtx to rtx_insn *.
8968         (find_active_insn_after): Likewise.
8969         (cond_exec_process_insns): Likewise for param "start" and local "insn".
8970         (cond_exec_process_if_block): Likewise for locals "then_start",
8971         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
8972         (noce_process_if_block): Likewise for local "jump".
8973         (merge_if_block): Likewise for two locals named "end".
8974         (cond_exec_find_if_block): Likewise for local "last_insn".
8975         * jump.c (delete_related_insns): Rename param "insn" to
8976         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
8977         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
8978         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
8979         NULL.
8980         (split_reg): Likewise.
8981         * lra.c (lra_process_new_insns): Likewise.
8982         * modulo-sched.c (permute_partial_schedule): Strengthen param
8983         "last" from rtx to rtx_insn *.
8984         * optabs.c (add_equal_note): Likewise for param "insns" and local
8985         "last_insn".
8986         (expand_binop_directly): Add checked casts to rtx_insn * within
8987         NEXT_INSN (pat) uses.
8988         (expand_unop_direct): Likewise.
8989         (maybe_emit_unop_insn): Likewise.
8990         * recog.c (peep2_attempt): Strengthen locals "last",
8991         "before_try", "x" from rtx to rtx_insn *.
8992         * reorg.c (optimize_skip): Strengthen return type and local
8993         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
8994         and locals "trial", "next_trial" from rtx to rtx_insn *.
8995         * resource.c (next_insn_no_annul): Strengthen return type and
8996         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
8997         rtx_sequence to clarify the code.
8998         (mark_referenced_resources): Add a checked cast to rtx_insn *
8999         within PREV_INSN (x).
9000         (find_dead_or_set_registers): Strengthen return type, param
9001         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
9002         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
9003         to rtx_insn **.
9004         (mark_target_live_regs): Strengthen params "insns" and "target",
9005         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
9006         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
9007         the code.
9008         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
9009         from rtx to rtx_insn *.
9010         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
9011         from rtx to rtx_insn *.
9012         (copy_reg_eh_region_note_backward): Likewise.
9013         (unshare_all_rtl_in_chain): Likewise for sole param.
9014         (dump_rtl_slim): Strengthen second and third params from const_rtx
9015         to const rtx_insn *.
9016         * sched-deps.c (sched_free_deps): Strengthen params "head" and
9017         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
9018         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
9019         "next_tail" from rtx to rtx_insn *.
9020         (begin_move_insn): Likewise for local "next".
9021         * sched-int.h (sched_free_deps): Likewise for first and second
9022         params.
9023         (no_real_insns_p): Strengthen both params from const_rtx to
9024         const rtx_insn *.
9025         (sched_setup_bb_reg_pressure_info): Strengthen second params from
9026         rtx to rtx_insn *.
9027         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
9028         "next_tail".
9029         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
9030         and locals "insn", "tail" from const_rtx to const rtx_insn *.
9031         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
9032         rtx_insn *.
9033         (debug_rtl_slim): Strengthen params "first" and "last" from
9034         const_rtx to const rtx_insn *.
9035         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
9036         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
9037         (convert_to_simple_return): Likewise for param "returnjump".
9038         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
9039         "prologue_seq".
9040         (convert_to_simple_return): Likewise for param "returnjump".
9041         * valtrack.c (propagate_for_debug): Likewise for params
9042         "insn", "last".
9043         * valtrack.h (propagate_for_debug): Likewise for second param.
9044
9045 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
9046
9047         * output.h (insn_current_reference_address): Strengthen param
9048         from rtx to rtx_insn *.
9049         * final.c (insn_current_reference_address): Likewise.
9050
9051 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
9052
9053         * basic-block.h (inside_basic_block_p): Strengthen param from
9054         const_rtx to const rtx_insn *.
9055         * cfgbuild.c (inside_basic_block_p): Likewise.
9056
9057 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
9058
9059         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
9060         rtx_insn *.
9061         (get_trace_info): Likewise for param "insn".
9062         (save_point_p): Likewise.
9063         (maybe_record_trace_start): Likewise for both params.
9064         (maybe_record_trace_start_abnormal): Likewise.
9065         (create_trace_edges): Likewise for sole param and for three of the
9066         locals named "lab".
9067         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
9068         to rtx_insn *, and update a call to pat->element to pat->insn.
9069
9070 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
9071
9072         * function.h (struct expr_status): Convert field "x_forced_labels"
9073         from rtx_expr_list * to rtx_insn_list *.
9074
9075         * cfgbuild.c (make_edges): Convert local "x" from an
9076         rtx_expr_list * to an rtx_insn_list *, replacing use of
9077         "element" method with "insn" method.
9078         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
9079         * except.c (sjlj_emit_dispatch_table): Replace use of
9080         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
9081         forced_labels.
9082         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
9083         rtx_expr_list * to an rtx_insn_list *, replacing use of
9084         "element" method with "insn" method.
9085         * reload1.c (set_initial_label_offsets): Likewise for local "x".
9086         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
9087         rtx_insn *, adding a checked cast.  Replace use of
9088         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
9089         forced_labels.
9090         (expand_label): Likewise for local "label_r".
9091
9092 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
9093
9094         * function.h (struct rtl_data): Convert field
9095         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
9096         rtx_insn_list *.
9097         * rtl.h (remove_node_from_insn_list): New prototype.
9098
9099         * builtins.c (expand_builtin): When prepending to
9100         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
9101         gen_rtx_EXPR_LIST.
9102         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
9103         to rtx_insn_list *, and use its "insn" method rather than
9104         "element" method.
9105         * cfgrtl.c (delete_insn): Use new function
9106         remove_node_from_insn_list rather than
9107         remove_node_from_expr_list.
9108         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
9109         to rtx_insn_list *, and use its "insn" method rather than
9110         "element" method.
9111         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
9112         * reload1.c (set_initial_label_offsets): Likewise for local "x".
9113         * rtlanal.c (remove_node_from_insn_list): New function, adapted
9114         from remove_node_from_expr_list.
9115         * stmt.c (expand_label): When prepending to
9116         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
9117         gen_rtx_EXPR_LIST.
9118
9119 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
9120
9121         * function.h (struct rtl_data): Strengthen fields "x_return_label"
9122         and "x_naked_return_label" from rtx to rtx_code_label *.
9123
9124 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
9125
9126         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
9127         (SET_NEXT_INSN): Likewise.
9128         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
9129
9130         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
9131         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
9132         to split out the SEQUENCE from local "bundle", strengthening the
9133         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
9134         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
9135         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
9136         and the type of the elements of the "slot" array from rtx to
9137         rtx_insn *.
9138         (reorg_split_calls): Likewise for locals "insn" and "next", and
9139         the type of the elements of the "slot" array.
9140
9141         * config/frv/frv.c (frv_nops): Likewise for the elements of this
9142         array.
9143         (frv_function_prologue): Likewise for locals "insn", "next",
9144         "last_call".
9145         (frv_register_nop): Introduce a local "nop_insn" to be the
9146         rtx_insn * containing rtx "nop".
9147
9148         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
9149         used as an insn and sometimes as a pattern, so rename it to
9150         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
9151         using it where dealing with the core insn.
9152
9153         * config/picochip/picochip.c (reorder_var_tracking_notes):
9154         Strengthen locals "insn", "next", "last_insn", "queue",
9155         "next_queue", "prev" from rtx to rtx_insn *.
9156
9157         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
9158         the second param is an rtx_insn ** rather than an rtx **.
9159         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
9160         from rtx to rtx_sequence *, and introduce local named "sequence",
9161         using methods of rtx_sequence to clarify the code.
9162         (remove_insn): Introduce local rtx_sequence * named "sequence" and
9163         use its methods.
9164         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
9165         Rename param "after" to "uncast_after", reintroducing "after" as a
9166         local rtx_insn * with a checked cast.
9167         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
9168         reintroducing "after" as a local rtx_insn * with a checked cast.
9169         Strengthen local "last" from rtx to rtx_insn * and remove the
9170         now-redundant checked casts.
9171         (copy_delay_slot_insn): Strengthen return type and param from rtx
9172         to rtx_insn *.
9173
9174         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
9175         "last" from rtx to rtx_insn *.
9176
9177 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
9178
9179         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
9180         param from rtx to rtx_insn *.
9181
9182         * emit-rtl.c (copy_delay_slot_insn): Likewise.
9183
9184         * reorg.c (skip_consecutive_labels): Strengthen return type, param
9185         and local "insn" from rtx to rtx_insn *.
9186         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
9187         (unfilled_slots_next): Likewise.
9188         (function_return_label): Strengthen from rtx to rtx_code_label *.
9189         (function_simple_return_label): Likewise.
9190         (first_active_target_insn): Strengthen return type and param from
9191         rtx to rtx_insn *.
9192         (find_end_label): Strengthen return type from rtx to
9193         rtx_code_label *; strengthen locals as appropriate.
9194         (emit_delay_sequence): Strengthen return type, param "insn" and
9195         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
9196         and local "li" from rtx to rtx_insn_list *, using methods of
9197         rtx_insn_list for clarity and typesafety.
9198         (add_to_delay_list): Strengthen return type and param "insn" from
9199         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
9200         rtx_insn_list * and use methods of rtx_insn_list.
9201         (delete_from_delay_slot): Strengthen return type, param "insn",
9202         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
9203         Strengthen local "seq" from rtx to rtx_sequence *, and local
9204         "delay_list" from rtx to rtx_insn_list *, using methods of
9205         rtx_sequence for clarity and type-safety.
9206         (delete_scheduled_jump): Add checked cast when invoking
9207         delete_from_delay_slot.  Strengthen local "trial" from rtx to
9208         rtx_insn *.
9209         (optimize_skip): Strengthen return type and local "delay_list"
9210         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
9211         rtx_insn *.
9212         (steal_delay_list_from_target): Strengthen return type, param
9213         "delay_list" and local "new_delay_list" from rtx to
9214         rtx_insn_list *.  Strengthen param "seq" from rtx to
9215         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
9216         rtx_insn **.
9217         Split out local "temp" into multiple more-tightly scoped locals:
9218         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
9219         of rtx_insn_list and rtx_sequence for clarity and typesafety.
9220         Strengthen locals named "trial" from rtx to rtx_insn *.
9221         (steal_delay_list_from_fallthrough): Strengthen return type and
9222         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
9223         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
9224         Strengthen local "trial" from rtx to rtx_insn *.
9225         (try_merge_delay_insns): Strength local "merged_insns" from rtx
9226         to rtx_insn_list * and use its methods.  Strengthen local "pat"
9227         from rtx to rtx_sequence * and use its methods.  Strengthen locals
9228         "dtrial" and "new_rtx" from rtx to rtx_insn *.
9229         (get_label_before): Strengthen return type and local "label" from
9230         rtx to rtx_insn *.
9231         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
9232         "next_trial", "next", prev".  Strengthen local "delay_list" from
9233         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
9234         rtx_insn **.
9235         (follow_jumps): Strengthen return type, param "label" and locals
9236         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
9237         (fill_slots_from_thread): Strengthen return type, param
9238         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
9239         "insn", "thread", "opposite_thread" and locals "new_thread",
9240         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
9241         "sequence" from a checked cast to rtx_sequence so that we can call
9242         steal_delay_list_from_target and steal_delay_list_from_fallthrough
9243         with an rtx_sequence *.
9244         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
9245         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
9246         Strengthen local "delay_list" from rtx to rtx_insn_list *.
9247         (relax_delay_slots): Strengthen param "first" and locals "insn",
9248         "next", "trial", "delay_insn", "target_label" from rtx to
9249         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
9250         Introduce a local "trial_seq" for PATTERN (trial) of type
9251         rtx_sequence *, in both cases using methods of rtx_sequence.
9252         (dbr_schedule): Strengthen param "first" and locals "insn",
9253         "next", "epilogue_insn" from rtx to rtx_insn *.
9254
9255 2014-08-28  Richard Biener  <rguenther@suse.de>
9256
9257         PR tree-optimization/62283
9258         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9259         Do not peel loops for alignment where the vector loop likely
9260         doesn't run at least VF times.
9261
9262 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
9263
9264         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
9265         important_candidates.  Consider all important candidates if
9266         IVS doesn't give any result.  Remove check on ivs->upto.
9267         (try_add_cand_for): Call iv_ca_add_use only once.
9268
9269 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9270             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9271             Anna Tikhonova  <anna.tikhonova@intel.com>
9272             Ilya Tocar  <ilya.tocar@intel.com>
9273             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9274             Ilya Verbin  <ilya.verbin@intel.com>
9275             Kirill Yukhin  <kirill.yukhin@intel.com>
9276             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9277
9278         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
9279         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
9280         masking.
9281         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
9282         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
9283         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
9284         (define_insn "*mul<mode>3"): Add EVEX version.
9285
9286 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9287             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9288             Anna Tikhonova  <anna.tikhonova@intel.com>
9289             Ilya Tocar  <ilya.tocar@intel.com>
9290             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9291             Ilya Verbin  <ilya.verbin@intel.com>
9292             Kirill Yukhin  <kirill.yukhin@intel.com>
9293             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9294
9295         * config/i386/sse.md
9296         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
9297         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
9298         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
9299         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
9300         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
9301         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
9302         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
9303         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
9304         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
9305         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
9306         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
9307         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
9308         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
9309         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
9310         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
9311         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
9312
9313 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9314             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9315             Anna Tikhonova  <anna.tikhonova@intel.com>
9316             Ilya Tocar  <ilya.tocar@intel.com>
9317             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9318             Ilya Verbin  <ilya.verbin@intel.com>
9319             Kirill Yukhin  <kirill.yukhin@intel.com>
9320             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9321
9322         * config/i386/sse.md
9323         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
9324         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
9325         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
9326
9327 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9328             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9329             Anna Tikhonova  <anna.tikhonova@intel.com>
9330             Ilya Tocar  <ilya.tocar@intel.com>
9331             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9332             Ilya Verbin  <ilya.verbin@intel.com>
9333             Kirill Yukhin  <kirill.yukhin@intel.com>
9334             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9335
9336         * config/i386/sse.md
9337         (define_mode_iterator VI128_256): New.
9338         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
9339
9340 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9341             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9342             Anna Tikhonova  <anna.tikhonova@intel.com>
9343             Ilya Tocar  <ilya.tocar@intel.com>
9344             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9345             Ilya Verbin  <ilya.verbin@intel.com>
9346             Kirill Yukhin  <kirill.yukhin@intel.com>
9347             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9348
9349         * config/i386/sse.md
9350         (define_mode_iterator VI8_256_512): New.
9351         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
9352         Ditto.
9353         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
9354         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
9355         Ditto.
9356         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
9357
9358 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9359
9360         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
9361         pointer to the cumulative reloc value and return the value for
9362         this reloc instead.
9363         (compute_reloc_for_rtx): Take a const_rtx.  Call
9364         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
9365         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
9366         for_each_rtx for the CONST case.
9367
9368 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9369
9370         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
9371         (mark_constants_in_pattern): ...this new function to iterate over
9372         all the subrtxes.
9373         (mark_constants): Update accordingly.
9374
9375 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9376
9377         * varasm.c: Include rtl-iter.h.
9378         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
9379         Remove the pointer to the cumulative hashval_t and just return
9380         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
9381         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9382         Accumulate the hashval_ts here instead of const_rtx_hash_1.
9383
9384 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9385
9386         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
9387         Give real type of data parameter.  Remove return value.
9388         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
9389         to iterate over subrtxes.
9390
9391 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9392
9393         * var-tracking.c (use_narrower_mode_test): Turn from being a
9394         for_each_rtx callback to being a function that examines each
9395         subrtx itself.
9396         (adjust_mems): Update accordingly.
9397
9398 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9399
9400         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
9401         callback to being a function that examines each subrtx itself.
9402         Remove handling of null rtxes.
9403         (add_uses): Update accordingly.
9404
9405 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9406
9407         * var-tracking.c: Include rtl-iter.h.
9408         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
9409         to being a function that examines each subrtx itself.
9410         (use_type): Update accordingly.
9411
9412 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9413
9414         * store-motion.c: Include rtl-iter.h.
9415         (extract_mentioned_regs_1): Delete.
9416         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
9417         for_each_rtx to iterate over subrtxes.
9418
9419 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9420
9421         * sel-sched.c: Include rtl-iter.h
9422         (count_occurrences_1): Delete.
9423         (count_occurrences_equiv): Turn rtxes into const_rtxes.
9424         Use FOR_EACH_SUBRTX rather than for_each_rtx.
9425
9426 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9427
9428         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
9429         * rtlanal.c (tls_referenced_p_1): Delete.
9430         (tls_referenced_p): Take a const_rtx rather than an rtx.
9431         Use FOR_EACH_SUBRTX rather than for_each_rtx.
9432
9433 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9434
9435         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
9436         (for_each_inc_dec): Take an rtx rather than an rtx *.
9437         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
9438         (cselib_record_sets): Likewise.
9439         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
9440         (check_for_inc_dec): Likewise.
9441         * rtlanal.c (for_each_inc_dec_ops): Delete.
9442         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
9443         rather than a pointer to the memory address.  Replace
9444         for_each_inc_dec_ops argument with separate function and data
9445         arguments.  Abort on non-autoinc addresses.
9446         (for_each_inc_dec_find_mem): Delete.
9447         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
9448         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
9449
9450 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9451
9452         * rtl.h (find_all_hard_regs): Declare.
9453         * rtlanal.c (find_all_hard_regs): New function.
9454         (record_hard_reg_uses_1): Delete.
9455         (record_hard_reg_uses): Use find_all_hard_regs.
9456
9457 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9458
9459         * rtl.h (replace_label_data): Delete.
9460         (replace_label): Take the old label, new label and update-nuses flag
9461         as direct arguments.  Return void.
9462         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
9463         * rtlanal.c (replace_label): Update interface as above.  Handle
9464         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
9465         iterator.  Use FOR_EACH_SUBRTX_PTR.
9466
9467 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9468
9469         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
9470         with const_rtx parameters.
9471         * varasm.c (get_pool_constant): Likewise.
9472         * rtlanal.c (rtx_referenced_p_1): Delete.
9473         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9474         Assert that the rtx we're looking for is nonnull.  Allow searches
9475         for constant pool SYMBOL_REFs.
9476
9477 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9478
9479         * reload1.c: Include rtl-iter.h.
9480         (note_reg_elim_costly): Turn from being a for_each_rtx callback
9481         to being a function that examines each subrtx itself.
9482         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
9483
9484 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9485
9486         * regcprop.c (cprop_find_used_regs_1): Delete.
9487         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9488
9489 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9490
9491         * regcprop.c: Include rtl-iter.h.
9492         (kill_value): Take a const_rtx.
9493         (kill_autoinc_value): Turn from being a for_each_rtx callback
9494         to being a function that examines each subrtx itself.
9495         (copyprop_hardreg_forward_1): Update accordingly.
9496
9497 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9498
9499         * reg-stack.c: Include rtl-iter.h.
9500         (subst_stack_regs_in_debug_insn): Delete.
9501         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
9502         instead of for_each_rtx.
9503
9504 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9505
9506         * lower-subreg.c (find_decomposable_subregs): Turn from being
9507         a for_each_rtx callback to being a function that examines each
9508         subrtx itself.  Remove handling of null rtxes.
9509         (decompose_multiword_subregs): Update accordingly.
9510
9511 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9512
9513         * lower-subreg.c (adjust_decomposed_uses): Delete.
9514         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
9515         Remove handling of null rtxes.
9516
9517 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9518
9519         * lower-subreg.c: Include rtl-iter.h.
9520         (resolve_subreg_use): Turn from being a for_each_rtx callback
9521         to being a function that examines each subrtx itself.  Remove
9522         handling of null rtxes.
9523         (resolve_reg_notes, resolve_simple_move): Update accordingly.
9524         (decompose_multiword_subregs): Likewise.
9525
9526 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9527
9528         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
9529         to being a function that examines each subrtx itself.
9530         (simplify_using_condition, simplify_using_initial_values): Update
9531         accordingly.
9532
9533 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9534
9535         * loop-iv.c: Include rtl-iter.h.
9536         (find_single_def_src): New function.
9537         (replace_single_def_regs): Turn from being a for_each_rtx callback
9538         to being a function that examines each subrtx itself.
9539         (replace_in_expr, simplify_using_initial_values): Update accordingly.
9540
9541 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9542
9543         * jump.c (eh_returnjump_p_1): Delete.
9544         (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9545         Remove handling of null rtxes.
9546
9547 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9548
9549         * jump.c: Include rtl-iter.h.
9550         (returnjump_p_1): Delete.
9551         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9552         Remove handling of null rtxes.
9553
9554 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9555
9556         * ira.c: Include rtl-iter.h.
9557         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
9558         to being a function that examines each subrtx itself.  Remove
9559         handling of null rtxes.
9560         (update_equiv_regs): Update call accordingly.
9561
9562 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9563
9564         * fwprop.c: Include rtl-iter.h.
9565         (varying_mem_p): Turn from being a for_each_rtx callback to being
9566         a function that examines each subrtx itself.
9567         (propagate_rtx): Update accordingly.
9568
9569 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9570
9571         * function.c: Include rtl-iter.h
9572         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
9573         callback to being a function that examines each subrtx itself.
9574         Return the changed flag.
9575         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
9576         (instantiate_virtual_regs): Update calls accordingly.
9577
9578 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9579
9580         * final.c: Include rtl-iter.h.
9581         (mark_symbol_ref_as_used): Delete.
9582         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
9583         for_each_rtx.
9584
9585 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9586
9587         * emit-rtl.c: Include rtl-iter.h.
9588         (find_auto_inc): Turn from being a for_each_rtx callback to being
9589         a function that examines each subrtx itself.  Assume the first operand
9590         to an RTX_AUTOINC is the automodified register.
9591         (try_split): Update call accordingly.
9592
9593 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9594
9595         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
9596         Return a bool, inverting the result so that 0/false means "not ok".
9597         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
9598         subrtxes of a CONST.
9599         (mem_loc_descriptor, add_const_value_attribute)
9600         (resolve_addr_in_expr): Update calls accordingly.
9601
9602 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9603
9604         * dwarf2out.c: Include rtl-iter.h.
9605         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
9606         Remove unused data parameter.  Return a bool, inverting the result
9607         so that 0/false means "not ok".
9608         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
9609         instead of for_each_rtx.
9610
9611 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9612
9613         * dse.c: Include rtl-iter.h.
9614         (check_mem_read_rtx): Change void * parameter to real type.
9615         Remove return value.
9616         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
9617         for_each_rtx.  Don't handle null rtxes.
9618
9619 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9620
9621         * df-problems.c: Include rtl-iter.h.
9622         (find_memory): Turn from being a for_each_rtx callback to being
9623         a function that examines each subrtx itself.  Continue to look for
9624         volatile references even after a nonvolatile one has been found.
9625         (can_move_insns_across): Update calls accordingly.
9626
9627 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9628
9629         * ddg.c (walk_mems_2, walk_mems_1): Delete.
9630         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
9631         to iterate over subrtxes.  Return a bool rather than an int.
9632
9633 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9634
9635         * ddg.c: Include rtl-iter.h.
9636         (mark_mem_use_1): Rename to...
9637         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
9638         instead of for_each_rtx.
9639         (mem_read_insn_p): Update accordingly.
9640
9641 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9642
9643         * cse.c (change_cc_mode_args): Delete.
9644         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
9645         a function that examines each subrtx itself.  Take the fields of
9646         change_cc_mode_args as argument and return void.
9647         (cse_change_cc_mode_insn): Update calls accordingly.
9648
9649 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9650
9651         * cse.c (is_dead_reg): Change argument to const_rtx.
9652         (dead_debug_insn_data): Delete.
9653         (is_dead_debug_insn): Expand commentary.  Turn from being a
9654         for_each_rtx callback to being a function that examines
9655         each subrtx itself.  Take the fields of dead_debug_insn_data
9656         as argument.
9657         (delete_trivially_dead_insns): Update call accordingly.
9658
9659 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9660
9661         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
9662         being a for_each_rtx callback to being a function that examines
9663         each subrtx itself.
9664         (cse_extended_basic_block): Update call accordingly.
9665
9666 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9667
9668         * cse.c (check_dependence_data): Delete.
9669         (check_dependence): Change from being a for_each_rtx callback to being
9670         a function that examines all subrtxes itself.  Don't handle null rtxes.
9671         (invalidate): Update call accordingly.
9672
9673 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9674
9675         * cse.c: Include rtl-iter.h.
9676         (approx_reg_cost_1): Delete.
9677         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9678         Don't handle null rtxes.
9679
9680 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9681
9682         * cfgcleanup.c: Include rtl-iter.h.
9683         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
9684         to being a function that examines each subrtx itself.
9685         (thread_jump): Update accordingly.
9686
9687 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9688
9689         * combine-stack-adj.c: Include rtl-iter.h.
9690         (record_stack_refs_data): Delete.
9691         (record_stack_refs): Turn from being a for_each_rtx callback
9692         to being a function that examines each subrtx itself.
9693         Take a pointer to the reflist.  Invert sense of return value
9694         so that true means success and false means failure.  Don't
9695         handle null rtxes.
9696         (combine_stack_adjustments_for_block): Update accordingly.
9697
9698 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9699
9700         * combine.c (record_truncated_value): Turn from being a for_each_rtx
9701         callback to a function that takes an rtx and returns a bool
9702         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
9703         for_each_rtx.
9704
9705 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9706
9707         * combine.c: Include rtl-iter.h.
9708         (unmentioned_reg_p_1): Delete.
9709         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9710         Don't handle null rtxes.
9711
9712 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9713
9714         * calls.c: Include rtl-iter.h.
9715         (internal_arg_pointer_based_exp_1): Delete.
9716         (internal_arg_pointer_based_exp): Take a const_rtx.
9717         Use FOR_EACH_SUBRTX to iterate over subrtxes.
9718
9719 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9720
9721         * caller-save.c: Include rtl-iter.h.
9722         (add_used_regs_1): Delete.
9723         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
9724         to iterate over subrtxes.  Assert that any remaining pseudos
9725         have been spilled.
9726
9727 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9728
9729         * bt-load.c: Include rtl-iter.h.
9730         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
9731         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
9732         to iterate over subrtxes.
9733         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
9734         find_btr_use rather than btr_referenced_p.
9735
9736 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9737
9738         * alias.c: Include rtl-iter.h.
9739         (refs_newer_value_cb): Delete.
9740         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9741
9742 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9743
9744         * rtl-iter.h: New file.
9745         * rtlanal.c: Include it.
9746         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
9747         (generic_subrtx_iterator <T>::add_single_to_queue)
9748         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
9749         (generic_subrtx_iterator <T>::free_array): New functions.
9750         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
9751         (generic_subrtx_iterator <const_rtx_accessor>)
9752         (generic_subrtx_iterator <rtx_var_accessor>
9753         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
9754         (setup_reg_subrtx_bounds): New function.
9755         (init_rtlanal): Call it.
9756
9757 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
9758
9759         PR target/62261
9760         * config/sh/sh.md (ashlsi3): Handle negative shift count for
9761         TARGET_SHMEDIA.
9762         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
9763
9764 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
9765
9766         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
9767
9768 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9769
9770         * rtl.h (JUMP_LABEL_AS_INSN): New.
9771
9772 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9773
9774         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
9775         rtx_expr_list **.
9776         (alloc_EXPR_LIST): Strengthen return type from rtx to
9777         rtx_expr_list *.
9778         (remove_free_EXPR_LIST_node): Likewise for param.
9779         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
9780         from rtx to rtx_expr_list *.
9781         * sched-int.h (struct deps_desc): Strengthen fields
9782         "pending_read_mems" and "pending_write_mems" from rtx to
9783         rtx_expr_list *.
9784
9785         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
9786         rtx to rtx_expr_list *.
9787         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
9788         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
9789         rtx_expr_list **.
9790         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
9791         from rtx to rtx_expr_list *.
9792         * loop-iv.c (simplify_using_initial_values): Strengthen local
9793         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
9794         "pnote_next" from rtx * to rtx_expr_list **.
9795         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
9796         param "exprp" from rtx * to rtx_expr_list **.
9797         (add_insn_mem_dependence): Strengthen local "mem_list" from
9798         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
9799         to rtx_expr_list *.
9800         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
9801         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
9802         param "old_mems_p" from rtx * to rtx_expr_list **.
9803         * var-tracking.c (struct adjust_mem_data): Strengthen field
9804         "side_effects" from rtx to rtx_expr_list *.
9805         (adjust_insn): Replace NULL_RTX with NULL when assigning to
9806         rtx_expr_list *.
9807         (prepare_call_arguments): Likewise.
9808
9809 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9810
9811         * function.h (struct rtl_data): Strengthen field
9812         "x_stack_slot_list" from rtx to rtx_expr_list *.
9813
9814         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
9815         when assigning to stack_slot_list.
9816
9817 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9818
9819         * function.h (struct rtl_data): Strengthen field
9820         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
9821         * rtl.h (remove_node_from_expr_list): Strengthen second param from
9822         rtx * to rtx_expr_list **.
9823
9824         * cfgbuild.c (make_edges): In loop over
9825         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
9826         rtx_expr_list *, and use methods of the latter class to clarify
9827         the code.
9828         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
9829         rtx_expr_list *, and use methods of the latter class to clarify
9830         the code.
9831         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
9832         * reload1.c (set_initial_label_offsets): Likewise for local "x".
9833         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
9834         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
9835         to rtx_expr_list *.  Use methods of the latter class to clarify
9836         the code.
9837
9838 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9839
9840         * function.h (struct expr_status): Strengthen field
9841         "x_forced_labels" from rtx to rtx_expr_list *.
9842
9843         * cfgbuild.c (make_edges): Split local "x" into two locals,
9844         strengthening one from rtx to rtx_expr_list *, and using methods
9845         of said class.
9846         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
9847         loop over forced_labels, introduce strengthen it from rtx to
9848         rtx_expr_list *, using methods to clarify the code.
9849         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
9850         to rtx_expr_list *, using methods of said class to clarify the
9851         code.
9852         * reload1.c (set_initial_label_offsets): Split local "x" into two
9853         per-loop variables, strengthening the first from rtx to
9854         rtx_expr_list * and using methods.
9855
9856 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9857
9858         * coretypes.h (class rtx_expr_list): Add forward declaration.
9859         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
9860         * gengenrtl.c (special_rtx): Add EXPR_LIST.
9861         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
9862         invariant: GET_CODE (X) == EXPR_LIST.
9863         (is_a_helper <rtx_expr_list *>::test): New.
9864         (rtx_expr_list::next): New.
9865         (rtx_expr_list::element): New.
9866         (gen_rtx_EXPR_LIST): New.
9867
9868 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9869
9870         * varasm.c (mark_constants): Convert a GET_CODE check into a
9871         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
9872         Use methods of rtx_sequence to clarify the code.
9873
9874 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9875
9876         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
9877         local "seq" via a checked cast, and use methods of rtx_sequence
9878         to simplify the code.
9879
9880 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9881
9882         * resource.c (mark_referenced_resources): Strengthen local
9883         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
9884         using methods of rtx_sequence to clarify the code.
9885         (find_dead_or_set_registers): Within the switch statement, convert
9886         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
9887         the JUMP_P handling, introduce another local "seq", adding a
9888         checked cast to rtx_sequence *.  In both cases, use methods of
9889         rtx_sequence to clarify the code.
9890         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
9891         via a checked cast, and use methods of rtx_sequence to simplify
9892         the code.
9893
9894 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9895
9896         * reorg.c (redundant_insn): In two places in the function, replace
9897         a check of GET_CODE with a dyn_cast, introducing local "seq", and
9898         usings methods of rtx_sequence to clarify the code.
9899
9900 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9901
9902         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
9903         local "seq" with a checked cast, and use methods of rtx_sequence
9904         to clarify the code.
9905
9906 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9907
9908         * function.c (contains): Introduce local "seq" for PATTERN (insn),
9909         with a checked cast, in the region for where we know it's a
9910         SEQUENCE.  Use methods of rtx_sequence.
9911
9912 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9913
9914         * final.c (get_attr_length_1): Replace GET_CODE check with a
9915         dyn_cast, introducing local "seq" and the use of methods of
9916         rtx_sequence.
9917         (shorten_branches): Likewise, introducing local "body_seq".
9918         Strengthen local "inner_insn" from rtx to rtx_insn *.
9919         (reemit_insn_block_notes): Replace GET_CODE check with a
9920         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
9921         Use methods of rtx_sequence.
9922         (final_scan_insn): Likewise, introducing local "seq" for when
9923         "body" is known to be a SEQUENCE, using its methods.
9924
9925 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9926
9927         * except.c (can_throw_external): Strengthen local "seq" from rtx
9928         to rtx_sequence *.  Use methods of rtx_sequence.
9929         (insn_nothrow_p): Likewise.
9930
9931 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9932
9933         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
9934         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
9935         Use methods of rtx_sequence.
9936         (scan_trace): Likewise for local "pat".
9937
9938 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9939
9940         * coretypes.h (class rtx_sequence): Add forward declaration.
9941         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
9942         invariant: GET_CODE (X) == SEQUENCE.
9943         (is_a_helper <rtx_sequence *>::test): New.
9944         (is_a_helper <const rtx_sequence *>::test): New.
9945         (rtx_sequence::len): New.
9946         (rtx_sequence::element): New.
9947         (rtx_sequence::insn): New.
9948
9949 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9950
9951         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
9952         rtx_insn_list **.
9953         (alloc_INSN_LIST): Strengthen return type from rtx to
9954         rtx_insn_list *.
9955         (copy_INSN_LIST): Likewise for return type and param.
9956         (concat_INSN_LIST): Likewise for both params and return type.
9957         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
9958         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
9959         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
9960         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
9961
9962         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
9963         "implicit_sets", "control_uses", "clobbers" from rtx to
9964         rtx_insn_list *.
9965         (struct deps_desc): Likewise for fields "pending_read_insns",
9966         "pending_write_insns", "pending_jump_insns",
9967         "last_pending_memory_flush", "last_function_call",
9968         "last_function_call_may_noreturn", "sched_before_next_call",
9969         "sched_before_next_jump".
9970         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
9971         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
9972
9973         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
9974         from rtx to rtx_insn_list *.
9975         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
9976         rtx_insn_list *.
9977
9978         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
9979         to rtx_insn_list **.
9980         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
9981         rtx_insn_list *.
9982         (queue_insn): Likewise for local "link".
9983         (struct haifa_saved_data): Strengthen field "insn_queue" from
9984         rtx * to rtx_insn_list **.
9985         (save_backtrack_point): Update allocation of save->insn_queue to
9986         reflect the strengthening of elements from rtx to rtx_insn_list *.
9987         (queue_to_ready): Strengthen local "link" from rtx to
9988         rtx_insn_list *; use methods "next" and "insn" when traversing the
9989         list.
9990         (early_queue_to_ready): Likewise for locals "link", "next_link",
9991         "prev_link".
9992         (schedule_block): Update allocation of insn_queue to reflect the
9993         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
9994         local "link" from rtx to rtx_insn_list *, and use methods when
9995         working it.
9996         (add_to_speculative_block): Strengthen locals "twins" and
9997         "next_node" from rtx to rtx_insn_list *, and use methods when
9998         working with them.  Strengthen local "twin" from rtx to
9999         rtx_insn *, eliminating a checked cast.
10000         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
10001         from rtx to rtx_insn_list *, and use methods when working with
10002         them.
10003
10004         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
10005         from rtx to rtx_insn_list *, adding a checked cast.
10006         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
10007         rtx_insn_list **.
10008         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
10009         "newlink" from rtx to rtx_insn_list *.  Strengthen local
10010         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
10011         from rtx to rtx_insn *.
10012         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
10013         from rtx to rtx_insn_list *.  Use methods of the latter class.
10014         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
10015         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
10016         (remove_free_INSN_LIST_node): Strengthen return type and local
10017         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
10018         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
10019         rtx_insn_list *, using "insn" method.
10020
10021         * sched-deps.c (add_dependence_list):  Strengthen param "list"
10022         from rtx to rtx_insn_list *, and use methods when working with it.
10023         (add_dependence_list_and_free):  Strengthen param "listp" from
10024         rtx * to rtx_insn_list **.
10025         (remove_from_dependence_list): Strenghten param "listp" from rtx *
10026         to rtx_insn_list **, and use methods when working with *listp.
10027         (remove_from_both_dependence_lists): Strengthen param "listp" from
10028         rtx * to rtx_insn_list **
10029         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
10030         to rtx_insn_list **.  Eliminate local "link", in favor of two new
10031         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
10032         respectively.
10033         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
10034         by introducing local "cond_deps".
10035         (remove_from_deps): Strengthen param "insn" from rtx to
10036         rtx_insn *.
10037
10038         * sched-rgn.c (concat_insn_mem_list): Strengthen param
10039         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
10040         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
10041         Use methods of rtx_insn_list.
10042
10043         * store-motion.c (struct st_expr): Strengthen fields
10044         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
10045         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
10046         rtx_insn_list *.
10047         (find_moveable_store): Split out "tmp" into multiple more-tightly
10048         scoped locals.  Use methods of rtx_insn_list *.
10049         (compute_store_table): Strengthen local "tmp" from rtx to
10050         rtx_insn *.  Use methods of rtx_insn_list *.
10051
10052 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
10053
10054         * coretypes.h (class rtx_insn_list): Add forward declaration.
10055         * rtl.h (class rtx_insn_list): New subclass of rtx_def
10056         (is_a_helper <rtx_insn_list *>::test): New.
10057         (rtx_insn_list::next): New.
10058         (rtx_insn_list::insn): New.
10059         (gen_rtx_INSN_LIST): Add prototype.
10060         * emit-rtl.c (gen_rtx_INSN_LIST): New.
10061         * gengenrtl.c (special_rtx): Add INSN_LIST.
10062
10063 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
10064
10065         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
10066         "prev" from rtx to rtx_insn *.
10067
10068 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
10069
10070         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
10071         functions.  Require merely an rtx for now, not an rtx_insn *.
10072         (BLOCK_FOR_INSN): Likewise.
10073         (INSN_LOCATION): Likewise.
10074         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
10075
10076 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
10077
10078         * rtl.h (PATTERN): Convert this macro into a pair of inline
10079         functions, for now, requiring const_rtx and rtx.
10080
10081 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
10082
10083         * target.def (unwind_emit): Strengthen param "insn" from rtx to
10084         rtx_insn *.
10085         (final_postscan_insn): Likewise.
10086         (adjust_cost): Likewise.
10087         (adjust_priority): Likewise.
10088         (variable_issue): Likewise.
10089         (macro_fusion_pair_p): Likewise.
10090         (dfa_post_cycle_insn): Likewise.
10091         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
10092         (first_cycle_multipass_issue): Likewise.
10093         (dfa_new_cycle): Likewise.
10094         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
10095         (speculate_insn): Likewise for param "insn".
10096         (gen_spec_check): Likewise for params "insn" and "label".
10097         (get_insn_spec_ds): Likewise for param "insn".
10098         (get_insn_checked_ds): Likewise.
10099         (dispatch_do): Likewise.
10100         (dispatch): Likewise.
10101         (cannot_copy_insn_p): Likewise.
10102         (invalid_within_doloop): Likewise.
10103         (legitimate_combined_insn): Likewise.
10104         (needed): Likewise.
10105         (after): Likewise.
10106
10107         * doc/tm.texi: Automatically updated to reflect changes to
10108         target.def.
10109
10110         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
10111         working with insn.
10112         (schedule_block): Likewise.
10113         (sched_init): Likewise.
10114         (sched_speculate_insn): Strengthen param "insn" from rtx to
10115         rtx_insn *.
10116         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
10117         working with insn.
10118         * hooks.c (hook_bool_rtx_true): Rename to...
10119         hook_bool_rtx_insn_true): ...this, and strengthen first param from
10120         rtx to rtx_insn *.
10121         (hook_constcharptr_const_rtx_null): Rename to...
10122         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
10123         first param from const_rtx to const rtx_insn *.
10124         (hook_bool_rtx_int_false): Rename to...
10125         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
10126         param from rtx to rtx_insn *.
10127         (hook_void_rtx_int): Rename to...
10128         (hook_void_rtx_insn_int): ...this, and strengthen first param from
10129         rtx to rtx_insn *.
10130
10131         * hooks.h (hook_bool_rtx_true): Rename to...
10132         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
10133         rtx to rtx_insn *.
10134         (hook_bool_rtx_int_false): Rename to...
10135         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
10136         param from rtx to rtx_insn *.
10137         (hook_void_rtx_int): Rename to...
10138         (hook_void_rtx_insn_int): ...this, and strengthen first param from
10139         rtx to rtx_insn *.
10140         (hook_constcharptr_const_rtx_null): Rename to...
10141         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
10142         first param from const_rtx to const rtx_insn *.
10143
10144         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
10145         and local "prev" from rtx to rtx_insn *.
10146
10147         * sched-int.h (sched_speculate_insn): Strengthen first param from
10148         rtx to rtx_insn *.
10149
10150         * sel-sched.c (create_speculation_check): Likewise for local "label".
10151         * targhooks.c (default_invalid_within_doloop): Strengthen param
10152         "insn" from const_rtx to const rtx_insn *.
10153         * targhooks.h (default_invalid_within_doloop): Strengthen param
10154         from const_rtx to const rtx_insn *.
10155
10156         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
10157         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
10158
10159         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
10160         "insn".
10161         (arc_invalid_within_doloop): Likewise, with const.
10162
10163         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
10164         (arm_cannot_copy_insn_p): Likewise for param "insn".
10165         (arm_unwind_emit): Likewise.
10166
10167         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
10168         "dep_insn".
10169
10170         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
10171         (c6x_variable_issue): Likewise.  Removed now-redundant checked
10172         cast.
10173         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
10174
10175         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
10176         Likewise for param "insn".
10177         (epiphany_mode_after): Likewise.
10178         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
10179         params "insn", "dep_insn".
10180         (epiphany_mode_needed): Likewise for param "insn".
10181         (epiphany_mode_after): Likewise.
10182
10183         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
10184         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
10185         (ix86_avx_u128_mode_needed): Likewise.
10186         (ix86_i387_mode_needed): Likewise.
10187         (ix86_mode_needed): Likewise.
10188         (ix86_avx_u128_mode_after): Likewise.
10189         (ix86_mode_after): Likewise.
10190         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
10191         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
10192         (ix86_adjust_priority): Likewise for param "insn".
10193         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
10194         (do_dispatch): Likewise.
10195         (has_dispatch): Likewise.
10196         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
10197
10198         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
10199         reflect renaming of default hook implementation from
10200         hook_constcharptr_const_rtx_null to
10201         hook_constcharptr_const_rtx_insn_null.
10202         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
10203         rtx to rtx_insn *.
10204         (ia64_variable_issue): Likewise for param "insn".
10205         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
10206         (ia64_dfa_new_cycle): Likewise.
10207         (ia64_get_insn_spec_ds): Likewise.
10208         (ia64_get_insn_checked_ds): Likewise.
10209         (ia64_speculate_insn): Likewise.
10210         (ia64_gen_spec_check): Likewise for params "insn", "label".
10211         (ia64_asm_unwind_emit): Likewise for param "insn".
10212
10213         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
10214
10215         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
10216         "insn", "def_insn".
10217         (m68k_sched_variable_issue): Likewise for param "insn".
10218
10219         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
10220         "def_insn".
10221
10222         * config/microblaze/microblaze.c (microblaze_adjust_cost):
10223         Likewise for params "insn", "dep".
10224
10225         * config/mips/mips.c (mips_adjust_cost): Likewise.
10226         (mips_variable_issue): Likewise for param "insn".
10227         (mips_final_postscan_insn): Likewise.
10228
10229         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
10230         for params "insn", "dep".
10231
10232         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
10233         "dep_insn".
10234         (pa_adjust_priority): Likewise for param "insn".
10235
10236         * config/picochip/picochip.c (picochip_sched_adjust_cost):
10237         Likewise for params "insn", "dep_insn".
10238
10239         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
10240         param "insn".
10241         (rs6000_variable_issue): Likewise.
10242         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
10243         (rs6000_debug_adjust_cost): Likewise.
10244         (rs6000_adjust_priority): Likewise for param "insn".
10245         (rs6000_use_sched_lookahead_guard): Likewise.
10246         (get_next_active_insn): Likewise for return type and both params.
10247         (redefine_groups): Likewise for params "prev_head_insn", "tail"
10248         and locals "insn", "next_insn".
10249         (pad_groups): Likewise.
10250
10251         * config/s390/s390.c (s390_adjust_priority): Likewise for param
10252         "insn".
10253         (s390_cannot_copy_insn_p): Likewise.
10254         (s390_sched_variable_issue): Likewise for third param, eliminating
10255         checked cast.
10256         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
10257         default hook implementation from hook_constcharptr_const_rtx_null
10258         to hook_constcharptr_const_rtx_insn_null.
10259
10260         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
10261         from rtx to rtx_insn *.
10262         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
10263         (sh_variable_issue): Likewise for param "insn".
10264         (sh_dfa_new_cycle): Likewise.
10265         (sh_mode_needed): Likewise.
10266         (sh_mode_after): Likewise.
10267
10268         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
10269         params "insn", "dep_insn".
10270         (hypersparc_adjust_cost): Likewise.
10271         (sparc_adjust_cost): Likewise.
10272
10273         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
10274         param, eliminated checked cast.
10275         (spu_sched_adjust_cost): Likewise for first and third params.
10276
10277         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
10278         params "insn" and "dep_insn" from rtx to rtx_insn *.
10279
10280         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
10281
10282 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
10283
10284         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
10285         (set_is_load_p): ...this, updating to work on a SET pattern rather
10286         than an insn.
10287         (is_store_insn): Rename to...
10288         (set_is_store_p): ...this, updating to work on a SET pattern
10289         rather than an insn.
10290         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
10291         top of function to where it is needed.  Rewrite the bogus
10292         condition that checks for "insn" and "dep" being PARALLEL to
10293         instead use single_set, introducing locals "insn_set" and
10294         "dep_set".  Given that we only ever returned "cost" for a non-pair
10295         of SETs, bail out early if we don't have a pair of SET.
10296         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
10297         use the new locals "insn_set" and "dep_set", and update calls to
10298         is_load_insn and is_store_insn to be calls to set_is_load_p and
10299         set_is_store_p.
10300
10301 2014-08-27  Guozhi Wei  <carrot@google.com>
10302
10303         PR target/62262
10304         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
10305         amount before using it.
10306
10307 2014-08-27  Richard Biener  <rguenther@suse.de>
10308
10309         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
10310         get_maxval_strlen inside a more useful API.
10311         (gimple_fold_builtin_with_strlen): Remove and fold into ...
10312         (gimple_fold_builtin): ... caller.
10313         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
10314         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
10315         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
10316         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
10317         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
10318         gimple_fold_builtin_sprintf): Adjust to compute maxval
10319         themselves.
10320
10321 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
10322
10323         PR other/62248
10324         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
10325
10326 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10327             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10328             Anna Tikhonova  <anna.tikhonova@intel.com>
10329             Ilya Tocar  <ilya.tocar@intel.com>
10330             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10331             Ilya Verbin  <ilya.verbin@intel.com>
10332             Kirill Yukhin  <kirill.yukhin@intel.com>
10333             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10334
10335         * config/i386/sse.md
10336         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
10337         Use `concat_tg_mode' attribute to determine asm register size.
10338
10339 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10340             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10341             Anna Tikhonova  <anna.tikhonova@intel.com>
10342             Ilya Tocar  <ilya.tocar@intel.com>
10343             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10344             Ilya Verbin  <ilya.verbin@intel.com>
10345             Kirill Yukhin  <kirill.yukhin@intel.com>
10346             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10347
10348         * config/i386/sse.md
10349         (define_mode_iterator VI48_AVX512VL): New.
10350         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
10351         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
10352         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
10353         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10354         with VI1): Change mode iterator.
10355         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10356         with VI_ULOADSTORE_BW_AVX512VL): New.
10357         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10358         with VI_ULOADSTORE_F_AVX512VL): Ditto.
10359         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10360         with VI1): Change mode iterator.
10361         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10362         with VI_ULOADSTORE_BW_AVX512VL): New.
10363         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10364         with VI_ULOADSTORE_F_AVX512VL): Ditto.
10365         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
10366         with VI1): Change mode iterator.
10367         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
10368         with VI_ULOADSTORE_BW_AVX512VL): New.
10369         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
10370         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
10371         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
10372         (define_insn "<avx512>_storedqu<mode>_mask" with
10373         VI48_AVX512VL): New.
10374         (define_insn "<avx512>_storedqu<mode>_mask" with
10375         VI12_AVX512VL): Ditto.
10376
10377 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10378             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10379             Anna Tikhonova  <anna.tikhonova@intel.com>
10380             Ilya Tocar  <ilya.tocar@intel.com>
10381             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10382             Ilya Verbin  <ilya.verbin@intel.com>
10383             Kirill Yukhin  <kirill.yukhin@intel.com>
10384             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10385
10386         * config/i386/sse.md
10387         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
10388         (define_mode_iterator VI48_AVX512BW): New.
10389         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
10390         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
10391         with VI48_AVX2_48_AVX512F): New.
10392         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
10393         with VI2_AVX512VL): Ditto.
10394
10395 2014-08-27  Richard Biener  <rguenther@suse.de>
10396
10397         PR middle-end/62239
10398         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
10399         (fold_builtin_3): Do not fold strcat_chk here.
10400         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
10401         from builtins.c.
10402         (gimple_fold_builtin): Fold strcat_chk here.
10403
10404 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
10405
10406         * dwarf2out.h (dwarf2out_decl): Remove prototype.
10407         * dwarf2out.c (dwarf2out_decl): Make static.
10408
10409 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
10410
10411         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
10412
10413 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10414
10415         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
10416         from rtx to rtx_insn *.
10417         (cselib_lookup_from_insn): Likewise for final param.
10418         (cselib_subst_to_values_from_insn): Likewise.
10419         (cselib_add_permanent_equiv): Likewise.
10420
10421         * cselib.c (cselib_current_insn): Likewise for this variable.
10422         (cselib_subst_to_values_from_insn): Likewise for param "insn".
10423         (cselib_lookup_from_insn): Likewise.
10424         (cselib_add_permanent_equiv): Likewise for param "insn" and local
10425         "save_cselib_current_insn".
10426         (cselib_process_insn): Replace use of NULL_RTX with NULL.
10427
10428         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
10429         from rtx to rtx_insn *.
10430
10431 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10432
10433         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
10434         rtx_insn *.
10435
10436 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10437
10438         * df.h (df_dump_insn_problem_function): Strengthen first param of
10439         this callback from const_rtx to const rtx_insn *.
10440         (struct df_insn_info): Strengthen field "insn" from rtx to
10441         rtx_insn *.
10442         (DF_REF_INSN): Eliminate this function, reinstating the older
10443         macro definition.
10444         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
10445         (df_reg_defined): Likewise.
10446         (df_find_use): Likewise.
10447         (df_reg_used): Likewise.
10448         (df_dump_insn_top): Strengthen param 1 from const_rtx to
10449         const rtx_insn *.
10450         (df_dump_insn_bottom): Likewise.
10451         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
10452         (df_insn_debug_regno): Likewise.
10453         (debug_df_insn): Likewise.
10454         (df_rd_simulate_one_insn): Likewise for param 2.
10455         (df_word_lr_simulate_defs): Likewise for param 1.
10456         (df_word_lr_simulate_uses): Likewise.
10457         (df_md_simulate_one_insn): Likewise for param 2.
10458         (df_simulate_find_noclobber_defs): Likewise for param 1.
10459         (df_simulate_find_defs): Likewise.
10460         (df_simulate_defs): Likewise.
10461         (df_simulate_uses): Likewise.
10462         (df_simulate_one_insn_backwards): Likewise for param 2.
10463         (df_simulate_one_insn_forwards): Likewise.
10464         (df_uses_create): Likewise for param 2.
10465         (df_insn_create_insn_record): Likewise for param 1.
10466         (df_insn_delete): Likewise.
10467         (df_insn_rescan): Likewise.
10468         (df_insn_rescan_debug_internal): Likewise.
10469         (df_insn_change_bb): Likewise.
10470         (df_notes_rescan): Likewise.
10471         * rtl.h (remove_death): Likewise for param 2.
10472         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
10473         const rtx_insn *.
10474         * sched-int.h (reemit_notes): Strengthen param from rtx to
10475         rtx_insn *.
10476         * valtrack.h (propagate_for_debug): Likewise for param 1.
10477
10478         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
10479         local "tmp_rtx" from const_rtx to const rtx_insn *.
10480         * combine.c (remove_death): Strengthen param "insn" from rtx to
10481         rtx_insn *.
10482         (move_deaths): Likewise for local "where_dead".
10483         * cse.c (delete_trivially_dead_insns): Introduce local
10484         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
10485         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
10486         rtx_insn *.
10487         (df_reg_defined): Likewise.
10488         (df_find_use): Likewise.
10489         (df_reg_used): Likewise.
10490         (df_dump_insn_problem_data): Strengthen param "insn" from
10491         const_rtx to const rtx_insn *.
10492         (df_dump_insn_top): Likewise.
10493         (df_dump_insn_bottom): Likewise.
10494         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
10495         (df_insn_debug_regno): Likewise.
10496         (debug_df_insn): Likewise.
10497         (DF_REF_INSN): Delete.
10498         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
10499         from rtx to rtx_insn *.
10500         (df_chain_insn_top_dump): Strengthen param "insn" from
10501         const_rtx to const rtx_insn *.
10502         (df_chain_insn_bottom_dump): Likewise.
10503         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
10504         rtx_insn *.
10505         (df_word_lr_simulate_uses): Likewise.
10506         (df_print_note): Likewise.
10507         (df_remove_dead_and_unused_notes): Likewise.
10508         (df_set_unused_notes_for_mw): Likewise.
10509         (df_set_dead_notes_for_mw): Likewise.
10510         (df_create_unused_note): Likewise.
10511         (df_simulate_find_defs): Likewise.
10512         (df_simulate_find_uses): Likewise.
10513         (df_simulate_find_noclobber_defs): Likewise.
10514         (df_simulate_defs): Likewise.
10515         (df_simulate_uses): Likewise.
10516         (df_simulate_one_insn_backwards): Likewise.
10517         (df_simulate_one_insn_forwards): Likewise.
10518         (df_md_simulate_one_insn): Likewise.
10519         * df-scan.c (df_uses_create): Likewise.
10520         (df_insn_create_insn_record): Likewise.
10521         (df_insn_delete): Likewise.
10522         (df_insn_rescan): Likewise.
10523         (df_insn_rescan_debug_internal): Likewise.
10524         (df_insn_change_bb): Likewise.
10525         (df_notes_rescan): Likewise.
10526         (df_refs_add_to_chains): Likewise.
10527         (df_insn_refs_verify): Likewise.
10528         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
10529         when invoking df_insn_delete.
10530         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
10531         (set_unique_reg_note): Add checked cast.
10532         * final.c (cleanup_subreg_operands): Likewise.
10533         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
10534         "insn" from rtx to rtx_insn *.
10535         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
10536         "last" from rtx to rtx_insn *.
10537         * ira-emit.c (change_regs_in_insn): New function.
10538         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
10539         Invoke change_regs_in_insn rather than change_regs.
10540         * ira.c (update_equiv_regs): Strengthen locals "insn",
10541         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
10542         for_each_rtx_in_insn rather than for_each_rtx.
10543         * recog.c (confirm_change_group): Add checked casts.
10544         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
10545         Add checked cast.
10546         (peep2_fill_buffer): Add checked cast.
10547         * rtlanal.c (remove_note): Likewise.
10548         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
10549         locals "next" "end" from rtx to rtx_insn *.
10550
10551 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10552
10553         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
10554         to rtx_insn *.
10555         (struct reg_use_data): Likewise for field "insn".
10556         (insn_cost): Likewise for param.
10557         (real_insn_for_shadow): Likewise for return type and param.
10558         (increase_insn_priority): Likewise for param 1.
10559         (debug_dependencies): Likewise for both params.
10560
10561         * haifa-sched.c (insn_delay): Likewise for param "insn".
10562         (real_insn_for_shadow): Likewise for return type and param "insn".
10563         (update_insn_after_change): Likewise for param "insn".
10564         (recompute_todo_spec): Likewise for param "next" and locals "pro",
10565         "other".
10566         (insn_cost): Likewise for param "insn".
10567         (increase_insn_priority): Likewise.
10568         (calculate_reg_deaths): Likewise.
10569         (setup_insn_reg_pressure_info): Likewise.
10570         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
10571         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
10572         (model_recompute): Likewise.
10573         (must_restore_pattern_p): Likewise for param "next".
10574         (model_excess_cost): Likewise for param "insn".
10575         (queue_remove): Likewise.
10576         (adjust_priority): Likewise for param "prev".
10577         (update_register_pressure): Likewise for param "insn".
10578         (setup_insn_max_reg_pressure): Likewise for local "insn".
10579         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
10580         (model_add_to_schedule): Likewise.
10581         (model_reset_queue_indices): Likewise for local "insn".
10582         (unschedule_insns_until): Strengthen local "recompute_vec" from
10583         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
10584         "con" from rtx to rtx_insn *.
10585         (restore_last_backtrack_point): Likewise for both locals "x". Add
10586         checked casts.
10587         (estimate_insn_tick): Likewise for param "insn".
10588         (commit_schedule): Likewise for params "prev_head", "tail" and
10589         local "x".
10590         (verify_shadows): Likewise for locals "i1", "i2".
10591         (dump_insn_stream): Likewise for params "head", "tail" and locals
10592         "next_tail", "insn".
10593         (schedule_block): Likewise for locals "insn", "x".  Add a checked
10594         cast.
10595         (fix_inter_tick): Likewise for params "head", "tail".
10596         (create_check_block_twin): Likewise for local "jump".
10597         (haifa_change_pattern): Likewise for param "insn".
10598         (haifa_speculate_insn): Likewise.
10599         (dump_new_block_header): Likewise for params "head", "tail".
10600         (fix_jump_move): Likewise for param "jump".
10601         (move_block_after_check): Likewise.
10602         (sched_init_insn_luid): Likewise for param "insn".
10603         (sched_init_luids): Likewise for local "insn".
10604         (insn_luid): Likewise for param "insn".
10605         (init_h_i_d): Likewise.
10606         (haifa_init_h_i_d): Likewise for local "insn".
10607         (haifa_init_insn): Likewise for param "insn".
10608         * sched-deps.c (add_dependence): Likewise for local "real_pro",
10609         "other".
10610         (create_insn_reg_use): Likewise for param "insn".
10611         (setup_insn_reg_uses): Likewise.  Add a checked cast.
10612         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
10613         "tail" from rtx to rtx_insn *.
10614         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
10615         "insn", "next_tail".
10616
10617 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10618
10619         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
10620         from rtx to rtx_insn *.
10621         (model_add_to_schedule): Likewise for locals "start", "end",
10622         "iter".
10623
10624 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10625
10626         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
10627         rtx_insn *.
10628         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
10629         "to" and locals "insn", "next", "copy".  Remove now-redundant
10630         checked cast.
10631
10632 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10633
10634         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
10635         rtx_insn * and param 4 from rtx * to rtx_insn **.
10636         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
10637         param 2 from rtx * to rtx_insn **.
10638
10639         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
10640         rtx_insn * and final param from rtx * to rtx_insn **.
10641
10642         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
10643         from rtx to rtx_insn *.
10644         (try_head_merge_bb): Likewise for both locals named "move_upto".
10645         * df-problems.c (can_move_insns_across): Likewise for params
10646         "from", "to", "across_from", "across_to" and locals "insn",
10647         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
10648         rtx_insn **.
10649         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
10650         from rtx to rtx_insn *.
10651         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
10652         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
10653         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
10654         rtx_insn *.
10655         (noce_try_abs): Likewise.
10656         (noce_get_condition): Likewise for param "jump".  Strengthen param
10657         "earliest" from rtx * to rtx_insn **.
10658         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
10659         rtx_insn *.
10660         (find_cond_trap): Likewise.
10661         (dead_or_predicable): Likewise for local "earliest".
10662         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
10663         checked cast.
10664         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
10665         and local "prev".  Strengthen param "earliest" from rtx * to
10666         rtx_insn **.
10667         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
10668         Strengthen param "earliest" from rtx * to rtx_insn **.
10669
10670 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10671
10672         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
10673         "to" and local "insn" from rtx to rtx_insn *.
10674
10675 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10676
10677         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
10678         from rtx to rtx_insn *.
10679         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
10680         (code_motion_path_driver): Likewise for local "last_insn".
10681         (simplify_changed_insns): Likewise for local "insn".
10682
10683 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10684
10685         * rtl.h (push_to_sequence): Strengthen param from rtx to
10686         rtx_insn *.
10687         (push_to_sequence2): Likewise for both params.
10688         (delete_insns_since): Likewise for param.
10689         (reorder_insns_nobb): Likewise for all three params.
10690         (set_new_first_and_last_insn): Likewise for both params.
10691
10692         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
10693         rtx_insn *.  Remove now-redundant cast.
10694         (set_last_insn): Likewise.
10695
10696         * builtins.c (expand_builtin_return): Strengthen local
10697         "call_fusage" from rtx to rtx_insn *.
10698         * cfgrtl.c (create_basic_block_structure): Likewise for local
10699         "after".
10700         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
10701         "first", "last" and local "insn".
10702         (delete_insns_since): Likewise for param "from".
10703         (reorder_insns_nobb): Likewise for params "from", "to", "after"
10704         and local "x".
10705         (push_to_sequence): Likewise for param "first" and local "last".
10706         (push_to_sequence2): Likewise for params "first" and "last".
10707         * lra.c (emit_add3_insn): Likewise for local "last".
10708         (lra_emit_add): Likewise.
10709         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
10710         "last_insn".
10711         (process_address_1): Likewise for locals "insn", last".
10712         * modulo-sched.c (ps_first_note): Likewise for return type.
10713         * optabs.c (expand_binop_directly): Likewise for param "last".
10714
10715 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10716
10717         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
10718         to rtx_insn*.
10719         * emit-rtl.c (get_last_insn_anywhere): Likewise.
10720
10721 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10722
10723         * function.h (struct sequence_stack): Strengthen fields "first"
10724         and "last" from rtx to rtx_insn *.
10725         (struct emit_status): Likewise for fields "x_first_insn" and
10726         "x_last_insn".
10727
10728         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
10729         (set_first_insn): Add checked cast.
10730         (get_last_insn): Remove now-redundant checked cast.
10731         (set_last_insn): Add checked cast.
10732
10733         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
10734         "saved_first" and "saved_last" from rtx to rtx_insn *.
10735
10736 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10737
10738         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
10739         (unlink_insn_chain): Strengthen both params from rtx to
10740         rtx_insn *.
10741
10742         * cfgrtl.c (cfg_layout_function_header): Likewise for this
10743         variable.
10744         (unlink_insn_chain): Likewise for params "first" and "last".
10745         Remove now-redundant checked cast.
10746         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
10747         (fixup_reorder_chain): Strengthen local "insn" from rtx to
10748         rtx_insn *.
10749         * emit-rtl.c (link_insn_into_chain): Likewise for all three
10750         params.
10751         (add_insn): Likewise for param "insn" and local "prev".
10752         (add_insn_after_nobb): Likewise for both params and local "next".
10753         (add_insn_before_nobb): Likewise for both params and local "prev".
10754         (add_insn_after): Rename param "after" to "uncast_after",
10755         introducing local "after" with another checked cast.
10756         (add_insn_before): Rename params "insn" and "before", giving them
10757         "uncast_" prefixes, adding the old names back using checked casts.
10758         (emit_note_after): Likewise for param "after".
10759         (emit_note_before): Likewise for param "before".
10760         (emit_label): Add a checked cast.
10761
10762 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10763
10764         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
10765         "insn" from rtx to rtx_insn *.
10766
10767         * cselib.c (cselib_record_sets_hook): Likewise.
10768
10769         * var-tracking.c (add_with_sets): Likewise, renaming back from
10770         "uncast_insn" to "insn" and eliminating the checked cast from rtx
10771         to rtx_insn *.
10772
10773 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10774
10775         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
10776         and "header_" from rtx to rtx_insn *.
10777         (struct basic_block_d): Likewise for field "head_" within "x"
10778         field of union basic_block_il_dependent.
10779         (BB_HEAD): Drop function...
10780         (SET_BB_HEAD): ...and this function in favor of...
10781         (BB_HEAD): ...reinstate macro.
10782         (BB_END): Drop function...
10783         (SET_BB_END): ...and this function in favor of...
10784         (BB_END): ...reinstate macro.
10785         (BB_HEADER): Drop function...
10786         (SET_BB_HEADER): ...and this function in favor of...
10787         (BB_HEADER): ...reinstate macro.
10788
10789         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
10790         (fix_crossing_unconditional_branches): Likewise.
10791         * caller-save.c (save_call_clobbered_regs): Likewise.
10792         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
10793         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
10794         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
10795         (merge_blocks_move_successor_nojumps): Likewise.
10796         (outgoing_edges_match): Update use of for_each_rtx to
10797         for_each_rtx_in_insn.
10798         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
10799         (expand_gimple_cond): Likewise.
10800         (expand_gimple_tailcall): Likewise.
10801         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
10802         SET_BB_END.
10803         (construct_exit_block): Drop use of SET_BB_END.
10804         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
10805         rtx_insn *.
10806         (delete_insn): Rename param "insn" to "uncast_insn", introducing
10807         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
10808         SET_BB_HEAD and SET_BB_END.
10809         (create_basic_block_structure): Drop use of SET_BB_HEAD and
10810         SET_BB_END.
10811         (rtl_delete_block): Drop use of SET_BB_HEAD.
10812         (rtl_split_block): Drop use of SET_BB_END.
10813         (emit_nop_for_unique_locus_between): Likewise.
10814         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
10815         (block_label): Drop use of SET_BB_HEAD.
10816         (fixup_abnormal_edges): Drop use of SET_BB_END.
10817         (record_effective_endpoints): Drop use of SET_BB_HEADER.
10818         (relink_block_chain): Likewise.
10819         (fixup_reorder_chain): Drop use of SET_BB_END.
10820         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
10821         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
10822         rtx_insn **.  Drop use of SET_BB_HEADER.
10823         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
10824         SET_BB_HEAD.
10825         (BB_HEAD): Delete this function.
10826         (SET_BB_HEAD): Likewise.
10827         (BB_END): Likewise.
10828         (SET_BB_END): Likewise.
10829         (BB_HEADER): Likewise.
10830         (SET_BB_HEADER): Likewise.
10831         * emit-rtl.c (add_insn_after):  Rename param "insn" to
10832         "uncast_insn", adding a new local "insn" and a checked cast to
10833         rtx_insn *.  Drop use of SET_BB_END.
10834         (remove_insn): Strengthen locals "next" and "prev" from rtx to
10835         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
10836         (reorder_insns): Drop use of SET_BB_END.
10837         (emit_insn_after_1): Strengthen param "first" and locals "last",
10838         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
10839         (emit_pattern_after_noloc): Add checked cast.
10840         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
10841         (restore_other_notes): Likewise.
10842         (move_insn): Likewise.
10843         (sched_extend_bb): Likewise.
10844         (fix_jump_move): Likewise.
10845         * ifcvt.c (noce_process_if_block): Likewise.
10846         (dead_or_predicable): Likewise.
10847         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
10848         * reg-stack.c (change_stack): Drop use of SET_BB_END.
10849         * sel-sched-ir.c (sel_move_insn): Likewise.
10850         * sel-sched.c (move_nop_to_previous_block): Likewise.
10851
10852         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
10853         SET_BB_END.
10854         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
10855
10856 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10857
10858         * basic-block.h (create_basic_block_structure): Strengthen params
10859         1 "head" and 2 "end" from rtx to rtx_insn *.
10860         * cfgrtl.c (create_basic_block_structure): Likewise.
10861         (rtl_create_basic_block): Update casts from void * to rtx to
10862         rtx_insn *, so that we can pass them as rtx_insn * to
10863         create_basic_block_structure.
10864         * sel-sched-ir.c (sel_create_basic_block): Likewise.
10865
10866 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10867
10868         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
10869         rtx_insn **.
10870         (check_for_inc_dec): Strengthen param "insn" from rtx to
10871         rtx_insn *.
10872
10873         * cselib.h (cselib_process_insn): Likewise.
10874
10875         * cselib.c (cselib_record_sets): Likewise.
10876         (cselib_process_insn): Likewise.
10877
10878         * dse.c (struct insn_info): Likewise for field "insn".
10879         (check_for_inc_dec_1): Likewise for local "insn".
10880         (check_for_inc_dec): Likewise for param "insn".
10881         (scan_insn): Likewise.
10882         (dse_step1): Likewise for local "insn".
10883
10884         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
10885         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
10886
10887 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10888
10889         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
10890         from rtx to rtx_insn *.
10891         (DEP_PRO): Delete this function and...
10892         (SET_DEP_PRO): ...this function in favor of...
10893         (DEP_PRO): ...reinstate this macro.
10894         (DEP_CON): Delete this function and...
10895         (SET_DEP_CON): ...this function in favor of...
10896         (DEP_CON): ...reinstate this old macro.
10897         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
10898         (init_dep): Likewise.
10899         (set_priorities): Likewise for both params.
10900         (sd_copy_back_deps): Likewise for params 1 and 2.
10901
10902         * haifa-sched.c (priority): Likewise for param "insn" and local
10903         "next".
10904         (set_priorities): Likewise for params "head" and "tail" and local
10905         "insn".
10906         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
10907         local "consumer".
10908         (add_to_speculative_block): Add a checked cast.
10909         (create_check_block_twin): Drop use of SET_DEP_CON.
10910         (add_jump_dependencies): Strengthen params "insn" and "jump" from
10911         rtx to rtx_insn *.
10912
10913         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
10914         Drop use of SET_DEP_PRO
10915         (init_dep): Strengthen params "pro" and "con" from rtx to
10916         rtx_insn *.
10917         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
10918         use of SET_DEP_CON.
10919         (DEP_PRO): Delete.
10920         (DEP_CON): Delete.
10921         (SET_DEP_PRO): Delete.
10922         (SET_DEP_CON): Delete.
10923
10924 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10925
10926         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
10927         from rtx to rtx_insn *.
10928         (VINSN_INSN_RTX): Eliminate rvalue function and...
10929         (SET_VINSN_INSN): ...lvalue function in favor of...
10930         (VINSN_INSN_RTX): reinstate this old macro.
10931
10932         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
10933         in favor of VINSN_INSN_RTX.
10934         (VINSN_INSN_RTX): Delete this function.
10935         (SET_VINSN_INSN_RTX): Likewise.
10936
10937 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10938
10939         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
10940         (BND_TO): Delete this function and...
10941         (SET_BND_TO): ...this functions in favor of...
10942         (BND_TO): ...reinstating this macro.
10943         (struct _fence): Strengthen field "executing_insns" from
10944         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
10945         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
10946         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
10947         and param "insn" from rtx to insn_t.
10948         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
10949         rtx_insn *.
10950
10951         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
10952         vec<rtx_insn *> .
10953         (rtx_vec_t): Likewise.
10954         (struct sched_deps_info_def): Strengthen param of "start_insn"
10955         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
10956         "note_mem_dep" callback and first param of "note_dep" callback.
10957
10958         * haifa-sched.c (add_to_speculative_block): Strengthen param
10959         "insn" from rtx to rtx_insn *.
10960         (clear_priorities): Likewise.
10961         (calc_priorities): Likewise for local "insn".
10962
10963         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
10964         Remove redundant checked cast.
10965         (haifa_note_mem_dep): Likewise for param "pending_insn".
10966         (haifa_note_dep): Likewise for param "elem".
10967         (note_mem_dep): Likewise for param "e".
10968         (sched_analyze_1): Add checked casts.
10969         (sched_analyze_2): Likewise.
10970
10971         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
10972         from rtx to rtx_insn *.
10973         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
10974         from vec<rtx> * to vec<rtx_insn *> *.
10975
10976         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
10977         scaffolding.
10978         (flist_add): Strengthen param "executing_insns" from
10979         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
10980         (advance_deps_context): Remove now-redundant checked cast.
10981         (init_fences): Replace uses of NULL_RTX with NULL.
10982         (merge_fences): Strengthen params "last_scheduled_insn" and
10983         "sched_next" from rtx to rtx_insn * and "executing_insns" from
10984         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
10985         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
10986         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
10987         an instruction, rather than doing double-duty as a pattern.
10988         (return_nop_to_pool): Update for change of insn_t.
10989         (deps_init_id): Remove now-redundant checked cast.
10990         (struct sched_scan_info_def): Strengthen param of "init_insn"
10991         callback from rtx to insn_t.
10992         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
10993         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
10994         NULL.
10995         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
10996         "end" from rtx to rtx_insn *.
10997         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
10998         (rtx insn_rtx, bool force_unique_p)
10999         (BND_TO): Delete function.
11000         (SET_BND_TO): Delete function.
11001
11002         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
11003         rtx to rtx_insn *.
11004         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
11005         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
11006         rtx to rtx_insn *.
11007         (undo_transformations): Likewise for param "insn".
11008         (update_liveness_on_insn): Likewise.
11009         (compute_live_below_insn): Likewise for param "insn" and local
11010         "succ".
11011         (update_data_sets): Likewise for param "insn".
11012         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
11013         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
11014         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
11015         rtx_insn *.
11016         (move_cond_jump): Likewise for param "insn".
11017         (move_cond_jump): Drop use of SET_BND_TO.
11018         (compute_av_set_on_boundaries): Likewise.
11019         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
11020         (update_and_record_unavailable_insns): Strengthen local "bb_end"
11021         from rtx to rtx_insn *.
11022         (maybe_emit_renaming_copy): Likewise for param "insn".
11023         (maybe_emit_speculative_check): Likewise.
11024         (handle_emitting_transformations): Likewise.
11025         (remove_insn_from_stream): Likewise.
11026         (code_motion_process_successors): Strengthen local "succ" from rtx
11027         to insn_t.
11028
11029 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
11030
11031         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
11032         ilist_t, not _xlist_t;
11033         (ILIST_INSN): Define in terms of new union field "insn".
11034         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
11035         _XLIST_NEXT.
11036         (struct _list_node): Add new field "insn" to the union, of type
11037         insn_t.
11038         (ilist_add): Replace macro with an inline function, requiring an
11039         insn_t.
11040         (ilist_remove): Define this macro directly in terms of
11041         _list_remove, rather than indirectly via _xlist_remove.
11042         (ilist_clear): Likewise, in terms of _list_clear rather than
11043         _xlist_clear.
11044         (ilist_is_in_p): Replace macro with an inline function, requiring
11045         an insn_t.
11046         (_list_iter_cond_insn): New function.
11047         (ilist_iter_remove): Define this macro directly in terms of
11048         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
11049         (ilist_iterator): Define directly in terms of _list_iterator
11050         rather than indirectly through _xlist_iterator.
11051         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
11052         than in terms of _FOR_EACH_X.
11053         (FOR_EACH_INSN_1): Likewise.
11054
11055 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
11056
11057         PR target/60606
11058         PR target/61330
11059         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
11060         DECL_HARD_REGISTER and return for invalid register specifications.
11061         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
11062         DECL_HARD_REGISTER, call expand_one_error_var.
11063         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
11064         CC_REGNUM with non-MODE_CC modes.
11065         (arm_regno_class): Return NO_REGS for PC_REGNUM.
11066
11067 2014-08-26  Marek Polacek  <polacek@redhat.com>
11068
11069         PR c/61271
11070         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
11071
11072 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
11073
11074         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
11075         qi cost; add di cost.
11076         (cortexa57_addrcost_table): Likewise.
11077
11078 2014-08-26  Marek Polacek  <polacek@redhat.com>
11079
11080         PR c/61271
11081         * expr.c (is_aligning_offset): Remove logical not.
11082
11083 2014-08-26  Marek Polacek  <polacek@redhat.com>
11084
11085         PR c/61271
11086         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
11087         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
11088
11089 2014-08-26  Richard Biener  <rguenther@suse.de>
11090
11091         PR tree-optimization/62175
11092         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
11093         expand possibly trapping operations.
11094
11095 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
11096
11097         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
11098         "insn" from rtx to rtx_insn *.
11099         (permute_load): Likewise for param "insn".
11100         (permute_store): Likewise.
11101         (handle_special_swappables): Likewise for local "insn".
11102         (replace_swap_with_copy): Likewise for locals "insn" and
11103         "new_insn".
11104         (rs6000_analyze_swaps): Likewise for local "insn".
11105
11106 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11107
11108         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
11109         to rtx_insn *.
11110
11111 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11112
11113         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
11114         "note_list" from rtx to rtx_insn *.
11115         (BB_NOTE_LIST): Replace this function and...
11116         (SET_BB_NOTE_LIST): ...this function with...
11117         (BB_NOTE_LIST): ...the former macro implementation.
11118
11119         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
11120         local "from_start" from rtx to rtx_insn *.  Strengthen param
11121         "to_endp" from rtx * to rtx_insn **.
11122
11123         * haifa-sched.c (concat_note_lists): Likewise.
11124         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
11125         BB_NOTE_LIST.
11126         (sel_restore_notes): Likewise.
11127         (move_bb_info): Likewise.
11128         (BB_NOTE_LIST): Delete this function.
11129         (SET_BB_NOTE_LIST): Delete this function.
11130         * sel-sched.c (create_block_for_bookkeeping): Eliminate
11131         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
11132
11133 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11134
11135         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
11136         from rtx * to rtx_insn **.
11137         (reorder2): Likewise.
11138         (dependencies_evaluation_hook): Strengthen params "head", "tail"
11139         from rtx to rtx_insn *.
11140
11141         * doc/tm.texi: Update mechanically for above change to target.def.
11142
11143         * sched-int.h (note_list): Strengthen this variable from rtx to
11144         rtx_insn *.
11145         (remove_notes): Likewise for both params.
11146         (restore_other_notes): Likewise for return type and first param.
11147         (struct ready_list): Strengthen field "vec" from rtx * to
11148         rtx_insn **.
11149         (struct dep_replacement): Strenghten field "insn" from rtx to
11150         rtx_insn *.
11151         (struct deps_desc): Likewise for fields "last_debug_insn",
11152         "last_args_size".
11153         (struct haifa_sched_info): Likewise for callback field
11154         "can_schedule_ready_p"'s param, for first param of "new_ready"
11155         callback field, for both params of "rank" callback field, for
11156         first field of "print_insn" callback field (with a const), for
11157         both params of "contributes_to_priority" callback, for param
11158         of "insn_finishes_block_p" callback, for fields "prev_head",
11159         "next_tail", "head", "tail", for first param of "add_remove_insn"
11160         callback, for first param of "begin_schedule_ready" callback, for
11161         both params of "begin_move_insn" callback, and for second param
11162         of "advance_target_bb" callback.
11163         (add_dependence): Likewise for params 1 and 2.
11164         (sched_analyze): Likewise for params 2 and 3.
11165         (deps_analyze_insn): Likewise for param 2.
11166         (ready_element): Likewise for return type.
11167         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
11168         (try_ready): Strenghten param from rtx to rtx_insn *.
11169         (sched_emit_insn): Likewise for return type.
11170         (record_delay_slot_pair): Likewise for params 1 and 2.
11171         (add_delay_dependencies): Likewise for param.
11172         (contributes_to_priority): Likewise for both params.
11173         (find_modifiable_mems): Likewise.
11174
11175         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
11176         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
11177         "first_older_only_insn" from rtx to rtx_insn *.
11178         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
11179         rtx_insn **.
11180
11181         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
11182         "last_scheduled_iter0" from rtx to rtx_insn *.
11183         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
11184         (c6x_sched_reorder_1): Strengthen param "ready" and locals
11185         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
11186         "insn" from rtx to rtx_insn *.
11187         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
11188         rtx_insn **.
11189         (c6x_sched_reorder2): Strengthen param "ready" and locals
11190         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
11191         "insn" from rtx to rtx_insn *.
11192         (c6x_variable_issue):  Add a checked cast when assigning from insn
11193         to ss.last_scheduled_iter0.
11194         (split_delayed_branch): Strengthen param "insn" and local "i1"
11195         from rtx to rtx_insn *.
11196         (split_delayed_nonbranch): Likewise.
11197         (undo_split_delayed_nonbranch): Likewise for local "insn".
11198         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
11199         "entry_after", "end_packet", "head_insn", "tail_insn",
11200         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
11201         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
11202         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
11203         but add a checked cast on loop->start_label.  Consolidate calls to
11204         avoid assigning result of gen_spkernel to "insn", now an
11205         rtx_insn *.
11206
11207         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
11208         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
11209         rtx to rtx_insn *.
11210         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
11211         rtx_insn **.  Strengthen locals "top", "next" from rtx to
11212         rtx_insn *.
11213         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
11214         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
11215         (add_parameter_dependencies): Strengthen params "call", "head" and
11216         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
11217         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
11218         (add_dependee_for_func_arg): Likewise for param "arg" and local
11219         "insn".
11220         (ix86_dependencies_evaluation_hook): Likewise for params "head",
11221         "tail" and locals "insn", "first_arg".
11222
11223         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
11224         for params "head", "tail" and locals "insn", "next", "next_tail".
11225         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
11226         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
11227         "insn", "lowest", "highest" from rtx to rtx_insn *.
11228         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
11229         rtx_insn **.
11230         (ia64_sched_reorder2): Likewise.
11231
11232         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
11233         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
11234         from rtx * to rtx_insn **.
11235         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
11236         rtx_insn **.
11237         (mep_print_sched_insn): Strengthen param "insn" from rtx to
11238         rtx_insn *.
11239         (mep_sched_reorder): Strengthen param "ready" from rtx * to
11240         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
11241         to rtx_insn *.
11242
11243         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
11244         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
11245         to rtx_insn *.
11246         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
11247         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
11248         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
11249         rtx_insn **.
11250         (vr4130_reorder): Likewise.
11251         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
11252         rtx to rtx_insn *.
11253         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
11254         rtx_insn **.
11255         (mips_sched_reorder): Likewise.
11256         (mips_sched_reorder2): Likewise.
11257
11258         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
11259
11260         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
11261         Strengthen local "tmp" from rtx to rtx_insn *.
11262         (rs6000_sched_reorder2): Likewise.
11263
11264         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
11265         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
11266         (s390_sched_reorder): Strengthen param "ready" from rtx * to
11267         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
11268
11269         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
11270         "tmp2" from rtx to rtx_insn *.
11271         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
11272         Strengthen local "insn" from rtx to rtx_insn *.
11273         (ready_reorder): Strengthen param "ready" from rtx * to
11274         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
11275         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
11276         (sh_reorder2): Likewise.
11277
11278         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
11279         local "insn" from rtx to rtx_insn *.
11280
11281         * haifa-sched.c (note_list): Strengthen this variable from rtx to
11282         rtx_insn *.
11283         (scheduled_insns): Strengthen this variable from vec<rtx> to
11284         vec<rtx_insn *>.
11285         (set_modulo_params): Likewise for locals "i1", "i2".
11286         (record_delay_slot_pair): Likewise for params "i1", "i2".
11287         (add_delay_dependencies): Likewise for param "insn".
11288         (cond_clobbered_p): Likewise.
11289         (recompute_todo_spec): Likewise for local "prev".
11290         (last_scheduled_insn): Likewise for this variable.
11291         (nonscheduled_insns_begin): Likewise.
11292         (model_set_excess_costs): Strengthen param "insns" from rtx * to
11293         rtx_insn **.
11294         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
11295         rtx_insn *.
11296         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
11297         Strengthen local "insn" from rtx to rtx_insn *.
11298         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
11299         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
11300         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
11301         (ready_remove_first): Likewise for return type and local "t".
11302         (ready_element): Likewise for return type.
11303         (ready_remove): Likewise for return type and local "t".
11304         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
11305         (check_clobbered_conditions): Strengthen local "x" from rtx to
11306         rtx_insn *, adding a checked cast.
11307         (schedule_insn): Likewise for param "insn".
11308         (remove_notes): Likewise for params "head", "tail" and locals
11309         "next_tail", "insn", "next".
11310         (struct haifa_saved_data): Likewise for fields
11311         "last_scheduled_insn", "nonscheduled_insns_begin".
11312         (save_backtrack_point): Update for change to field "vec" of
11313         struct ready_list.
11314         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
11315         rtx_insn **.
11316         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
11317         from rtx to rtx_insn *
11318         (resolve_dependencies): Strengthen param "insn" from rtx to
11319         rtx_insn *
11320         (restore_other_notes): Likewise for return type, for param "head"
11321         and local "note_head".
11322         (undo_all_replacements): Likewise for local "insn".
11323         (first_nonscheduled_insn): Likewise for return type and local "insn".
11324         (queue_to_ready): Likewise for local "insn", adding checked casts.
11325         (early_queue_to_ready): Likewise for local "insn".
11326         (debug_ready_list_1): Strengthen local "p" from rtx * to
11327         rtx_insn **.
11328         (move_insn): Strengthen param "insn" and local "note" from rtx to
11329         rtx_insn *
11330         (insn_finishes_cycle_p): Likewise for param "insn".
11331         (max_issue): Likewise for local "insn".
11332         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
11333         to rtx_insn **.
11334         (commit_schedule): Strengthen param "prev_head" and local "insn"
11335         from rtx to rtx_insn *
11336         (prune_ready_list): Likewise for local "insn".
11337         (schedule_block): Likewise for locals "prev_head", "head", "tail",
11338         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
11339         (set_priorities): Likewise for local "prev_head".
11340         (try_ready): Likewise for param "next".
11341         (fix_tick_ready): Likewise.
11342         (change_queue_index): Likewise.
11343         (sched_extend_ready_list): Update for change to field "vec" of
11344         struct ready_list.
11345         (generate_recovery_code): Strengthen param "insn" from rtx to
11346         rtx_insn *.
11347         (begin_speculative_block): Likewise.
11348         (create_check_block_twin): Likewise for param "insn" and locals
11349         "label", "check", "twin".  Introduce local "check_pat" to avoid
11350         "check" being used as a plain rtx before being used as an insn.
11351         (fix_recovery_deps): Add a checked cast to rtx_insn * when
11352         extracting elements from ready_list.
11353         (sched_remove_insn): Strengthen param "insn" from rtx to
11354         rtx_insn *.
11355         (sched_emit_insn): Likewise for return type.
11356         (ready_remove_first_dispatch): Likewise for return type and local
11357         "insn".
11358
11359         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
11360
11361         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
11362         const rtx_insn *.
11363
11364         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
11365         from rtx to rtx_insn *.
11366         (add_dependence_list): Likewise for param "insn".  Add a checked
11367         cast.
11368         (add_dependence_list_and_free): Strengthen param "insn" from rtx
11369         to rtx_insn *.  Strengthen param "list_p" from rtx * to
11370         rtx_insn **.
11371         (chain_to_prev_insn): Strengthen param "insn" and locals
11372         "prec_nonnote", "i" from rtx to rtx_insn *.
11373         (flush_pending_lists): Likewise for param "insn".
11374         (cur_insn): Likewise for this variable.
11375         (haifa_start_insn): Add a checked cast.
11376         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
11377         (sched_analyze_reg): Likewise for param "insn".
11378         (sched_analyze_1): Likewise.
11379         (sched_analyze_2): Likewise.  Add checked casts.
11380         (sched_analyze_insn): Likewise.  Also for local "prev".
11381         (deps_analyze_insn): Likewise for param "insn".
11382         (sched_analyze): Likewise for params "head", "tail" and local "insn".
11383         (add_dependence_1): Likewise for params "insn", "elem".
11384         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
11385         (parse_add_or_inc): Likewise for param "insn".
11386         (find_inc): Likewise for local "inc_cand".
11387         (find_modifiable_mems): Likewise for params "head", "tail" and
11388         locals "insn", "next_tail".
11389
11390         * sched-ebb.c (init_ready_list): Likewise for local "insn".
11391         (begin_schedule_ready): Likewise for param "insn".
11392         (begin_move_insn): Likewise for params "insn" and "last".
11393         (ebb_print_insn): Strengthen param "insn" from const_rtx to
11394         const rtx_insn *.
11395         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
11396         (ebb_contributes_to_priority): Likewise for params "next", "insn".
11397         (ebb_add_remove_insn): Likewise for param "insn".
11398         (advance_target_bb): Likewise.
11399
11400         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
11401         "insn".
11402         (check_live): Likewise for param "insn".
11403         (init_ready_list): Likewise for local "insn".
11404         (can_schedule_ready_p): Likewise for param "insn".
11405         (begin_schedule_ready): Likewise.
11406         (new_ready): Likewise for param "next".
11407         (rgn_print_insn): Likewise for param "insn".
11408         (rgn_rank): Likewise for params "insn1", "insn2".
11409         (contributes_to_priority): Likewise for params "next", "insn".
11410         (rgn_insn_finishes_block_p): Likewise for param "insn".
11411         (add_branch_dependences): Likewise for params "head", "tail" and
11412         locals "insn", "last".
11413         (rgn_add_remove_insn): Likewise for param "insn".
11414         (advance_target_bb): Likewise.
11415
11416         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
11417         const_rtx to const rtx_insn *.
11418
11419         * sel-sched-dump.h (sel_print_insn): Likewise.
11420
11421         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
11422         (deps_init_id): Likewise.
11423
11424         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
11425         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
11426         rtx_insn **.
11427
11428 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11429
11430         * output.h (final_start_function): Strengthen param 1 from rtx to
11431         rtx_insn *.
11432
11433         * final.c (final_start_function): Likewise, renaming back from
11434         "uncast_first" to "first", and dropping the checked cast from rtx
11435         to rtx_insn *.
11436
11437 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11438
11439         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
11440         * final.c (final): Likewise.  Rename param back from
11441         "uncast_first" to "first" and eliminate the checked cast from rtx
11442         to rtx_insn *.
11443
11444 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11445
11446         * output.h (shorten_branches): Strengthen param from rtx to
11447         rtx_insn *.
11448
11449         * final.c (shorten_branches): Likewise, renaming param back from
11450         "uncast_first" to "first", and dropping the checked cast from rtx
11451         to rtx_insn *.
11452
11453         * genattr.c (gen_attr): Likewise when writing out the prototype of
11454         shorten_branches.
11455
11456 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11457
11458         * sched-int.h (struct haifa_sched_info): Strengthen fields
11459         "prev_head" and "next_tail" from rtx to rtx_insn *.
11460
11461 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11462
11463         * rtl.h (rtx_jump_table_data::get_labels): New method.
11464         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
11465         with use of the new rtx_jump_table_data::get_labels method.
11466         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
11467         to rtx_jump_table_data *.  Simplify by using get_labels method.
11468         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
11469         a dyn_cast, introducing local "table", using it to replace
11470         label-lookup logic with a get_labels method call.
11471         (patch_jump_insn): Simplify using get_labels method.
11472         * dwarf2cfi.c (create_trace_edges): Likewise.
11473         * rtlanal.c (label_is_jump_target_p): Likewise.
11474
11475 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11476
11477         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
11478         to rtx_insn *.
11479
11480         * emit-rtl.c (unshare_all_rtl_1): Likewise.
11481         (unshare_all_rtl_again): Likewise, also for local "p".
11482
11483 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11484
11485         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
11486         to rtx_insn *.
11487         * cfgrtl.c (delete_insn_and_edges): Likewise.
11488
11489 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11490
11491         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
11492         from rtx to rtx_insn *.
11493
11494         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
11495
11496 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11497
11498         * function.c (thread_prologue_and_epilogue_insns): Likewise for
11499         locals "returnjump", "epilogue_end", "insn", "next".
11500
11501         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
11502         "returnjump" from rtx * to rtx_insn **.
11503         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
11504
11505 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11506
11507         * basic-block.h (struct edge_def). Strengthen "r" within
11508         union edge_def_insns from rtx to rtx_insn *.
11509
11510         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
11511         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
11512         rtx_insn *.
11513         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
11514         from rtx to rtx_insn *.
11515         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
11516         rtx_insn *.
11517         * postreload-gcse.c (reg_killed_on_edge): Likewise.
11518         (reg_used_on_edge): Likewise.
11519         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
11520         (gt_pch_nx): New overload for rtx_insn *&.
11521         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
11522         from rtx to rtx_insn *.
11523
11524 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11525
11526         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
11527         from rtx to rtx_insn *.
11528         (BB_FOOTER): Replace function with access macro.
11529         (SET_BB_FOOTER): Delete.
11530
11531         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
11532         with BB_FOOTER.
11533         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
11534         (emit_barrier_after_bb): Likewise.
11535         (record_effective_endpoints): Likewise.
11536         (relink_block_chain): Likewise.
11537         (fixup_fallthru_exit_predecessor): Likewise.
11538         (cfg_layout_duplicate_bb): Likewise.
11539         (cfg_layout_split_block): Likewise.
11540         (cfg_layout_delete_block): Likewise.
11541         (cfg_layout_merge_blocks): Likewise.
11542         (BB_FOOTER): Delete function.
11543         (SET_BB_FOOTER): Delete function.
11544         * combine.c (update_cfg_for_uncondjump): Replace uses of
11545         SET_BB_FOOTER with BB_FOOTER.
11546
11547 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11548
11549         * except.h (struct eh_landing_pad_d): Strengthen field
11550         "landing_pad" from rtx to rtx_code_label *.
11551
11552         * except.c (sjlj_emit_dispatch_table): Likewise for param
11553         "dispatch_label"
11554         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
11555
11556 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11557
11558         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
11559         first param from rtx to rtx_insn *.
11560         * config/xtensa/xtensa.c (struct machine_function): Likewise for
11561         field "set_frame_ptr_insn".
11562         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
11563         "csend" from rtx to rtx_code_label *.
11564         (xtensa_expand_atomic): Likewise for local "csloop".
11565         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
11566         rtx_insn *.
11567         (xtensa_call_tls_desc): Likewise for return type and locals
11568         "call_insn", "insns".
11569         (xtensa_legitimize_tls_address): Likewise for local "insns".
11570         (xtensa_expand_prologue): Likewise for locals "insn", "first".
11571
11572 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11573
11574         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
11575         first param from rtx to rtx_insn *.
11576         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
11577         "insn".
11578
11579 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11580
11581         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
11582         Strengthen param 1 from rtx to rtx_insn *.
11583         (tilepro_output_cbranch): Likewise.
11584         (tilepro_adjust_insn_length): Likewise.
11585         (tilepro_final_prescan_insn): Likewise for sole param.
11586
11587         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
11588         Likewise for local "last".
11589         (cbranch_predicted_p): Likewise for param "insn".
11590         (tilepro_output_simple_cbranch_with_opcode): Likewise.
11591         (tilepro_output_cbranch_with_opcode): Likewise.
11592         (tilepro_output_cbranch): Likewise.
11593         (frame_emit_load): Likewise for return type and locals "seq",
11594         "insn".
11595         (emit_sp_adjust): Likewise for return type and local "insn".
11596         (tilepro_expand_epilogue): Likewise for locals "last_insn",
11597         "insn".
11598         (tilepro_adjust_insn_length): Likewise for param "insn".
11599         (next_insn_to_bundle): Likewise for return type and params
11600         "r", "end".
11601         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
11602         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
11603         local "new_insns".
11604         (match_addli_pcrel): Likewise for param "insn".
11605         (replace_addli_pcrel): Likewise.
11606         (match_auli_pcrel): Likewise.
11607         (replace_auli_pcrel): Likewise.
11608         (tilepro_fixup_pcrel_references): Likewise for locals "insn",
11609         "next_insn".
11610         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
11611         "queue", "next_queue", "prev".
11612         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
11613         (tilepro_final_prescan_insn): Likewise for param "insn".
11614
11615 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11616
11617         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
11618         Strengthen param 1 from rtx to rtx_insn *.
11619         (tilegx_output_cbranch): Likewise.
11620         (tilegx_adjust_insn_length): Likewise.
11621         (tilegx_final_prescan_insn): Likewise for sole param.
11622
11623         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
11624         or local "last".
11625         (cbranch_predicted_p): Likewise for param "insn".
11626         (tilegx_output_simple_cbranch_with_opcode): Likewise.
11627         (tilegx_output_cbranch_with_opcode): Likewise.
11628         (tilegx_output_cbranch): Likewise.
11629         (frame_emit_load): Likewise for return type.
11630         (set_frame_related_p): Likewise for locals "seq", "insn".
11631         (emit_sp_adjust): Likewise for return type, and for local "insn".
11632         Introduce local "pat" for use in place of "insn" where the latter
11633         isn't an instruction.
11634         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
11635         from rtx to rtx_insn *.
11636         (tilegx_adjust_insn_length): Likewise for param "insn".
11637         (next_insn_to_bundle): Likewise for return type and params "r" and
11638         "end".
11639         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
11640         "end".
11641         (replace_insns): Likewise for params "old_insn", "new_insns".
11642         (replace_mov_pcrel_step1): Likewise for param "insn" and local
11643         "new_insns".
11644         (replace_mov_pcrel_step2): Likewise.
11645         (replace_mov_pcrel_step3): Likewise.
11646         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
11647         "next_insn".
11648         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
11649         "queue", "next_queue", "prev".
11650         (tilegx_output_mi_thunk): Likewise for local "insn".
11651         (tilegx_final_prescan_insn): Likewise for param "insn".
11652
11653 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11654
11655         * config/spu/spu.c (frame_emit_store): Strengthen return type from
11656         rtx to rtx_insn *.
11657         (frame_emit_load): Likewise.
11658         (frame_emit_add_imm): Likewise, also for local "insn".
11659         (spu_expand_prologue): Likewise for local "insn".
11660         (struct spu_bb_info): Likewise for field "prop_jump".
11661         (emit_nop_for_insn): Likewise for param "insn" and local
11662         "new_insn".
11663         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
11664         "hbr_insn".
11665         (spu_emit_branch_hint): Likewise for params "before", "branch" and
11666         locals "hint", "insn".
11667         (get_branch_target): Likewise for param "branch".
11668         (insn_clobbers_hbr): Likewise for param "insn".
11669         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
11670         locals "insn", "before_4", "before_16".
11671         (insert_hbrp): Likewise for local "insn".
11672         (spu_machine_dependent_reorg): Likewise for locals "branch",
11673         "insn", "next", "bbend".
11674         (uses_ls_unit): Likewise for param "insn".
11675         (get_pipe): Likewise.
11676         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
11677         introducing a checked cast.
11678         (spu_sched_adjust_cost): Likewise for params "insn" and
11679         "dep_insn".
11680         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
11681         (spu_sms_res_mii): Likewise.
11682
11683 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11684
11685         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
11686         from rtx to rtx_insn *.
11687         (output_cbranch): Likewise for param 6.
11688         (output_return): Likewise for param 1.
11689         (output_sibcall): Likewise.
11690         (output_v8plus_shift): Likewise.
11691         (output_v8plus_mult): Likewise.
11692         (output_v9branch): Likewise for param 7.
11693         (output_cbcond):  Likewise for param 3.
11694
11695         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
11696         for local "insn".
11697         (sparc_legitimize_pic_address): Likewise.
11698         (sparc_emit_call_insn): Likewise.
11699         (emit_save_or_restore_regs): Likewise.
11700         (emit_window_save): Likewise for return type and local "insn".
11701         (sparc_expand_prologue): Likewise for local "insn".
11702         (sparc_flat_expand_prologue): Likewise.
11703         (output_return): Likewise for param "insn".
11704         (output_sibcall): Likewise for param "insn" and local "delay".
11705         (output_ubranch): Likewise for param "insn".
11706         (output_cbranch): Likewise.
11707         (output_cbcond): Likewise.
11708         (output_v9branch): Likewise.
11709         (output_v8plus_shift): Likewise.
11710         (sparc_output_mi_thunk): Likewise for local "insn".
11711         (get_some_local_dynamic_name): Likewise.
11712         (output_v8plus_mult): Likewise for param "insn".
11713
11714 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11715
11716         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
11717         from rtx to rtx_insn *.
11718         (output_branchy_insn): Likewise for param 3.
11719         (output_far_jump): Likewise for param 1.
11720         (final_prescan_insn): Likewise.
11721         (sh_insn_length_adjustment): Likewise for sole param.
11722
11723         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
11724         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
11725         rtx_code_label *.
11726         (sh_emit_compare_and_set): Likewise for local "lab".
11727         (output_far_jump): Strengthen param "insn" and local "prev" from
11728         rtx to rtx_insn *.
11729         (output_branchy_insn): Likewise for param "insn" and local
11730         "next_insn".
11731         (output_ieee_ccmpeq): Likewise for param "insn".
11732         (struct label_ref_list_d): Strengthen field "label" from rtx to
11733         rtx_code_label *.
11734         (pool_node): Likewise.
11735         (pool_window_label): Likewise for this global.
11736         (add_constant): Likewise for return type and locals "lab", "new_rtx".
11737         (dump_table): Strengthen params "start", "barrier" and local
11738         "scan" from rtx to rtx_insn *.
11739         (broken_move): Likewise for param "insn".
11740         (untangle_mova): Likewise for params "first_mova" and "new_mova".
11741         Strengthen param "first_mova" from rtx * to rtx_insn **.
11742         (mova_p): Likewise for param "insn".
11743         (fixup_mova): Likewise for param "mova".
11744         (find_barrier): Likewise for return type, params "mova" and
11745         "from", and locals "barrier_before_mova", "found_barrier",
11746         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
11747         "label" from rtx to rtx_code_label *.
11748         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
11749         rtx to rtx_insn *.
11750         (sh_reorg): Likewise for locals "link", "scan", "barrier".
11751         (split_branches): Likewise for param "first" and local "insn".
11752         (final_prescan_insn): Likewise for param "insn".
11753         (sequence_insn_p): Likewise for locals "prev", "next".
11754         (sh_insn_length_adjustment): Likewise for param "insn".
11755         (sh_can_redirect_branch): Likewise for local "insn".
11756         (find_r0_life_regions): Likewise for locals "end", "insn".
11757         (sh_output_mi_thunk): Likewise for local "insns".
11758
11759 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11760
11761         * config/score/score.c (score_output_mi_thunk): Strengthen local
11762         "insn" from rtx to rtx_insn *.
11763         (score_prologue): Likewise.
11764
11765 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11766
11767         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
11768         1 from rtx to rtx_insn *.
11769         (s390_emit_jump): Likewise for return type.
11770         (s390_emit_call): Likewise.
11771         (s390_load_got): Likewise.
11772
11773         * config/s390/s390.c (last_scheduled_insn): Likewise for this
11774         variable.
11775         (s390_match_ccmode): Likewise for param "insn".
11776         (s390_emit_jump): Likewise for return type.
11777         (s390_split_branches): Likewise for local "label".
11778         (struct constant): Strengthen field "label" from rtx to
11779         rtx_code_label *.
11780         (struct constant_pool): Likewise for field "label".  Strengthen
11781         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
11782         rtx_insn *.
11783         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
11784         insns.
11785         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
11786         (s390_end_pool): Likewise.
11787         (s390_dump_pool): Likewise for local "insn".
11788         (s390_mainpool_start): Likewise.
11789         (s390_chunkify_start): Likewise.
11790         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
11791         with insns.  Strengthen locals "label", "jump", "barrier", "next",
11792         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
11793         (s390_chunkify_finish): Strengthen local "insn" from rtx to
11794         rtx_insn *.
11795         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
11796         "jump", "label", "next_insn".
11797         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
11798         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
11799         "tbegin_insn".
11800         (s390_load_got): Likewise for return type and local "insns".
11801         (s390_save_gprs_to_fprs): Likewise for local "insn".
11802         (s390_restore_gprs_from_fprs): Likewise.
11803         (pass_s390_early_mach::execute): Likewise.
11804         (s390_emit_prologue): Likewise for local "insns".
11805         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
11806         rtx_code_label *.
11807         (s390_emit_call): Strengthen return type and local "insn" from
11808         rtx to rtx_insn *.
11809         (s390_emit_tpf_eh_return): Likewise for local "insn".
11810         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
11811         "next_insn", introducing locals "s_pat", "rpat" to allow this.
11812         (s390_fix_long_loop_prediction): Likewise for param "insn" and
11813         local "cur_insn".
11814         (s390_non_addr_reg_read_p): Likewise for param "insn".
11815         (find_cond_jump): Likewise for return type and param "insn".
11816         (s390_swap_cmp): Likewise for param "insn".
11817         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
11818         "prev_insn", "next_insn".
11819         (s390_reorg): Likewise for locals "insn", "target".
11820         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
11821         (s390_sched_variable_issue): For now, rename param "insn" to
11822         "uncast_insn", introducing a checked cast.
11823         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
11824         insn.
11825         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
11826         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
11827
11828 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11829
11830         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
11831         param from rtx to rtx_insn *.
11832         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
11833
11834 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11835
11836         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
11837         4 from rtx to rtx_insn *.
11838         (rs6000_final_prescan_insn): Likewise for first param.
11839         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
11840         local "insn".
11841         (rs6000_get_some_local_dynamic_name): Likewise.
11842         (output_cbranch): Likewise for param "insn".
11843         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
11844         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
11845         (rs6000_emit_allocate_stack): Likewise for local "insn".
11846         (load_cr_save): Likewise.
11847         (restore_saved_cr): Likewise.
11848         (restore_saved_lr): Likewise.
11849         (emit_cfa_restores): Likewise.
11850         (rs6000_output_function_epilogue): Likewise for locals "insn" and
11851         "deleted_debug_label".
11852         (rs6000_output_mi_thunk): Likewise for local "insn".
11853         (rs6000_final_prescan_insn): Likewise for param "insn".
11854
11855 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11856
11857         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
11858         Strengthen param "insn" from rtx to rtx_insn *.
11859         * config/picochip/picochip.c (picochip_current_prescan_insn):
11860         Likewise for this variable.
11861         (picochip_final_prescan_insn): Likewise for param "insn".
11862
11863 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11864
11865         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
11866         from rtx to rtx_insn *.
11867         (pa_output_indirect_call): Likewise.
11868         (pa_adjust_insn_length): Likewise.
11869         (pa_attr_length_millicode_call): Likewise.
11870         (pa_attr_length_call): Likewise.
11871         (pa_attr_length_indirect_call): Likewise.
11872
11873         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
11874         "insn".
11875         (pa_attr_length_millicode_call): Likewise.
11876         (pa_attr_length_call): Likewise.
11877         (pa_output_call): Likewise.
11878         (pa_attr_length_indirect_call): Likewise.
11879         (pa_output_indirect_call): Likewise.
11880
11881 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11882
11883         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
11884         Strengthen first param from rtx to rtx_insn *.
11885         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
11886         param "insn".
11887
11888 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11889
11890         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
11891         type from rtx to rtx_insn *.
11892         (mips_expand_call): Likewise.
11893         (mips_adjust_insn_length): Likewise for first param.
11894         (mips_output_conditional_branch): Likewise.
11895         (mips_output_order_conditional_branch): Likewise.
11896         (mips_final_prescan_insn): Likewise.
11897
11898         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
11899         rtx_insn * for the SEQUENCE case.
11900         (SEQ_END): Likewise.
11901         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
11902         (mips_emit_call_insn): Likewise, also for local "insn".
11903         (mips16_gp_pseudo_reg): Likewise for local "scan".
11904         (mips16_build_call_stub): Likewise for return type and for local
11905         "insn".  Introduce a new local "pattern" so that "insn" can indeed
11906         be an insn.
11907         (mips_expand_call): Strengthen return type and local "insn" from
11908         rtx to rtx_insn *.
11909         (mips_block_move_loop): Strengthen local "label" from rtx to
11910         rtx_code_label *.
11911         (mips_expand_synci_loop): Likewise for locals "label",
11912         "end_label".
11913         (mips_set_frame_expr): Strengthen local "insn" from rtx to
11914         rtx_insn *.
11915         (mips16e_collect_argument_saves): Likewise for locals "insn",
11916         "next".
11917         (mips_find_gp_ref): Likewise for param of callback for "pred"
11918         param, and for local "insn".
11919         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
11920         (mips_insn_has_flexible_gp_ref_p): Likewise.
11921         (mips_epilogue_emit_cfa_restores): Likewise for return type and
11922         local "insn".
11923         (mips_epilogue_set_cfa): Likewise for local "insn".
11924         (mips_expand_epilogue): Likewise.
11925         (mips_adjust_insn_length): Likewise for param "insn".
11926         (mips_output_conditional_branch): Likewise.
11927         (mips_output_order_conditional_branch): Likewise.
11928         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
11929         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
11930         "falu2_turn_enabled_insn".
11931         (mips_builtin_branch_and_move): Strengthen locals "true_label",
11932         "done_label" from rtx to rtx_code_label *.
11933         (struct mips16_constant): Likewise for field "label".
11934         (mips16_add_constant): Likewise for return type.
11935         (mips16_emit_constants_1): Strengthen return type and param "insn"
11936         from rtx to rtx_insn *.
11937         (mips16_emit_constants): Likewise for param "insn".
11938         (mips16_insn_length): Likewise.
11939         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
11940         to rtx_code_label *.
11941         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
11942         from rtx to rtx_insn *.
11943         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
11944         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
11945         (r10k_simplify_address): Strengthen param "insn" and local
11946         "def_insn" from rtx to rtx_insn *.
11947         (r10k_safe_address_p): Strengthen param "insn" from rtx to
11948         rtx_insn *.
11949         (r10k_needs_protection_p_1): Update target type of cast of data
11950         from to rtx to rtx_insn *.
11951         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
11952         rtx * to rtx_insn **.
11953         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
11954         rtx_insn *.
11955         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
11956         (mips_call_expr_from_insn): Likewise for param "insn".
11957         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
11958         (mips_find_pic_call_symbol): Likewise for param "insn".
11959         (mips_annotate_pic_calls): Likewise for local "insn".
11960         (mips_sim_insn): Likewise for this variable.
11961         (struct mips_sim): Likewise for field "insn" within elements of
11962         last_set array.
11963         (mips_sim_wait_reg): Likewise for param "insn".
11964         (mips_sim_wait_regs): Likewise.
11965         (mips_sim_wait_units): Likewise.
11966         (mips_sim_wait_insn): Likewise.
11967         (mips_sim_issue_insn): Likewise.
11968         (mips_sim_finish_insn): Likewise.
11969         (mips_seq_time): Likewise for param "seq" and local "insn".
11970         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
11971         locals "first", "second".
11972         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
11973         "last", "last2", "next".
11974         (mips_avoid_hazard): Likewise for params "after", "insn".
11975         (mips_reorg_process_insns): Likewise for locals "insn",
11976         "last_insn", "subinsn", "next_insn".
11977         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
11978         (mips16_split_long_branches): Likewise for locals "insn" "jump",
11979         "jump_sequence".
11980         (mips_output_mi_thunk): Likewise for local "insn".
11981         (mips_final_prescan_insn): Likewise for param "insn".
11982
11983 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11984
11985         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
11986         Strengthen return type and local "insns" from rtx to rtx_insn *.
11987         (microblaze_legitimize_tls_address): Likewise for local "insns".
11988         (microblaze_block_move_loop): Strengthen local "label" from rtx
11989         to rtx_code_label *.
11990         (microblaze_expand_prologue): Strengthen two locals named "insn"
11991         from rtx to rtx_insn *.
11992         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
11993         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
11994         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
11995         to rtx_code_label *.
11996
11997 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11998
11999         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
12000         param from rtx to rtx_insn *.
12001         (mep_reuse_lo): Likewise for third param.
12002         (mep_use_post_modify_p): Likewise for first param.
12003         (mep_core_address_length): Likewise.
12004         (mep_cop_address_length): Likewise.
12005         (mep_final_prescan_insn): Likewise.
12006         (mep_store_data_bypass_p): Likewise for both params.
12007         (mep_mul_hilo_bypass_p): Likewise.
12008         (mep_ipipe_ldc_p): Likewise for param.
12009
12010         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
12011         (mep_rewrite_mult): Likewise.
12012         (mep_rewrite_mulsi3): Likewise.
12013         (mep_rewrite_maddsi3): Likewise.
12014         (mep_reuse_lo_p_1): Likewise.
12015         (mep_reuse_lo_p): Likewise.
12016         (mep_frame_expr): Likewise.
12017         (mep_make_parallel): Likewise for both params.
12018         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
12019         local "insn".
12020         (mep_use_post_modify_p): Likewise for param "insn".
12021         (mep_core_address_length): Likewise.
12022         (mep_cop_address_length): Likewise.
12023         (mep_reg_set_in_function): Likewise for local "insn".
12024         (mep_asm_without_operands_p): Likewise.
12025         (F): Likewise for return type and param "x".
12026         (add_constant): Likewise for local "insn".
12027         (maybe_dead_move): Likewise for return type and local "insn".
12028         (mep_expand_prologue): Likewise for local "insn".
12029         (mep_final_prescan_insn): Likewise for param "insn".
12030         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
12031         "next", "follow", "x".
12032         (mep_insert_repeat_label_last): Likewise for return type, param
12033         "last_insn", and locals "next", "prev".  Strengthen param "label"
12034         from rtx to rtx_code_label *.
12035         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
12036         rtx_insn *.
12037         (struct mep_doloop_end): Likewise for fields "insn" and
12038         "fallthrough".
12039         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
12040         Strengthen local "repeat_label" from rtx to rtx_code_label *.
12041         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
12042         rtx_insn *.
12043         (mep_invert_branch): Likewise for params "insn" and "after".
12044         (mep_reorg_erepeat): Likewise for param "insns" and locals
12045         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
12046         "l" from rtx to rtx_code_label *.
12047         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
12048         from rtx to rtx_insn *.
12049         (mep_reorg_addcombine): Likewise for param "insns" and locals
12050         "i", "n".
12051         (add_sp_insn_p): Likewise for param "insn".
12052         (mep_reorg_noframe): Likewise for param "insns" and locals
12053         "start_frame_insn", "end_frame_insn", "next".
12054         (mep_reorg): Likewise for local "insns".
12055         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
12056         cast.
12057         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
12058         (mep_mul_hilo_bypass_p): Likewise.
12059         (mep_ipipe_ldc_p): Likewise for param "insn".
12060         (mep_make_bundle): Likewise for return type, param "cop" and local
12061         "insn", splitting out the latter into a new local "seq" for when it
12062         is a SEQUENCE rather than an insn.
12063         (core_insn_p): Likewise for param "insn".
12064         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
12065         "last", "first", "note", "prev", "core_insn".
12066
12067 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12068
12069         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
12070         rtx to rtx_insn *.
12071         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
12072         (m68k_final_prescan_insn): Likewise for first param.
12073
12074         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
12075         (m68k_set_frame_related): Likewise for param "insn".
12076         (output_btst): Likewise for param "insn".
12077         (m68k_final_prescan_insn): Likewise.
12078         (m68k_move_to_reg): Likewise for local "insn".
12079         (m68k_call_tls_get_addr): Likewise for local "insns".
12080         (m68k_call_m68k_read_tp): Likewise.
12081         (strict_low_part_peephole_ok): Likewise for param "first_insn".
12082         (m68k_output_mi_thunk): Likewise for local "insn".
12083
12084 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12085
12086         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
12087         first param from rtx to rtx_insn *.
12088         (iq2000_adjust_insn_length): Likewise.
12089         (iq2000_output_conditional_branch): Likewise.
12090         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
12091         "insn" and local "nop_insn".
12092         (iq2000_annotate_frame_insn): Likewise for param "insn".
12093         (iq2000_expand_prologue): Likewise for both locals "insn".
12094         (iq2000_adjust_insn_length): Likewise for param "insn".
12095         (iq2000_output_conditional_branch): Likewise.
12096
12097 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12098
12099         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
12100         "insns" from rtx to rtx_insn *.
12101         (ia64_emit_cond_move): Likewise for locals "insn", "first".
12102         (struct spill_fill_data): Likewise for field "init_after" and for
12103         elements of array field "prev_insn".
12104         (spill_restore_mem): Likewise for locals "insn", "first".
12105         (do_spill): Likewise for local "insn".
12106         (do_restore): Likewise.
12107         (ia64_expand_prologue): Likewise.
12108         (ia64_expand_epilogue): Likewise.
12109         (emit_insn_group_barriers): Likewise for locals "insn",
12110         "last_label".
12111         (emit_all_insn_group_barriers): Likewise for locals "insn",
12112         "last".
12113         (dfa_stop_insn): Likewise for this global.
12114         (dfa_pre_cycle_insn): Likewise.
12115         (ia64_nop): Likewise.
12116         (final_emit_insn_group_barriers): Likewise for locals "insn",
12117         "last".
12118         (emit_predicate_relation_info): Likewise for locals "head", "n",
12119         "insn", "b", "a".
12120         (ia64_reorg): Likewise for local "insn".
12121         (ia64_output_mi_thunk): Likewise.
12122         (expand_vec_perm_interleave_2): Likewise for local "seq".
12123
12124 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12125
12126         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
12127         param 1 "insn" from rtx to rtx_insn *.
12128         (ix86_use_lea_for_mov): Likewise.
12129         (ix86_avoid_lea_for_addr): Likewise.
12130         (ix86_split_lea_for_addr): Likewise.
12131         (ix86_lea_for_add_ok): Likewise.
12132         (ix86_output_call_insn): Likewise.
12133
12134         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
12135         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
12136         (ix86_output_function_epilogue): Likewise for locals "insn",
12137         "deleted_debug_label".
12138         (legitimize_tls_address): Likewise for local "insn".
12139         (get_some_local_dynamic_name): Likewise.
12140         (increase_distance): Likewise for params "prev", "next".
12141         (distance_non_agu_define_in_bb): Likewise for params "insn",
12142         "start" and locals "prev", "next".
12143         (distance_non_agu_define): Likewise for param "insn".
12144         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
12145         locals "next", "prev".
12146         (distance_agu_use): Likewise for param "insn".
12147         (ix86_lea_outperforms): Likewise.
12148         (ix86_ok_to_clobber_flags): Likewise.
12149         (ix86_avoid_lea_for_add): Likewise.
12150         (ix86_use_lea_for_mov): Likewise.
12151         (ix86_avoid_lea_for_addr): Likewise.
12152         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
12153         (ix86_split_lea_for_addr): Likewise for param "insn".
12154         (ix86_lea_for_add_ok): Likewise for param "insn".
12155         (ix86_expand_carry_flag_compare): Likewise for local
12156         "compare_seq".
12157         (ix86_expand_int_movcc): Likewise.
12158         (ix86_output_call_insn): Likewise for param "insn".
12159         (ix86_output_call_insn): Likewise for local "i".
12160         (x86_output_mi_thunk): Introduce local "insn", using it in place
12161         of "tmp" when dealing with insns.
12162         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
12163         "start".
12164         (ix86_pad_returns): Likewise for locals "ret", "prev".
12165         (ix86_count_insn_bb): Likewise for local "insn".
12166         (ix86_pad_short_function): Likewise for locals "ret", "insn".
12167         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
12168         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
12169         (expand_vec_perm_interleave2): Likewise for local "seq".
12170         (expand_vec_perm_vperm2f128_vblend): Likewise.
12171         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
12172         call to for_each_rtx with for_each_rtx_in_insn.
12173
12174 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12175
12176         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
12177         "label" from rtx to rtx_code_label *.
12178         (ix86_expand_prologue): Likewise.
12179         (ix86_expand_split_stack_prologue): Likewise for locals "label",
12180         "varargs_label".
12181         (ix86_split_idivmod): Likewise for locals "end_label" and
12182         "qimode_label".
12183         (ix86_expand_branch): Likewise for local "label2".
12184         (ix86_expand_aligntest): Likewise for return type and local "label".
12185         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
12186         "top_label".
12187         (expand_movmem_epilogue): Likewise for the various locals named
12188         "label".
12189         (expand_setmem_epilogue): Likewise.
12190         (expand_small_movmem_or_setmem): Likewise for local "label".
12191         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
12192         Strengthen param "done_label" from rtx * to rtx_code_label **.
12193         Strengthen locals "loop_label" and "label" from rtx to
12194         rtx_code_label *.
12195         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
12196         Likewise for locals "loop_label", "label".
12197         (ix86_expand_set_or_movmem): Likewise for locals "label",
12198         "jump_around_label", "hot_label".
12199         (ix86_expand_strlensi_unroll_1): Likewise for locals
12200         "align_2_label", align_3_label", "align_4_label", "end_0_label",
12201         "end_2_label".
12202         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
12203         (void ix86_emit_i387_log1p): Likewise for locals "label1",
12204         "label2", "jump_label".
12205         (ix86_expand_sse_compare_and_jump): Likewise for return type and
12206         local "label".
12207         (ix86_expand_lfloorceil): Likewise for local "label".
12208         (ix86_expand_rint): Likewise.
12209         (ix86_expand_floorceildf_32): Likewise.
12210         (ix86_expand_floorceil): Likewise.
12211         (ix86_expand_rounddf_32): Likewise.
12212         (ix86_expand_trunc): Likewise.
12213         (ix86_expand_truncdf_32): Likewise.
12214         (ix86_expand_round): Likewise.
12215
12216 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12217
12218         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
12219         first param from rtx to rtx_insn *.
12220         (h8300_insn_length_from_table): Likewise.
12221         * config/h8300/h8300.c (F): Likewise for return type and param
12222         "x".
12223         (Fpa): Add a checked cast to rtx_insn *.
12224         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
12225         rtx_insn *.
12226         (final_prescan_insn): Likewise for param "insn".
12227         (h8300_binary_length): Likewise.
12228         (h8300_insn_length_from_table): Likewise.
12229
12230 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12231
12232         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
12233         Strengthen first param "insn" from rtx to rtx_insn *.
12234
12235         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
12236         Likewise.
12237         (frame_insn): Likewise for return type.  Introduce local "insn"
12238         for use in place of local "x" for use as an rtx_insn *.
12239         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
12240         (epiphany_expand_prologue): Likewise for local "insn".
12241         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
12242         * config/epiphany/resolve-sw-modes.c
12243         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
12244         "seq".
12245
12246 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12247
12248         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
12249         param from rtx to rtx_insn *.
12250         (c6x_final_prescan_insn): Likewise for first param.
12251
12252         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
12253         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
12254         (c6x_expand_compare): Strengthen local "insns" from rtx to
12255         rtx_insn *.
12256         (c6x_get_unit_specifier): Likewise for param "insn".
12257         (c6x_print_unit_specifier_field): Likewise.
12258         (c6x_final_prescan_insn): Likewise.
12259         (emit_add_sp_const): Likewise for local "insn".
12260         (c6x_expand_prologue): Likewise.
12261
12262 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12263
12264         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
12265         param 1 from rtx to rtx_insn *.
12266         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
12267         the various locals named "insn".
12268         (expand_epilogue_reg_restore): Likewise.
12269         (frame_related_constant_load): Likewise.
12270         (add_to_reg): Likewise.
12271         (emit_link_insn): Likewise.
12272         (do_link): Likewise.
12273         (expand_interrupt_handler_prologue): Likewise.
12274         (branch_dest): Likewise for param "branch".
12275         (asm_conditional_branch): Likewise for param "insn".
12276         (gen_one_bundle): Likewise for elements of param "slot" and local
12277         "t".
12278         (bfin_gen_bundles): Likewise for locals "insn", "next" and
12279         elements of local "slot".
12280         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
12281         "queue", "next_queue", "prev".
12282         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
12283         (add_sched_insns_for_speculation): Likewise for local "insn".
12284
12285 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12286
12287         * config/avr/avr-protos.h (output_movqi): Strengthen first param
12288         from rtx to rtx_insn *.
12289         (output_movhi): Likewise.
12290         (output_movsisf): Likewise.
12291         (avr_out_tstsi): Likewise.
12292         (avr_out_tsthi): Likewise.
12293         (avr_out_tstpsi): Likewise.
12294         (avr_out_compare): Likewise.
12295         (avr_out_compare64): Likewise.
12296         (avr_out_movpsi): Likewise.
12297         (ashlqi3_out): Likewise.
12298         (ashlhi3_out): Likewise.
12299         (ashlsi3_out): Likewise.
12300         (ashrqi3_out): Likewise.
12301         (ashrhi3_out): Likewise.
12302         (ashrsi3_out): Likewise.
12303         (lshrqi3_out): Likewise.
12304         (lshrhi3_out): Likewise.
12305         (lshrsi3_out): Likewise.
12306         (avr_out_ashlpsi3): Likewise.
12307         (avr_out_ashrpsi3): Likewise.
12308         (avr_out_lshrpsi3): Likewise.
12309         (avr_out_fract): Likewise.
12310         (avr_out_sbxx_branch): Likewise.
12311         (avr_out_round): Likewise.
12312         (avr_out_xload): Likewise.
12313         (avr_out_movmem): Likewise.
12314         (adjust_insn_length): Likewise.
12315         (avr_out_lpm): Likewise.
12316         (reg_unused_after): Likewise.
12317         (_reg_unused_after): Likewise.
12318         (avr_jump_mode): Likewise for second param.
12319         (jump_over_one_insn): Likewise for first param.
12320         (avr_final_prescan_insn): Likewise.
12321         (out_shift_with_cnt): Likewise for second param.
12322
12323         * config/avr/avr.c (get_sequence_length): Likewise for param
12324         "insns" and local "insn".
12325         (emit_push_byte): Likewise for local "insn".
12326         (emit_push_sfr): Likewise.
12327         (avr_prologue_setup_frame): Likewise for locals "insn",
12328         "fp_plus_insns", "sp_plus_insns".
12329         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
12330         "sp_plus_insns".
12331         (avr_jump_mode): Likewise for param "insn".
12332         (avr_final_prescan_insn): Likewise.
12333         (avr_find_unused_d_reg): Likewise.
12334         (avr_out_lpm_no_lpmx): Likewise.
12335         (avr_out_lpm): Likewise.
12336         (avr_out_xload): Likewise.
12337         (output_movqi): Likewise.
12338         (output_movhi): Likewise.
12339         (out_movqi_r_mr): Likewise.
12340         (out_movhi_r_mr): Likewise.
12341         (out_movsi_r_mr): Likewise.
12342         (out_movsi_mr_r): Likewise.
12343         (output_movsisf): Likewise.
12344         (avr_out_load_psi): Likewise.
12345         (avr_out_store_psi): Likewise.
12346         (avr_out_movpsi): Likewise.
12347         (out_movqi_mr_r): Likewise.
12348         (avr_out_movhi_mr_r_xmega): Likewise.
12349         (out_movhi_mr_r): Likewise.
12350         (compare_condition): Likewise for param "insn" and local "next".
12351         (compare_sign_p): Likewise for param "insn".
12352         (compare_diff_p): Likewise.
12353         (compare_eq_p): Likewise.
12354         (avr_out_compare): Likewise.
12355         (avr_out_compare64): Likewise.
12356         (avr_out_tsthi): Likewise.
12357         (avr_out_tstpsi): Likewise.
12358         (avr_out_tstsi): Likewise.
12359         (out_shift_with_cnt): Likewise.
12360         (ashlqi3_out): Likewise.
12361         (ashlhi3_out): Likewise.
12362         (avr_out_ashlpsi3): Likewise.
12363         (ashlsi3_out): Likewise.
12364         (ashrqi3_out): Likewise.
12365         (ashrhi3_out): Likewise.
12366         (avr_out_ashrpsi3): Likewise.
12367         (ashrsi3_out): Likewise.
12368         (lshrqi3_out): Likewise.
12369         (lshrhi3_out): Likewise.
12370         (avr_out_lshrpsi3): Likewise.
12371         (lshrsi3_out): Likewise.
12372         (avr_out_fract): Likewise.
12373         (avr_out_round): Likewise.
12374         (avr_adjust_insn_length): Likewise.
12375         (reg_unused_after): Likewise.
12376         (_reg_unused_after): Likewise.
12377         (avr_compare_pattern): Likewise.
12378         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
12379         and locals "branch1", "branch2", "insn2", "jump".
12380         (avr_reorg): Likewise for local "insn".
12381         (avr_2word_insn_p): Likewise for param "insn".
12382         (jump_over_one_insn_p): Likewise.
12383         (avr_out_sbxx_branch): Likewise.
12384         (avr_out_movmem): Likewise.
12385
12386 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12387
12388         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
12389         param from rtx to rtx_insn *.
12390         (thumb1_final_prescan_insn): Likewise.
12391         (thumb2_final_prescan_insn): Likewise.
12392
12393         * config/arm/arm.c (emit_set_insn): Strengthen return type from
12394         rtx to rtx_insn *.
12395         (struct minipool_node): Likewise for field "insn".
12396         (dump_minipool): Likewise for param "scan".
12397         (create_fix_barrier): Likewise for local "from".  Strengthen local
12398         "label" from rtx to rtx_code_label *.
12399         (push_minipool_barrier): Strengthen param "insn" from rtx to
12400         rtx_insn *.
12401         (push_minipool_fix): Likewise.
12402         (note_invalid_constants): Likewise.
12403         (thumb2_reorg): Likewise for local "insn".
12404         (arm_reorg): Likewise.
12405         (thumb2_final_prescan_insn): Likewise for param
12406         "insn" and local "first_insn".
12407         (arm_final_prescan_insn): Likewise for param "insn" and locals
12408         "start_insn", "this_insn".
12409         (arm_debugger_arg_offset): Likewise for param "insn".
12410         (thumb1_emit_multi_reg_push): Likewise for return type and local
12411         "insn".
12412         (thumb1_final_prescan_insn): Likewise for param "insn".
12413         (thumb_far_jump_used_p): Likewise for local "insn".
12414         (thumb1_expand_prologue): Likewise.
12415         (arm_expand_epilogue_apcs_frame): Likewise.
12416         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
12417         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
12418         from rtx to rtx_code_label *.
12419         (arm_split_atomic_op): Likewise for local "label".
12420         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
12421
12422 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12423
12424         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
12425         first param from rtx to rtx_insn *.
12426         (arc_verify_short): Likewise.
12427         (arc_short_long): Likewise.
12428         (arc_need_delay): Likewise.
12429
12430         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
12431         "target_insn".
12432         (arc_ccfsm_advance): Likewise for param "insn" and locals
12433         "start_insn", "this_insn".
12434         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
12435         (arc_ccfsm_post_advance): Likewise for param "insn".
12436         (arc_next_active_insn): Likewise for return type and param "insn".
12437         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
12438         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
12439         (output_short_suffix): Likewise for local "insn".
12440         (arc_final_prescan_insn): Likewise for param "insn".  Remove
12441         now-redundant checked cast.
12442         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
12443         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
12444         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
12445         for use where lc_set became an insn.
12446         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
12447         rtx to rtx_insn *.
12448         (arc_get_insn_variants): Likewise for local "prev".
12449         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
12450         "next".
12451         (arc_predicate_delay_insns): Likewise for local "insn".
12452         (arc_pad_return): Likewise for local "prev".  For now, add a
12453         checked cast when extracting the insn from "final_sequence".
12454         (arc_short_long): Likewise for param "insn".
12455         (arc_need_delay): Likewise for param "insn" and local "next".
12456         (arc_label_align): Likewise for locals "prev", "next".
12457
12458 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12459
12460         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
12461         "insn" from rtx to rtx_insn *.
12462         (alpha_gp_save_rtx): Likewise for local "seq".
12463         (alpha_instantiate_decls): Likewise for local "top".
12464         (get_some_local_dynamic_name): Likewise for local "insn".
12465         (alpha_does_function_need_gp): Likewise.
12466         (set_frame_related_p): Likewise for return type and for locals
12467         "seq" and "insn".
12468         (emit_frame_store_1): Likewise for local "insn".
12469         (alpha_expand_prologue): Likewise for locals "insn", "seq".
12470         (alpha_end_function): Likewise for local "insn".
12471         (alpha_output_mi_thunk_osf): Likewise.
12472         (alphaev4_insn_pipe): Likewise for param "insn".
12473         (alphaev5_insn_pipe): Likewise.
12474         (alphaev4_next_group): Likewise for return type and param 1
12475         "insn".
12476         (alphaev5_next_group): Likewise.
12477         (alpha_align_insns_1): Likewise for return type and param 1 of
12478         callback param "next_group", and for locals "i", "next", "prev",
12479         "where", "where2", "insn".
12480
12481 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
12482
12483         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
12484         rather than modifying the stmt.
12485
12486 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
12487
12488         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
12489         cgraph_state conversion.
12490
12491 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12492
12493         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
12494         Strengthen local "insns" from rtx to rtx_insn *.
12495         (aarch64_set_frame_expr): Likewise for local "insn".
12496         (aarch64_save_or_restore_fprs): Likewise.
12497         (aarch64_save_or_restore_callee_save_registers): Likewise.
12498         (aarch64_expand_prologue): Likewise.
12499         (aarch64_expand_epilogue): Likewise.
12500         (aarch64_output_mi_thunk): Likewise.
12501         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
12502         "label2" from rtx to rtx_code_label *.
12503         (aarch64_split_atomic_op): Likewise for local "label".
12504
12505 2014-08-25  Martin Liska  <mliska@suse.cz>
12506
12507         * cgraph.h (symtab_node):
12508         (bool needed_p (void)): created from decide_is_symbol_needed
12509         (bool referred_to_p (void)): created from referred_to_p
12510         (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
12511         * cgraph.h (cgraph_node):
12512         (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
12513         (void expand (void)): created from expand_function
12514         (static void finalize_function (tree, bool)): created from cgraph_finalize_function
12515         (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
12516         (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
12517         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
12518         * cgraph.h (varpool_node):
12519         (static void add (tree decl): created from varpool_add_new_variable
12520         * cgraph.h (cgraph_edge):
12521         void remove (void);
12522         (void remove_caller (void)): created from cgraph_edge_remove_caller
12523         (void remove_callee (void)): created from cgraph_edge_remove_callee
12524         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
12525           created from cgraph_set_call_stmt
12526         (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
12527         (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
12528         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
12529           gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
12530         (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
12531           created from cgraph_speculative_call_info
12532         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
12533           int freq_scale, bool update_original)): created from cgraph_clone_edge
12534         (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
12535         (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
12536         (bool recursive_p (void)): created from cgraph_edge_recursive_p
12537         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
12538         (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
12539         (static void rebuild_references (void)): created from cgraph_rebuild_references
12540         * cgraph.h (symbol_table):
12541         (create_reference): renamed from add_reference
12542         (maybe_create_reference): renamed from maybe_add_reference
12543         (void register_symbol (symtab_node *node)): new function
12544         (void clear_asm_symbols (void)): new function
12545         (void unregister (symtab_node *node)): new function
12546         (void release_symbol (cgraph_node *node, int uid)): new function
12547         (cgraph_node * allocate_cgraph_symbol (void)): new function
12548         (void initialize (void)): created from cgraph_init
12549         (symtab_node *first_symbol (void)):new function
12550         (asm_node *first_asm_symbol (void)):new function
12551         (symtab_node *first_defined_symbol (void)):new function
12552         (varpool_node *first_variable (void)):new function
12553         (varpool_node *next_variable (varpool_node *node)):new function
12554         (varpool_node *first_static_initializer (void)):new function
12555         (varpool_node *next_static_initializer (varpool_node *node)):new function
12556         (varpool_node *first_defined_variable (void)):new function
12557         (varpool_node *next_defined_variable (varpool_node *node)):new function
12558         (cgraph_node *first_defined_function (void)):new function
12559         (cgraph_node *next_defined_function (cgraph_node *node)):new function
12560         (cgraph_node *first_function (void)):new function
12561         (cgraph_node *next_function (cgraph_node *node)):new function
12562         (cgraph_node *first_function_with_gimple_body (void)):new function
12563         (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
12564         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
12565           created from symtab_remove_unreachable_nodes
12566         (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
12567         (void process_new_functions (void)): created from cgraph_process_new_functions
12568         (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
12569         (bool output_variables (void)): created from varpool_node::output_variables
12570         (void output_asm_statements (void)): created from output_asm_statements
12571         (void finalize_compilation_unit (void)): created from finalize_compilation_unit
12572         (void compile (void)): created from compile
12573         (void output_weakrefs (void)): created from output_weakrefs
12574         (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
12575         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
12576           gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
12577         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
12578         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
12579           created from cgraph_next_function_with_gimple_body
12580         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
12581           created from cgraph_remove_edge_removal_hook
12582         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
12583           created from cgraph_add_node_removal_hook
12584         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
12585           created from cgraph_remove_node_removal_hook
12586         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
12587           created from varpool_add_node_removal_hook
12588         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
12589           created from varpool_remove_node_removal_hook
12590         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
12591           created from cgraph_add_function_insertion_hook
12592         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
12593           created from cgraph_remove_function_insertion_hook
12594         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
12595           created from varpool_add_variable_insertion_hook
12596         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
12597           created from varpool_remove_variable_insertion_hook
12598         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
12599           created from cgraph_add_edge_duplication_hook
12600         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
12601           created from cgraph_remove_edge_duplication_hook
12602         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
12603           created from cgraph_add_node_duplication_hook
12604         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
12605           created from cgraph_remove_node_duplication_hook
12606         (void call_edge_removal_hooks (cgraph_edge *e)):
12607           created from cgraph_call_edge_removal_hooks
12608         (void call_cgraph_insertion_hooks (cgraph_node *node)):
12609           created from call_function_insertion_hooks
12610         (void call_cgraph_removal_hooks (cgraph_node *node)):
12611           created from cgraph_call_node_removal_hooks
12612         (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
12613           created from cgraph_node::call_duplication_hooks
12614         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
12615           created from cgraph_call_edge_duplication_hooks
12616         (void call_varpool_removal_hooks (varpool_node *node)):
12617           created from varpool_call_node_removal_hooks
12618         (void call_varpool_insertion_hooks (varpool_node *node)):
12619           created from varpool_call_variable_insertion_hooks
12620         (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
12621           created from insert_to_assembler_name_hash
12622         (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
12623           created from unlink_from_assembler_name_hash
12624         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
12625           created from symtab_prevail_in_asm_name_hash
12626         (void symtab_initialize_asm_name_hash (void)):
12627           created from symtab_initialize_asm_name_hash
12628         (void change_decl_assembler_name (tree decl, tree name)):
12629           created from change_decl_assembler_name
12630         (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
12631         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
12632           created from decl_assembler_name_hash
12633         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
12634           created from decl_assembler_name_equal
12635         (static hashval_t hash_node_by_assembler_name (const void *p)):
12636           created from hash_node_by_assembler_name
12637         (static int eq_assembler_name (const void *p1, const void *p2)):
12638           created from eq_assembler_name
12639
12640 2014-08-25  Marek Polacek  <polacek@redhat.com>
12641
12642         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
12643
12644 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
12645
12646         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
12647         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
12648         SWI1248_AVX512BW mode iterator.
12649
12650 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
12651
12652         PR target/62111
12653         * config/sh/predicates.md (general_extend_operand): Disable
12654         TRUNCATE before reload completes.
12655
12656 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
12657
12658         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
12659
12660 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
12661
12662         PR target/61996
12663         * config/sh/sh.opt (musermode): Allow negative form.
12664         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
12665         targets that don't support it.
12666         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
12667         Document -mno-usermode option.
12668
12669 2014-08-24  Kito Cheng  <kito@0xlab.org>
12670
12671         * system.h (CALLER_SAVE_PROFITABLE): Poison.
12672         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
12673         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
12674         * doc/tm.texi: Regenerate.
12675
12676 2014-08-24  Kito Cheng  <kito@0xlab.org>
12677
12678         * ira.c: Fix typo in comment.
12679
12680 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
12681
12682         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
12683         Deprecate c++1y. Change language to reflect greater confidence in C++14.
12684
12685 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
12686
12687         PR target/62038
12688         * config/pa/pa.c (pa_output_function_epilogue): Don't set
12689         last_address when the current function is a thunk.
12690         (pa_asm_output_mi_thunk): When we don't have named sections or they
12691         are not being used, check that thunk can reach the stub table with a
12692         short branch.
12693
12694 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12695
12696         * web.c (union_match_dups): Strengthen param "insn" from rtx to
12697         rtx_insn *.
12698         (pass_web::execute): Likewise for local "insn".
12699
12700 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12701
12702         * var-tracking.c (struct micro_operation_def): Strengthen field
12703         "insn" from rtx to rtx_insn *.
12704         (struct emit_note_data_def): Likewise.
12705         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
12706         (vt_stack_adjustments): Likewise for local "insn".
12707         (adjust_insn): Likewise for param "insn".
12708         (val_store): Likewise.
12709         (val_resolve): Likewise.
12710         (struct count_use_info): Likewise for field "insn".
12711         (log_op_type): Likewise for param "insn".
12712         (reverse_op): Likewise.
12713         (prepare_call_arguments): Likewise.
12714         (add_with_sets):  The initial param takes an insn, but we can't
12715         yet strengthen it from rtx to rtx_insn * since it's used as a
12716         cselib_record_sets_hook callback.  For now rename initial param
12717         from "insn" to "uncast_insn", and introduce a local "insn" of
12718         the stronger rtx_insn * type, with a checked cast.
12719         (compute_bb_dataflow): Strengthen local "insn" from rtx to
12720         rtx_insn *.
12721         (emit_note_insn_var_location): Likewise.
12722         (emit_notes_for_changes): Likewise.
12723         (emit_notes_for_differences): Likewise.
12724         (next_non_note_insn_var_location): Likewise for return type and
12725         for param "insn".
12726         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
12727         (vt_initialize): Likewise for local "insn".
12728         (delete_debug_insns): Likewise for locals "insn" and "next".
12729
12730 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12731
12732         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
12733         rtx_insn *.
12734         (mark_constant_pool): Likewise for local "insn".
12735
12736 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12737
12738         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
12739         rtx to rtx_insn *.
12740         (dead_debug_promote_uses): Likewise.
12741         (dead_debug_insert_temp): Likewise.
12742
12743 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12744
12745         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
12746         from const_rtx to const rtx_insn *.
12747         (store_killed_after): Likewise.  Strengthen locals "last", "act"
12748         from rtx to rtx_insn *.
12749         (store_killed_before): Strengthen param "insn" from const_rtx to
12750         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
12751         (find_moveable_store): Strengthen param "insn" from rtx to
12752         rtx_insn *.
12753         (compute_store_table): Likewise for local "insn".
12754         (insert_insn_start_basic_block): Likewise for param "insn" and
12755         locals "prev", "before", "insn".
12756         (insert_store): For now, add a checked cast to rtx_insn * on the
12757         result of gen_move_insn.
12758         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
12759         to rtx_insn *.
12760         (replace_store_insn): Likewise.  For now, add a checked cast to
12761         rtx_insn * on the result of gen_move_insn.
12762
12763 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12764
12765         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
12766         rtx_insn *.
12767         (expand_sjlj_dispatch_table): Likewise.
12768
12769 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12770
12771         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
12772         "insn" from rtx to rtx_insn *.
12773
12774 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12775
12776         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
12777         "insn" from rtx to rtx_insn *.
12778         (dup_block_and_redirect): Likewise for param 3 "before".
12779
12780         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
12781         from rtx to rtx_insn *.
12782         (move_insn_for_shrink_wrap): Likewise.
12783         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
12784         (dup_block_and_redirect): Likewise for param "before" and local
12785         "insn".
12786         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
12787         "end".
12788         (convert_to_simple_return): Likewise for local "start".
12789
12790         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
12791         Strengthen local "insn" from rtx to rtx_insn *, for use when
12792         invoking requires_stack_frame_p.
12793
12794 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12795
12796         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
12797         rtx_insn *.
12798         (speculate_expr): Likewise for locals "orig_insn_rtx",
12799         "spec_insn_rtx".
12800         (eq_transformed_insns): Likewise for locals "i1", "i2".
12801         (check_for_new_jump): Likewise for return type and local "end".
12802         (find_new_jump): Likewise for return type and local "jump".
12803         (sel_split_edge): Likewise for local "jump".
12804         (sel_create_recovery_block): Likewise.
12805         (sel_redirect_edge_and_branch_force): Likewise.
12806         (sel_redirect_edge_and_branch): Likewise.
12807
12808 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12809
12810         * sel-sched.c (substitute_reg_in_expr): Strengthen local
12811         "new_insn" from rtx to rtx_insn *.
12812         (create_insn_rtx_with_rhs): Likewise for return type and for local
12813         "insn_rtx".
12814         (create_insn_rtx_with_lhs): Likewise.
12815         (create_speculation_check): Likewise for local "insn_rtx".
12816         (implicit_clobber_conflict_p): Likewise for local "insn".
12817         (get_expr_cost): Likewise.
12818         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
12819         (move_cond_jump): Likewise for locals "next", "prev", "link",
12820         "head", "from", "to".
12821
12822 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12823
12824         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
12825         "next" from rtx to rtx_insn *.
12826         (find_conditional_protection): Likewise for local "next".
12827         (is_conditionally_protected): Likewise for local "insn1".
12828         (is_pfree): Likewise for locals "insn1", "insn2".
12829
12830 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12831
12832         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
12833         from rtx to rtx_insn *.
12834
12835         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
12836         locals "insn1", "insn2" from rtx to rtx_insn *.
12837         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
12838         locals "insn", "prev", "last_jump", "next_tail".
12839         (schedule_ebb): Likewise for params "head", "tail".
12840         (schedule_ebbs): Likewise for locals "tail", "head".
12841
12842         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
12843         to rtx_insn on "last_insn" in one of the invocations of
12844         schedule_ebb.
12845
12846 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12847
12848         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
12849         "elem", "insn" from rtx to rtx_insn *.
12850         (change_spec_dep_to_hard): Likewise.
12851         (get_back_and_forw_lists): Likewise for local "con".
12852         (sd_add_dep): Likewise for locals "elem", "insn".
12853         (sd_resolve_dep): Likewise for locals "pro", "con".
12854         (sd_unresolve_dep): Likewise.
12855         (sd_delete_dep): Likewise.
12856         (chain_to_prev_insn): Likewise for local "pro".
12857         (find_inc): Likewise for locals "pro", "con".
12858
12859 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12860
12861         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
12862         to rtx_insn *.
12863         (reg_set_between_p): Strengthen local "insn" from const_rtx to
12864         const rtx_insn *.
12865         (modified_between_p): Strengthen local "insn" from rtx to
12866         rtx_insn *.
12867         (remove_reg_equal_equiv_notes_for_regno): Likewise.
12868         (keep_with_call_p): Strengthen local "i2" from const_rtx to
12869         const rtx_insn *.
12870
12871 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12872
12873         * resource.c (next_insn_no_annul): Strengthen local "next" from
12874         rtx to rtx_insn *.
12875         (mark_referenced_resources): Likewise for local "insn".
12876
12877 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12878
12879         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
12880         to rtx_insn *.
12881         (find_reloads): Likewise for param 1.
12882         (subst_reloads): Likewise for sole param.
12883         (find_equiv_reg): Likwise for param 2.
12884         (regno_clobbered_p): Likwise for param 2.
12885         (reload): Likewise for param 1.
12886
12887         * caller-save.c (save_call_clobbered_regs): Strengthen local
12888         "insn" from rtx to rtx_insn *.
12889         (insert_one_insn): Likewise for local "insn".
12890
12891         * reload.c (this_insn): Likewise for this global.
12892         (find_reloads): Likewise for param "insn".
12893         (find_reloads_toplev): Likewise.
12894         (find_reloads_address): Likewise.
12895         (subst_reg_equivs): Likewise.
12896         (update_auto_inc_notes): Likewise.
12897         (find_reloads_address_1): Likewise.
12898         (find_reloads_subreg_address): Likewise.
12899         (subst_reloads): Likewise.
12900         (find_equiv_reg): Likewise, also for local "p".
12901         (regno_clobbered_p): Likewise for param "insn".
12902
12903         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
12904         array.
12905         (spill_reg_store): Likewise for the elements of this array.
12906         (remove_init_insns): Likewise for local "equiv_insn".
12907         (will_delete_init_insn_p): Likewise for param "insn".
12908         (reload): Likewise for param ""first" and local "insn".
12909         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
12910         rtx_insn *.
12911         (calculate_elim_costs_all_insns): Likewise.
12912         (delete_caller_save_insns): Likewise.
12913         (spill_failure): Likewise for param "insn".
12914         (delete_dead_insn): Likewise.
12915         (set_label_offsets): Likewise.
12916         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
12917         "prev_insn".
12918         (elimination_costs_in_insn): Likewise for param "insn".
12919         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
12920         when referring to an insn.
12921         (set_initial_label_offsets): Likewise.
12922         (set_offsets_for_label): Strengthen param "insn" from rtx to
12923         rtx_insn *.
12924         (init_eliminable_invariants): Likewise for param "first" and local
12925         "insn".
12926         (fixup_eh_region_note): Likewise for param "insn".
12927         (reload_as_needed): Likewise for locals "prev", "insn",
12928         "old_next", "old_prev", "next".
12929         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
12930         "last".
12931         (reload_inheritance_insn): Strengthen elements of this array from
12932         rtx to rtx_insn *.
12933         (failed_reload): Likewise for param "insn".
12934         (choose_reload_regs): Likewise for local "insn".  Replace use of
12935         NULL_RTX with NULL when referring to an insn.
12936         (input_reload_insns): Strengthen elements of this array from rtx
12937         to rtx_insn *.
12938         (other_input_address_reload_insns): Likewise for this global.
12939         (other_input_reload_insns): Likewise for this global.
12940         (input_address_reload_insns): Likwise for the elements of this
12941         array.
12942         (inpaddr_address_reload_insns): Likwise for the elements of this
12943         array.
12944         (output_reload_insns): Likewise for the elements of this array.
12945         (output_address_reload_insns): Likewise for the elements of this
12946         array.
12947         (outaddr_address_reload_insns): Likewise for the elements of this
12948         array.
12949         (operand_reload_insns): Likewise for this global.
12950         (other_operand_reload_insns): Likewise for this global.
12951         (other_output_reload_insns): Likewise for the elements of this
12952         array.
12953         (new_spill_reg_store): Likewise for the elements of this
12954         array.
12955         (emit_input_reload_insns): Likewise for locals "insn", "temp".
12956         Strengthen local "where" from rtx * to rtx_insn **.
12957         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
12958         from rtx to rtx_insn *.
12959         (do_input_reload): Likewise for local "insn".
12960         (do_output_reload): Likewise for local "insn".
12961         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
12962         (emit_insn_if_valid_for_reload): Likewise for return type and local
12963         "last".  Add checked cast to rtx_insn when returning "insn" since
12964         this has been through emit_insn.
12965         (gen_reload): Strengthen return type and locals "last", "insn", "set"
12966         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
12967         returning "insn" since it's been through
12968         emit_insn_if_valid_for_reload at this point.
12969         (delete_output_reload): Strengthen param "insn" and locals
12970         "output_reload_insn", "i2" from rtx to rtx_insn *.
12971         (delete_address_reloads): Likewise for params "dead_insn",
12972         "current_insn" and locals "prev", "next".
12973         (delete_address_reloads_1): Likewise for params "dead_insn",
12974         "current_insn" and locals "prev", "i2".
12975         (inc_for_reload): Likewise for locals "last", "add_insn".
12976         (add_auto_inc_notes): Strengthen param "insn" from rtx to
12977         rtx_insn *.
12978
12979         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
12980         param of this duplicate of the prototype from reload.h
12981
12982 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12983
12984         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
12985         rtx to rtx_insn *.
12986         (regstat_bb_compute_calls_crossed): Likewise.
12987
12988 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12989
12990         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
12991         to rtx_insn *.
12992         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
12993         with an insn.
12994         (regrename_analyze): Strengthen local "insn" from rtx to
12995         rtx_insn *.
12996         (scan_rtx_reg): Likewise for param "insn".
12997         (scan_rtx_address): Likewise.
12998         (scan_rtx): Likewise.
12999         (restore_operands): Likewise.
13000         (record_out_operands): Likewise.
13001         (build_def_use): Likewise for local "insn".  Replace use of
13002         NULL_RTX with NULL when dealing with an insn.
13003
13004 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13005
13006         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
13007         * reginfo.c (reg_scan): Likewise, also for local "insn".
13008         (reg_scan_mark_refs): Likewise for param "insn".
13009         (init_subregs_of_mode): Likewise for local "insn".
13010
13011 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13012
13013         * regcprop.c (struct queued_debug_insn_change): Strengthen field
13014         "insn" from rtx to rtx_insn *.
13015         (replace_oldest_value_reg): Likewise for param "insn".
13016         (replace_oldest_value_addr): Likewise.
13017         (replace_oldest_value_mem): Likewise.
13018         (apply_debug_insn_changes): Likewise for local "last_insn".
13019         (copyprop_hardreg_forward_1): Likewise for local "insn".
13020
13021 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13022
13023         * reg-stack.c (next_flags_user): Strengthen return type and param
13024         "insn" from rtx to rtx_insn *.
13025         (straighten_stack): Likewise for param "insn".
13026         (check_asm_stack_operands): Likewise.
13027         (remove_regno_note): Likewise.
13028         (emit_pop_insn): Likewise for return type, param "insn", local
13029         "pop_insn".
13030         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
13031         "limit" from rtx to rtx_insn *.
13032         (swap_to_top): Likewise for param "insn".
13033         (move_for_stack_reg): Likewise.
13034         (move_nan_for_stack_reg): Likewise.
13035         (swap_rtx_condition): Likewise.
13036         (compare_for_stack_reg): Likewise.
13037         (subst_all_stack_regs_in_debug_insn): Likewise.
13038         (subst_stack_regs_pat): Likewise, and local "insn2".
13039         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
13040         rtx_insn *.
13041         (subst_stack_regs): Likewise.
13042         (change_stack): Likewise.
13043         (convert_regs_1): Likewise for locals "insn", "next".
13044
13045 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13046
13047         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
13048         rtx_insn *.
13049         (combine_set_extension): Likewise for param "curr_insn".
13050         (transform_ifelse): Likewise for param "def_insn".
13051         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
13052         from vec<rtx> * to vec<rtx_insn *> *.
13053         (is_cond_copy_insn): Likewise for param "insn".
13054         (struct ext_state): Strengthen the four vec fields from vec<rtx>
13055         to vec<rtx_insn *>.
13056         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
13057         local "def_insn" from rtx to rtx_insn *.
13058         (get_sub_rtx): Likewise for param "def_insn".
13059         (merge_def_and_ext): Likewise.
13060         (combine_reaching_defs): Likewise.
13061         (add_removable_extension): Likewise for param "insn".
13062         (find_removable_extensions): Likewise for local "insn".
13063         (find_and_remove_re): Likewise for locals "curr_insn" and
13064         "def_insn".  Strengthen locals "reinsn_del_list" and
13065         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
13066
13067 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13068
13069         * recog.c (split_insn): Strengthen param "insn" and locals
13070         "first", "last" from rtx to rtx_insn *.
13071         (split_all_insns): Likewise for locals "insn", "next".
13072         (split_all_insns_noflow): Likewise.
13073
13074 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13075
13076         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
13077         const rtx_insn *.
13078         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
13079         (debug_rtx_find): Likewise for param 1 "x".
13080
13081         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
13082         const_rtx to const rtx_insn *.  Likewise for local "insn".
13083         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
13084         (debug_rtx_find): Likewise for param 1 "x".
13085         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
13086         from const_rtx to const rtx_insn * within the appropriate cases of
13087         the switch statement.
13088
13089         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
13090         Strengthen local "insns" from rtx to rtx_insn * since this is
13091         passed to a call to debug_rtx_list.
13092
13093 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13094
13095         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
13096         to rtx_insn *.
13097
13098         * function.c (stack_protect_epilogue): Add checked cast to
13099         rtx_insn for now when invoking predict_insn_def.
13100
13101         * predict.c (predict_insn): Strengthen param "insn" from rtx to
13102         rtx_insn *.
13103         (predict_insn_def): Likewise.
13104         (rtl_predict_edge): Likewise for local "last_insn".
13105         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
13106         const rtx_insn *.
13107         (combine_predictions_for_insn): Strengthen param "insn" from rtx
13108         to rtx_insn *.
13109         (bb_estimate_probability_locally): Likewise for local "last_insn".
13110         (expensive_function_p): Likewise for local "insn".
13111
13112         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
13113         local "jmp", since this is used when invoking predict_insn_def.
13114
13115 2014-08-22  Marek Polacek  <polacek@redhat.com>
13116
13117         PR c++/62199
13118         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
13119
13120 2014-08-22  Marek Polacek  <polacek@redhat.com>
13121
13122         PR c/61271
13123         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
13124         a comparison in parens.
13125         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
13126         in parens.
13127
13128 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13129
13130         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
13131         rtx_insn *.
13132
13133         * cprop.c (fis_get_condition): Likewise.
13134
13135         * postreload.c (reload_cse_regs): Likewise for param "first".
13136         (reload_cse_simplify): Likewise for param "insn".
13137         (reload_cse_regs_1): Likewise for local "insn".
13138         (reload_cse_simplify_set): Likewise for param "insn".
13139         (reload_cse_simplify_operands): Likewise.
13140         (struct reg_use): Likewise for field "insn".
13141         (reload_combine_purge_insn_uses): Likewise for param "insn".
13142         (fixup_debug_insns): Likewise for params "from", "to" and local
13143         "insn".
13144         (try_replace_in_use): Likewise for local "use_insn".
13145         (reload_combine_recognize_const_pattern): Likewise for param
13146         "insn" and locals "add_moved_after_insn", "use_insn".
13147         (reload_combine_recognize_pattern): Likewise for param "insn" and
13148         local "prev".
13149         (reload_combine): Likewise for locals "insn", "prev".
13150         (reload_combine_note_use): Likewise for param "insn".
13151         (move2add_use_add2_insn): Likewise.
13152         (move2add_use_add3_insn): Likewise.
13153         (reload_cse_move2add): Likewise, also for local "next".
13154         (move2add_note_store): Likewise for local "insn".
13155
13156 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13157
13158         * postreload-gcse.c (struct occr): Strengthen field "insn" from
13159         rtx to rtx_insn *.
13160         (struct unoccr): Likewise.
13161         (struct modifies_mem): Likewise.
13162         (alloc_mem): Likewise for local "insn".
13163         (insert_expr_in_table): Likewise for param "insn".
13164         (dump_expr_hash_table_entry): Likewise for local "insn".
13165         (oprs_unchanged_p): Likewise for param "insn".
13166         (load_killed_in_block_p): Likewise for local "setter".
13167         (record_last_reg_set_info): Likewise for param "insn".
13168         (record_last_reg_set_info_regno): Likewise.
13169         (record_last_mem_set_info): Likewise.
13170         (record_last_set_info): Likewise for local "last_set_insn".
13171         (record_opr_changes): Likewise for param "insn".
13172         (hash_scan_set): Likewise.
13173         (compute_hash_table): Likewise for local "insn".
13174         (get_avail_load_store_reg): Likewise for param "insn".
13175         (eliminate_partially_redundant_load): Likewise, also for locals
13176         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
13177         RTX for insns.
13178         (eliminate_partially_redundant_loads): Likewise for local "insn".
13179
13180 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13181
13182         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
13183         rtx to rtx_insn *.
13184         (expand_binop): Likewise for locals "entry_last", "last", "insns"
13185         (expand_twoval_unop): Likewise for locals entry_last", "last".
13186         (expand_twoval_binop): Likewise.
13187         (expand_twoval_binop_libfunc): Likewise for local "insns".
13188         (widen_leading): Likewise for local "last".
13189         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
13190         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
13191         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
13192         (expand_parity): Likewise for locals "last" and "seq".
13193         (expand_ffs): Likewise for local "seq".  Strengthen local
13194         "nonzero_label" from rtx to rtx_code_label *.
13195         (expand_absneg_bit): Strengthen local "insns" from rtx to
13196         rtx_insn *.
13197         (expand_unop_direct): Likewise for local "last".
13198         (expand_unop): Likewise for locals "last", "insns".
13199         (expand_abs_nojump): Likewise for local "last".
13200         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
13201         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
13202         rtx_insn *.
13203         (expand_copysign_absneg): Strengthen local "label" from rtx to
13204         rtx_code_label *.
13205         (expand_copysign_bit): Strengthen local "insns" from rtx to
13206         rtx_insn *.
13207         (struct no_conflict_data): Likewise for fields "first", "insn".
13208         (emit_libcall_block_1): Likewise for param "insns" and locals
13209         "next", "last", "insn".
13210         (emit_libcall_block): For now, add a checked cast to rtx_insn *
13211         on "insns" when invoking emit_libcall_block_1.  Ultimately we
13212         want to strengthen insns itself.
13213         (prepare_cmp_insn): Strengthen local "last" from rtx to
13214         rtx_insn *.
13215         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
13216         (prepare_float_lib_cmp): Likewise for local "insns".
13217         (emit_conditional_move): Likewise for local "last".
13218         (emit_conditional_add): Likewise.
13219         (have_sub2_insn): Likewise for local "seq".
13220         (expand_float): Likewise for local "insns".  Strengthen locals
13221         "label", "neglabel" from rtx to rtx_code_label *.
13222         (expand_fix): Likewise for locals "last", "insn", "insns" (to
13223         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
13224         (expand_fixed_convert): Likewise for local "insns" (to
13225         rtx_insn *).
13226         (expand_sfix_optab): Likewise for local "last".
13227         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
13228         to rtx_code_label *.
13229         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
13230         from rtx to rtx_insn *.
13231         (expand_atomic_fetch_op): Likewise for local "insn".
13232         (maybe_legitimize_operand_same_code): Likewise for local "last".
13233         (maybe_legitimize_operands): Likewise.
13234
13235 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13236
13237         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
13238         "insn" from rtx to rtx_insn *.
13239         (ps_rtl_insn): Likewise for return type.
13240         (doloop_register_get): Likewise for params "head", "tail" and
13241         locals "insn", "first_insn_not_to_check".
13242         (schedule_reg_move): Likewise for local "this_insn".
13243         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
13244         of gen_move_insn for now.
13245         (reset_sched_times): Strengthen local "insn" from rtx to
13246         rtx_insn *.
13247         (permute_partial_schedule): Likewise.
13248         (duplicate_insns_of_cycles): Likewise for local "u_insn".
13249         (dump_insn_location): Likewise for param "insn".
13250         (loop_canon_p): Likewise for local "insn".
13251         (sms_schedule): Likewise.
13252         (print_partial_schedule): Likewise.
13253         (ps_has_conflicts): Likewise.
13254
13255 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13256
13257         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
13258         "tailp" from rtx * to rtx_insn **.
13259
13260         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
13261         from rtx to rtx_insn *.
13262         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
13263         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
13264         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
13265         rtx to rtx_insn *.
13266         * modulo-sched.c (const_iteration_count): Strengthen return type
13267         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
13268         use of NULL_RTX with NULL when working with insns.
13269         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
13270         to rtx_insn *.
13271         (sms_schedule): Likewise.
13272         * sched-rgn.c (init_ready_list): Likewise, also for locals
13273         "src_head" and "src_next_tail".
13274         (compute_block_dependences): Likewise.
13275         (free_block_dependencies): Likewise.
13276         (debug_rgn_dependencies): Likewise.
13277         (free_rgn_deps): Likewise.
13278         (compute_priorities): Likewise.
13279         (schedule_region): Likewise.
13280         * sel-sched.c (find_ebb_boundaries): Likewise.
13281
13282         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
13283         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
13284
13285 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13286
13287         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
13288         from rtx to rtx_insn *.
13289         (new_seginfo): Likewise for param "insn".
13290         (create_pre_exit): Likewise for locals "last_insn",
13291         "before_return_copy", "return_copy".
13292         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
13293         "mode_set".
13294
13295 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13296
13297         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
13298         from rtx to rtx_insn *.
13299         (lra_push_insn): Likewise for 1st param.
13300         (lra_push_insn_and_update_insn_regno_info): Likewise.
13301         (lra_pop_insn): Likewise for return type.
13302         (lra_invalidate_insn_data): Likewise for 1st param.
13303         (lra_set_insn_deleted): Likewise.
13304         (lra_delete_dead_insn): Likewise.
13305         (lra_process_new_insns): Likewise for first 3 params.
13306         (lra_set_insn_recog_data): Likewise for 1st param.
13307         (lra_update_insn_recog_data): Likewise.
13308         (lra_set_used_insn_alternative): Likewise.
13309         (lra_invalidate_insn_regno_info): Likewise.
13310         (lra_update_insn_regno_info): Likewise.
13311         (lra_former_scratch_operand_p): Likewise.
13312         (lra_eliminate_regs_1): Likewise.
13313         (lra_get_insn_recog_data): Likewise.
13314
13315         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
13316         rtx to rtx_insn *.
13317
13318         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
13319         "mv1" and "mv2".
13320         (substitute_within_insn): New.
13321         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
13322         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
13323         Replace call to "substitute" with call to substitute_within_insn.
13324
13325         * lra-constraints.c (curr_insn): Strengthen from rtx to
13326         rtx_insn *.
13327         (get_equiv_with_elimination): Likewise for param "insn".
13328         (match_reload): Strengthen params "before" and "after" from rtx *
13329         to rtx_insn **.
13330         (emit_spill_move): Likewise for return type.  Add a checked cast
13331         to rtx_insn * on result of gen_move_insn for now.
13332         (check_and_process_move): Likewise for local "before".  Replace
13333         NULL_RTX with NULL when referring to insns.
13334         (process_addr_reg): Strengthen params "before" and "after" from
13335         rtx * to rtx_insn **.
13336         (insert_move_for_subreg): Likewise.
13337         (simplify_operand_subreg): Strengthen locals "before" and "after"
13338         from rtx to rtx_insn *.
13339         (process_address_1): Strengthen params "before" and "after" from
13340         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
13341         rtx to rtx_insn *.
13342         (process_address): Strengthen params "before" and "after" from
13343         rtx * to rtx_insn **.
13344         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
13345         (curr_insn_transform): Strengthen locals "before" and "after"
13346         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
13347         to insns.
13348         (loc_equivalence_callback): Update cast of "data", changing
13349         resulting type from rtx to rtx_insn *.
13350         (substitute_pseudo_within_insn): New.
13351         (inherit_reload_reg): Strengthen param "insn" from rtx to
13352         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
13353         NULL when referring to insns.  Add a checked cast to rtx_insn *
13354         when using usage_insn to invoke lra_update_insn_regno_info.
13355         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
13356         likewise for locals "restore", "save".  Add checked casts to
13357         rtx_insn * when using usage_insn to invoke
13358         lra_update_insn_regno_info and lra_process_new_insns.  Replace
13359         NULL_RTX with NULL when referring to insns.
13360         (split_if_necessary): Strengthen param "insn" from rtx to
13361         rtx_insn *.
13362         (update_ebb_live_info): Likewise for params "head", "tail" and local
13363         "prev_insn".
13364         (get_last_insertion_point): Likewise for return type and local "insn".
13365         (get_live_on_other_edges): Likewise for local "last".
13366         (inherit_in_ebb): Likewise for params "head", "tail" and locals
13367         "prev_insn", "next_insn", "restore".
13368         (remove_inheritance_pseudos): Likewise for local "prev_insn".
13369         (undo_optional_reloads): Likewise for local "insn".
13370
13371         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
13372         "insn".
13373         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
13374         insns.
13375         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
13376         rtx_insn *.
13377         (spill_pseudos): Likewise for local "insn".
13378         (init_elimination): Likewise.
13379         (process_insn_for_elimination): Likewise for param "insn".
13380
13381         * lra-lives.c (curr_insn): Likewise.;
13382
13383         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
13384         (remove_pseudos): Likewise for param "insn".
13385         (spill_pseudos): Likewise for local "insn".
13386         (lra_final_code_change): Likewise for locals "insn", "curr".
13387
13388         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
13389         (lra_set_insn_deleted): Likewise.
13390         (lra_delete_dead_insn): Likewise, and for local "prev".
13391         (new_insn_reg): Likewise for param "insn".
13392         (lra_set_insn_recog_data): Likewise.
13393         (lra_update_insn_recog_data): Likewise.
13394         (lra_set_used_insn_alternative): Likewise.
13395         (get_insn_freq): Likewise.
13396         (invalidate_insn_data_regno_info): Likewise.
13397         (lra_invalidate_insn_regno_info): Likewise.
13398         (lra_update_insn_regno_info): Likewise.
13399         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
13400         vec<rtx_insn *>.
13401         (lra_push_insn_1): Strengthen param "insn" from rtx to
13402         rtx_insn *.
13403         (lra_push_insn): Likewise.
13404         (lra_push_insn_and_update_insn_regno_info): Likewise.
13405         (lra_pop_insn): Likewise for return type and local "insn".
13406         (push_insns): Likewise for params "from", "to", and local "insn".
13407         (setup_sp_offset): Likewise for params "from", "last" and locals
13408         "before", "insn".
13409         (lra_process_new_insns): Likewise for params "insn", "before",
13410         "after" and local "last".
13411         (struct sloc): Likewise for field "insn".
13412         (lra_former_scratch_operand_p): Likewise for param "insn".
13413         (remove_scratches): Likewise for locals "insn", "last".
13414         (check_rtl): Likewise for local "insn".
13415         (add_auto_inc_notes): Likewise for param "insn".
13416         (update_inc_notes): Likewise for local "insn".
13417         (lra): Replace NULL_RTX with NULL when referring to insn.
13418
13419 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13420
13421         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
13422         to rtx_insn *.
13423         (resolve_reg_notes): Likewise.
13424         (resolve_simple_move): Likewise for return type, param "insn", and
13425         locals "insns", "minsn".
13426         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
13427         (resolve_use): Likewise.
13428         (resolve_debug): Likewise.
13429         (find_decomposable_shift_zext): Likewise.
13430         (resolve_shift_zext): Likewise for return type, param "insn", and
13431         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
13432         (decompose_multiword_subregs): Likewise for local "insn",
13433         "orig_insn", "decomposed_shift", "end".
13434
13435 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13436
13437         * basic-block.h (basic_block split_edge_and_insert): Strengthen
13438         param "insns" from rtx to rtx_insn *.
13439
13440         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
13441         rtx to rtx_insn *.
13442         (struct iv_to_split): Likewise.
13443         (loop_exit_at_end_p): Likewise for local "insn".
13444         (split_edge_and_insert): Likewise for param "insns".
13445         (compare_and_jump_seq): Likewise for return type, param "cinsn",
13446         and locals "seq", "jump".
13447         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
13448         "branch_code"; update invocations of compare_and_jump_seq to
13449         eliminate NULL_RTX in favor of NULL.
13450         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
13451         rtx to rtx_insn *.
13452         (reset_debug_uses_in_loop): Likewise.
13453         (analyze_insn_to_expand_var): Likewise for param "insn".
13454         (analyze_iv_to_split_insn): Likewise.
13455         (analyze_insns_in_loop): Likewise for local "insn".
13456         (insert_base_initialization): Likewise for param
13457         "insn" and local "seq".
13458         (split_iv): Likewise for param "insn" and local "seq".
13459         (expand_var_during_unrolling): Likewise for param "insn".
13460         (insert_var_expansion_initialization): Likewise for local "seq".
13461         (combine_var_copies_in_loop_exit): Likewise.
13462         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
13463         "insn".
13464         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
13465         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
13466         "next".
13467
13468 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13469
13470         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
13471         rtx_insn *.
13472         (iv_analyze_result): Likewise.
13473         (iv_analyze_expr): Likewise.
13474         (biv_p): Likewise.
13475
13476         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
13477         local "def_insn" from rtx to rtx_insn *.
13478         (get_biv_step_1): Likewise for local "insn".
13479         (iv_analyze_expr): Likewise for param "insn".
13480         (iv_analyze_def): Likewise for local "insn".
13481         (iv_analyze_op): Likewise for param "insn".
13482         (iv_analyze): Likewise.
13483         (iv_analyze_result): Likewise.
13484         (biv_p): Likewise.
13485         (suitable_set_for_replacement): Likewise.
13486         (simplify_using_initial_values): Likewise for local "insn".
13487         (iv_number_of_iterations): Likewise for param "insn".
13488         (check_simple_exit): Add checked cast to rtx_insn when invoking
13489         iv_number_of_iterations for now (until get_condition is
13490         strengthened).
13491
13492         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
13493         "insn" from rtx to rtx_insn *.
13494         (analyze_insns_in_loop): Likewise for local "insn".
13495
13496 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13497
13498         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
13499         to rtx_insn *.
13500         (struct invariant): Likewise.
13501         (hash_invariant_expr_1): Likewise for param "insn".
13502         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
13503         (find_exits): Likewise for local "insn".
13504         (create_new_invariant): Likewise for param "insn".
13505         (check_dependencies): Likewise.
13506         (find_invariant_insn): Likewise.
13507         (record_uses): Likewise.
13508         (find_invariants_insn): Likewise.
13509         (find_invariants_bb): Likewise for local "insn".
13510         (get_pressure_class_and_nregs): Likewise for param "insn".
13511         (calculate_loop_reg_pressure): Likewise for local "insn".
13512
13513 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13514
13515         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
13516         to rtx_insn *.
13517         (add_test): Likewise for locals "seq", "jump".
13518         (doloop_modify): Likewise for locals "sequence", "jump_insn".
13519
13520 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13521
13522         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
13523         rtx_insn *.
13524         (rebuild_jump_labels_chain): Likewise for param "chain".
13525
13526         * cfgexpand.c (pass_expand::execute): Add checked cast to
13527         rtx_insn * when calling rebuild_jump_labels_chain in region where
13528         we know e->insns.r is non-NULL.
13529
13530         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
13531         rtx_insn *.
13532         (rebuild_jump_labels): Likewise.
13533         (rebuild_jump_labels_chain): Likewise for param "chain".
13534         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
13535         (init_label_info): Likewise for param "f".
13536         (maybe_propagate_label_ref): Likewise for params "jump_insn",
13537         "prev_nonjump_insn".
13538         (mark_all_labels): Likewise for param "f" and locals "insn",
13539         "prev_nonjump_insn".
13540
13541 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13542
13543         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
13544         from rtx to rtx_insn *insn.
13545         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
13546         (ira_add_allocno_copy): Likewise.
13547         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
13548         rtx to rtx_insn *.
13549         (ira_create_copy): Likewise.
13550         (ira_add_allocno_copy): Likewise.
13551         (create_bb_allocnos): Likewise for local "insn".
13552         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
13553         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
13554         process_regs_for_copy for rtx_insn * param.
13555         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
13556         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
13557         process_regs_for_copy for rtx_insn * param.
13558         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
13559         * ira-costs.c (record_reg_classes): Likewise for param "insn".
13560         (record_operand_costs): Likewise.
13561         (scan_one_insn): Likewise for return type, and for param "insn".
13562         (process_bb_for_costs): Likewise for local "insn".
13563         (process_bb_node_for_hard_reg_moves): Likewise.
13564         * ira-emit.c (struct move): Likewise for field "insn".
13565         (create_move): Eliminate use of NULL_RTX when dealing with an
13566         rtx_insn *.
13567         (emit_move_list): Strengthen return type and locals "result",
13568         "insn" from rtx to rtx_insn *insn.
13569         (emit_moves): Likewise for locals "insns", "tmp".
13570         (ira_emit): Likewise for local "insn".
13571         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
13572         "insn".
13573         (find_call_crossed_cheap_reg): Likewise.
13574         (process_bb_node_lives): Likewise for local "insn".
13575         * ira.c (decrease_live_ranges_number): Likewise.
13576         (compute_regs_asm_clobbered): Likewise.
13577         (build_insn_chain): Likewise.
13578         (find_moveable_pseudos): Likewise, also locals "def_insn",
13579         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
13580         to rtx_insn **.  Add a checked cast when assigning from
13581         "closest_use" into closest_uses array in a region where we know
13582         it's a non-NULL insn.
13583         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
13584         to rtx_insn *.
13585         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
13586         "last_interesting_insn", "uin".
13587         (move_unallocated_pseudos): Likewise for locals "def_insn",
13588         "move_insn", "newinsn".
13589
13590 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13591
13592         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
13593         Strengthen locals "done_label", "do_error" from rtx to
13594         rtx_code_label *.
13595         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
13596         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
13597         rtx_code_label *.
13598         (ubsan_expand_si_overflow_neg_check): Likewise for locals
13599         "done_label", "do_error" to rtx_code_label * and local  "last" to
13600         rtx_insn *.
13601         (ubsan_expand_si_overflow_mul_check): Likewise for locals
13602         "done_label", "do_error", "large_op0", "small_op0_large_op1",
13603         "one_small_one_large", "both_ops_large", "after_hipart_neg",
13604         "after_lopart_neg", "do_overflow", "hipart_different"  to
13605         rtx_code_label * and local  "last" to rtx_insn *.
13606
13607 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13608
13609         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
13610         "insn" and "move_insn" from rtx to rtx_insn *.
13611
13612 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13613
13614         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
13615         rtx_insn *.
13616         (cheap_bb_rtx_cost_p): Likewise.
13617         (first_active_insn): Likewise for return type and local "insn".
13618         (last_active_insn):  Likewise for return type and locals "insn",
13619         "head".
13620         (struct noce_if_info): Likewise for fields "jump", "insn_a",
13621         "insn_b".
13622         (end_ifcvt_sequence): Likewise for return type and locals "insn",
13623         "seq".
13624         (noce_try_move): Likewise for local "seq".
13625         (noce_try_store_flag): Likewise.
13626         (noce_try_store_flag_constants): Likewise.
13627         (noce_try_addcc): Likewise.
13628         (noce_try_store_flag_mask): Likewise.
13629         (noce_try_cmove): Likewise.
13630         (noce_try_minmax): Likewise.
13631         (noce_try_abs): Likewise.
13632         (noce_try_sign_mask): Likewise.
13633         (noce_try_bitop): Likewise.
13634         (noce_can_store_speculate_p): Likewise for local "insn".
13635         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
13636         seq".
13637         (check_cond_move_block): Likewise for local "insn".
13638         (cond_move_convert_if_block): Likewise.
13639         (cond_move_process_if_block): Likewise for locals "seq",
13640         "loc_insn".
13641         (noce_find_if_block): Likewise for local "jump".
13642         (merge_if_block): Likewise for local "last".
13643         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
13644         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
13645         (block_has_only_trap): Likewise for return type and local "trap".
13646         (find_if_case_1): Likewise for local "jump".
13647         (dead_or_predicable): Likewise for locals "head", "end", "jump",
13648         "insn".
13649
13650 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13651
13652         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
13653         "last_insn", "loop_end" from rtx to rtx_insn *.
13654
13655         * hw-doloop.c (scan_loop): Likewise for local "insn".
13656         (discover_loop): Likewise for param "tail_insn".
13657         (discover_loops): Likewise for local "tail".
13658
13659         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
13660         cast to rtx_insn * when assigning from an rtx local to a
13661         hwloop_info's "last_insn" field.
13662
13663 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13664
13665         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
13666         (add_delay_dependencies): Strengthen local "pro" from rtx to
13667         rtx_insn *.
13668         (recompute_todo_spec): Likewise.
13669         (dep_cost_1): Likewise for locals "insn", "used".
13670         (schedule_insn): Likewise for local "dbg".
13671         (schedule_insn): Likewise for locals "pro", "next".
13672         (unschedule_insns_until): Likewise for local "con".
13673         (restore_pattern): Likewise for local "next".
13674         (estimate_insn_tick): Likewise for local "pro".
13675         (resolve_dependencies): Likewise for local "next".
13676         (fix_inter_tick): Likewise.
13677         (fix_tick_ready): Likewise for local "pro".
13678         (add_to_speculative_block): Likewise for locals "check", "twin",
13679         "pro".
13680         (sched_extend_bb): Likewise for locals "end", "insn".
13681         (init_before_recovery): Likewise for local "x".
13682         (sched_create_recovery_block): Likewise for local "barrier".
13683         (create_check_block_twin): Likewise for local "pro".
13684         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
13685         "consumer".
13686         (unlink_bb_notes): Update for change to type of bb_header.
13687         Strengthen locals "prev", "label", "note", "next" from rtx to
13688         rtx_insn *.
13689         (clear_priorities): Likewise for local "pro".
13690
13691 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13692
13693         * gcse.c (struct occr): Strengthen field "insn" from rtx to
13694         rtx_insn *.
13695         (test_insn): Likewise for this global.
13696         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
13697         const rtx_insn *.
13698         (oprs_anticipatable_p): Likewise.
13699         (oprs_available_p): Likewise.
13700         (insert_expr_in_table): Strengthen param "insn" from  rtx to
13701         rtx_insn *.
13702         (hash_scan_set): Likewise.
13703         (hash_scan_clobber): Likewise.
13704         (hash_scan_call): Likewise.
13705         (hash_scan_insn): Likewise.
13706         (compute_hash_table_work): Likewise for local "insn".
13707         (process_insert_insn): Likewise for return type and local "pat".
13708         (insert_insn_end_basic_block): Likewise for locals "new_insn",
13709         "pat", "pat_end", "maybe_cc0_setter".
13710         (pre_edge_insert): Likewise for local "insn".
13711         (pre_insert_copy_insn): Likewise for param "insn".
13712         (pre_insert_copies): Likewise for local "insn".
13713         (struct set_data): Likewise for field "insn".
13714         (single_set_gcse): Likewise for param "insn".
13715         (gcse_emit_move_after): Likewise.
13716         (pre_delete): Likewise for local "insn".
13717         (update_bb_reg_pressure): Likewise for param "from" and local
13718         "insn".
13719         (should_hoist_expr_to_dom): Likewise for param "from".
13720         (hoist_code): Likewise for local "insn".
13721         (get_pressure_class_and_nregs): Likewise for param "insn".
13722         (calculate_bb_reg_pressure): Likewise for local "insn".
13723         (compute_ld_motion_mems): Likewise.
13724
13725 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13726
13727         * genpeep.c (main): Rename param back from "uncast_ins1" to
13728         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
13729         checked cast.
13730
13731         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
13732
13733 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
13734
13735         PR target/62195
13736         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
13737         documentation to state it is only for VSX operations.
13738
13739         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
13740         constraint only active if VSX.
13741
13742         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
13743         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
13744         (lfiwzx): Likewise.
13745
13746 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13747
13748         * fwprop.c (single_def_use_dom_walker::before_dom_children):
13749         Strengthen local "insn" from rtx to rtx_insn *.
13750         (use_killed_between): Likewise for param "target_insn".
13751         (all_uses_available_at): Likewise for param "target_insn" and
13752         local "next".
13753         (update_df_init): Likewise for params "def_insn", "insn".
13754         (update_df): Likewise for param "insn".
13755         (try_fwprop_subst): Likewise for param "def_insn" and local
13756         "insn".
13757         (free_load_extend): Likewise for param "insn".
13758         (forward_propagate_subreg): Likewise for param "def_insn" and
13759         local "use_insn".
13760         (forward_propagate_asm): Likewise for param "def_insn" and local
13761         "use_insn".
13762         (forward_propagate_and_simplify): Likewise for param "def_insn"
13763         and local "use_insn".
13764         (forward_propagate_into): Likewise for locals "def_insn" and
13765         "use_insn".
13766
13767 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13768
13769         * function.c (emit_initial_value_sets): Strengthen local "seq"
13770         from rtx to rtx_insn *.
13771         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
13772         local "seq".
13773         (instantiate_virtual_regs): Likewise for local "insn".
13774         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
13775         (reorder_blocks_1): Likewise for param "insns" and local "insn".
13776         (expand_function_end): Likewise for locals "insn" and "seq".
13777         (epilogue_done): Likewise for local "insn".
13778         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
13779         "last", "trial".
13780         (reposition_prologue_and_epilogue_notes): Likewise for locals
13781         "insn", "last", "note", "first".
13782         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
13783         (pass_match_asm_constraints::execute): Likewise for local "insn".
13784
13785 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13786
13787         * output.h (final_scan_insn): Strengthen return type from rtx to
13788         rtx_insn *.
13789         (final_forward_branch_p): Likewise for param.
13790         (current_output_insn): Likewise for this global.
13791
13792         * final.c (rtx debug_insn): Likewise for this variable.
13793         (current_output_insn): Likewise.
13794         (get_attr_length_1): Rename param "insn" to "uncast_insn",
13795         adding "insn" back in as an rtx_insn * with a checked cast, so
13796         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
13797         first param.
13798         (compute_alignments): Strengthen local "label" from rtx to
13799         rtx_insn *.
13800         (shorten_branches): Rename param from "first" to "uncast_first",
13801         introducing a new local rtx_insn * "first" using a checked cast to
13802         effectively strengthen "first" from rtx to rtx_insn * without
13803         affecting the type signature.  Strengthen locals "insn", "seq",
13804         "next", "label" from rtx to rtx_insn *.
13805         (change_scope): Strengthen param "orig_insn" and local "insn" from
13806         rtx to rtx_insn *.
13807         (final_start_function): Rename param from "first" to "uncast_first",
13808         introducing a new local rtx_insn * "first" using a checked cast to
13809         effectively strengthen "first" from rtx to rtx_insn * without
13810         affecting the type signature.  Strengthen local "insn" from rtx to
13811         rtx_insn *.
13812         (dump_basic_block_info): Strengthen param "insn" from rtx to
13813         rtx_insn *.
13814         (final): Rename param from "first" to "uncast_first",
13815         introducing a new local rtx_insn * "first" using a checked cast to
13816         effectively strengthen "first" from rtx to rtx_insn * without
13817         affecting the type signature.  Strengthen locals "insn", "next"
13818         from rtx to rtx_insn *.
13819         (output_alternate_entry_point): Strengthen param "insn" from rtx to
13820         rtx_insn *.
13821         (call_from_call_insn): Strengthen param "insn" from rtx to
13822         rtx_call_insn *.
13823         (final_scan_insn): Rename param from "insn" to "uncast_insn",
13824         introducing a new local rtx_insn * "insn" using a checked cast to
13825         effectively strengthen "insn" from rtx to rtx_insn * without
13826         affecting the type signature.  Strengthen return type and locals
13827         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
13828         now-redundant checked cast to rtx_insn * from both invocations of
13829         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
13830         introducing a local "call_insn" for use when invoking
13831         call_from_call_insn.
13832         (notice_source_line): Strengthen param "insn" from rtx to
13833         rtx_insn *.
13834         (leaf_function_p): Likewise for local "insn".
13835         (final_forward_branch_p): Likewise.
13836         (leaf_renumber_regs): Likewise for param "first".
13837         (rest_of_clean_state): Likewise for locals "insn" and "next".
13838         (self_recursive_call_p): Likewise for param "insn".
13839         (collect_fn_hard_reg_usage): Likewise for local "insn".
13840         (get_call_fndecl): Likewise for param "insn".
13841         (get_call_cgraph_rtl_info): Likewise.
13842         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
13843         introducing a new local rtx_insn * "insn" using a checked cast to
13844         effectively strengthen "insn" from rtx to rtx_insn * without
13845         affecting the type signature.
13846
13847         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
13848         cast when assigning from param "insn" to current_output_insn.
13849         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
13850         so that we can assign it back to current_output_insn.
13851
13852 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
13853
13854         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
13855         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
13856         atmxt540s and atmxt540sreva devices.
13857         * config/avr/avr-tables.opt: Regenerate.
13858         * config/avr/t-multilib: Regenerate.
13859         * doc/avr-mmcu.texi: Regenerate.
13860
13861 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13862
13863         * expr.c (convert_move): Strengthen local "insns" from rtx to
13864         rtx_insn *.
13865         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
13866         "top_label" from rtx to rtx_code_label *.
13867         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
13868         rtx_insn *.
13869         (emit_single_push_insn): Likewise for locals "prev", "last".
13870         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
13871         to rtx_code_label *.
13872         (store_constructor): Likewise for locals "loop_start", "loop_end".
13873         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
13874         rtx_insn *.
13875         (expand_expr_real_2): Likewise.
13876         (expand_expr_real_1): Strengthen local "label" from rtx to
13877         rtx_code_label *.
13878
13879 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13880
13881         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
13882         from rtx to rtx_insn *.
13883         (store_bit_field_1): Likewise.
13884         (extract_bit_field_1): Likewise.
13885         (expand_mult_const): Likewise for local "insns".
13886         (expmed_mult_highpart): Strengthen local "label" from rtx to
13887         rtx_code_label *.
13888         (expand_smod_pow2): Likewise.
13889         (expand_sdiv_pow2): Likewise.
13890         (expand_divmod): Strengthen locals "last", "insn" from rtx to
13891         rtx_insn *.  Strengthen locals "label", "label1", "label2",
13892         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
13893         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
13894         (emit_store_flag): Likewise.
13895         (emit_store_flag_force): Strengthen local "label" from rtx to
13896         rtx_code_label *.
13897         (do_cmp_and_jump): Likewise for param "label".
13898
13899 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13900
13901         * explow.c (force_reg): Strengthen local "insn" from rtx to
13902         rtx_insn *.
13903         (adjust_stack_1): Likewise.
13904         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
13905         "final_label", "available_label", "space_available" from rtx to
13906         rtx_code_label *.
13907         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
13908         (anti_adjust_stack_and_probe): Likewise.
13909
13910 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13911
13912         * except.h (sjlj_emit_function_exit_after): Strengthen param
13913         "after" from rtx to rtx_insn *.  This is only called with
13914         result of get_last_insn (in function.c) so type-change should be
13915         self-contained.
13916
13917         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
13918         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
13919         to rtx_insn *.  These fields are only used from except.c so this
13920         type-change should be self-contained to this patch.
13921
13922         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
13923         local "last" from rtx to rtx_insn *.
13924         (dw2_build_landing_pads): Likewise for local "seq".
13925         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
13926         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
13927         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
13928         rtx to rtx_insn *.
13929         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
13930         to rtx_insn *.
13931         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
13932         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
13933         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
13934         referring to an insn.  Strengthen local "dispatch_label" from
13935         rtx to rtx_code_label *.
13936         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
13937         rtx_insn *.
13938         (expand_eh_return): Strengthen local "around_label" from
13939         rtx to rtx_code_label *.
13940         (convert_to_eh_region_ranges): Strengthen locals "iter",
13941         "last_action_insn", "first_no_action_insn",
13942         "first_no_action_insn_before_switch",
13943         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
13944
13945 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13946
13947         * dwarf2out.c (last_var_location_insn): Strengthen this variable
13948         from rtx to rtx_insn *.
13949         (cached_next_real_insn): Likewise.
13950         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
13951         working with insns.
13952         (dwarf2out_var_location): Strengthen locals "next_real",
13953         "next_note", "expected_next_loc_note", "last_start", "insn" from
13954         rtx to rtx_insn *.
13955
13956 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13957
13958         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
13959         from rtx to rtx_insn *.
13960         (create_pseudo_cfg): Likewise for local "insn".
13961
13962 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13963
13964         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
13965         from rtx to rtx_insn *.
13966         (df_bb_regno_last_def_find): Likewise.
13967
13968         * df-problems.c (df_rd_bb_local_compute): Likewise.
13969         (df_lr_bb_local_compute): Likewise.
13970         (df_live_bb_local_compute): Likewise.
13971         (df_chain_remove_problem): Likewise.
13972         (df_chain_create_bb): Likewise.
13973         (df_word_lr_bb_local_compute): Likewise.
13974         (df_remove_dead_eq_notes): Likewise for param "insn".
13975         (df_note_bb_compute): Likewise for local "insn".
13976         (simulate_backwards_to_point): Likewise.
13977         (df_md_bb_local_compute): Likewise.
13978
13979         * df-scan.c (df_scan_free_bb_info): Likewise.
13980         (df_scan_start_dump): Likewise.
13981         (df_scan_start_block): Likewise.
13982         (df_install_ref_incremental): Likewise for local "insn".
13983         (df_insn_rescan_all): Likewise.
13984         (df_reorganize_refs_by_reg_by_insn): Likewise.
13985         (df_reorganize_refs_by_insn_bb): Likewise.
13986         (df_recompute_luids): Likewise.
13987         (df_bb_refs_record): Likewise.
13988         (df_update_entry_exit_and_calls): Likewise.
13989         (df_bb_verify): Likewise.
13990
13991 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13992
13993         * ddg.h (struct ddg_node): Strengthen fields "insn" and
13994         "first_note" from rtx to rtx_insn *.
13995         (get_node_of_insn): Likewise for param 2 "insn".
13996         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
13997
13998         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
13999         rtx_insn *.
14000         (mem_write_insn_p): Likewise.
14001         (mem_access_insn_p): Likewise.
14002         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
14003         (def_has_ccmode_p): Likewise for param "insn".
14004         (add_cross_iteration_register_deps): Likewise for locals
14005         "def_insn" and "use_insn".
14006         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
14007         (build_intra_loop_deps): Likewise for local "src_insn".
14008         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
14009         to rtx_insn *.
14010         (get_node_of_insn): Likewise for param "insn".
14011
14012 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
14013
14014         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
14015         (deletable_insn_p): Strengthen param "insn" from rtx to
14016         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
14017         find_call_stack_args, since this is guarded by CALL_P (insn).
14018         (marked_insn_p): Strengthen param "insn" from rtx to
14019         rtx_insn *.
14020         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
14021         invoking find_call_stack_args, since this is guarded by
14022         CALL_P (insn).
14023         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
14024         rtx_insn *; we know this is an insn since this was called by
14025         mark_nonreg_stores.
14026         (mark_nonreg_stores_2): Likewise.
14027         (mark_nonreg_stores): Strengthen param "insn" from rtx to
14028         rtx_insn *.
14029         (find_call_stack_args): Strengthen param "call_insn" from rtx to
14030         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
14031         to rtx_insn *.
14032         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
14033         from rtx to rtx_insn *.
14034         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
14035         "next", "ref_insn".
14036         (delete_unmarked_insns): Likewise for locals "insn", "next".
14037         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
14038         (mark_reg_dependencies): Likewise for param "insn".
14039         (rest_of_handle_ud_dce): Likewise for local "insn".
14040         (word_dce_process_block): Likewise.
14041         (dce_process_block): Likewise.
14042
14043 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
14044
14045         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
14046         from rtx to rtx_insn *.
14047         (struct change_cc_mode_args): Likewise for field "insn".
14048         (this_insn): Strengthen from rtx to rtx_insn *.
14049         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
14050         with insn.
14051         (validate_canon_reg): Strengthen param "insn" from rtx to
14052         rtx_insn *.
14053         (canon_reg): Likewise.
14054         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
14055         dealing with insn.
14056         (record_jump_equiv): Strengthen param "insn" from rtx to
14057         rtx_insn *.
14058         (try_back_substitute_reg): Likewise, also for locals "prev",
14059         "bb_head".
14060         (find_sets_in_insn): Likewise for param "insn".
14061         (canonicalize_insn): Likewise.
14062         (cse_insn): Likewise.  Add a checked cast.
14063         (invalidate_from_clobbers): Likewise for param "insn".
14064         (invalidate_from_sets_and_clobbers): Likewise.
14065         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
14066         dealing with insn.
14067         (cse_prescan_path): Strengthen local "insn" from rtx to
14068         rtx_insn *.
14069         (cse_extended_basic_block): Likewise for locals "insn" and
14070         "prev_insn".
14071         (cse_main): Likewise for param "f".
14072         (check_for_label_ref): Likewise for local "insn".
14073         (set_live_p): Likewise for second param ("insn").
14074         (insn_live_p): Likewise for first param ("insn") and for local
14075         "next".
14076         (cse_change_cc_mode_insn): Likewise for first param "insn".
14077         (cse_change_cc_mode_insns): Likewise for first and second params
14078         "start" and "end".
14079         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
14080         and "end".
14081         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
14082         "cc_src_insn".
14083
14084 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14085             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14086             Anna Tikhonova  <anna.tikhonova@intel.com>
14087             Ilya Tocar  <ilya.tocar@intel.com>
14088             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14089             Ilya Verbin  <ilya.verbin@intel.com>
14090             Kirill Yukhin  <kirill.yukhin@intel.com>
14091             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14092
14093         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
14094         New.
14095         * config/i386/sse.md
14096         (define_mode_iterator VI248_AVX2): Delete.
14097         (define_mode_iterator VI2_AVX2_AVX512BW): New.
14098         (define_mode_iterator VI48_AVX2): Ditto.
14099         (define_insn <shift_insn><mode>3): Delete.
14100         (define_insn "<shift_insn><mode>3<mask_name>" with
14101         VI2_AVX2_AVX512BW): New.
14102         (define_insn "<shift_insn><mode>3<mask_name>" with
14103         VI48_AVX2): Ditto.
14104
14105 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14106             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14107             Anna Tikhonova  <anna.tikhonova@intel.com>
14108             Ilya Tocar  <ilya.tocar@intel.com>
14109             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14110             Ilya Verbin  <ilya.verbin@intel.com>
14111             Kirill Yukhin  <kirill.yukhin@intel.com>
14112             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14113
14114         * config/i386/sse.md
14115         (define_mode_iterator VI4F_BRCST32x2): New.
14116         (define_mode_attr 64x2_mode): Ditto.
14117         (define_mode_attr 32x2mode): Ditto.
14118         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
14119         with VI4F_BRCST32x2): Ditto.
14120         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
14121         with V16FI mode iterator): Ditto.
14122         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
14123         with V16FI): Ditto.
14124         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
14125         with VI8F_BRCST64x2): Ditto.
14126
14127 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14128             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14129             Anna Tikhonova  <anna.tikhonova@intel.com>
14130             Ilya Tocar  <ilya.tocar@intel.com>
14131             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14132             Ilya Verbin  <ilya.verbin@intel.com>
14133             Kirill Yukhin  <kirill.yukhin@intel.com>
14134             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14135
14136         * config/i386/sse.md
14137         (define_mode_iterator VI8_AVX512VL): New.
14138         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
14139
14140 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
14141
14142         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
14143         (define_mode_iterator V48_AVX512VL): New.
14144         (define_mode_iterator V12_AVX512VL): Ditto.
14145         (define_insn <avx512>_load<mode>_mask): Split into two similar
14146         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
14147         Refactor output template.
14148         (define_insn "<avx512>_store<mode>_mask"): Ditto.
14149
14150 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
14151
14152         * cprop.c (struct occr): Strengthen field "insn" from rtx to
14153         rtx_insn *.
14154         (reg_available_p): Likewise for param "insn".
14155         (insert_set_in_table): Likewise.
14156         (hash_scan_set): Likewise.
14157         (hash_scan_insn): Likewise.
14158         (make_set_regs_unavailable): Likewise.
14159         (compute_hash_table_work): Likewise for local "insn".
14160         (reg_not_set_p): Strengthen param "insn" from const_rtx to
14161         const rtx_insn *.
14162         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
14163         (try_replace_reg): Likewise.
14164         (find_avail_set): Likewise.
14165         (cprop_jump): Likewise for params "setcc", "jump".
14166         (constprop_register): Likewise for param "insn".
14167         (cprop_insn): Likewise.
14168         (do_local_cprop): Likewise.
14169         (local_cprop_pass): Likewise for local "insn".
14170         (bypass_block): Likewise for params "setcc" and "jump".
14171         (bypass_conditional_jumps): Likewise for locals "setcc" and
14172         "insn".
14173         (one_cprop_pass): Likewise for local "insn".
14174
14175 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
14176
14177         * compare-elim.c (struct comparison_use): Strengthen field "insn"
14178         from rtx to rtx_insn *.
14179         (struct comparison): Likewise, also for field "prev_clobber".
14180         (conforming_compare): Likewise for param "insn".
14181         (arithmetic_flags_clobber_p): Likewise.
14182         (find_flags_uses_in_insn): Likewise.
14183         (find_comparison_dom_walker::before_dom_children): Likewise for
14184         locals "insn", "next", "last_clobber".
14185         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
14186
14187 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
14188
14189         * combine-stack-adj.c (struct csa_reflist): Strengthen field
14190         "insn" from rtx to rtx_insn *.
14191         (single_set_for_csa): Likewise for param "insn".
14192         (record_one_stack_ref): Likewise.
14193         (try_apply_stack_adjustment): Likewise.
14194         (struct record_stack_refs_data): Likewise for field "insn".
14195         (maybe_move_args_size_note): Likewise for params "last" and "insn".
14196         (prev_active_insn_bb): Likewise for return type and param "insn".
14197         (next_active_insn_bb): Likewise.
14198         (force_move_args_size_note): Likewise for params "prev" and "last"
14199         and locals "test", "next_candidate", "prev_candidate".
14200         (combine_stack_adjustments_for_block): Strengthen locals
14201         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
14202         rtx_insn *.
14203
14204 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14205
14206         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
14207         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
14208         (subst_insn): Likewise for this variable.
14209         (added_links_insn): Likewise.
14210         (struct insn_link): Likewise for field "insn".
14211         (alloc_insn_link): Likewise for param "insn".
14212         (struct undobuf): Likewise for field "other_insn".
14213         (find_single_use): Likewise for param "insn" and local "next".
14214         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
14215         (delete_noop_moves): Likewise for locals "insn", "next".
14216         (create_log_links): Likewise for locals "insn", "use_insn".
14217         Strengthen local "next_use" from rtx * to rtx_insn **.
14218         (insn_a_feeds_b): Likewise for params "a", "b".
14219         (combine_instructions): Likewise for param "f" and locals "insn",
14220         "next", "prev", "first", "last_combined_insn", "link", "link1",
14221         "temp".  Replace use of NULL_RTX with NULL when referring to
14222         insns.
14223         (setup_incoming_promotions): Likewise for param "first"
14224         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
14225         (can_combine_p): Likewise for params "insn", "i3", "pred",
14226         "pred2", "succ", "succ2" and for local "p".
14227         (combinable_i3pat): Likewise for param "i3".
14228         (cant_combine_insn_p): Likewise for param "insn".
14229         (likely_spilled_retval_p): Likewise.
14230         (adjust_for_new_dest): Likewise.
14231         (update_cfg_for_uncondjump): Likewise, also for local "insn".
14232         (try_combine): Likewise for return type and for params "i3", "i2",
14233         "i1", "i0", "last_combined_insn", and for locals "insn",
14234         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
14235         "i0_insn".  Eliminate local "tem" in favor of new locals
14236         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
14237         checked cast for now to rtx_insn * on the return type of
14238         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
14239         insns.
14240         (find_split_point): Strengthen param "insn" from rtx to
14241         rtx_insn *.
14242         (simplify_set): Likewise for local "other_insn".
14243         (recog_for_combine): Likewise for param "insn".
14244         (record_value_for_reg): Likewise.
14245         (record_dead_and_set_regs_1): Likewise for local
14246         "record_dead_insn".
14247         (record_dead_and_set_regs): Likewise for param "insn".
14248         (record_promoted_value): Likewise.
14249         (check_promoted_subreg): Likewise.
14250         (get_last_value_validate): Likewise.
14251         (reg_dead_at_p): Likewise.
14252         (move_deaths): Likewise for param "to_insn".
14253         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
14254         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
14255         in favor of new locals "tem_note" and "tem_insn", the latter being
14256         an rtx_insn *.
14257         (distribute_links): Strengthen locals "place", "insn" from rtx to
14258         rtx_insn *.
14259
14260 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14261
14262         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
14263         than a const_rtx.
14264         (can_delete_label_p): Require a const rtx_code_label * rather than
14265         a const_rtx.
14266         (delete_insn): Add checked cast to rtx_code_label * when we know
14267         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
14268         rtx to rtx_insn *.
14269         (delete_insn_chain): Strengthen locals "prev" and "current" from
14270         rtx to rtx_insn *.  Add a checked cast when assigning from
14271         "finish" (strengthening the params will come later).  Add a
14272         checked cast to rtx_note * in region where we know
14273         NOTE_P (current).
14274         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
14275         rtx_insn *.
14276         (compute_bb_for_insn): Likewise.
14277         (free_bb_for_insn): Likewise for local "insn".
14278         (compute_bb_for_insn): Likewise.
14279         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
14280         local "insn" from rtx to rtx_insn *
14281         (flow_active_insn_p): Require a const rtx_insn * rather than a
14282         const_rtx.
14283         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
14284         rtx_insn *.
14285         (can_fallthru): Likewise for locals "insn" and "insn2".
14286         (bb_note): Likewise for local "note".
14287         (first_insn_after_basic_block_note): Likewise for local "note" and
14288         for return type.
14289         (rtl_split_block): Likewise for locals "insn" and "next".
14290         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
14291         "end".
14292         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
14293         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
14294         "prev", "tmp".
14295         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
14296         them), "kill_from", "barrier", "new_insn".
14297         (patch_jump_insn): Likewise for params "insn", "old_label".
14298         (redirect_branch_edge): Likewise for locals "old_label", "insn".
14299         (force_nonfallthru_and_redirect): Likewise for locals "insn",
14300         "old_label", "new_label".
14301         (rtl_tidy_fallthru_edge): Likewise for local "q".
14302         (rtl_split_edge): Likewise for locals "before", "last".
14303         (commit_one_edge_insertion): Likewise for locals "before",
14304         "after", "insns", "tmp", "last", adding a checked cast where
14305         currently necessary.
14306         (commit_edge_insertions): Likewise.
14307         (rtl_dump_bb): Likewise for locals "insn", "last".
14308         (print_rtl_with_bb): Likewise for local "x".
14309         (rtl_verify_bb_insns): Likewise for local "x".
14310         (rtl_verify_bb_pointers): Likewise for local "insn".
14311         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
14312         "head", "end".
14313         (rtl_verify_fallthru): Likewise for local "insn".
14314         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
14315         (purge_dead_edges): Likewise for local "insn".
14316         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
14317         (skip_insns_after_block): Likewise for return type and for locals
14318         "insn", "last_insn", "next_head", "prev".
14319         (record_effective_endpoints): Likewise for locals "next_insn",
14320         "insn", "end".
14321         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
14322         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
14323         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
14324         (duplicate_insn_chain): For now, add checked cast from rtx to
14325         rtx_insn * when returning insn.
14326         (cfg_layout_duplicate_bb): Likewise for local "insn".
14327         (cfg_layout_delete_block): Likewise for locals "insn", "next",
14328         "prev", "remaints".
14329         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
14330         (rtl_block_empty_p): Likewise.
14331         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
14332         "split_point", "last".
14333         (rtl_block_ends_with_call_p): Likewise for local "insn".
14334         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
14335         const rtx_insn *.
14336         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
14337         "split_at_insn" from rtx to rtx_insn *.
14338         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
14339         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
14340         to const rtx_insn *.
14341         (rtl_account_profile_record): Likewise.
14342
14343 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14344
14345         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
14346         rtx to rtx_insn *.
14347         (average_num_loop_insns): Likewise.
14348         (init_set_costs): Likewise for local "seq".
14349         (seq_cost): Likewise for param "seq", from const_rtx to const
14350         rtx_insn *.
14351
14352 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14353
14354         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
14355         rtx to rtx_insn *.
14356
14357 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14358
14359         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
14360         "f1" and "f2" from rtx * to rtx_insn **.
14361         (flow_find_head_matching_sequence): Likewise.
14362
14363         * cfgcleanup.c (try_simplify_condjump): Strengthen local
14364         "cbranch_insn" from rtx to rtx_insn *.
14365         (thread_jump): Likewise for local "insn".
14366         (try_forward_edges): Likewise for local "last".
14367         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
14368         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
14369         "real_b_end".
14370         (can_replace_by): Likewise for params "i1", "i2".
14371         (old_insns_match_p): Likewise.
14372         (merge_notes): Likewise.
14373         (walk_to_nondebug_insn): Likewise for param "i1".
14374         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
14375         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
14376         "afterlast1", "afterlast2" from rtx to rtx_insn *.
14377         (flow_find_head_matching_sequence): Strengthen params "f1" and
14378         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
14379         "last1", "last2", "beforelast1", "beforelast2" from rtx to
14380         rtx_insn *.
14381         (outgoing_edges_match): Likewise for locals "last1", "last2".
14382         (try_crossjump_to_edge): Likewise for local "insn".
14383         Replace call to for_each_rtx with for_each_rtx_in_insn.
14384
14385         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
14386         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
14387         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
14388         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
14389         (try_optimize_cfg): Strengthen local "last" from rtx to
14390         rtx_insn *.
14391         (delete_dead_jumptables): Likewise for locals "insn", "next",
14392         "label".
14393
14394         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
14395         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
14396         "rtx else_first_tail", to reflect the basic-block.h changes above.
14397
14398 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14399
14400         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
14401         rtx_insn *.
14402         (purge_dead_tablejump_edges): Likewise.
14403         (find_bb_boundaries): Likewise for locals "insn", "end",
14404         "flow_transfer_insn".
14405
14406 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14407
14408         * caller-save.c (save_call_clobbered_regs): Strengthen locals
14409         "ins" and "prev" from rtx to rtx_insn *.
14410
14411 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14412
14413         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
14414         rtx_insn *.
14415         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
14416         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
14417         "scan_start".
14418         (load_register_parameters): Likewise for local "before_arg".
14419         (check_sibcall_argument_overlap): Likewise for param "insn".
14420         (expand_call): Likewise for locals "normal_call_insns",
14421         "tail_call_insns", "insns", "before_call", "after_args",
14422         "before_arg", "last", "prev".  Strengthen one of the "last" from
14423         rtx to rtx_call_insn *.
14424         (fixup_tail_calls): Strengthen local "insn" from rtx to
14425         rtx_insn *.
14426         (emit_library_call_value_1): Likewise for locals "before_call" and
14427         "last".
14428
14429 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14430
14431         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
14432         and "last" from rtx to rtx_insn *.
14433         (expand_builtin_nonlocal_goto): Likewise for local "insn".
14434         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
14435         rtx_call_insn *.
14436         (expand_errno_check): Strengthen local "lab" from rtx to
14437         rtx_code_label *.
14438         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
14439         rtx_insn *.
14440         (expand_builtin_mathfn_2): Likewise.
14441         (expand_builtin_mathfn_ternary): Likewise.
14442         (expand_builtin_mathfn_3): Likewise.
14443         (expand_builtin_interclass_mathfn): Likewise for local "last".
14444         (expand_builtin_int_roundingfn): Likewise for local "insns".
14445         (expand_builtin_int_roundingfn_2): Likewise.
14446         (expand_builtin_strlen): Likewise for local "before_strlen".
14447         (expand_builtin_strncmp): Likewise for local "seq".
14448         (expand_builtin_signbit): Likewise for local "last".
14449         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
14450         from rtx to rtx_code_label *.
14451         (expand_stack_restore):  Strengthen local "prev" from rtx to
14452         rtx_insn *.
14453
14454 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14455
14456         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
14457         to rtx_insn *.
14458         (struct btr_def_s): Likewise.
14459         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
14460         const rtx_insn *.
14461         (add_btr_def): Likewise.
14462         (new_btr_user): Likewise.
14463         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
14464         rtx to rtx_insn *.
14465         (link_btr_uses): Likewise.
14466         (move_btr_def): Likewise for locals "insp", "old_insn",
14467         "new_insn".  Add checked cast to rtx_insn * for now on result of
14468         gen_move_insn.
14469         (can_move_up): Strengthen param "insn" from const_rtx to
14470         const rtx_insn *.
14471
14472 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14473
14474         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
14475         rtx_insn *.
14476         (get_uncond_jump_length): Likewise for locals "label", "jump".
14477         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
14478         "jump", "insn".
14479         (add_labels_and_missing_jumps): Likewise for local "new_jump".
14480         (fix_up_fall_thru_edges): Likewise for local "old_jump".
14481         (find_jump_block): Likewise for local "insn".
14482         (fix_crossing_conditional_branches): Likewise for locals
14483         "old_jump", "new_jump".
14484         (fix_crossing_unconditional_branches): Likewise for locals
14485         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
14486         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
14487
14488 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14489
14490         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
14491         rtx to rtx_insn *.
14492         (struct mem_insn): Likewise for field "insn".
14493         (reg_next_use): Strengthen from rtx * to rtx_insn **.
14494         (reg_next_inc_use): Likewise.
14495         (reg_next_def): Likewise.
14496         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
14497         from rtx to rtx_insn *.
14498         (move_insn_before): Likewise for param "next_insn" and local "insns".
14499         (attempt_change): Likewise for local "mov_insn".
14500         (try_merge): Likewise for param "last_insn".
14501         (get_next_ref): Likewise for return type and local "insn".
14502         Strengthen param "next_array" from rtx * to rtx_insn **.
14503         (parse_add_or_inc): Strengthen param "insn" from rtx to
14504         rtx_insn *.
14505         (find_inc): Likewise for locals "insn" and "other_insn" (three of
14506         the latter).
14507         (merge_in_block): Likewise for locals "insn", "curr",
14508         "other_insn".
14509         (pass_inc_dec::execute): Update allocations of the arrays to
14510         reflect the stronger types.
14511
14512 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14513
14514         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
14515         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
14516         from rtx to rtx_code_label *.
14517
14518 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14519
14520         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
14521         to rtx_insn *.
14522
14523 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
14524
14525         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
14526         generated a warning and prevented bootstrapping the compiler.
14527
14528 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14529
14530         * rtl.h (delete_related_insns): Strengthen return type from rtx to
14531         rtx_insn *.
14532
14533         * jump.c (delete_related_insns): Likewise, also for locals "next"
14534         and "prev".
14535
14536 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14537
14538         * genautomata.c (output_internal_insn_latency_func): When writing
14539         the function "internal_insn_latency" to insn-automata.c,
14540         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
14541         allowing the optional guard function of (define_bypass) clauses to
14542         expect a pair of rtx_insn *, rather than a pair of rtx.
14543         (output_insn_latency_func): When writing the function
14544         "insn_latency", add an "uncast_" prefix to params "insn" and
14545         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
14546         using checked casts from the params, thus enabling the above
14547         change to the generated "internal_insn_latency" function.
14548
14549 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
14550
14551         PR tree-optimization/62091
14552         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
14553         handle correctly arrays.
14554         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
14555         inheritance binfos.
14556         (record_known_type): Walk into inner type.
14557         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
14558         condition on no type changes.
14559
14560 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14561
14562         * genattrtab.c (write_attr_get): Within the generated get_attr_
14563         functions, rename param "insn" to "uncast_insn" and reintroduce
14564         "insn" as an local rtx_insn * using a checked cast, so that "insn"
14565         is an rtx_insn * within insn-attrtab.c
14566
14567 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14568
14569         * output.h (peephole): Strengthen return type from rtx to
14570         rtx_insn *.
14571         * rtl.h (delete_for_peephole): Likewise for both params.
14572         * genpeep.c (main): In generated "peephole" function, strengthen
14573         return type and local "insn" from rtx to rtx_insn *.  For now,
14574         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
14575         rtx_insn *, with a checked cast.
14576         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
14577         locals "insn", "next", "prev" from rtx to rtx_insn *.
14578
14579 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
14580
14581         PR tree-optimization/62112
14582         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
14583         * gimple-iterator.h (gsi_replace): Return bool.
14584         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
14585         moved from ref_may_alias_global_p.
14586         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
14587         New overloads.
14588         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
14589         (stmt_kills_ref_p_1): Rename...
14590         (stmt_kills_ref_p): ... to this.
14591         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
14592         stmt_kills_ref_p): Declare.
14593         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
14594         Move the self-assignment case...
14595         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
14596
14597 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14598
14599         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
14600
14601         * emit-rtl.c (try_split): Likewise, also for locals "before" and
14602         "after".  For now, don't strengthen param "trial", which requires
14603         adding checked casts when returning it.
14604
14605 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14606
14607         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
14608         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
14609         "var_location" hook from rtx to rtx_insn *.
14610         (debug_nothing_rtx): Delete in favor of...
14611         (debug_nothing_rtx_code_label): New prototype.
14612         (debug_nothing_rtx_rtx): Delete unused prototype.
14613         (debug_nothing_rtx_insn): New prototype.
14614
14615         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
14616         invoking debug_hooks->var_location (in two places, one in a NOTE
14617         case of a switch statement, the other guarded by a CALL_P
14618         conditional.  Add checked cast to rtx_code_label * when invoking
14619         debug_hooks->label (within CODE_LABEL case of switch statement).
14620
14621         * dbxout.c (dbx_debug_hooks): Update "label" hook from
14622         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
14623         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
14624         (xcoff_debug_hooks): Likewise.
14625         * debug.c (do_nothing_debug_hooks): Likewise.
14626         (debug_nothing_rtx): Delete in favor of...
14627         (debug_nothing_rtx_insn): New function.
14628         (debug_nothing_rtx_rtx): Delete unused function.
14629         (debug_nothing_rtx_code_label): New function.
14630         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
14631         debug_nothing_rtx to debug_nothing_rtx_code_label.
14632         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
14633         to rtx_insn *.
14634         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
14635         debug_nothing_rtx to debug_nothing_rtx_insn.
14636         (sdbout_label): Strengthen param "insn" from rtx to
14637         rtx_code_label *.
14638         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
14639         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
14640         "var_location" hook from debug_nothing_rtx to
14641         debug_nothing_rtx_insn.
14642
14643 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14644
14645         * recog.h (insn_output_fn): Update this function typedef to match
14646         the changes below to the generated output functions, strengthening
14647         the 2nd param from rtx to rtx_insn *.
14648
14649         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
14650         insn when invoking an output function, to match the new signature
14651         of insn_output_fn with a stronger second param.
14652
14653         * genconditions.c (write_header): In the generated code for
14654         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
14655         to match the other changes in this patch.
14656
14657         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
14658         the generated "gen_" functions from rtx to rtx_insn * within their
14659         implementations.
14660
14661         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
14662         the subfunctions within the generated "recog_", "split", "peephole2"
14663         function trees from rtx to rtx_insn *.  For now, the top-level
14664         generated functions ("recog", "split", "peephole2") continue to
14665         take a plain rtx for "insn", to avoid introducing dependencies on
14666         other patches.  Rename this 2nd param from "insn" to
14667         "uncast_insn", and reintroduce "insn" as a local variable of type
14668         rtx_insn *, initialized at the top of the generated function with
14669         a checked cast on "uncast_insn".
14670         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
14671         the generated "gen_" functions from rtx to rtx_insn * within their
14672         prototypes.
14673
14674         * genoutput.c (process_template): Strengthen the 2nd param within
14675         the generated "output_" functions "insn" from rtx to rtx_insn *.
14676
14677 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
14678
14679         * tree-profile.c (tree_profiling): Skip external functions
14680         when doing coverage instrumentation.
14681         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
14682
14683 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14684
14685         * config/rs6000/altivec.h (vec_cpsgn): New #define.
14686         (vec_mergee): Likewise.
14687         (vec_mergeo): Likewise.
14688         (vec_cntlz): Likewise.
14689         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
14690         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
14691         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
14692         VMRGEW, and VMRGOW.
14693         * doc/extend.texi: Document various forms of vec_cpsgn,
14694         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
14695         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
14696         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
14697         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
14698         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
14699
14700 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14701
14702         * config/rs6000/rs6000.c (context.h): New include.
14703         (tree-pass.h): Likewise.
14704         (make_pass_analyze_swaps): New decl.
14705         (rs6000_option_override): Register pass_analyze_swaps.
14706         (swap_web_entry): New subsclass of web_entry_base (df.h).
14707         (special_handling_values): New enum.
14708         (union_defs): New function.
14709         (union_uses): Likewise.
14710         (insn_is_load_p): Likewise.
14711         (insn_is_store_p): Likewise.
14712         (insn_is_swap_p): Likewise.
14713         (rtx_is_swappable_p): Likewise.
14714         (insn_is_swappable_p): Likewise.
14715         (chain_purpose): New enum.
14716         (chain_contains_only_swaps): New function.
14717         (mark_swaps_for_removal): Likewise.
14718         (swap_const_vector_halves): Likewise.
14719         (adjust_subreg_index): Likewise.
14720         (permute_load): Likewise.
14721         (permute_store): Likewise.
14722         (handle_special_swappables): Likewise.
14723         (replace_swap_with_copy): Likewise.
14724         (dump_swap_insn_table): Likewise.
14725         (rs6000_analyze_swaps): Likewise.
14726         (pass_data_analyze_swaps): New pass_data.
14727         (pass_analyze_swaps): New rtl_opt_pass.
14728         (make_pass_analyze_swaps): New function.
14729         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
14730
14731 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14732
14733         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
14734         type from rtx to rtx_insn *.
14735         (create_copy_of_insn_rtx): Likewise.
14736         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
14737         (create_copy_of_insn_rtx): Likewise, also for local "res".
14738
14739 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14740
14741         * rtl.h (find_first_parameter_load): Strengthen return type from
14742         rtx to rtx_insn *.
14743         * rtlanal.c (find_first_parameter_load): Strengthen return type
14744         from rtx to rtx_insn *.  Add checked cast for now, to postpone
14745         strengthening the params.
14746
14747 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14748
14749         PR fortran/44054
14750         * diagnostic.c: Set default caret.
14751         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
14752         line is needed.
14753         * diagnostic.h (struct diagnostic_context):
14754
14755 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14756
14757         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
14758         (sel_bb_head): Strengthen return type insn_t (currently just an
14759         rtx) to rtx_insn *.
14760         (sel_bb_end): Likewise.
14761
14762         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
14763         (sel_bb_head): Strengthen return type and local "head" from
14764         insn_t (currently just an rtx) to rtx_insn *.
14765         (sel_bb_end): Likewise for return type.
14766         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
14767         working with insn.
14768
14769 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14770
14771         * basic-block.h (get_last_bb_insn): Strengthen return type from
14772         rtx to rtx_insn *.
14773         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
14774         end".
14775
14776 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14777
14778         PR fortran/44054
14779         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
14780         to here ...
14781         (diagnostic_report_diagnostic): ... from here.
14782         * toplev.c (general_init): Move code to c-family.
14783
14784 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14785
14786         * df.h (web_entry_base): Replace existing struct web_entry with a
14787         new class web_entry_base with only the predecessor member.
14788         (unionfind_root): Remove declaration and move to class member.
14789         (unionfind_union): Remove declaration and move to friend
14790         function.
14791         (union_defs): Remove declaration.
14792         * web.c (web_entry_base::unionfind_root): Modify to be member
14793         function and adjust accessors.
14794         (unionfind_union): Modify to be friend function and adjust
14795         accessors.
14796         (web_entry): New subclass of web_entry_base containing the reg
14797         member.
14798         (union_match_dups): Modify for struct -> class changes.
14799         (union_defs): Likewise.
14800         (entry_register): Likewise.
14801         (pass_web::execute): Likewise.
14802
14803 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
14804
14805         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
14806         builtin define __VEC_ELEMENT_REG_ORDER__.
14807
14808 2014-08-20  Martin Jambor  <mjambor@suse.cz>
14809             Wei Mi  <wmi@google.com>
14810
14811         PR ipa/60449
14812         PR middle-end/61776
14813         * tree-ssa-operands.c (update_stmt_operands): Remove
14814         MODIFIED_NORETURN_CALLS.
14815         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
14816         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
14817         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
14818         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
14819         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
14820         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
14821         (gimple_call_set_ctrl_altering): New func.
14822         (gimple_call_ctrl_altering_p): Ditto.
14823         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
14824         (make_blocks): Use gimple_call_initialize_ctrl_altering.
14825         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
14826         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
14827         remove MODIFIED_NORETURN_CALLS.
14828
14829 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
14830
14831         * coverage.c (coverage_compute_profile_id): Return non-0;
14832         also handle symbols with unique name.
14833         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
14834
14835 2014-08-20  Steve Ellcey  <sellcey@mips.com>
14836
14837         PR middle-end/49191
14838         * doc/sourcebuild.texi (non_strict_align): New.
14839
14840 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
14841
14842         * cgraphunit.c (ipa_passes, compile): Reshedule
14843         symtab_remove_unreachable_nodes passes; update comments.
14844         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
14845         TODO_remove_functions before the pass; the functions ought to be
14846         already removed.
14847         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
14848         TODO_remove_functions.
14849         * passes.c (pass_data_early_local_passes): Do not schedule function
14850         removal.
14851         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
14852
14853 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14854
14855         PR c/59304
14856         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
14857         before setting the option.
14858         * diagnostic.c (diagnostic_classify_diagnostic): Record
14859         command-line status.
14860
14861 2014-08-20  Richard Biener  <rguenther@suse.de>
14862
14863         PR lto/62190
14864         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
14865         to build uint{16,32,64}_type_node.
14866
14867 2014-08-20  Terry Guo  <terry.guo@arm.com>
14868
14869         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
14870         with immediate_operand.
14871
14872 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
14873
14874         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
14875         "insn" from an as_a to a safe_as_a, for the case when "insn" is
14876         NULL.
14877
14878 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14879
14880         PR preprocessor/51303
14881         * incpath.c (remove_duplicates): Use cpp_warning.
14882
14883 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14884
14885         PR c/60975
14886         PR c/53063
14887         * doc/options.texi (CPP): Document it.
14888         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
14889         * optc-gen.awk: Handle CPP.
14890         * opth-gen.awk: Likewise.
14891
14892 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14893
14894         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
14895         rtx_insn *.
14896         (duplicate_insn_chain): Likewise.
14897         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
14898         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
14899         checked cast for now (until we can strengthen the params in the
14900         same way).
14901         (duplicate_insn_chain): Likewise.
14902
14903 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14904
14905         * rtl.h (next_cc0_user): Strengthen return type from rtx to
14906         rtx_insn *.
14907         (prev_cc0_setter): Likewise.
14908
14909         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
14910         rtx_insn *, adding checked casts for now as necessary.
14911         (prev_cc0_setter): Likewise.
14912
14913 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14914
14915         * expr.h (emit_move_insn): Strengthen return type from rtx to
14916         rtx_insn *.
14917         (emit_move_insn_1): Likewise.
14918         (emit_move_complex_push): Likewise.
14919         (emit_move_complex_parts): Likewise.
14920
14921         * expr.c (emit_move_via_integer): Strengthen return type from rtx
14922         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
14923         with insns.
14924         (emit_move_complex_push): Strengthen return type from rtx to
14925         rtx_insn *.
14926         (emit_move_complex): Likewise, also for local "ret".
14927         (emit_move_ccmode): Likewise.
14928         (emit_move_multi_word): Likewise for return type and locals
14929         "last_insn", "seq".
14930         (emit_move_insn_1): Likewise for return type and locals "result",
14931         "ret".
14932         (emit_move_insn): Likewise for return type and local "last_insn".
14933         (compress_float_constant): Likewise.
14934
14935 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14936
14937         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
14938         from rtx to rtx_insn *.
14939
14940         * rtl.h (emit_insn_before): Likewise.
14941         (emit_insn_before_noloc): Likewise.
14942         (emit_insn_before_setloc): Likewise.
14943         (emit_jump_insn_before): Likewise.
14944         (emit_jump_insn_before_noloc): Likewise.
14945         (emit_jump_insn_before_setloc): Likewise.
14946         (emit_call_insn_before): Likewise.
14947         (emit_call_insn_before_noloc): Likewise.
14948         (emit_call_insn_before_setloc): Likewise.
14949         (emit_debug_insn_before): Likewise.
14950         (emit_debug_insn_before_noloc): Likewise.
14951         (emit_debug_insn_before_setloc): Likewise.
14952         (emit_label_before): Likewise.
14953         (emit_insn_after): Likewise.
14954         (emit_insn_after_noloc): Likewise.
14955         (emit_insn_after_setloc): Likewise.
14956         (emit_jump_insn_after): Likewise.
14957         (emit_jump_insn_after_noloc): Likewise.
14958         (emit_jump_insn_after_setloc): Likewise.
14959         (emit_call_insn_after): Likewise.
14960         (emit_call_insn_after_noloc): Likewise.
14961         (emit_call_insn_after_setloc): Likewise.
14962         (emit_debug_insn_after): Likewise.
14963         (emit_debug_insn_after_noloc): Likewise.
14964         (emit_debug_insn_after_setloc): Likewise.
14965         (emit_label_after): Likewise.
14966         (emit_insn): Likewise.
14967         (emit_debug_insn): Likewise.
14968         (emit_jump_insn): Likewise.
14969         (emit_call_insn): Likewise.
14970         (emit_label): Likewise.
14971         (gen_clobber): Likewise.
14972         (emit_clobber): Likewise.
14973         (gen_use): Likewise.
14974         (emit_use): Likewise.
14975         (emit): Likewise.
14976
14977         (emit_barrier_before): Strengthen return type from rtx to
14978         rtx_barrier *.
14979         (emit_barrier_after): Likewise.
14980         (emit_barrier): Likewise.
14981
14982         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
14983         from rtx to rtx_insn *.  Add checked casts for now when converting
14984         "last" from rtx to rtx_insn *.
14985         (emit_insn_before_noloc): Likewise for return type.
14986         (emit_jump_insn_before_noloc): Likewise.
14987         (emit_call_insn_before_noloc): Likewise.
14988         (emit_debug_insn_before_noloc): Likewise.
14989         (emit_barrier_before): Strengthen return type and local "insn"
14990         from rtx to rtx_barrier *.
14991         (emit_label_before): Strengthen return type from rtx to
14992         rtx_insn *.  Add checked cast for now when returning param
14993         (emit_pattern_after_noloc): Strengthen return type from rtx to
14994         rtx_insn *.  Add checked casts for now when converting "last" from
14995         rtx to rtx_insn *.
14996         (emit_insn_after_noloc): Strengthen return type from rtx to
14997         rtx_insn *.
14998         (emit_jump_insn_after_noloc): Likewise.
14999         (emit_call_insn_after_noloc): Likewise.
15000         (emit_debug_insn_after_noloc): Likewise.
15001         (emit_barrier_after): Strengthen return type from rtx to
15002         rtx_barrier *.
15003         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
15004         Add checked cast for now when converting "label" from rtx to
15005         rtx_insn *.
15006         (emit_pattern_after_setloc): Strengthen return type from rtx to
15007         rtx_insn *.  Add checked casts for now when converting "last" from
15008         rtx to rtx_insn *.
15009         (emit_pattern_after): Strengthen return type from rtx to
15010         rtx_insn *.
15011         (emit_insn_after_setloc): Likewise.
15012         (emit_insn_after): Likewise.
15013         (emit_jump_insn_after_setloc): Likewise.
15014         (emit_jump_insn_after): Likewise.
15015         (emit_call_insn_after_setloc): Likewise.
15016         (emit_call_insn_after): Likewise.
15017         (emit_debug_insn_after_setloc): Likewise.
15018         (emit_debug_insn_after): Likewise.
15019         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
15020         when converting "last" from rtx to rtx_insn *.
15021         (emit_pattern_before): Strengthen return type from rtx to
15022         rtx_insn *.
15023         (emit_insn_before_setloc): Likewise.
15024         (emit_insn_before): Likewise.
15025         (emit_jump_insn_before_setloc): Likewise.
15026         (emit_jump_insn_before): Likewise.
15027         (emit_call_insn_before_setloc): Likewise.
15028         (emit_call_insn_before): Likewise.
15029         (emit_debug_insn_before_setloc): Likewise.
15030         (emit_debug_insn_before): Likewise.
15031         (emit_insn): Strengthen return type and locals "last", "insn",
15032         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
15033         within cases where we know we have an insn.
15034         (emit_debug_insn): Likewise.
15035         (emit_jump_insn): Likewise.
15036         (emit_call_insn): Strengthen return type and local "insn" from rtx
15037         to rtx_insn *.
15038         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
15039         a checked cast to rtx_insn * for now on "label".
15040         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
15041         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
15042         (emit_use): Likewise.
15043         (gen_use): Likewise, also for local "seq".
15044         (emit): Likewise for return type and local "insn".
15045         (rtx_insn): Likewise for return type and local "new_rtx".
15046
15047         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
15048         from rtx to rtx_barrier *.
15049
15050         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
15051         changed return type from rtx to rtx_insn *, we must update
15052         "emit_fn" type, and this in turn means updating...
15053         (frame_insn): ...this.  Strengthen return type from rtx to
15054         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
15055
15056 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15057
15058         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
15059         rtx to rtx_jump_table_data *.  Also for local.
15060         * rtl.h (emit_jump_table_data): Likewise.
15061
15062 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15063
15064         * basic-block.h (create_basic_block_structure): Strengthen third
15065         param "bb_note" from rtx to rtx_note *.
15066         * rtl.h (emit_note_before): Strengthen return type from rtx to
15067         rtx_note *.
15068         (emit_note_after): Likewise.
15069         (emit_note): Likewise.
15070         (emit_note_copy): Likewise.  Also, strengthen param similarly.
15071         * function.h (struct rtl_data): Strengthen field
15072         "x_stack_check_probe_note" from rtx to rtx_note *.
15073
15074         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
15075         from rtx to rtx_note *.
15076         * cfgrtl.c (create_basic_block_structure): Strengthen third param
15077         "bb_note" from rtx to rtx_note *.
15078         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
15079         when calling emit_note_copy.
15080         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
15081         rtx_note *.
15082         (emit_note_after): Likewise.
15083         (emit_note_before): Likewise.
15084         (emit_note_copy): Likewise.  Also, strengthen param similarly.
15085         (emit_note): Likewise.
15086         * except.c (emit_note_eh_region_end): Likewise for return type.
15087         Strengthen local "next" from rtx to rtx_insn *.
15088         (convert_to_eh_region_ranges): Strengthen local "note"
15089         from rtx to rtx_note *.
15090         * final.c (change_scope): Likewise.
15091         (reemit_insn_block_notes): Likewise, for both locals named "note".
15092         Also, strengthen local "insn" from rtx to rtx_insn *.
15093         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
15094         rtx to rtx_note *.
15095         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
15096         strengthen local "seq" from rtx to rtx_insn *.
15097         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
15098         to rtx_note *.
15099         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
15100         vec<rtx_note *>.
15101         (get_bb_note_from_pool): Strengthen return type from rtx to
15102         rtx_note *.
15103         (sel_create_basic_block): Strengthen local "new_bb_note" from
15104         insn_t to rtx_note *.
15105         * var-tracking.c (emit_note_insn_var_location): Strengthen local
15106         "note" from rtx to rtx_note *.
15107         (emit_notes_in_bb): Likewise.
15108
15109 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15110
15111         * function.h (struct rtl_data): Strengthen field
15112         "x_parm_birth_insn" from rtx to rtx_insn *.
15113         * function.c (struct assign_parm_data_all): Strengthen fields
15114         "first_conversion_insn" and "last_conversion_insn" from rtx to
15115         rtx_insn *.
15116
15117 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15118
15119         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
15120         to rtx_insn *; also for local "var_end_seq".
15121         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
15122         (maybe_cleanup_end_of_block): Likewise for param "last" and local
15123         "insn".
15124         (expand_gimple_cond): Likewise for locals "last2" and "last".
15125         (mark_transaction_restart_calls): Likewise for local "insn".
15126         (expand_gimple_stmt): Likewise for return type and locals "last"
15127         and "insn".
15128         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
15129         (avoid_complex_debug_insns): Likewise for param "insn".
15130         (expand_debug_locations): Likewise for locals "insn", "last",
15131         "prev_insn" and "insn2".
15132         (expand_gimple_basic_block): Likewise for local "last".
15133         (construct_exit_block): Likewise for locals "head", "end",
15134         "orig_end".
15135         (pass_expand::execute): Likewise for locals "var_seq",
15136         "var_ret_seq", "next".
15137
15138 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15139
15140         * asan.h (asan_emit_stack_protection): Strengthen return type from
15141         rtx to rtx_insn *.
15142         * asan.c (asan_emit_stack_protection): Likewise.  Add local
15143         "insns" to hold the return value.
15144
15145 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15146
15147         * basic-block.h (bb_note): Strengthen return type from rtx to
15148         rtx_note *.
15149         * sched-int.h (bb_note): Likewise.
15150         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
15151
15152 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15153
15154         * rtl.h (make_insn_raw): Strengthen return type from rtx to
15155         rtx_insn *.
15156
15157         * emit-rtl.c (make_insn_raw): Strengthen return type and local
15158         "insn" from rtx to rtx_insn *.
15159         (make_debug_insn_raw): Strengthen return type from rtx to
15160         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
15161         (make_jump_insn_raw):  Strengthen return type from rtx to
15162         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
15163         (make_call_insn_raw):  Strengthen return type from rtx to
15164         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
15165         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
15166         callback from rtx to rtx_insn *; likewise for local "insn" and
15167         "next", adding a checked cast to rtx_insn in the relevant cases of
15168         the switch statement.
15169         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
15170         callback from rtx to rtx_insn *.
15171         (emit_pattern_after_setloc): Likewise.
15172         (emit_pattern_after): Likewise.
15173         (emit_pattern_before_setloc): Likewise.
15174         (emit_pattern_before): Likewise.
15175
15176 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15177
15178         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
15179         rtx_call_insn *.
15180         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
15181         accepting an rtx_insn *.
15182         (last_call_insn): Strengthen return type from rtx to
15183         rtx_call_insn *.
15184
15185 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15186
15187         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
15188         "insns" from rtx to rtx_insn *.
15189         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
15190         locals "insn" and "prev".
15191
15192 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15193
15194         * rtl.h (tablejump_p): Strengthen third param from rtx * to
15195         rtx_jump_table_data **.
15196
15197         * cfgbuild.c (make_edges): Introduce local "table", using it in
15198         place of "tmp" for jump table data.
15199         (find_bb_boundaries): Strengthen local "table" from rtx to
15200         rtx_jump_table_data *.
15201         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
15202         (outgoing_edges_match): Likewise for locals "table1" and "table2".
15203         (try_crossjump_to_edge): Likewise.
15204         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
15205         "table".
15206         (patch_jump_insn): Introduce local "table", using it in place of
15207         "tmp" for jump table data.
15208         (force_nonfallthru_and_redirect): Introduce local "table", so that
15209         call to tablejump_p can receive an rtx_jump_table_data **.  Update
15210         logic around the call to overwrite "note" appropriately if
15211         tablejump_p returns non-zero.
15212         (get_last_bb_insn): Introduce local "table", using it in place of
15213         "tmp" for jump table data.
15214         * dwarf2cfi.c (create_trace_edges): Likewise.
15215
15216         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
15217         from rtx to rtx_jump_table_data *.
15218         (create_fix_barrier): Strengthen local "tmp" from rtx to
15219         rtx_jump_table_data *.
15220         (arm_reorg): Likewise for local "table".
15221
15222         * config/s390/s390.c (s390_chunkify_start): Likewise.
15223
15224         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
15225
15226         * jump.c (delete_related_insns): Strengthen local "lab_next" from
15227         rtx to rtx_jump_table_data *.
15228
15229         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
15230         rtx_jump_table_data **.  Add a checked cast when writing through
15231         the pointer: we know there that local "table" is non-NULL and that
15232         JUMP_TABLE_DATA_P (table) holds.
15233         (label_is_jump_target_p): Introduce local "table", using it in
15234         place of "tmp" for jump table data.
15235
15236 2014-08-19  Marek Polacek  <polacek@redhat.com>
15237
15238         PR c++/62153
15239         * doc/invoke.texi: Document -Wbool-compare.
15240
15241 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15242
15243         * rtl.h (entry_of_function): Strengthen return type from rtx to
15244         rtx_insn *.
15245         * cfgrtl.c (entry_of_function): Likewise.
15246
15247 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15248
15249         * emit-rtl.h (get_insns): Strengthen return type from rtx to
15250         rtx_insn *, adding a checked cast for now.
15251         (get_last_insn): Likewise.
15252
15253 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15254
15255         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
15256         rtx_code_label *.
15257
15258         * emit-rtl.c (gen_label_rtx): Likewise.
15259
15260 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15261
15262         * rtl.h (previous_insn): Strengthen return type from rtx to
15263         rtx_insn *.
15264         (next_insn): Likewise.
15265         (prev_nonnote_insn): Likewise.
15266         (prev_nonnote_insn_bb): Likewise.
15267         (next_nonnote_insn): Likewise.
15268         (next_nonnote_insn_bb): Likewise.
15269         (prev_nondebug_insn): Likewise.
15270         (next_nondebug_insn): Likewise.
15271         (prev_nonnote_nondebug_insn): Likewise.
15272         (next_nonnote_nondebug_insn): Likewise.
15273         (prev_real_insn): Likewise.
15274         (next_real_insn): Likewise.
15275         (prev_active_insn): Likewise.
15276         (next_active_insn): Likewise.
15277
15278         * emit-rtl.c (next_insn): Strengthen return type from rtx to
15279         rtx_insn *, adding a checked cast.
15280         (previous_insn): Likewise.
15281         (next_nonnote_insn): Likewise.
15282         (next_nonnote_insn_bb): Likewise.
15283         (prev_nonnote_insn): Likewise.
15284         (prev_nonnote_insn_bb): Likewise.
15285         (next_nondebug_insn): Likewise.
15286         (prev_nondebug_insn): Likewise.
15287         (next_nonnote_nondebug_insn): Likewise.
15288         (prev_nonnote_nondebug_insn): Likewise.
15289         (next_real_insn): Likewise.
15290         (prev_real_insn): Likewise.
15291         (next_active_insn): Likewise.
15292         (prev_active_insn): Likewise.
15293
15294         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
15295         param "stepfunc" so that it returns an rtx_insn * rather than an
15296         rtx, to track the change to prev_nonnote_insn_bb, which is the
15297         only function this is called with.
15298         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
15299
15300 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
15301
15302         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
15303         assert.
15304
15305 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15306
15307         * coretypes.h (class rtx_debug_insn): Add forward declaration.
15308         (class rtx_nonjump_insn): Likewise.
15309         (class rtx_jump_insn): Likewise.
15310         (class rtx_call_insn): Likewise.
15311         (class rtx_jump_table_data): Likewise.
15312         (class rtx_barrier): Likewise.
15313         (class rtx_code_label): Likewise.
15314         (class rtx_note): Likewise.
15315
15316         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
15317         adding the invariant DEBUG_INSN_P (X).
15318         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
15319         the invariant NONJUMP_INSN_P (X).
15320         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
15321         the invariant JUMP_P (X).
15322         (class rtx_call_insn): New, a subclass of rtx_insn, adding
15323         the invariant CALL_P (X).
15324         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
15325         invariant JUMP_TABLE_DATA_P (X).
15326         (class rtx_barrier): New, a subclass of rtx_insn, adding the
15327         invariant BARRIER_P (X).
15328         (class rtx_code_label): New, a subclass of rtx_insn, adding
15329         the invariant LABEL_P (X).
15330         (class rtx_note): New, a subclass of rtx_insn, adding
15331         the invariant NOTE_P(X).
15332         (is_a_helper <rtx_debug_insn *>::test): New.
15333         (is_a_helper <rtx_nonjump_insn *>::test): New.
15334         (is_a_helper <rtx_jump_insn *>::test): New.
15335         (is_a_helper <rtx_call_insn *>::test): New.
15336         (is_a_helper <rtx_jump_table_data *>::test): New functions,
15337         overloaded for both rtx and rtx_insn *.
15338         (is_a_helper <rtx_barrier *>::test): New.
15339         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
15340         for both rtx and rtx_insn *.
15341         (is_a_helper <rtx_note *>::test): New.
15342
15343 2014-08-19  Marek Polacek  <polacek@redhat.com>
15344
15345         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
15346         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
15347         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
15348         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
15349
15350 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15351
15352         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
15353         rtx_insn *.  To help with transition, for now, convert from an
15354         access macro into a pair of functions: BND_TO, returning an
15355         rtx_insn *, and...
15356         (SET_BND_TO): New function, for use where BND_TO is used as an
15357         lvalue.
15358
15359         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
15360         SET_BND_TO.
15361         (BND_TO): New function, adding a checked cast.
15362         (SET_BND_TO): New function.
15363
15364         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
15365         SET_BND_TO.
15366         (compute_av_set_on_boundaries): Likewise.
15367
15368 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
15369
15370         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
15371         destination if it is used in source.
15372         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
15373         (*popcount<mode>2_falsedep_1): Likewise.
15374
15375 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
15376
15377         PR other/62168
15378         * configure.ac: Set install_gold_as_default to no first.
15379         * configure: Regenerated.
15380
15381 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15382
15383         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
15384         "note_list" field will eventually be an rtx_insn *.  To help with
15385         transition, for now, convert from an access macro into a pair of
15386         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
15387         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
15388         used as an lvalue.
15389
15390         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
15391         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
15392
15393         * sel-sched-ir.c (init_bb): Likewise.
15394         (sel_restore_notes): Likewise.
15395         (move_bb_info): Likewise.
15396         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
15397         (SET_BB_NOTE_LIST): New function.
15398
15399 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15400
15401         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
15402         field will eventually be an rtx_insn *.  To help with transition,
15403         for now, convert from an access macro into a pair of functions:
15404         VINSN_INSN_RTX, returning an rtx_insn *, and...
15405         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
15406         is used as an lvalue.
15407
15408         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
15409         SET_VINSN_INSN_RTX where it's used as an lvalue.
15410         (VINSN_INSN_RTX): New function.
15411         (SET_VINSN_INSN_RTX): New function.
15412
15413 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15414
15415         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
15416         eventually be rtx_insn *, but to help with transition, for now,
15417         convert from an access macro into a pair of functions: DEP_PRO
15418         returning an rtx_insn * and...
15419         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
15420         lvalue, returning an rtx&.
15421         (DEP_CON): Analogous changes to DEP_PRO above.
15422         (SET_DEP_CON): Likewise.
15423
15424         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
15425         an lvalue to SET_DEP_CON.
15426         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
15427         (sd_copy_back_deps): Likewise for DEP_CON.
15428         (DEP_PRO): New function, adding a checked cast for now.
15429         (DEP_CON): Likewise.
15430         (SET_DEP_PRO): New function.
15431         (SET_DEP_CON): Likewise.
15432
15433 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
15434
15435         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
15436         (extra_options): Add i386/cygwin.opt.
15437         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
15438         (CPP_SPEC): Accept -pthread.
15439         (LINK_SPEC): Ditto.
15440         (GOMP_SELF_SPECS): Update comment.
15441         * config/i386/cygwin.opt: New file for -pthread flag.
15442
15443 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15444
15445         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
15446         * df.h (DF_REF_INSN): Convert from a macro to a function, so
15447         that we can return an rtx_insn *.
15448
15449 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
15450
15451         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
15452         when building executables, not DLLs.  Add --large-address-aware
15453         under the same conditions.
15454         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
15455         when building executables, not DLLs.  Add --large-address-aware
15456         under the same conditions when using -m32.
15457
15458         * config/i386/cygwin-stdint.h: Throughout, make type
15459         definitions dependent on target architecture, not host.
15460
15461 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15462
15463         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
15464         the return type from rtx to rtx_insn *,  which will enable various
15465         conversions in followup patches.  For now this is is done by a
15466         checked cast.
15467         (NEXT_INSN): Likewise.
15468         (SET_PREV_INSN): Convert to an inline function.  This is intended
15469         for use as an lvalue, and so returns an rtx& to allow in-place
15470         modification.
15471         (SET_NEXT_INSN): Likewise.
15472
15473 2014-07-08  Mark Wielaard  <mjw@redhat.com>
15474
15475         PR debug/59051
15476         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
15477
15478 2014-08-19  Marek Polacek  <polacek@redhat.com>
15479
15480         PR c/61271
15481         * cgraphunit.c (handle_alias_pairs): Fix condition.
15482
15483 2014-08-19  Richard Biener  <rguenther@suse.de>
15484
15485         * gimple-fold.c (fold_gimple_assign): Properly build a
15486         null-pointer constant when devirtualizing addresses.
15487
15488 2014-07-07  Mark Wielaard  <mjw@redhat.com>
15489
15490         * dwarf2out.c (decl_quals): New function.
15491         (modified_type_die): Take one cv_quals argument instead of two,
15492         one for const and one for volatile.
15493         (add_type_attribute): Likewise.
15494         (generic_parameter_die): Call add_type_attribute with one modifier
15495         argument.
15496         (base_type_for_mode): Likewise.
15497         (add_bounds_info): Likewise.
15498         (add_subscript_info): Likewise.
15499         (gen_array_type_die): Likewise.
15500         (gen_descr_array_type_die): Likewise.
15501         (gen_entry_point_die): Likewise.
15502         (gen_enumeration_type_die): Likewise.
15503         (gen_formal_parameter_die): Likewise.
15504         (gen_subprogram_die): Likewise.
15505         (gen_variable_die): Likewise.
15506         (gen_const_die): Likewise.
15507         (gen_field_die): Likewise.
15508         (gen_pointer_type_die): Likewise.
15509         (gen_reference_type_die): Likewise.
15510         (gen_ptr_to_mbr_type_die): Likewise.
15511         (gen_inheritance_die): Likewise.
15512         (gen_subroutine_type_die): Likewise.
15513         (gen_typedef_die): Likewise.
15514         (force_type_die): Likewise.
15515
15516 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15517
15518         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
15519         if unset.
15520         * configure: Regenerate.
15521
15522 2014-08-19  Richard Biener  <rguenther@suse.de>
15523
15524         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
15525         DECL_EXTERNALs in BLOCKs as non-references.
15526         * tree-streamer-out.c (streamer_write_chain): Likewise.
15527
15528 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15529             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15530             Anna Tikhonova  <anna.tikhonova@intel.com>
15531             Ilya Tocar  <ilya.tocar@intel.com>
15532             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15533             Ilya Verbin  <ilya.verbin@intel.com>
15534             Kirill Yukhin  <kirill.yukhin@intel.com>
15535             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15536
15537         * config/i386/sse.md
15538         (define_mode_iterator VI48_AVX512F): Delete.
15539         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
15540         (define_mode_iterator VI2_AVX512VL): Ditto.
15541         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
15542         Delete.
15543         (define_insn
15544         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
15545         New.
15546         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
15547         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
15548         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
15549         with VI48_AVX512F_AVX512VL): New.
15550         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
15551         with VI2_AVX512VL): Ditto.
15552
15553 2014-08-19  Marek Polacek  <polacek@redhat.com>
15554
15555         * doc/invoke.texi: Document -Wc99-c11-compat.
15556
15557 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15558
15559         * rtl.h (PREV_INSN): Split macro in two: the existing one,
15560         for rvalues, and...
15561         (SET_PREV_INSN): New macro, for use as an lvalue.
15562         (NEXT_INSN, SET_NEXT_INSN): Likewise.
15563
15564         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
15565         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
15566         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
15567         (fixup_abnormal_edges): Likewise.
15568         (unlink_insn_chain): Likewise.
15569         (fixup_reorder_chain): Likewise.
15570         (cfg_layout_delete_block): Likewise.
15571         (cfg_layout_merge_blocks): Likewise.
15572         * combine.c (update_cfg_for_uncondjump): Likewise.
15573         * emit-rtl.c (link_insn_into_chain): Likewise.
15574         (remove_insn): Likewise.
15575         (delete_insns_since): Likewise.
15576         (reorder_insns_nobb): Likewise.
15577         (emit_insn_after_1): Likewise.
15578         * final.c (rest_of_clean_state): Likewise.
15579         (final_scan_insn): Likewise.
15580         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
15581         * haifa-sched.c (concat_note_lists): Likewise.
15582         (remove_notes): Likewise.
15583         (restore_other_notes): Likewise.
15584         (move_insn): Likewise.
15585         (unlink_bb_notes): Likewise.
15586         (restore_bb_notes): Likewise.
15587         * jump.c (delete_for_peephole): Likewise.
15588         * optabs.c (emit_libcall_block_1): Likewise.
15589         * reorg.c (emit_delay_sequence): Likewise.
15590         (fill_simple_delay_slots): Likewise.
15591         * sel-sched-ir.c (sel_move_insn): Likewise.
15592         (sel_remove_insn): Likewise.
15593         (get_bb_note_from_pool): Likewise.
15594         * sel-sched.c (move_nop_to_previous_block): Likewise.
15595
15596         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
15597         * config/c6x/c6x.c (gen_one_bundle): Likewise.
15598         (c6x_gen_bundles): Likewise.
15599         (hwloop_optimize): Likewise.
15600         * config/frv/frv.c (frv_function_prologue): Likewise.
15601         (frv_register_nop): Likewise.
15602         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
15603         (ia64_reorg): Likewise.
15604         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
15605         (mep_make_bundle): Likewise.
15606         (mep_bundle_insns): Likewise.
15607         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
15608         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
15609         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
15610
15611 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15612
15613         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
15614         return type from rtx to rtx_insn *.
15615         (BB_END): Likewise.
15616         (BB_HEADER): Likewise.
15617         (BB_FOOTER): Likewise.
15618         (SET_BB_HEAD): Convert to a function.
15619         (SET_BB_END): Likewise.
15620         (SET_BB_HEADER): Likewise.
15621         (SET_BB_FOOTER): Likewise.
15622
15623         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
15624         Strengthen the return type from rtx to rtx_insn *.  For now, this
15625         is done by adding a checked cast, but this will eventually
15626         become a field lookup.
15627         (BB_END): Likewise.
15628         (BB_HEADER): Likewise.
15629         (BB_FOOTER): Likewise.
15630         (SET_BB_HEAD): New function, from macro of same name.  This is
15631         intended for use as an lvalue, and so returns an rtx& to allow
15632         in-place modification.
15633         (SET_BB_END): Likewise.
15634         (SET_BB_HEADER): Likewise.
15635         (SET_BB_FOOTER): Likewise.
15636
15637 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15638
15639         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
15640         for rvalues, and...
15641         (SET_BB_HEAD): New macro, for use as a lvalue.
15642         (BB_END, SET_BB_END): Likewise.
15643         (BB_HEADER, SET_BB_HEADER): Likewise.
15644         (BB_FOOTER, SET_BB_FOOTER): Likewise.
15645
15646         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
15647         of BB_* macros into SET_BB_* macros.
15648         (fix_crossing_unconditional_branches): Likewise.
15649         * caller-save.c (save_call_clobbered_regs): Likewise.
15650         (insert_one_insn): Likewise.
15651         * cfgbuild.c (find_bb_boundaries): Likewise.
15652         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
15653         (outgoing_edges_match): Likewise.
15654         (try_optimize_cfg): Likewise.
15655         * cfgexpand.c (expand_gimple_cond): Likewise.
15656         (expand_gimple_tailcall): Likewise.
15657         (expand_gimple_basic_block): Likewise.
15658         (construct_exit_block): Likewise.
15659         * cfgrtl.c (delete_insn): Likewise.
15660         (create_basic_block_structure): Likewise.
15661         (rtl_delete_block): Likewise.
15662         (rtl_split_block): Likewise.
15663         (emit_nop_for_unique_locus_between): Likewise.
15664         (rtl_merge_blocks): Likewise.
15665         (block_label): Likewise.
15666         (try_redirect_by_replacing_jump): Likewise.
15667         (emit_barrier_after_bb): Likewise.
15668         (fixup_abnormal_edges): Likewise.
15669         (record_effective_endpoints): Likewise.
15670         (relink_block_chain): Likewise.
15671         (fixup_reorder_chain): Likewise.
15672         (fixup_fallthru_exit_predecessor): Likewise.
15673         (cfg_layout_duplicate_bb): Likewise.
15674         (cfg_layout_split_block): Likewise.
15675         (cfg_layout_delete_block): Likewise.
15676         (cfg_layout_merge_blocks): Likewise.
15677         * combine.c (update_cfg_for_uncondjump): Likewise.
15678         * emit-rtl.c (add_insn_after): Likewise.
15679         (remove_insn): Likewise.
15680         (reorder_insns): Likewise.
15681         (emit_insn_after_1): Likewise.
15682         * haifa-sched.c (get_ebb_head_tail): Likewise.
15683         (restore_other_notes): Likewise.
15684         (move_insn): Likewise.
15685         (sched_extend_bb): Likewise.
15686         (fix_jump_move): Likewise.
15687         * ifcvt.c (noce_process_if_block): Likewise.
15688         (dead_or_predicable): Likewise.
15689         * ira.c (update_equiv_regs): Likewise.
15690         * reg-stack.c (change_stack): Likewise.
15691         * sel-sched-ir.c (sel_move_insn): Likewise.
15692         * sel-sched.c (move_nop_to_previous_block): Likewise.
15693
15694         * config/c6x/c6x.c (hwloop_optimize): Likewise.
15695         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
15696
15697 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15698
15699         * rtl.h (for_each_rtx_in_insn): New function.
15700         * rtlanal.c (for_each_rtx_in_insn): Likewise.
15701
15702 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15703
15704         * coretypes.h (class rtx_insn): Add forward declaration.
15705
15706         * rtl.h: Include is-a.h.
15707         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
15708         workaround to ensure gengtype knows inheritance is occurring,
15709         whilst continuing to use the pre-existing special-casing for
15710         rtx_def.
15711         (class rtx_insn): New subclass of rtx_def, adding the
15712         invariant that we're dealing with something we can sanely use
15713         INSN_UID, NEXT_INSN, PREV_INSN on.
15714         (is_a_helper <rtx_insn *>::test): New.
15715         (is_a_helper <const rtx_insn *>::test): New.
15716
15717 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15718
15719         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
15720
15721 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
15722
15723         * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
15724         comdats as extern.
15725
15726 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
15727
15728         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
15729         to BUILT_IN_UNREACHABLE.
15730
15731 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
15732
15733         PR target/62011
15734         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
15735         New tune flag.
15736         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
15737         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
15738         (ffs<mode>2): Do not expand with tzcnt for
15739         TARGET_AVOID_FALSE_DEP_FOR_BMI.
15740         (ffssi2_no_cmove): Ditto.
15741         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
15742         (ctz<mode>2): New expander.
15743         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
15744         (*ctz<mode>2_falsedep): New insn.
15745         (*ctz<mode>2): Rename from ctz<mode>2.
15746         (clz<mode>2_lzcnt): New expander.
15747         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
15748         (*clz<mode>2_lzcnt_falsedep): New insn.
15749         (*clz<mode>2): Rename from ctz<mode>2.
15750         (popcount<mode>2): New expander.
15751         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
15752         (*popcount<mode>2_falsedep): New insn.
15753         (*popcount<mode>2): Rename from ctz<mode>2.
15754         (*popcount<mode>2_cmp): Remove.
15755         (*popcountsi2_cmp_zext): Ditto.
15756
15757 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
15758
15759         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
15760         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
15761         * config/microblaze/microblaze.h
15762         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
15763
15764 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
15765
15766         PR other/62168
15767         * configure.ac: Set install_gold_as_default to no for
15768         --enable-gold=no.
15769         * configure: Regenerated.
15770
15771 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
15772
15773         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
15774         * config.in: Add undef of HAVE_isl.
15775         * configure: Regenerate.
15776         * configure.ac: Add definition of HAVE_isl.
15777         * graphite-blocking.c: Add checking of HAVE_isl.
15778         * graphite-dependences.c: Likewise.
15779         * graphite-interchange.c: Likewise.
15780         * graphite-isl-ast-to-gimple.c: Likewise.
15781         * graphite-optimize-isl.c: Likewise.
15782         * graphite-poly.c: Likewise.
15783         * graphite-scop-detection.c: Likewise.
15784         * graphite-sese-to-poly.c: Likewise.
15785         * graphite.c: Likewise.
15786         * toplev.c: Replace the checking of HAVE_cloog with the checking
15787         of HAVE_isl.
15788
15789 2014-08-18  Richard Biener  <rguenther@suse.de>
15790
15791         PR tree-optimization/62090
15792         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
15793         (fold_builtin_3): Do not fold snprintf.
15794         (fold_builtin_4): Likewise.
15795         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
15796         moved from builtins.c.
15797         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
15798         (gimple_fold_builtin): Do not fold sprintf here.
15799
15800 2014-08-18  Richard Biener  <rguenther@suse.de>
15801
15802         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
15803         code to ...
15804         (maybe_canonicalize_mem_ref_addr): ... this function.
15805         (fold_stmt_1): Apply it here before all simplification.
15806
15807 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
15808
15809         PR ipa/61800
15810         * cgraph.h (cgraph_node::create_indirect_edge): Add
15811         compute_indirect_info param.
15812         * cgraph.c (cgraph_node::create_indirect_edge): Compute
15813         indirect_info only when it is required.
15814         * cgraphclones.c (cgraph_clone_edge): Do not recompute
15815         indirect_info fore cloned indirect edge.
15816
15817 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15818             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15819             Anna Tikhonova  <anna.tikhonova@intel.com>
15820             Ilya Tocar  <ilya.tocar@intel.com>
15821             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15822             Ilya Verbin  <ilya.verbin@intel.com>
15823             Kirill Yukhin  <kirill.yukhin@intel.com>
15824             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15825
15826         * config/i386/sse.md
15827         (define_mode_iterator VI8_AVX2_AVX512BW): New.
15828         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
15829
15830 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15831             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15832             Anna Tikhonova  <anna.tikhonova@intel.com>
15833             Ilya Tocar  <ilya.tocar@intel.com>
15834             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15835             Ilya Verbin  <ilya.verbin@intel.com>
15836             Kirill Yukhin  <kirill.yukhin@intel.com>
15837             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15838
15839         * config/i386/sse.md
15840         (define_mode_iterator VF1_AVX512VL): New.
15841         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
15842         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
15843         New.
15844
15845 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15846             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15847             Anna Tikhonova  <anna.tikhonova@intel.com>
15848             Ilya Tocar  <ilya.tocar@intel.com>
15849             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15850             Ilya Verbin  <ilya.verbin@intel.com>
15851             Kirill Yukhin  <kirill.yukhin@intel.com>
15852             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15853
15854         * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
15855         * config/i386/i386.md
15856         (define_code_iterator any_float): New.
15857         (define_code_attr floatsuffix): New.
15858         * config/i386/sse.md
15859         (define_mode_iterator VF1_128_256VL): New.
15860         (define_mode_iterator VF2_512_256VL): New.
15861         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
15862         TARGET check.
15863         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
15864         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
15865         New.
15866         (define_mode_attr qq2pssuff): New.
15867         (define_mode_attr sselongvecmode): New.
15868         (define_mode_attr sselongvecmodelower): New.
15869         (define_mode_attr sseintvecmode3): New.
15870         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
15871         New.
15872         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
15873         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
15874         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
15875         (define_insn "ufloatv2siv2df2<mask_name>"): New.
15876
15877 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15878             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15879             Anna Tikhonova  <anna.tikhonova@intel.com>
15880             Ilya Tocar  <ilya.tocar@intel.com>
15881             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15882             Ilya Verbin  <ilya.verbin@intel.com>
15883             Kirill Yukhin  <kirill.yukhin@intel.com>
15884             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15885
15886         * config/i386/sse.md
15887         (define_mode_iterator VF2_AVX512VL): New.
15888         (define_mode_attr sseintvecmode2): New.
15889         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
15890         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
15891         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
15892         (define_insn
15893         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
15894         Ditto.
15895         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
15896         Ditto.
15897         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
15898         Ditto.
15899
15900 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15901             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15902             Anna Tikhonova  <anna.tikhonova@intel.com>
15903             Ilya Tocar  <ilya.tocar@intel.com>
15904             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15905             Ilya Verbin  <ilya.verbin@intel.com>
15906             Kirill Yukhin  <kirill.yukhin@intel.com>
15907             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15908
15909         * config/i386/i386.md
15910         (define_insn "*movoi_internal_avx"): Add evex version.
15911         (define_insn "*movti_internal"): Ditto.
15912
15913 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15914             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15915             Anna Tikhonova  <anna.tikhonova@intel.com>
15916             Ilya Tocar  <ilya.tocar@intel.com>
15917             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15918             Ilya Verbin  <ilya.verbin@intel.com>
15919             Kirill Yukhin  <kirill.yukhin@intel.com>
15920             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15921
15922         * config/i386/i386.md
15923         (define_attr "isa"): Add avx512dq, noavx512dq.
15924         (define_attr "enabled"): Ditto.
15925         * config/i386/sse.md
15926         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
15927
15928 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15929             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15930             Anna Tikhonova  <anna.tikhonova@intel.com>
15931             Ilya Tocar  <ilya.tocar@intel.com>
15932             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15933             Ilya Verbin  <ilya.verbin@intel.com>
15934             Kirill Yukhin  <kirill.yukhin@intel.com>
15935             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15936
15937         * config/i386/i386.c
15938         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
15939         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
15940         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
15941         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
15942         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
15943         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
15944         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
15945         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
15946         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
15947         * config/i386/sse.md
15948         (define_mode_iterator VMOVE): Allow V4TI mode.
15949         (define_mode_iterator V_AVX512VL): New.
15950         (define_mode_iterator V): New handling for AVX512VL.
15951         (define_insn "avx512f_load<mode>_mask"): Delete.
15952         (define_insn "<avx512>_load<mode>_mask"): New.
15953         (define_insn "avx512f_store<mode>_mask"): Delete.
15954         (define_insn "<avx512>_store<mode>_mask"): New.
15955
15956
15957 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
15958
15959         PR sanitizer/62089
15960         * asan.c (instrument_derefs): Fix bitfield check.
15961
15962 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15963
15964         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
15965         * config/rs6000/htm.md (ttest): Remove clobber.
15966         * config/rs6000/predicates.md (any_mask_operand): New predicate.
15967         (and_operand): Reformat.
15968         (and_2rld_operand): New predicate.
15969         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
15970         parameter.
15971         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
15972         parameter.  Handle AND directly.
15973         (rs6000_split_logical_di): Remove last parameter.
15974         (rs6000_split_logical): Remove last parameter.  Remove obsolete
15975         comment.
15976         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
15977         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
15978         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
15979         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
15980         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
15981         and 5 anonymous splitters):  Delete.
15982         (and<mode>3): New expander.
15983         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
15984         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
15985         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
15986         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
15987         (floatdisf2_internal1): Remove clobbers.
15988         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
15989         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
15990         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
15991         (and<mode>3 for BOOL_128): Remove clobber.
15992         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
15993         rs6000_split_logical.
15994         (*bool<mode>3_internal for BOOL_128): Adjust call of
15995         rs6000_split_logical.
15996         (*boolc<mode>3_internal1 for BOOL_128,
15997         *boolc<mode>3_internal2 for BOOL_128,
15998         *boolcc<mode>3_internal1 for BOOL_128,
15999         *boolcc<mode>3_internal2 for BOOL_128,
16000         *eqv<mode>3_internal1 for BOOL_128,
16001         *eqv<mode>3_internal2 for BOOL_128,
16002         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
16003         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
16004         clobber.
16005         (*vec_reload_and_reg_<mptrsize>): Delete.
16006
16007 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
16008
16009         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
16010         and split, *boolccsi3_internal3 and split): Delete.
16011         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
16012         *boolccdi3_internal3 and split): Delete.
16013         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
16014         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
16015
16016 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
16017
16018         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
16019         and split, *boolcsi3_internal3 and split): Delete.
16020         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
16021         *boolcdi3_internal3 and split): Delete.
16022         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
16023
16024 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
16025
16026         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
16027         <'u'>: Also support printing the low-order 16 bits.
16028         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
16029         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
16030         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
16031         *booldi3_internal3 and split): Delete.
16032         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
16033         *bool<mode>3_dot2): New.
16034         (two anonymous define_splits for non_logical_cint_operand): Merge.
16035
16036 2014-08-17  Marek Polacek  <polacek@redhat.com>
16037             Manuel López-Ibáñez  <manu@gcc.gnu.org>
16038
16039         PR c/62059
16040         * diagnostic.c (adjust_line): Add gcc_checking_assert.
16041         (diagnostic_show_locus): Don't print caret diagnostic
16042         if a column is larger than the line_width.
16043
16044 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
16045
16046         * common.opt: Make the ISL AST generator to be the main code generator
16047         of Graphite.
16048
16049 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
16050
16051         * wide-int.h (generic_wide_int): Declare as class instead of struct.
16052
16053 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
16054
16055         PR target/61641
16056         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
16057         Declare.
16058         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
16059         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
16060         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
16061         Define.
16062         * config/pa/pa.md (begin_brtab): Delete insn.
16063         (end_brtab): Likewise.
16064
16065 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16066
16067         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
16068
16069 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
16070
16071         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
16072         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
16073         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
16074         (get_dynamic_type): Remove.
16075         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
16076         (clear_speculation): Bring to ipa-deivrt.h
16077         (get_class_context): Rename to ...
16078         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
16079         (contains_type_p): Update.
16080         (get_dynamic_type): Rename to ...
16081         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
16082         (possible_polymorphic_call_targets): UPdate.
16083         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
16084         * ipa-prop.c (ipa_analyze_call_uses): Update.
16085
16086 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
16087
16088         * doc/invoke.texi (SH options): Document missing processor variant
16089         options.  Remove references to Hitachi.  Undocument deprecated mspace
16090         option.
16091
16092 2014-08-15  Jason Merrill  <jason@redhat.com>
16093
16094         * tree.c (type_hash_canon): Uncomment assert.
16095
16096 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16097
16098         * input.h (in_system_header_at): Add comment.
16099
16100 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16101
16102         PR fortran/44054
16103         * diagnostic.c (build_message_string): Make it extern.
16104         * diagnostic.h (build_message_string): Make it extern.
16105
16106 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
16107
16108         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
16109         load/store from/to non-floating class pseudo.
16110
16111 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16112
16113         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
16114
16115 2014-08-15  Richard Biener  <rguenther@suse.de>
16116
16117         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
16118         (get_constraint_for_ssa_var): Remove dead code.
16119         (get_constraint_for_1): Adjust.
16120         (find_what_var_points_to): Likewise.
16121         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
16122
16123 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
16124
16125         PR target/61878
16126         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
16127         (_mm512_mask_cmpge_epu32_mask): Ditto.
16128         (_mm512_cmpge_epu32_mask): Ditto.
16129         (_mm512_mask_cmpge_epi64_mask): Ditto.
16130         (_mm512_cmpge_epi64_mask): Ditto.
16131         (_mm512_mask_cmpge_epu64_mask): Ditto.
16132         (_mm512_cmpge_epu64_mask): Ditto.
16133         (_mm512_mask_cmple_epi32_mask): Ditto.
16134         (_mm512_cmple_epi32_mask): Ditto.
16135         (_mm512_mask_cmple_epu32_mask): Ditto.
16136         (_mm512_cmple_epu32_mask): Ditto.
16137         (_mm512_mask_cmple_epi64_mask): Ditto.
16138         (_mm512_cmple_epi64_mask): Ditto.
16139         (_mm512_mask_cmple_epu64_mask): Ditto.
16140         (_mm512_cmple_epu64_mask): Ditto.
16141         (_mm512_mask_cmplt_epi32_mask): Ditto.
16142         (_mm512_cmplt_epi32_mask): Ditto.
16143         (_mm512_mask_cmplt_epu32_mask): Ditto.
16144         (_mm512_cmplt_epu32_mask): Ditto.
16145         (_mm512_mask_cmplt_epi64_mask): Ditto.
16146         (_mm512_cmplt_epi64_mask): Ditto.
16147         (_mm512_mask_cmplt_epu64_mask): Ditto.
16148         (_mm512_cmplt_epu64_mask): Ditto.
16149         (_mm512_mask_cmpneq_epi32_mask): Ditto.
16150         (_mm512_mask_cmpneq_epu32_mask): Ditto.
16151         (_mm512_cmpneq_epu32_mask): Ditto.
16152         (_mm512_mask_cmpneq_epi64_mask): Ditto.
16153         (_mm512_cmpneq_epi64_mask): Ditto.
16154         (_mm512_mask_cmpneq_epu64_mask): Ditto.
16155         (_mm512_cmpneq_epu64_mask): Ditto.
16156         (_mm512_castpd_ps): Ditto.
16157         (_mm512_castpd_si512): Ditto.
16158         (_mm512_castps_pd): Ditto.
16159         (_mm512_castps_si512): Ditto.
16160         (_mm512_castsi512_ps): Ditto.
16161         (_mm512_castsi512_pd): Ditto.
16162         (_mm512_castpd512_pd128): Ditto.
16163         (_mm512_castps512_ps128): Ditto.
16164         (_mm512_castsi512_si128): Ditto.
16165         (_mm512_castpd512_pd256): Ditto.
16166         (_mm512_castps512_ps256): Ditto.
16167         (_mm512_castsi512_si256): Ditto.
16168         (_mm512_castpd128_pd512): Ditto.
16169         (_mm512_castps128_ps512): Ditto.
16170         (_mm512_castsi128_si512): Ditto.
16171         (_mm512_castpd256_pd512): Ditto.
16172         (_mm512_castps256_ps512): Ditto.
16173         (_mm512_castsi256_si512): Ditto.
16174         (_mm512_cmpeq_epu32_mask): Ditto.
16175         (_mm512_mask_cmpeq_epu32_mask): Ditto.
16176         (_mm512_mask_cmpeq_epu64_mask): Ditto.
16177         (_mm512_cmpeq_epu64_mask): Ditto.
16178         (_mm512_cmpgt_epu32_mask): Ditto.
16179         (_mm512_mask_cmpgt_epu32_mask): Ditto.
16180         (_mm512_mask_cmpgt_epu64_mask): Ditto.
16181         (_mm512_cmpgt_epu64_mask): Ditto.
16182         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
16183         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
16184         * config/i386/i386.c (enum ix86_builtins): Add
16185         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
16186         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
16187         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
16188         (bdesc_args): Add __builtin_ia32_si512_256si,
16189         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
16190         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
16191         __builtin_ia32_pd512_pd.
16192         (ix86_expand_args_builtin): Handle new FTYPEs.
16193         * config/i386/sse.md (castmode): Add 512-bit modes.
16194         (AVX512MODE2P): New.
16195         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
16196         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
16197
16198 2014-08-15  Richard Biener  <rguenther@suse.de>
16199
16200         * fold-const.c (tree_swap_operands_p): Put all constants
16201         last, also strip sign-changing NOPs when considering further
16202         canonicalization.  Canonicalize also when optimizing for size.
16203
16204 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16205
16206         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
16207         one_match > zero_match case to just before simple_sequence.
16208
16209 2014-08-15  Richard Biener  <rguenther@suse.de>
16210
16211         * data-streamer.h (streamer_string_index, string_for_index):
16212         Remove.
16213         * data-streamer-out.c (streamer_string_index): Make static.
16214         * data-streamer-in.c (string_for_index): Likewise.
16215         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
16216         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
16217
16218 2014-08-15  Richard Biener  <rguenther@suse.de>
16219
16220         PR tree-optimization/62031
16221         * tree-data-ref.c (dr_analyze_indices): Do not set
16222         DR_UNCONSTRAINED_BASE.
16223         (dr_may_alias_p): All indirect accesses have to go the
16224         formerly DR_UNCONSTRAINED_BASE path.
16225         * tree-data-ref.h (struct indices): Remove
16226         unconstrained_base member.
16227         (DR_UNCONSTRAINED_BASE): Remove.
16228
16229 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
16230
16231         PR middle-end/62092
16232         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
16233         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
16234         in OMP_CLAUSE_MAP in some outer target region.
16235
16236 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
16237
16238         * tree-ssa-loop-ivopts.c (ivopts_data): New field
16239         name_expansion_cache.
16240         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
16241         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
16242         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
16243         (difference_cannot_overflow_p): New parameter.  Use affine
16244         expansion for equality check.
16245         (iv_elimination_compare_lt): Pass new argument.
16246
16247 2014-08-14  DJ Delorie  <dj@redhat.com>
16248
16249         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
16250         variables to the accumulator.
16251
16252         * config/rl78/predicates.md (rl78_near_mem_operand): New.
16253         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
16254         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
16255         with far-far moves.
16256
16257         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
16258         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
16259         (umulqihi3_virt): Likewise.
16260         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
16261         (umulqihi3_real): Likewise.
16262
16263         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
16264
16265 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
16266
16267         PR tree-optimization/62091
16268         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
16269         function_entry_reached.
16270         (walk_aliased_vdefs): Clear it here.
16271         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
16272
16273 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
16274
16275         * ipa-utils.h (compare_virtual_tables): Declare.
16276         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
16277
16278 2014-08-14  Marek Polacek  <polacek@redhat.com>
16279
16280         DR 458
16281         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
16282         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
16283
16284 2014-08-14  Tom de Vries  <tom@codesourcery.com>
16285
16286         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
16287
16288 2014-08-14  Tom de Vries  <tom@codesourcery.com>
16289
16290         PR rtl-optimization/62004
16291         PR rtl-optimization/62030
16292         * ifcvt.c (rtx_interchangeable_p): New function.
16293         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
16294         * emit-rtl.h (mem_attrs_eq_p): Declare.
16295
16296 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
16297
16298         * graphite-scop-detection.c:
16299         Add inclusion of cp-tree.h.
16300         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
16301         in case they are pointers to object types
16302
16303 2014-08-14  Richard Biener  <rguenther@suse.de>
16304
16305         * BASE-VER: Change to 5.0.0
16306
16307 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16308             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16309             Anna Tikhonova  <anna.tikhonova@intel.com>
16310             Ilya Tocar  <ilya.tocar@intel.com>
16311             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16312             Ilya Verbin  <ilya.verbin@intel.com>
16313             Kirill Yukhin  <kirill.yukhin@intel.com>
16314             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16315
16316         * config/i386/sse.md (define_mode_attr avx512): New.
16317         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
16318         V4DI modes.
16319         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
16320         (define_mode_attr ssse3_avx2): Ditto.
16321         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
16322         (define_mode_attr avx2_avx512bw): New.
16323         (define_mode_attr ssedoublemodelower): New.
16324         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
16325         V32HI, V64QI modes.
16326         (define_mode_attr ssebytemode): Allow V8DI modes.
16327         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
16328         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
16329         (define_mode_attr ssePSmode2): New.
16330         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
16331         V16HI, V32HI modes.
16332         (define_mode_attr dbpsadbwmode): New.
16333         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
16334         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
16335         (vi8_sse4_1_avx2_avx512): New.
16336         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
16337         mode attribute.
16338         (define_mode_attr blendbits): Move before its immediate use.
16339
16340 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16341             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16342             Anna Tikhonova  <anna.tikhonova@intel.com>
16343             Ilya Tocar  <ilya.tocar@intel.com>
16344             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16345             Ilya Verbin  <ilya.verbin@intel.com>
16346             Kirill Yukhin  <kirill.yukhin@intel.com>
16347             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16348
16349         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
16350         * config/i386/subst.md
16351         (define_mode_iterator SUBST_V): Update.
16352         (define_mode_iterator SUBST_A): Ditto.
16353         (define_subst_attr "mask_operand7"): New.
16354         (define_subst_attr "mask_operand10"): New.
16355         (define_subst_attr "mask_operand_arg34") : New.
16356         (define_subst_attr "mask_expand_op3"): New.
16357         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
16358         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
16359         (define_subst_attr "mask_avx512vl_condition"): New.
16360         (define_subst_attr "round_mask_operand4"): Ditto.
16361         (define_subst_attr "round_mask_scalar_op3"): Delete.
16362         (define_subst_attr "round_mask_op4"): New.
16363         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
16364         V16SImode.
16365         (define_subst_attr "round_modev8sf_condition"): New.
16366         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
16367         <MODE>mode.
16368         (define_subst_attr "round_saeonly_mask_operand4"): New.
16369         (define_subst_attr "round_saeonly_mask_op4"): New.
16370         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
16371         V8DImode, V16SImode.
16372         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
16373         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
16374         (define_subst_attr "mask_expand4_args"): New.
16375         (define_subst "mask_expand4"): New.
16376
16377 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16378             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16379             Anna Tikhonova  <anna.tikhonova@intel.com>
16380             Ilya Tocar  <ilya.tocar@intel.com>
16381             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16382             Ilya Verbin  <ilya.verbin@intel.com>
16383             Kirill Yukhin  <kirill.yukhin@intel.com>
16384             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16385
16386         * config/i386/i386.md
16387         (define_attr "isa"): Add avx512bw,noavx512bw.
16388         (define_attr "enabled"): Ditto.
16389         (define_split): Add 32/64-bit mask logic.
16390         (define_insn "*k<logic>qi"): New.
16391         (define_insn "*k<logic>hi"): New.
16392         (define_insn "*anddi_1"): Add mask version.
16393         (define_insn "*andsi_1"): Ditto.
16394         (define_insn "*<code><mode>_1"): Ditto.
16395         (define_insn "*<code>hi_1"): Ditto.
16396         (define_insn "kxnor<mode>"): New.
16397         (define_insn "kunpcksi"): New.
16398         (define_insn "kunpckdi"): New.
16399         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
16400         (define_insn "*one_cmplhi2_1"): Ditto.
16401
16402 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16403             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16404             Anna Tikhonova  <anna.tikhonova@intel.com>
16405             Ilya Tocar  <ilya.tocar@intel.com>
16406             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16407             Ilya Verbin  <ilya.verbin@intel.com>
16408             Kirill Yukhin  <kirill.yukhin@intel.com>
16409             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16410
16411         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
16412         V32HImode.
16413
16414 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16415             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16416             Anna Tikhonova  <anna.tikhonova@intel.com>
16417             Ilya Tocar  <ilya.tocar@intel.com>
16418             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16419             Ilya Verbin  <ilya.verbin@intel.com>
16420             Kirill Yukhin  <kirill.yukhin@intel.com>
16421             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16422
16423         * config/i386/i386.c (print_reg): Ð¡orrectly print 64-bit mask
16424         registers.
16425         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
16426         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
16427         xmm/ymm16+ when availble.
16428         * config/i386/i386.h
16429         (HARD_REGNO_NREGS): Add mask regs.
16430         (VALID_AVX512F_REG_MODE): Ditto.
16431         (VALID_AVX512F_REG_MODE) : Define.
16432         (VALID_MASK_AVX512BW_MODE): Ditto.
16433         (reg_class) (MASK_REG_P(X)): Define.
16434         * config/i386/i386.md: Do not split long moves with mask register,
16435         use kmovb if avx512bw is availible.
16436         (movdi_internal): Handle mask registers.
16437
16438 2014-08-14  Richard Biener  <rguenther@suse.de>
16439
16440         PR tree-optimization/62081
16441         * tree-ssa-loop.c (pass_fix_loops): New pass.
16442         (pass_tree_loop::gate):  Do not fixup loops here.
16443         * tree-pass.h (make_pass_fix_loops): Declare.
16444         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
16445
16446 2014-08-14  Richard Biener  <rguenther@suse.de>
16447
16448         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
16449         (type_hash_canon): ... this and avoid 2nd lookup for the add.
16450
16451 2014-08-14  Richard Biener  <rguenther@suse.de>
16452
16453         PR tree-optimization/62090
16454         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
16455         (fold_builtin_2): Do not fold sprintf.
16456         (fold_builtin_3): Likewise.
16457         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
16458         moved from builtins.c.
16459         (gimple_fold_builtin): Fold sprintf.
16460
16461 2014-08-14  Richard Biener  <rguenther@suse.de>
16462
16463         PR rtl-optimization/62079
16464         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
16465         run cleanup_cfg.
16466
16467 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
16468
16469         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
16470         current_function_decl.
16471
16472 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
16473
16474         * cgraph.c (cgraph_node::function_symbol): Fix wrong
16475         cgraph_function_node to cgraph_node::function_symbol
16476         refactoring.
16477
16478 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16479
16480         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
16481         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
16482
16483 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
16484
16485         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
16486         warning.
16487
16488 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
16489
16490         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
16491         generator.
16492
16493 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
16494
16495         PR target/62025
16496         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
16497         any registers that are used in mem_insn.
16498
16499 2014-08-12  Steve Ellcey  <sellcey@mips.com>
16500
16501         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
16502
16503 2014-08-12  Steve Ellcey  <sellcey@mips.com>
16504
16505         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
16506         (MULTILIB_DIRNAMES): Ditto.
16507         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
16508         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
16509         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
16510         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
16511         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
16512         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
16513
16514 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16515
16516         PR target/61413
16517         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
16518         of __ARM_SIZEOF_WCHAR_T.
16519
16520 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16521
16522         PR target/62098
16523         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
16524         Remove unnecessary attributes.
16525
16526 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
16527
16528         * internal-fn.c (init_internal_fns): Fix off-by-one.
16529
16530 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16531             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16532             Anna Tikhonova  <anna.tikhonova@intel.com>
16533             Ilya Tocar  <ilya.tocar@intel.com>
16534             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16535             Ilya Verbin  <ilya.verbin@intel.com>
16536             Kirill Yukhin  <kirill.yukhin@intel.com>
16537             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16538
16539         * config/i386/i386.c (standard_sse_constant_opcode): Use
16540         vpxord/vpternlog if avx512 is availible.
16541
16542 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16543
16544         PR middle-end/62103
16545         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
16546         bitfields, that is when size doesn't match the size of type or the
16547         size of the constructor.
16548
16549 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
16550
16551         * config/rs6000/constraints.md (wh constraint): New constraint,
16552         for FP registers if direct move is available.
16553         (wi constraint): New constraint, for VSX/FP registers that can
16554         handle 64-bit integers.
16555         (wj constraint): New constraint for VSX/FP registers that can
16556         handle 64-bit integers for direct moves.
16557         (wk constraint): New constraint for VSX/FP registers that can
16558         handle 64-bit doubles for direct moves.
16559         (wy constraint): Make documentation match implementation.
16560
16561         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
16562         scalar_in_vmx_p field to simplify tests of whether SFmode or
16563         DFmode can go in the Altivec registers.
16564         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
16565         (rs6000_setup_reg_addr_masks): Likewise.
16566         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
16567         field, and wh/wi/wj/wk constraints.
16568         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
16569         the wh/wi/wj/wk constraints.
16570         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
16571         upper registers, prefer VSX registers unless the operation is a
16572         memory operation with REG+OFFSET addressing.
16573
16574         * config/rs6000/vsx.md (VSr mode attribute): Add support for
16575         DImode.  Change SFmode to use ww constraint instead of d to allow
16576         SF registers in the upper registers.
16577         (VSr2): Likewise.
16578         (VSr3): Likewise.
16579         (VSr5): Fix thinko in comment.
16580         (VSa): New mode attribute that is an alternative to wa, that
16581         returns the VSX register class that a mode can go in, but may not
16582         be the preferred register class.
16583         (VS_64dm): New mode attribute for appropriate register classes for
16584         referencing 64-bit elements of vectors for direct moves and normal
16585         moves.
16586         (VS_64reg): Likewise.
16587         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
16588         register allocator to only registers the data type can handle.
16589         (vsx_le_perm_load_<mode>): Likewise.
16590         (vsx_le_perm_store_<mode>): Likewise.
16591         (vsx_xxpermdi2_le_<mode>): Likewise.
16592         (vsx_xxpermdi4_le_<mode>): Likewise.
16593         (vsx_lxvd2x2_le_<mode>): Likewise.
16594         (vsx_lxvd2x4_le_<mode>): Likewise.
16595         (vsx_stxvd2x2_le_<mode>): Likewise.
16596         (vsx_add<mode>3): Likewise.
16597         (vsx_sub<mode>3): Likewise.
16598         (vsx_mul<mode>3): Likewise.
16599         (vsx_div<mode>3): Likewise.
16600         (vsx_tdiv<mode>3_internal): Likewise.
16601         (vsx_fre<mode>2): Likewise.
16602         (vsx_neg<mode>2): Likewise.
16603         (vsx_abs<mode>2): Likewise.
16604         (vsx_nabs<mode>2): Likewise.
16605         (vsx_smax<mode>3): Likewise.
16606         (vsx_smin<mode>3): Likewise.
16607         (vsx_sqrt<mode>2): Likewise.
16608         (vsx_rsqrte<mode>2): Likewise.
16609         (vsx_tsqrt<mode>2_internal): Likewise.
16610         (vsx_fms<mode>4): Likewise.
16611         (vsx_nfma<mode>4): Likewise.
16612         (vsx_eq<mode>): Likewise.
16613         (vsx_gt<mode>): Likewise.
16614         (vsx_ge<mode>): Likewise.
16615         (vsx_eq<mode>_p): Likewise.
16616         (vsx_gt<mode>_p): Likewise.
16617         (vsx_ge<mode>_p): Likewise.
16618         (vsx_xxsel<mode>): Likewise.
16619         (vsx_xxsel<mode>_uns): Likewise.
16620         (vsx_copysign<mode>3): Likewise.
16621         (vsx_float<VSi><mode>2): Likewise.
16622         (vsx_floatuns<VSi><mode>2): Likewise.
16623         (vsx_fix_trunc<mode><VSi>2): Likewise.
16624         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
16625         (vsx_x<VSv>r<VSs>i): Likewise.
16626         (vsx_x<VSv>r<VSs>ic): Likewise.
16627         (vsx_btrunc<mode>2): Likewise.
16628         (vsx_b2trunc<mode>2): Likewise.
16629         (vsx_floor<mode>2): Likewise.
16630         (vsx_ceil<mode>2): Likewise.
16631         (vsx_<VS_spdp_insn>): Likewise.
16632         (vsx_xscvspdp): Likewise.
16633         (vsx_xvcvspuxds): Likewise.
16634         (vsx_float_fix_<mode>2): Likewise.
16635         (vsx_set_<mode>): Likewise.
16636         (vsx_extract_<mode>_internal1): Likewise.
16637         (vsx_extract_<mode>_internal2): Likewise.
16638         (vsx_extract_<mode>_load): Likewise.
16639         (vsx_extract_<mode>_store): Likewise.
16640         (vsx_splat_<mode>): Likewise.
16641         (vsx_xxspltw_<mode>): Likewise.
16642         (vsx_xxspltw_<mode>_direct): Likewise.
16643         (vsx_xxmrghw_<mode>): Likewise.
16644         (vsx_xxmrglw_<mode>): Likewise.
16645         (vsx_xxsldwi_<mode>): Likewise.
16646         (vsx_xscvdpspn): Tighten constraints to only use register classes
16647         the types use.
16648         (vsx_xscvspdpn): Likewise.
16649         (vsx_xscvdpspn_scalar): Likewise.
16650
16651         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
16652         wj, and wk constraints.
16653         (GPR_REG_CLASS_P): New helper macro for register classes targeting
16654         general purpose registers.
16655
16656         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
16657         direct moves.
16658         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
16659         DImode instead of wm.  Use wk constraint for direct move of DFmode
16660         instead of wm.
16661         (extendsidi2_lfiwax): Likewise.
16662         (lfiwax): Likewise.
16663         (lfiwzx): Likewise.
16664         (movdi_internal64): Likewise.
16665
16666         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
16667         wk constraints. Make the wy constraint documentation match them
16668         implementation.
16669
16670 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
16671
16672         Replacement of isl_int by isl_val
16673         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
16674         (compute_bounds_for_param): use isl_val instead of isl_int
16675         (compute_bounds_for_loop): likewise
16676         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
16677         (build_linearized_memory_access): use isl_val instead of isl_int
16678         (pdr_stride_in_loop): likewise
16679         * graphite-optimize-isl.c:
16680         (getPrevectorMap): use isl_val instead of isl_int
16681         * graphite-poly.c:
16682         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
16683         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
16684         (extern the_isl_ctx): declare
16685         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
16686         (extract_affine_gmp): likewise
16687         (wrap): likewise
16688         (build_loop_iteration_domains): likewise
16689         (add_param_constraints): likewise
16690
16691 2014-08-11  Richard Biener  <rguenther@suse.de>
16692
16693         PR tree-optimization/62075
16694         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
16695         handle uses in patterns.
16696
16697 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16698             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16699             Anna Tikhonova  <anna.tikhonova@intel.com>
16700             Ilya Tocar  <ilya.tocar@intel.com>
16701             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16702             Ilya Verbin  <ilya.verbin@intel.com>
16703             Kirill Yukhin  <kirill.yukhin@intel.com>
16704             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16705
16706         * common/config/i386/i386-common.c
16707         (OPTION_MASK_ISA_AVX512VL_SET): Define.
16708         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
16709         (ix86_handle_option): Handle OPT_mavx512vl.
16710         * config/i386/cpuid.h (bit_AVX512VL): Define.
16711         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
16712         set -mavx512vl accordingly.
16713         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16714         OPTION_MASK_ISA_AVX512VL.
16715         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
16716         (ix86_option_override_internal): Define PTA_AVX512VL, handle
16717         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
16718         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
16719         * config/i386/i386.h (TARGET_AVX512VL): Define.
16720         (TARGET_AVX512VL_P(x)): Ditto.
16721         * config/i386/i386.opt: Add mavx512vl.
16722
16723 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
16724
16725         PR tree-optimization/62073
16726         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
16727         a basic block.
16728
16729 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16730             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16731             Anna Tikhonova  <anna.tikhonova@intel.com>
16732             Ilya Tocar  <ilya.tocar@intel.com>
16733             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16734             Ilya Verbin  <ilya.verbin@intel.com>
16735             Kirill Yukhin  <kirill.yukhin@intel.com>
16736             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16737
16738         * common/config/i386/i386-common.c
16739         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
16740         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
16741         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
16742         (ix86_handle_option): Handle OPT_mavx512bw.
16743         * config/i386/cpuid.h (bit_AVX512BW): Define.
16744         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
16745         set -mavx512bw accordingly.
16746         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16747         OPTION_MASK_ISA_AVX512BW.
16748         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
16749         (ix86_option_override_internal): Define PTA_AVX512BW, handle
16750         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
16751         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
16752         * config/i386/i386.h (TARGET_AVX512BW): Define.
16753         (TARGET_AVX512BW_P(x)): Ditto.
16754         * config/i386/i386.opt: Add mavx512bw.
16755
16756 2014-08-11  Richard Biener  <rguenther@suse.de>
16757
16758         PR tree-optimization/62070
16759         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
16760         Remove SSA checking.
16761
16762 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
16763
16764         * asan.c (asan_check_flags): New enum.
16765         (build_check_stmt_with_calls): Removed function.
16766         (build_check_stmt): Split inlining logic to
16767         asan_expand_check_ifn.
16768         (instrument_derefs): Rename parameter.
16769         (instrument_mem_region_access): Rename parameter.
16770         (instrument_strlen_call): Likewise.
16771         (asan_expand_check_ifn): New function.
16772         (asan_instrument): Remove old code.
16773         (pass_sanopt::execute): Change handling of
16774         asan-instrumentation-with-call-threshold.
16775         (asan_clear_shadow): Fix formatting.
16776         (asan_function_start): Likewise.
16777         (asan_emit_stack_protection): Likewise.
16778         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
16779         Update description.
16780         * internal-fn.c (expand_ASAN_CHECK): New function.
16781         * internal-fn.def (ASAN_CHECK): New internal function.
16782         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
16783         Update description.
16784         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
16785         * tree.c: Small comment fix.
16786
16787 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
16788
16789         * gimple.c (gimple_call_fnspec): Support internal functions.
16790         (gimple_call_return_flags): Use const.
16791         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
16792         * internal-fn.def: Add fnspec information.
16793         * internal-fn.h (internal_fn_fnspec): New function.
16794         (init_internal_fns): Declare new function.
16795         * internal-fn.c (internal_fn_fnspec_array): New global variable.
16796         (init_internal_fns): New function.
16797         * tree-core.h: Update macro call.
16798         * tree.c (build_common_builtin_nodes): Initialize internal fns.
16799
16800 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
16801
16802         * lto-streamer.h (struct output_block::symbol): Change from
16803         struct symtab_node to plain symtab_node.
16804         (referenced_from_this_partition_p): Change first parameter
16805         from struct symtab_node to plain symtab_node.
16806
16807 2014-08-10  Marek Polacek  <polacek@redhat.com>
16808
16809         PR c/51849
16810         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
16811
16812 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
16813
16814         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
16815         DECL correctly; do not give up on types in static storage.
16816
16817 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
16818
16819         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
16820
16821 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
16822
16823         * graphite-isl-ast-to-gimple.c:
16824         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
16825
16826         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
16827
16828 2014-08-08  Guozhi Wei  <carrot@google.com>
16829
16830         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
16831
16832 2014-08-08  Cary Coutant  <ccoutant@google.com>
16833
16834         * dwarf2out.c (get_skeleton_type_unit): Remove.
16835         (output_skeleton_debug_sections): Remove skeleton type units.
16836         (output_comdat_type_unit): Likewise.
16837         (dwarf2out_finish): Likewise.
16838
16839 2014-08-07  Yi Yang  <ahyangyi@google.com>
16840
16841         * predict.c (expr_expected_value_1): Remove the redundant assignment.
16842
16843 2014-08-08  Richard Biener  <rguenther@suse.de>
16844
16845         * lto-streamer.h (struct lto_input_block): Make it a class
16846         with a constructor.
16847         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
16848         (struct lto_function_header, struct lto_simple_header,
16849         struct lto_simple_header_with_strings,
16850         struct lto_decl_header, struct lto_function_header): Make
16851         a simple inheritance hieararchy.  Remove unused fields.
16852         (struct lto_asm_header): Remove.
16853         * lto-streamer-out.c (produce_asm): Adjust.
16854         (lto_output_toplevel_asms): Likewise.
16855         (produce_asm_for_decls): Likewise.
16856         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
16857         * data-streamer-in.c (string_for_index): Likewise.
16858         * ipa-inline-analysis.c (inline_read_section): Likewise.
16859         * ipa-prop.c (ipa_prop_read_section): Likewise.
16860         (read_replacements_section): Likewise.
16861         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
16862         * lto-section-in.c (lto_create_simple_input_block): Likewise.
16863         (lto_destroy_simple_input_block): Likewise.
16864         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
16865         (lto_input_toplevel_asms): Likewise.
16866
16867 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16868             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16869             Anna Tikhonova  <anna.tikhonova@intel.com>
16870             Ilya Tocar  <ilya.tocar@intel.com>
16871             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16872             Ilya Verbin  <ilya.verbin@intel.com>
16873             Kirill Yukhin  <kirill.yukhin@intel.com>
16874             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16875
16876         * common/config/i386/i386-common.c
16877         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
16878         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
16879         (ix86_handle_option): Handle OPT_mavx512dq.
16880         * config/i386/cpuid.h (bit_AVX512DQ): Define.
16881         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
16882         set -mavx512dq accordingly.
16883         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16884         OPTION_MASK_ISA_AVX512DQ.
16885         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
16886         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
16887         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
16888         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
16889         * config/i386/i386.h (TARGET_AVX512DQ): Define.
16890         (TARGET_AVX512DQ_P(x)): Ditto.
16891         * config/i386/i386.opt: Add mavx512dq.
16892
16893 2014-08-08  Richard Biener  <rguenther@suse.de>
16894
16895         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
16896         target_percent, target_percent_s): Export.
16897         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
16898         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
16899         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
16900         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
16901         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
16902         Move to gimple-fold.c.
16903         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
16904         strcat and strcpy.
16905         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
16906         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
16907         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
16908         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
16909         (rewrite_call_expr_array): Remove.
16910         (fold_builtin_sprintf_chk): Likewise.
16911         (fold_builtin_snprintf_chk): Likewise.
16912         (fold_builtin_varargs): Remove handling of sprintf_chk,
16913         vsprintf_chk, snprintf_chk and vsnprintf_chk.
16914         (gimple_fold_builtin_sprintf_chk): Remove.
16915         (gimple_fold_builtin_snprintf_chk): Likewise.
16916         (gimple_fold_builtin_varargs): Likewise.
16917         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
16918         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
16919         * gimple.c (gimple_seq_add_seq_without_update): New function.
16920         * gimple.h (gimple_seq_add_seq_without_update): Declare.
16921         * gimple-fold.c: Include output.h.
16922         (gsi_replace_with_seq_vops): New function, split out from ...
16923         (gimplify_and_update_call_from_tree): ... here.
16924         (replace_call_with_value): New function.
16925         (replace_call_with_call_and_fold): Likewise.
16926         (var_decl_component_p): Moved from builtins.c.
16927         (gimple_fold_builtin_memory_op): Moved from builtins.c
16928         fold_builtin_memory_op and rewritten to GIMPLE.
16929         (gimple_fold_builtin_memset): Likewise.
16930         (gimple_fold_builtin_strcpy): Likewise.
16931         (gimple_fold_builtin_strncpy): Likewise.
16932         (gimple_fold_builtin_strcat): Likewise.
16933         (gimple_fold_builtin_fputs): Likewise.
16934         (gimple_fold_builtin_memory_chk): Likewise.
16935         (gimple_fold_builtin_stxcpy_chk): Likewise.
16936         (gimple_fold_builtin_stxncpy_chk): Likewise.
16937         (gimple_fold_builtin_snprintf_chk): Likewise.
16938         (gimple_fold_builtin_sprintf_chk): Likewise.
16939         (gimple_fold_builtin_strlen): New function.
16940         (gimple_fold_builtin_with_strlen): New function split out from
16941         gimple_fold_builtin.
16942         (gimple_fold_builtin): Change signature and handle
16943         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
16944         here.  Call gimple_fold_builtin_with_strlen.
16945         (gimple_fold_call): Adjust.
16946
16947 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
16948
16949         * calls.c (precompute_arguments): Check
16950         promoted_for_signed_and_unsigned_p and set the promoted mode.
16951         (promoted_for_signed_and_unsigned_p): New function.
16952         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
16953         and set the promoted mode.
16954         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
16955         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
16956         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
16957
16958
16959 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
16960
16961         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
16962         instead of SUBREG_PROMOTED_UNSIGNED_SET.
16963         (expand_call): Likewise.
16964         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
16965         to get promoted mode.
16966         * combine.c (record_promoted_value): Skip > 0 comparison with
16967         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
16968         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
16969         of SUBREG_PROMOTED_UNSIGNED_P.
16970         (convert_modes): Likewise.
16971         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
16972         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
16973         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
16974         SUBREG_PROMOTED_UNSIGNED_SET.
16975         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
16976         instead of SUBREG_PROMOTED_UNSIGNED_SET.
16977         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
16978         SUBREG_PROMOTED_SET.
16979         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
16980         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
16981         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
16982         of SUBREG_PROMOTED_UNSIGNED_P.
16983         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
16984         (SUBREG_PROMOTED_SET): New define.
16985         (SUBREG_PROMOTED_GET): Likewise.
16986         (SUBREG_PROMOTED_SIGN): Likewise.
16987         (SUBREG_PROMOTED_SIGNED_P): Likewise.
16988         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
16989         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
16990         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
16991         instead of SUBREG_PROMOTED_UNSIGNED_GET.
16992         (nonzero_bits1): Skip > 0 comparison with the results as
16993         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
16994         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
16995         of !SUBREG_PROMOTED_UNSIGNED_P.
16996         * simplify-rtx.c (simplify_unary_operation_1): Use new
16997         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
16998         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
16999         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
17000         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
17001
17002 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
17003
17004         * ipa-devirt.c: Include gimple-pretty-print.h
17005         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
17006         further tests.
17007         (decl_maybe_in_construction_p): Fix conditional on cdtor check
17008         (get_polymorphic_call_info): Fix return value
17009         (type_change_info): New sturcture based on ipa-prop
17010         variant.
17011         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
17012         based on ipa-prop variant.
17013         (extr_type_from_vtbl_ptr_store): New function
17014         based on ipa-prop variant.
17015         (record_known_type): New function.
17016         (check_stmt_for_type_change): New function.
17017         (get_dynamic_type): New function.
17018         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
17019         * tree-ssa-pre.c: ipa-utils.h
17020         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
17021         machinery; sanity check with ipa-prop devirtualization.
17022         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
17023         polymorphic flag.
17024
17025 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
17026
17027         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
17028         * alias.c, cfgexpand.c, cgraphbuild.c,
17029         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
17030         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
17031         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
17032         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
17033         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
17034         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
17035         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
17036         dse.c, except.c, gengtype.c, gimple-expr.c,
17037         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
17038         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
17039         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
17040         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
17041         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
17042         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
17043         pointer-set.h.
17044         * pointer-set.c: Remove file.
17045         * pointer-set.h: Remove file.
17046
17047 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17048
17049         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
17050         * config/arm/types.md (f_sels, f_seld): Delete.
17051
17052 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17053
17054         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
17055         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
17056         (aarch64_movdi_<mode>high): Likewise.
17057         (aarch64_mov<mode>high_di): Likewise.
17058         (aarch64_movdi_<mode>low): Likewise.
17059         (aarch64_mov<mode>low_di): Likewise.
17060         (aarch64_movtilow_tilow): Likewise.
17061         Add comment explaining usage of fp,simd attributes and of
17062         TARGET_FLOAT and TARGET_SIMD.
17063
17064 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
17065             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17066
17067         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
17068         Use MOVN when one of the half-words is 0xffff.
17069
17070 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
17071
17072         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
17073
17074 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
17075
17076         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
17077         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
17078         (rfs_str): String corresponding to RFS_* constants.
17079         (rank_for_schedule_stats_t): New typedef.
17080         (rank_for_schedule_stats): New static variable.
17081         (rfs_result): New static function.
17082         (rank_for_schedule): Track statistics for deciding heuristics.
17083         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
17084         static functions.
17085         (ready_sort): Use them for debug printouts.
17086         (schedule_block): Init statistics state.  Print statistics on
17087         rank_for_schedule decisions.
17088
17089 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
17090
17091         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
17092
17093 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
17094
17095         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
17096         constraint.
17097
17098 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
17099
17100         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
17101         function to not conflict.
17102         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
17103         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
17104         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
17105         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
17106         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
17107         of pointer_map.
17108
17109 2014-08-07  Marek Polacek  <polacek@redhat.com>
17110
17111         * fold-const.c (fold_binary_loc): Add folding of
17112         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
17113
17114 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
17115
17116         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
17117         instead of type size.
17118         (ASM_FINISH_DECLARE_OBJECT): Likewise.
17119
17120 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
17121
17122         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
17123         (*thumb1_movqi_insn): Likewise.
17124         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
17125
17126 2014-08-07  Tom de Vries  <tom@codesourcery.com>
17127
17128         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
17129         (glibc_2_11_or_earlier): Remove effective-target keywords.
17130
17131 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
17132
17133         * config/arm/arm.c (bdesc_2arg): Fix typo.
17134         (arm_atomic_assign_expand_fenv): Remove The default implementation.
17135
17136 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
17137
17138         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
17139
17140 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
17141
17142         PR debug/61923
17143         * haifa-sched.c (advance_one_cycle): Fix dump.
17144         (schedule_block): Don't advance cycle if we are already at the
17145         beginning of the cycle.
17146
17147 2014-08-06  Martin Jambor  <mjambor@suse.cz>
17148
17149         PR ipa/61393
17150         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
17151
17152 2014-08-06  Richard Biener  <rguenther@suse.de>
17153
17154         PR lto/62034
17155         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
17156         SCCs here.
17157         (lto_input_tree): Pop SCCs here.
17158
17159 2014-08-06  Richard Biener  <rguenther@suse.de>
17160
17161         PR tree-optimization/61320
17162         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
17163         handle misaligned loads.
17164
17165 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
17166
17167         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
17168         (aarch64_expand_vec_perm_const): Check for dup before zip.
17169
17170 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17171
17172         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
17173         CONST_INT_P instead of GET_CODE and compare.
17174         (aarch64_select_cc_mode): Likewise.
17175         (aarch64_print_operand): Likewise.
17176         (aarch64_rtx_costs): Likewise.
17177         (aarch64_simd_valid_immediate): Likewise.
17178         (aarch64_simd_check_vect_par_cnst_half): Likewise.
17179         (aarch64_simd_emit_pair_result_insn): Likewise.
17180
17181 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
17182
17183         * gdbhooks.py (find_gcc_source_dir): New helper function.
17184         (class PassNames): New class, locating and parsing passes.def.
17185         (class BreakOnPass): New command "break-on-pass".
17186
17187 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
17188
17189         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
17190         getting olde.
17191
17192 2014-08-05  Richard Biener  <rguenther@suse.de>
17193
17194         PR rtl-optimization/61672
17195         * emit-rtl.h (mem_attrs_eq_p): Declare.
17196         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
17197         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
17198         * cfgcleanup.c (merge_memattrs): Likewise.
17199         Include emit-rtl.h.
17200
17201 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17202
17203         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
17204         rather than singleton vectors.
17205         (vqdmlsls_lane_s32): Likewise.
17206
17207 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17208
17209         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
17210         Use VSDQ_HSI mode iterator.
17211         (aarch64_sqrdmulh_laneq<mode>): Likewise.
17212         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
17213         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
17214         Use BUILTIN_VDQHS macro.
17215         (sqrdmulh_laneq): Likewise.
17216         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
17217         (vqdmlals_laneq_s32): Likewise.
17218         (vqdmlslh_laneq_s16): Likewise.
17219         (vqdmlsls_laneq_s32): Likewise.
17220         (vqdmulhh_laneq_s16): Likewise.
17221         (vqdmulhs_laneq_s32): Likewise.
17222         (vqrdmulhh_laneq_s16): Likewise.
17223         (vqrdmulhs_laneq_s32): Likewise.
17224
17225 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17226
17227         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
17228         (vmuld_laneq_f64): Likewise.
17229         (vmuls_laneq_f32): Likewise.
17230         (vmul_n_f64): Likewise.
17231         (vmuld_lane_f64): Reimplement in C.
17232         (vmuls_lane_f32): Likewise.
17233
17234 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17235
17236         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
17237         to reservation.
17238         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
17239
17240 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17241
17242         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
17243         (rbitsi2): Likewise.
17244         (*arm_rev): Set predicable and predicable_short_it attributes.
17245
17246 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17247
17248         * convert.c (convert_to_integer): Guard transformation to lrint by
17249         -fno-math-errno.
17250
17251 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
17252
17253         * config/aarch64/aarch64-builtins.c
17254         (aarch64_simd_builtin_type_mode): Delete.
17255         (v8qi_UP): Remap to V8QImode.
17256         (v4hi_UP): Remap to V4HImode.
17257         (v2si_UP): Remap to V2SImode.
17258         (v2sf_UP): Remap to V2SFmode.
17259         (v1df_UP): Remap to V1DFmode.
17260         (di_UP): Remap to DImode.
17261         (df_UP): Remap to DFmode.
17262         (v16qi_UP):V16QImode.
17263         (v8hi_UP): Remap to V8HImode.
17264         (v4si_UP): Remap to V4SImode.
17265         (v4sf_UP): Remap to V4SFmode.
17266         (v2di_UP): Remap to V2DImode.
17267         (v2df_UP): Remap to V2DFmode.
17268         (ti_UP): Remap to TImode.
17269         (ei_UP): Remap to EImode.
17270         (oi_UP): Remap to OImode.
17271         (ci_UP): Map to CImode.
17272         (xi_UP): Remap to XImode.
17273         (si_UP): Remap to SImode.
17274         (sf_UP): Remap to SFmode.
17275         (hi_UP): Remap to HImode.
17276         (qi_UP): Remap to QImode.
17277         (aarch64_simd_builtin_datum): Make mode a machine_mode.
17278         (VAR1): Build builtin name.
17279         (aarch64_init_simd_builtins): Remove dead code.
17280
17281 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
17282
17283         * graphite-isl-ast-to-gimple.c:
17284         (set_options): New function.
17285         (scop_to_isl_ast): Add calling of set_options.
17286
17287 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
17288
17289         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
17290         (analyze_iv_to_split_insn): Don't initialize them.
17291         (get_ivts_expr): Removed.
17292         (allocate_basic_variable, insert_base_initialization): Use
17293         SET_SRC instead of *get_ivts_expr.
17294         (split_iv): Use &SET_SRC instead of get_ivts_expr.
17295
17296 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
17297
17298         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
17299         (translate_isl_ast_for_loop): Add checking of the
17300         flag_loop_parallelize_all.
17301         (ast_build_before_for): New function.
17302         (scop_to_isl_ast): Add checking of the
17303         flag_loop_parallelize_all.
17304         * graphite-dependences.c: Move the defenition of the
17305         scop_get_dependences from graphite-optimize-isl.c to this file.
17306         (apply_schedule_on_deps): Add checking of the ux's emptiness.
17307         (carries_deps): Add checking of the x's value.
17308         * graphite-optimize-isl.c: Move the defenition of the
17309         scop_get_dependences to graphite-dependences.c.
17310         * graphite-poly.h: Add declarations of scop_get_dependences
17311         and carries_deps.
17312
17313 2014-08-04  Rohit  <rohitarulraj@freescale.com>
17314
17315         PR target/60102
17316         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
17317         names.
17318         (alt_reg_names): Likewise.
17319         (rs6000_dwarf_register_span): For SPE high registers, replace
17320         dwarf register numbers with GCC hard register numbers.
17321         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
17322         (rs6000_dbx_register_number): For SPE high registers, return dwarf
17323         register number for the corresponding GCC hard register number.
17324         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
17325         newly added GCC hard register numbers for SPE high registers.
17326         (DWARF_FRAME_REGISTERS):  Likewise.
17327         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
17328         (DWARF_FRAME_REGNUM): Likewise.
17329         (FIXED_REGISTERS): Likewise.
17330         (CALL_USED_REGISTERS): Likewise.
17331         (CALL_REALLY_USED_REGISTERS): Likewise.
17332         (REG_ALLOC_ORDER): Likewise.
17333         (enum reg_class): Likewise.
17334         (REG_CLASS_NAMES): Likewise.
17335         (REG_CLASS_CONTENTS): Likewise.
17336         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
17337
17338 2014-08-04  Richard Biener  <rguenther@suse.de>
17339
17340         * gimple-fold.h (gimple_fold_builtin): Remove.
17341         * gimple-fold.c (gimple_fold_builtin): Make static.
17342         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
17343         fold_stmt, not gimple_fold_builtin.
17344
17345 2014-08-04  Martin Liska <mliska@suse.cz>
17346
17347         * cgraph.h (csi_end_p): Removed.
17348         (csi_next): Likewise.
17349         (csi_node): Likewise.
17350         (csi_start): Likewise.
17351         (cgraph_node_in_set_p): Likewise.
17352         (cgraph_node_set_size): Likewise.
17353         (vsi_end_p): Likewise.
17354         (vsi_next): Likewise.
17355         (vsi_node): Likewise.
17356         (vsi_start): Likewise.
17357         (varpool_node_set_size): Likewise.
17358         (cgraph_node_set_nonempty_p): Likewise.
17359         (varpool_node_set_nonempty_p): Likewise.
17360         * cgraphunit.c (cgraph_process_new_functions): vec replaces
17361         cgraph_node_set.
17362         * ipa-inline-transform.c: Likewise.
17363         * ipa-utils.c (cgraph_node_set_new): Removed.
17364         (cgraph_node_set_add): Likewise.
17365         (cgraph_node_set_remove): Likewise.
17366         (cgraph_node_set_find): Likewise.
17367         (dump_cgraph_node_set): Likewise.
17368         (debug_cgraph_node_set): Likewise.
17369         (free_cgraph_node_set): Likewise.
17370         (varpool_node_set_new): Likewise.
17371         (varpool_node_set_add): Likewise.
17372         (varpool_node_set_remove): Likewise.
17373         (varpool_node_set_find): Likewise.
17374         (dump_varpool_node_set): Likewise.
17375         (free_varpool_node_set): Likewise.
17376         (debug_varpool_node_set): Likewise.
17377         * tree-emutls.c (struct tls_var_data):
17378         (emutls_index): Removed.
17379         (emutls_decl): Likewise.
17380         (gen_emutls_addr): Function implementation uses newly added
17381         hash_map<varpool_node *, tls_var_data>.
17382         (clear_access_vars): Likewise.
17383         (create_emultls_var): Likewise.
17384         (ipa_lower_emutls): Likewise.
17385         (reset_access): New function.
17386
17387 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
17388
17389         * config/i386/i386.c (ix86_option_override_internal): Add
17390         PTA_RDRND and PTA_MOVBE for bdver4.
17391
17392 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17393             James Greenhalgh  <james.greenhalgh@arm.com>
17394
17395         * doc/md.texi (clrsb): Document.
17396         (clz): Change reference to x into operand 1.
17397         (ctz): Likewise.
17398         (popcount): Likewise.
17399
17400 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17401
17402         PR target/61713
17403         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
17404         move to subtarget in serial version if result is ignored.
17405
17406 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17407             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17408
17409         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
17410         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
17411         (sched_analyze_insn): Update use of try_group_insn to
17412         sched_macro_fuse_insns.
17413         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
17414         arguments that are not conditional jumps.
17415
17416 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
17417
17418         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
17419         family information. Handle BTVER2 cpu with cpuid family value.
17420
17421 2014-08-04  Tom de Vries  <tom@codesourcery.com>
17422
17423         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
17424         (glibc_2_11_or_earlier): Document effective-target keywords.
17425
17426 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
17427
17428         * ipa-devirt.c (odr_type_warn_count): Add type.
17429         (possible_polymorphic_call_targets): Set it.
17430         (ipa_devirt): Use it.
17431
17432 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
17433
17434         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
17435         Document.
17436         * ipa-devirt.c: Include hash-map.h
17437         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
17438         (clear_speculation): Break out of ...
17439         (get_class_context): ... here; speed up handling obviously useless
17440         speculations.
17441         (odr_type_warn_count, decl_warn_count): New structures.
17442         (final_warning_record): New structure.
17443         (final_warning_records): New static variable.
17444         (possible_polymorphic_call_targets): Cleanup handling of
17445         speculative info; do not build speculation when user do not care;
17446         record info about warnings when asked for.
17447         (add_decl_warning): New function.
17448         (type_warning_cmp): New function.
17449         (decl_warning_cmp): New function.
17450         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
17451         (gate): Enable pass when warnings are requested.
17452         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
17453         options.
17454
17455 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
17456
17457         * hash-map.h (default_hashmap_traits::mark_key_deleted):
17458         Fix cast.
17459         (hash_map::remove): New method.
17460         (hash_map::traverse): New method.
17461         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
17462         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
17463         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
17464         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
17465         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
17466         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
17467         pointer_map.
17468
17469 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
17470
17471         * hash-set.h: new File.
17472         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
17473         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
17474         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
17475         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
17476         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
17477         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
17478         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
17479         varpool.c: Use hash_set instead of pointer_set.
17480
17481 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
17482
17483         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
17484
17485 2014-08-01  Jiong Wang <jiong.wang@arm.com>
17486
17487         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
17488         for frame access when strict_p is false.
17489
17490 2014-08-01  Renlin Li <renlin.li@arm.com>
17491 2014-08-01  Jiong Wang <jiong.wang@arm.com>
17492
17493         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
17494         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
17495         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
17496         Declaration.
17497         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
17498         predicate.
17499         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
17500         aarch64_mem_pair_offset.
17501
17502 2014-08-01  Jiong Wang <jiong.wang@arm.com>
17503
17504         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
17505         offset.
17506         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
17507         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
17508
17509 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
17510
17511         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
17512
17513 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
17514
17515         PR regression/61510
17516         * cgraphunit.c (analyze_functions): Use get_create rather than get
17517         for decls which are clones of abstract functions.
17518
17519 2014-08-01  Martin Liska  <mliska@suse.cz>
17520
17521         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
17522         * ipa-prop.h (count_formal_params): Global function created from static.
17523         * ipa-prop.c (count_formal_params): Likewise.
17524         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
17525         profiles for semantically equivalent functions.
17526         * passes.c (do_per_function): If we load body of a function
17527         during WPA, this condition should behave same.
17528         * varpool.c (ctor_for_folding): More tolerant assert for variable
17529         aliases created during WPA.
17530
17531 2014-08-01  Martin Liska  <mliska@suse.cz>
17532
17533         * doc/invoke.texi (Options That Control Optimization): Documentation
17534         for -foptimize-strlen introduced. Optimization levels default options
17535         fixed.
17536
17537 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
17538
17539         * opts.c (common_handle_option): Handle -fsanitize=alignment.
17540         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
17541         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
17542         type to bool.
17543         * stor-layout.h (min_align_of_type): New prototype.
17544         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
17545         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
17546         check.
17547         * ubsan.c: Include builtins.h.
17548         (ubsan_expand_bounds_ifn): Change return type to bool,
17549         always return true.
17550         (ubsan_expand_null_ifn): Change return type to bool, change
17551         argument to gimple_stmt_iterator *.  Handle both null and alignment
17552         sanitization, take type from ckind argument's type rather than
17553         first argument.
17554         (instrument_member_call): Removed.
17555         (instrument_mem_ref): Remove t argument, add mem and base arguments.
17556         Handle both null and alignment sanitization, don't say whole
17557         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
17558         call instead of 2 argument.
17559         (instrument_null): Adjust instrument_mem_ref caller.  Don't
17560         instrument calls here.
17561         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
17562         like SANITIZE_NULL.
17563         * stor-layout.c (min_align_of_type): New function.
17564         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
17565         Or it into SANITIZE_UNDEFINED.
17566         * doc/invoke.texi (-fsanitize=alignment): Document.
17567
17568 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17569
17570         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
17571
17572 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17573
17574         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
17575         inchash.
17576         (vn_reference_compute_hash): Dito.
17577         (vn_nary_op_compute_hash): Dito.
17578         (vn_phi_compute_hash): Dito.
17579         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
17580
17581 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17582
17583         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
17584         Rename to inchash:add_expr_commutative. Convert to inchash.
17585         (iterative_hash_hashable_expr): Rename to
17586         inchash:add_hashable_expr. Convert to inchash.
17587         (avail_expr_hash): Dito.
17588
17589 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17590
17591         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
17592         Convert to inchash.
17593
17594 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17595
17596         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
17597
17598 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17599
17600         * Makefile.in (OBJS): Add rtlhash.o
17601         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
17602         (loc_checksum): Dito.
17603         (loc_checksum_ordered): Dito.
17604         (hash_loc_operands): Dito.
17605         (hash_locs): Dito.
17606         (hash_loc_list): Dito.
17607         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
17608         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
17609         * rtlhash.c: New file.
17610         * rtlhash.h: New file.
17611
17612 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17613
17614         * inchash.h (inchash): Change inchash class to namespace.
17615         (class hash): ... Rename from inchash.
17616         (add_object): Move from macro to class template.
17617         * lto-streamer-out.c (hash_tree): Change inchash
17618         to inchash::hash.
17619         * tree.c (build_type_attribute_qual_variant): Dito.
17620         (type_hash_list): Dito.
17621         (attribute_hash_list): Dito.
17622         (iterative_hstate_expr): Rename to inchash::add_expr
17623         (build_range_type_1): Change inchash to inchash::hash
17624         and use hash::add_expr.
17625         (build_array_type_1): Dito.
17626         (build_function_type): Dito
17627         (build_method_type_directly): Dito.
17628         (build_offset_type): Dito.
17629         (build_complex_type): Dito.
17630         (make_vector_type): Dito.
17631         * tree.h (iterative_hash_expr): Dito.
17632
17633 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
17634
17635         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
17636
17637 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
17638
17639         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
17640         correct alphabetical position.
17641         (vpaddd_f64): Rewrite using builtins.
17642         (vpaddd_s64): Move to correct alphabetical position.
17643         (vpaddd_u64): New.
17644
17645 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
17646
17647         PR target/61844
17648         * config/sh/sh.c (sh_legitimate_address_p,
17649         sh_legitimize_reload_address): Handle reg+reg address modes when
17650         ALLOW_INDEXED_ADDRESS is false.
17651         * config/sh/predicates.md (general_movsrc_operand,
17652         general_movdst_operand): Likewise.
17653
17654 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
17655
17656         * config/aarch64/aarch64-builtins.c
17657         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
17658         BYTES_BIG_ENDIAN.
17659
17660 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
17661
17662         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
17663         the generated mask based on BYTES_BIG_ENDIAN.
17664         (aarch64_simd_check_vect_par_cnst_half): New.
17665         * config/aarch64/aarch64-protos.h
17666         (aarch64_simd_check_vect_par_cnst_half): New.
17667         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
17668         the check out to aarch64_simd_check_vect_par_cnst_half.
17669         (vect_par_cnst_lo_half): Likewise.
17670         * config/aarch64/aarch64-simd.md
17671         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
17672         (move_hi_quad_<mode>): Always generate a low mask.
17673
17674 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
17675
17676         * doc/invoke.texi (AVR Options): Add documentation about
17677         __AVR_DEVICE_NAME__ built-in macro.
17678
17679 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
17680
17681         PR target/61948
17682         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
17683         constraints are satisfied.
17684         (<shift>di3_neon): Likewise.
17685
17686 2014-07-31  Richard Biener  <rguenther@suse.de>
17687
17688         PR tree-optimization/61964
17689         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
17690         by structural equality.
17691
17692 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
17693
17694         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
17695         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
17696         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
17697         New enums.
17698         * gcc.c (sanitize_spec_function): Support new option.
17699         (SANITIZER_SPEC): Remove now redundant check.
17700         * opts.c (common_handle_option): Support new option.
17701         (finish_options): Check for incompatibilities.
17702         * toplev.c (process_options): Split userspace-specific checks.
17703
17704 2014-07-31  Richard Biener  <rguenther@suse.de>
17705
17706         * lto-streamer.h (struct output_block): Remove global.
17707         (struct data_in): Remove labels, num_named_labels and
17708         num_unnamed_labels.
17709         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
17710         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
17711
17712 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
17713
17714         PR c++/60517
17715         * common.opt (-Wreturn-local-addr): Moved from c.opt.
17716         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
17717         (isolate_path): New argument to avoid inserting a trap.
17718         (find_implicit_erroneous_behaviour): Handle returning the address
17719         of a local variable.
17720         (find_explicit_erroneous_behaviour): Likewise.
17721
17722 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
17723
17724         PR lto/61868
17725         * toplev.c (init_random_seed): Move piece of code never called to
17726         set_random_seed.
17727         (set_random_seed): see above.
17728
17729 2014-07-31  Tom de Vries  <tom@codesourcery.com>
17730
17731         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
17732
17733 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
17734
17735         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
17736         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
17737
17738 2014-07-31  Richard Biener  <rguenther@suse.de>
17739
17740         * data-streamer.h (streamer_write_data_stream): Declare here,
17741         renamed from ...
17742         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
17743         * lto-cgraph.c (lto_output_node): Adjust.
17744         (lto_output_varpool_node): Likewise.
17745         * data-streamer-out.c (streamer_string_index): Likewise.
17746         (streamer_write_data_stream, lto_append_block): Move from ...
17747         * lto-section-out.c (lto_output_data_stream,
17748         lto_append_block): ... here.
17749
17750 2014-07-30  Mike Stump  <mikestump@comcast.net>
17751
17752         * configure.ac: Also check for popen.
17753         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
17754         * configure: Regenerate.
17755         * config.in:  Regenerate.
17756
17757 2014-07-30  Martin Jambor  <mjambor@suse.cz>
17758
17759         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
17760         parameter to gimple.
17761
17762 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17763
17764         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
17765         address as second parameter to __tpf_eh_return routine.
17766
17767 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
17768
17769         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
17770         Thumb2.
17771
17772 2014-07-30  Tom Tromey  <tromey@redhat.com>
17773
17774         PR c/59855
17775         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
17776         * doc/extend.texi (Type Attributes): Document designated_init
17777         attribute.
17778
17779 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
17780
17781         * graphite-isl-ast-to-gimple.c:
17782         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
17783         (gcc_expression_from_isl_expression): Pass type to
17784         gcc_expression_from_isl_ast_expr_id.
17785
17786 2014-07-30  Richard Biener  <rguenther@suse.de>
17787
17788         * lto-streamer.h (lto_write_data): New function.
17789         * langhooks.c (lhd_append_data): Do not free block.
17790         * lto-section-out.c (lto_write_data): New function writing
17791         raw data to the current section.
17792         (lto_write_stream): Adjust for langhook semantic change.
17793         (lto_destroy_simple_output_block): Write header directly.
17794         * lto-opts.c (lto_write_options): Write options directly.
17795         * lto-streamer-out.c (produce_asm): Write heaeder directly.
17796         (lto_output_toplevel_asms): Likewise.
17797         (copy_function_or_variable): Copy data directly.
17798         (write_global_references): Output index table directly.
17799         (lto_output_decl_state_refs): Likewise.
17800         (write_symbol): Write data directly.
17801         (produce_symtab): Adjust.
17802         (produce_asm_for_decls): Output header and refs directly.
17803
17804 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
17805
17806         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
17807         to speculative_targets
17808         (get_class_context): Fix handling of contextes without outer type;
17809         avoid matching non-polymorphic types in LTO.
17810         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
17811         parameter to speculative_targetsp; handle speculation.
17812         (dump_possible_polymorphic_call_targets): Update dumping.
17813
17814 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
17815
17816         * common.opt (Wodr): Enable by default.
17817
17818 2014-07-29  Olivier Hainque  <hainque@adacore.com>
17819
17820         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
17821
17822 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
17823
17824         PR bootstrap/61914
17825         * gengtype.c (strtoken): New function.
17826         (create_user_defined_type): Replace strtok with strtoken.
17827
17828 2014-07-29  Nathan Sidwell  <nathan@acm.org>
17829
17830         * gcov-io.c (gcov_var): Make hidden.
17831         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
17832         (gcov_do_dump): Declare.
17833         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
17834
17835 2014-07-29  Martin Jambor  <mjambor@suse.cz>
17836
17837         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
17838         parameter to gimple.
17839         (sra_modify_assign): Likewise.
17840
17841 2014-07-29  Richard Biener  <rguenther@suse.de>
17842
17843         PR middle-end/52478
17844         * expr.c (expand_expr_real_2): Revert last change.
17845
17846 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
17847
17848         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
17849         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
17850         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
17851         call.
17852         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
17853         (contains_type_p): Forward declare.
17854         (polymorphic_call_target_hasher::hash): Hash speculative info.
17855         (polymorphic_call_target_hasher::equal): Compare speculative info.
17856         (get_class_context): Handle speuclation.
17857         (contains_type_p): Update.
17858         (get_polymorphic_call_info_for_decl): Update.
17859         (walk_ssa_copies): Break out from ...
17860         (get_polymorphic_call_info): ... here; set speculative context
17861         before giving up.
17862         * ipa-prop.c (ipa_write_indirect_edge_info,
17863         ipa_read_indirect_edge_info): Stream speculative context.
17864         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
17865         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
17866         SPECULATIVE_MAYBE_DERIVED_TYPE).
17867         (possible_polymorphic_call_targets overriders): Update.
17868         (dump_possible_polymorphic_call_targets overriders): Update.
17869         (dump_possible_polymorphic_call_target_p overriders): Update.
17870
17871 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
17872
17873         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
17874         ipa-devirt path; fix thinko there.
17875
17876 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
17877
17878         * config/i386/i386.c (ix86_return_in_memory): Replace one
17879         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
17880
17881 2014-07-28  Marek Polacek  <polacek@redhat.com>
17882
17883         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
17884
17885 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
17886
17887         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
17888         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
17889         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
17890         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
17891         (USE_LD_AS_NEEDED): Likewise.
17892         (ASM_APP_ON): Likewise.
17893         (ASM_APP_OFF): Likewise.
17894         (TARGET_POSIX_IO): Likewise.
17895         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
17896         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
17897         (USE_LD_AS_NEEDED): Likewise.
17898         (ASM_APP_ON): Likewise.
17899         (ASM_APP_OFF): Likewise.
17900         (TARGET_POSIX_IO): Likewise.
17901
17902 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17903
17904         PR middle-end/61734
17905         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
17906         operators other than the equality operators.
17907
17908 2014-07-28  Richard Biener  <rguenther@suse.de>
17909
17910         PR middle-end/52478
17911         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
17912         sure to register SImode ones, not only >= word_mode ones.
17913         * expr.c (expand_expr_real_2): When expanding -ftrapv
17914         binops do not use OPTAB_LIB_WIDEN.
17915
17916 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
17917
17918         PR middle-end/61919
17919         * tree-outof-ssa.c (insert_partition_copy_on_edge)
17920         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
17921         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
17922         inserting them in the insn stream.
17923
17924 2014-07-28  Marek Polacek  <polacek@redhat.com>
17925
17926         PR middle-end/61913
17927         * common.opt (Wodr): Add Var.
17928
17929 2014-07-28  Richard Biener  <rguenther@suse.de>
17930
17931         PR tree-optimization/61921
17932         * tree-ssa-structalias.c (create_variable_info_for_1): Check
17933         if there is a varpool node before dereferencing it.
17934
17935 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
17936
17937         * graphite-sese-to-poly.c:
17938         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
17939         id of the pbb), which contains pointer to the pbb1.
17940
17941         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
17942
17943 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
17944
17945         * graphite-isl-ast-to-gimple.c:
17946         (graphite_create_new_guard): New function.
17947         (translate_isl_ast_node_if): New function.
17948         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
17949
17950         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
17951
17952 2014-07-27  Anthony Green  <green@moxielogic.com>
17953
17954         * config.gcc: Add moxie-*-moxiebox* configuration.
17955         * config/moxie/moxiebox.h: New file.
17956
17957 2014-07-26  Andrew Pinski  <apinski@cavium.com>
17958
17959         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
17960         from the read only register.
17961
17962 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
17963
17964         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
17965         as the allocation class if it isn't likely to be spilled.
17966
17967 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
17968
17969         * rtl.h (tls_referenced_p): Declare.
17970         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
17971         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
17972         (mips_cannot_force_const_mem): Use tls_referenced_p.
17973         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
17974         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
17975         instead of pa_tls_referenced_p.
17976         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
17977         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
17978         (pa_legitimate_constant_p): Likewise.
17979         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
17980         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
17981         (rs6000_cannot_force_const_mem, rs6000_emit_move)
17982         (rs6000_address_for_altivec): Use tls_referenced_p instead of
17983         rs6000_tls_referenced_p.
17984         (rs6000_tls_symbol_ref_1): Delete.
17985
17986 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
17987
17988         PR target/44551
17989         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
17990         Optimize inverse of a VEC_CONCAT.
17991
17992 2014-07-25  Xinliang David Li  <davidxl@google.com>
17993
17994         * params.def: New parameter.
17995         * coverage.c (get_coverage_counts): Check new flag.
17996         (coverage_compute_profile_id): Check new flag.
17997         (coverage_begin_function): Check new flag.
17998         (coverage_end_function): Check new flag.
17999         * value-prof.c (coverage_node_map_initialized_p): New function.
18000         (init_node_map): Populate map with all functions.
18001         * doc/invoke.texi: Document new parameter.
18002
18003 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
18004             Richard Biener <rguenther@suse.de>
18005
18006         * lto-streamer-out.c (struct sccs): Turn to ...
18007         (class DFS): ... this one; refactor the DFS walk so it can
18008         be re-done on per-SCC basis.
18009         (DFS::DFS): New constructor.
18010         (DFS::~DFS): New destructor.
18011         (hash_tree): Add new MAP argument holding in-SCC hash values;
18012         remove POINTER_TYPE hashing hack.
18013         (scc_entry_compare): Rename to ...
18014         (DFS::scc_entry_compare): ... this one.
18015         (hash_scc): Rename to ...
18016         (DFS::hash_scc): ... this one; pass output_block instead
18017         of streamer_cache; work harder to get unique and stable SCC
18018         hashes.
18019         (DFS_write_tree): Rename to ...
18020         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
18021         (lto_output_tree): Update.
18022
18023 2014-07-25  Andi Kleen  <ak@linux.intel.com>
18024
18025         * lto-streamer-out.c (hash_tree): Convert to inchash.
18026
18027 2014-07-25  Andi Kleen  <ak@linux.intel.com>
18028
18029         * tree.c (build_type_attribute_qual_variant): Use inchash.
18030         (type_hash_list): Dito.
18031         (attribute_hash_list): Dito
18032         (iterative_hstate_expr): Dito.
18033         (iterative_hash_expr): Dito.
18034         (build_range_type_1): Dito.
18035         (build_array_type_1): Dito.
18036         (build_function_type): Dito.
18037         (build_method_type_directly): Dito.
18038         (build_offset_type): Dito.
18039         (build_complex_type): Dito.
18040         (make_vector_type): Dito.
18041         * tree.h (iterative_hash_expr): Add compat wrapper.
18042         (iterative_hstate_expr): Add.
18043
18044 2014-07-25  Andi Kleen  <ak@linux.intel.com>
18045
18046         * Makefile.in (OBJS): Add inchash.o.
18047         (PLUGIN_HEADERS): Add inchash.h.
18048         * ipa-devirt.c: Include inchash.h.
18049         * lto-streamer-out.c: Dito.
18050         * tree-ssa-dom.c: Dito.
18051         * tree-ssa-pre.c: Dito.
18052         * tree-ssa-sccvn.c: Dito.
18053         * tree-ssa-tail-merge.c: Dito.
18054         * asan.c: Dito.
18055         * tree.c (iterative_hash_hashval_t): Move to ...
18056         (iterative_hash_host_wide_int): Move to ...
18057         * inchash.c: Here. New file.
18058         * tree.h (iterative_hash_hashval_t): Move to ...
18059         (iterative_hash_host_wide_int): Move to ...
18060         * inchash.h: Here. New file.
18061
18062 2014-07-25  Richard Biener  <rguenther@suse.de>
18063
18064         PR middle-end/61762
18065         PR middle-end/61894
18066         * fold-const.c (native_encode_int): Add and handle offset
18067         parameter to do partial encodings of expr.
18068         (native_encode_fixed): Likewise.
18069         (native_encode_real): Likewise.
18070         (native_encode_complex): Likewise.
18071         (native_encode_vector): Likewise.
18072         (native_encode_string): Likewise.
18073         (native_encode_expr): Likewise.
18074         * fold-const.c (native_encode_expr): Add offset parameter
18075         defaulting to -1.
18076         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
18077         (fold_ctor_reference): Handle all reads from tcc_constant
18078         ctors.
18079
18080 2014-07-25  Richard Biener  <rguenther@suse.de>
18081
18082         * tree-inline.c (estimate_move_cost): Mark speed_p argument
18083         as possibly unused.
18084
18085 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
18086
18087         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
18088
18089 2014-07-24  Kyle McMartin  <kyle@redhat.com>
18090
18091         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
18092
18093 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18094
18095         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
18096         Add prototype.
18097         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
18098         function.
18099         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
18100         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
18101         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
18102
18103 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18104
18105         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
18106         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
18107         aggregate types.  Instead, *all* aggregate types, except for single-
18108         element or homogeneous float/vector aggregates, are quadword-aligned
18109         if required by their type alignment.  Issue -Wpsabi note when a type
18110         is now treated differently than before.
18111
18112 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18113
18114         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
18115         does not fit fully into floating-point registers, and there is still
18116         space in the register parameter area, use GPRs to pass those parts
18117         of the argument.  Issue -Wpsabi note if any parameter is now treated
18118         differently than before.
18119         (rs6000_arg_partial_bytes): Update.
18120
18121 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
18122
18123         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
18124
18125 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
18126
18127         * rtl.h (target_rtl): Remove lang_dependent_initialized.
18128         * toplev.c (initialize_rtl): Don't use it.  Move previously
18129         "language-dependent" calls to...
18130         (backend_init): ...here.
18131         (lang_dependent_init_target): Don't set lang_dependent_initialized.
18132         Assert that RTL initialization hasn't happend yet.
18133
18134 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
18135
18136         PR rtl-optimization/61629
18137         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
18138         they have already been initialized.
18139
18140 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
18141
18142         PR middle-end/61268
18143         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
18144         DECL_INCOMING_RTL and entry_parm.
18145         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
18146         * calls.c (load_register_parameters): Likewise argument values.
18147         (emit_library_call_value_1, store_one_arg): Likewise argument
18148         save areas.
18149         * config/i386/i386.c (assign_386_stack_local): Likewise the local
18150         stack slot.
18151         * explow.c (validize_mem): Modify the argument in-place.
18152
18153 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
18154
18155         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
18156         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
18157
18158 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
18159
18160         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
18161         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
18162
18163 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
18164
18165         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
18166         (aarch64_save_callee_saves): New parameter "skip_wb".
18167         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
18168
18169 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
18170
18171         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
18172         "wb_candidate2".
18173         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
18174
18175 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
18176
18177         * graphite-isl-ast-to-gimple.c:
18178         (graphite_create_new_loop): Add calling of isl_id_free to properly
18179         decrement reference counts.
18180
18181         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
18182
18183 2014-07-24  Martin Liska  <mliska@suse.cz>
18184         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
18185         function used.
18186         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
18187         (rs6000_code_end): Likewise.
18188
18189 2014-07-24  Martin Liska  <mliska@suse.cz>
18190
18191         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
18192         symtab_node funtion used.
18193         (rs6000_xcoff_declare_object_name): Likewise.
18194
18195 2014-07-24  Martin Liska  <mliska@suse.cz>
18196
18197         * cgraphunit.c (compile): Correct function used.
18198
18199 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
18200
18201         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
18202         as non-indexable.
18203
18204 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
18205
18206         PR lto/61802
18207         * varasm.c (bss_initializer_p): Handle offlined ctors.
18208         (align_variable, get_variable_align): Likewise.
18209         (make_decl_one_only): Likewise.
18210         (default_binds_local_p_1): Likewise.
18211         (decl_binds_to_current_def_p): Likewise.
18212         (get_variable_section): Get constructor if it is offlined.
18213         (assemble_variable_contents): Sanity check that the caller
18214         streamed in the ctor in LTO.
18215
18216 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
18217
18218         * graphite-isl-ast-to-gimple.c:
18219         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
18220         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
18221         isl_ast_op_pdiv_r to the different case.
18222
18223         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
18224
18225 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18226
18227         PR middle-end/61876
18228         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
18229         when flag_errno_math is on.
18230
18231 2014-07-24  Martin Liska  <mliska@suse.cz>
18232
18233         * cgraph.h (varpool_node):
18234         (availability get_availability (void)):
18235         created from cgraph_variable_initializer_availability
18236         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
18237         created from: cgraph_variable_initializer_availability
18238         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
18239         (void finalize_named_section_flags (void)):
18240         created from varpool_finalize_named_section_flags
18241         (bool assemble_decl (void)): created from varpool_assemble_decl
18242         (void analyze (void)): created from varpool_analyze_node
18243         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
18244         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
18245         (void remove_initializer (void)): created from varpool_remove_initializer
18246         (tree get_constructor (void)): created from varpool_get_constructor
18247         (bool externally_visible_p (void)): created from varpool_externally_visible_p
18248         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
18249         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
18250         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
18251         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
18252         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
18253         (static bool output_variables (void)): created from varpool_output_variables
18254         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
18255         created from varpool_extra_name_alias
18256         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
18257         (static void dump_varpool (FILE *f)): created from dump_varpool
18258         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
18259         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
18260         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
18261         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
18262         (void assemble_aliases (void)): created from assemble_aliases
18263
18264 2014-07-24  Martin Liska  <mliska@suse.cz>
18265
18266         * cgraph.h (symtab_node):
18267         (void register_symbol (void)): created from symtab_register_node
18268         (void remove (void)): created from symtab_remove_node
18269         (void dump (FILE *f)): created from dump_symtab_node
18270         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
18271         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
18272         (struct ipa_ref *add_reference (symtab_node *referred_node,
18273         enum ipa_ref_use use_type)): created from add_reference
18274         (struct ipa_ref *add_reference (symtab_node *referred_node,
18275         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
18276         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
18277         gimple stmt)): created from maybe_add_reference
18278         (bool semantically_equivalent_p (symtab_node *target)): created from
18279         symtab_semantically_equivalent_p
18280         (void remove_from_same_comdat_group (void)): created from
18281         remove_from_same_comdat_group
18282         (void add_to_same_comdat_group (symtab_node *old_node)): created from
18283         symtab_add_to_same_comdat_group
18284         (void dissolve_same_comdat_group_list (void)): created from
18285         symtab_dissolve_same_comdat_group_list
18286         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
18287         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
18288         created from symtab_alias_ultimate_target
18289         (inline symtab_node *next_defined_symbol (void)): created from
18290         symtab_next_defined_symbol
18291         (bool resolve_alias (symtab_node *target)): created from
18292         symtab_resolve_alias
18293         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
18294         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
18295         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
18296         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
18297         (void set_section (const char *section)): created from set_section_1
18298         (enum availability get_availability (void)): created from symtab_node_availability
18299         (void make_decl_local (void)): created from symtab_make_decl_local
18300         (bool real_symbol_p (void)): created from symtab_read_node
18301         (can_be_discarded_p (void)): created from symtab_can_be_discarded
18302         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
18303         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
18304         symtab_in_same_comdat_p;
18305         (bool address_taken_from_non_vtable_p (void)): created from
18306         address_taken_from_non_vtable_p
18307         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
18308         (static void dump_table (FILE *)): created from dump_symtab
18309         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
18310         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
18311         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
18312         symtab_used_from_object_file_p
18313         (void dump_base (FILE *)): created from dump_symtab_base
18314         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
18315         (void unregister (void)): created from symtab_unregister_node
18316         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
18317         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
18318         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
18319         symtab_nonoverwritable_alias_1
18320         * cgraph.h (cgraph_node):
18321         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
18322         created from cgraph_remove_node_and_inline_clones
18323         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
18324         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
18325         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
18326         (cgraph_node *function_symbol (enum availability *avail = NULL)):
18327         created from cgraph_function_node
18328         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
18329         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
18330         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
18331         created from cgraph_create_clone
18332         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
18333         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
18334         created from cgraph_create_virtual_clone
18335         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
18336         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
18337         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
18338         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
18339         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
18340         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
18341         created from cgraph_function_version_info
18342         (struct cgraph_function_version_info *insert_new_function_version (void)):
18343         created from insert_new_cgraph_node_version
18344         (struct cgraph_function_version_info *function_version (void)): created from
18345         get_cgraph_node_version
18346         (void analyze (void)): created from analyze_function
18347         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
18348         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
18349         tree real_alias) cgraph_add_thunk
18350         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
18351         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
18352         created from cgraph_function_or_thunk_node
18353         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
18354         created from expand_thunk
18355         (void reset (void)): created from cgraph_reset_node
18356         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
18357         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
18358         (void remove (void)): created from cgraph_remove_node
18359         (void dump (FILE *f)): created from dump_cgraph_node
18360         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
18361         (bool get_body (void)): created from cgraph_get_body
18362         (void release_body (void)): created from cgraph_release_function_body
18363         (void unnest (void)): created from cgraph_unnest_node
18364         (void make_local (void)): created from cgraph_make_node_local
18365         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
18366         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
18367         gcov_type count, int freq)): created from cgraph_create_edge
18368         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
18369         gcov_type count, int freq)): created from cgraph_create_indirect_edge
18370         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
18371         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
18372         created from cgraph_create_edge_including_clones
18373         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
18374         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
18375         (void remove_callers (void)): created from cgraph_node_remove_callers
18376         (void remove_callees (void)): created from cgraph_node_remove_callees
18377         (enum availability get_availability (void)): created from cgraph_function_body_availability
18378         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
18379         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
18380         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
18381         (void call_duplication_hooks (cgraph_node *node2)): created from
18382         cgraph_call_node_duplication_hooks
18383         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
18384         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
18385         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
18386         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
18387         (void call_function_insertion_hooks (void)):
18388         created from cgraph_call_function_insertion_hooks
18389         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
18390         (bool local_p (void)): created from cgraph_local_node
18391         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
18392         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
18393         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
18394         (inline bool only_called_directly_or_aliased_p (void)):
18395         created from cgraph_only_called_directly_or_aliased_p
18396         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
18397         created from cgraph_will_be_removed_from_program_if_no_direct_calls
18398         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
18399         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
18400         (bool can_remove_if_no_direct_calls_p (void)):
18401         created from cgraph_can_remove_if_no_direct_calls_p
18402         (inline bool has_gimple_body_p (void)):
18403         created from cgraph_function_with_gimple_body_p
18404         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
18405         (static void dump_cgraph (FILE *f)): created from dump_cgraph
18406         (static inline void debug_cgraph (void)): created from debug_cgraph
18407         (static void record_function_versions (tree decl1, tree decl2)):
18408         created from record_function_versions
18409         (static void delete_function_version (tree decl)):
18410         created from delete_function_version
18411         (static void add_new_function (tree fndecl, bool lowered)):
18412         created from cgraph_add_new_function
18413         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
18414         (static cgraph_node * create (tree decl)): created from cgraph_create_node
18415         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
18416         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
18417         (static cgraph_node *get_for_asmname (tree asmname)):
18418         created from cgraph_node_for_asm
18419         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
18420         created from cgraph_same_body_alias
18421         (static bool used_from_object_file_p_worker (cgraph_node *node,
18422         void *): new function
18423         (static bool non_local_p (cgraph_node *node, void *)):
18424         created from cgraph_non_local_node_p_1
18425         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
18426         created from verify_cgraph
18427         (static bool make_local (cgraph_node *node, void *)):
18428         created from cgraph_make_node_local
18429         (static cgraph_node *create_alias (tree alias, tree target)):
18430         created from cgraph_create_function_alias
18431         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
18432         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
18433         created from cgraph_create_edge_1
18434         * cgraph.h (varpool_node):
18435         (void remove (void)): created from varpool_remove_node
18436         (void dump (FILE *f)): created from dump_varpool_node
18437
18438 2014-07-24  Richard Biener  <rguenther@suse.de>
18439
18440         PR ipa/61823
18441         * tree-ssa-structalias.c (create_variable_info_for_1):
18442         Use varpool_get_constructor.
18443         (create_variable_info_for): Likewise.
18444
18445 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
18446
18447         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
18448         subtract outgoing area size when restoring stack_pointer_rtx.
18449
18450 2014-07-24  Nick Clifton  <nickc@redhat.com>
18451
18452         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
18453         that operations are taking place in parallel.
18454         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
18455
18456 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
18457
18458         * omp-low.c (extract_omp_for_data): Add missing break statement.
18459
18460 2014-07-24  Richard Biener  <rguenther@suse.de>
18461
18462         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
18463         * tree-inline.c (estimate_move_cost): Add speed_p parameter
18464         and adjust MOVE_RATIO query accordingly.
18465         (estimate_num_insns): Adjust callers.
18466         * ipa-prop.c (ipa_populate_param_decls): Likewise.
18467         * ipa-cp.c (gather_context_independent_values,
18468         estimate_local_effects): Likewise.
18469         * ipa-split.c (consider_split): Likewise.
18470
18471 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
18472
18473         * config/i386/driver-i386.c: Remove names of unused arguments and
18474         unnecessary unused attributes.
18475         * config/i386/host-mingw32.c: Likewise.
18476         * config/i386/i386.c: Likewise.
18477         * config/i386/winnt-stubs.c: Likewise.
18478         * config/i386/winnt.c: Likewise.
18479
18480 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18481
18482         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
18483         (aarch64_gen_loadwb_pair): New helper function.
18484         (aarch64_expand_epilogue): Simplify code using new helper functions.
18485         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
18486
18487 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18488
18489         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
18490         (aarch64_gen_storewb_pair): New helper function.
18491         (aarch64_expand_prologue): Simplify code using new helper functions.
18492         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
18493
18494 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18495
18496         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
18497         Rename to aarch64_save_callee_saves, remove restore code.
18498         (aarch64_restore_callee_saves): New function.
18499
18500 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18501
18502         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
18503         (aarch64_save_callee_saves): New function to handle reg save
18504         for both core and vectore regs.
18505
18506 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18507
18508         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
18509         (aarch64_gen_store_pair): New helper function.
18510         (aarch64_save_or_restore_callee_save_registers)
18511         (aarch64_save_or_restore_fprs): Use new helper functions.
18512
18513 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18514
18515         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
18516         (aarch64_save_or_restore_callee_save_registers)
18517         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
18518
18519 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18520
18521         * config/aarch64/aarch64.c
18522         (aarch64_save_or_restore_callee_save_registers)
18523         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
18524
18525 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18526
18527         * config/aarch64/aarch64.c
18528         (aarch64_save_or_restore_callee_save_registers)
18529         (aarch64_save_or_restore_fprs): Remove 'increment'.
18530
18531 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18532
18533         * config/aarch64/aarch64.c
18534         (aarch64_save_or_restore_callee_save_registers)
18535         (aarch64_save_or_restore_fprs): Use register offset in
18536         cfun->machine->frame.reg_offset.
18537
18538 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18539
18540         * config/aarch64/aarch64.c
18541         (aarch64_save_or_restore_callee_save_registers)
18542         (aarch64_save_or_restore_fprs): Remove base_rtx.
18543
18544 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18545
18546         * config/aarch64/aarch64.c
18547         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
18548         to 'start_offset'.  Remove local variable 'start_offset'.
18549
18550 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18551
18552         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
18553         type to HOST_WIDE_INT.
18554
18555 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18556
18557         * config/aarch64/aarch64.c (aarch64_expand_prologue)
18558         (aarch64_save_or_restore_fprs)
18559         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
18560
18561 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18562
18563         * config/arm/t-rtems-eabi: Add
18564         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
18565         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
18566         mbig-endian/mthumb/march=armv7-r, and
18567         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
18568         multilibs.
18569
18570 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18571             Chris Johns <chrisj@rtems.org>
18572             Joel Sherrill <joel.sherrill@oarcorp.com>
18573
18574         * config.gcc: Add nios2-*-rtems*.
18575         * config/nios2/rtems.h: New file.
18576         * gcc/config/nios2/t-rtems: New file.
18577
18578 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
18579
18580         PR target/61396
18581         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
18582         constant numbers, not general constants.
18583         (rs6000_expand_vector_init): Ditto.
18584
18585 2014-07-23  Nathan Sidwell  <nathan@acm.org>
18586
18587         * gcov-tool.c (gcov_list): Declare here.
18588         (set_gcov_list): Remove.
18589         (gcov_output_files): Set gcov_list directly.
18590
18591 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
18592
18593         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
18594
18595 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18596
18597         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
18598         callee-saved registers are available for padding purpose
18599         and r3 is not mandatory, then prefer use those callee-saved
18600         instead of r3.
18601
18602 2014-07-23  Richard Biener  <rguenther@suse.de>
18603
18604         * params.def (PARAM_MAX_COMBINE_INSNS): New.
18605         * combine.c: Include statistics.h and params.h.
18606         (combine_instructions): Guard three and four insn combines
18607         with max-combine-insns value.  Record statistics for combines
18608         performed.
18609         * doc/invoke.texi (max-combine-insns): Document new param.
18610
18611 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
18612
18613         * graphite-isl-ast-to-gimple.c:
18614         (translate_isl_ast_node_block): New function.
18615         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
18616
18617         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
18618         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
18619
18620 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
18621
18622         * graphite-isl-ast-to-gimple.c:
18623         (get_max_schedule_dimensions): New function.
18624         (extend_schedule): Likewise.
18625         (generate_isl_schedule): Add calling of extend_schedule and
18626         get_max_schedule_dimensions.
18627
18628 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18629
18630         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
18631         (case UNSPEC): Handle UNSPEC_RBIT.
18632
18633 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18634
18635         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
18636         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
18637
18638 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18639
18640         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
18641
18642 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
18643
18644         * graphite-isl-ast-to-gimple.c:
18645         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
18646         (ivs_params_clear):
18647         (build_iv_mapping): New function.
18648         (translate_isl_ast_node_user): Likewise.
18649         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
18650
18651         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
18652         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
18653         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
18654
18655 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
18656
18657         PR target/55701
18658         * config/arm/arm.md (setmem): New pattern.
18659         * config/arm/arm-protos.h (struct tune_params): New fields.
18660         (arm_gen_setmem): New prototype.
18661         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
18662         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
18663         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
18664         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
18665         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
18666         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
18667         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
18668         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
18669         (arm_const_inline_cost): New function.
18670         (arm_block_set_max_insns): New function.
18671         (arm_block_set_non_vect_profit_p): New function.
18672         (arm_block_set_vect_profit_p): New function.
18673         (arm_block_set_unaligned_vect): New function.
18674         (arm_block_set_aligned_vect): New function.
18675         (arm_block_set_unaligned_non_vect): New function.
18676         (arm_block_set_aligned_non_vect): New function.
18677         (arm_block_set_vect, arm_gen_setmem): New functions.
18678
18679 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
18680
18681         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
18682
18683 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
18684
18685         PR target/61855
18686         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
18687         out of #ifdef __OPTIMIZE__.
18688
18689 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
18690
18691         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
18692         different trapping status if -fnon-call-exceptions is enabled.
18693
18694 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
18695
18696         * expr.c (store_field): Handle VOIDmode for calls that return values
18697         in multiple locations.
18698
18699 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18700
18701         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
18702         (altivec_vsldoi_<mode>): Likewise.
18703
18704 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
18705
18706         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
18707         to the number of characters in the line.
18708
18709 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
18710
18711         * graphite-isl-ast-to-gimple.c: Add using of
18712         build_nonstandard_integer_type instead of int128_integer_type_node.
18713
18714 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
18715
18716         * toplev.c (output_stack_usage): Adjust the location of the warning.
18717
18718 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
18719
18720         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
18721         (*membar_storeload): Disable for LEON3.
18722
18723 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18724
18725         PR rtl-optimization/61461
18726         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
18727
18728 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
18729
18730         PR target/61794
18731         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
18732         Fix instruction constraint.
18733         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
18734
18735 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
18736
18737         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
18738
18739 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
18740
18741         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
18742         GNU coding standards.
18743         (nds32_register_move_cost): Likewise.
18744         (nds32_memory_move_cost): Likewise.
18745         (nds32_address_cost): Likewise.
18746
18747 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
18748
18749         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
18750
18751 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
18752
18753         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
18754         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
18755         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
18756         (HAVE_sync_compare_and_swapqi): Define.
18757         (HAVE_sync_compare_and_swaphi): Likewise.
18758         (HAVE_sync_compare_and_swapsi): Likewise.
18759
18760 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
18761
18762         * config/mips/p5600.md: Add missing cpu tests.
18763
18764 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18765
18766         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
18767         (vmla_f64): Likewise.
18768         (vfms_f64): Likewise.
18769         (vmls_f64): Likewise.
18770
18771 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18772
18773         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
18774         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
18775
18776 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18777
18778         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
18779         (vmlal_high_lane_s32): Likewise.
18780         (vmlal_high_lane_u16): Likewise.
18781         (vmlal_high_lane_u32): Likewise.
18782         (vmlsl_high_lane_s16): Likewise.
18783         (vmlsl_high_lane_s32): Likewise.
18784         (vmlsl_high_lane_u16): Likewise.
18785         (vmlsl_high_lane_u32): Likewise.
18786
18787 2014-07-17  Terry Guo  <terry.guo@arm.com>
18788
18789         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
18790         (alus_reg): Renamed to alus_sreg.
18791         * config/arm/arm-fixed.md: Change type of non-dsp instructions
18792         from alu_reg to alu_sreg.  Change type of dsp instructions from
18793         alu_reg to alu_dsp_reg.
18794         * config/arm/thumb1.md: Likewise.
18795         * config/arm/thumb2.md: Likewise.
18796         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
18797         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
18798         with alu_sreg and alus_sreg.
18799         * config/arm/arm1026ejs.md (alu_op): Likewise.
18800         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
18801         * config/arm/arm926ejs.md (9_alu_op): Likewise.
18802         * config/arm/fa526.md (526_alu_op): Likewise.
18803         * config/arm/fa606te.md (606te_alu_op): Likewise.
18804         * config/arm/fa626te.md (626te_alu_op): Likewise.
18805         * config/arm/fa726te.md (726te_alu_op): Likewise.
18806         * config/arm/fmp626.md (mp626_alu_op): Likewise.
18807         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
18808         alu_sreg, alu_dsp_reg and alus_sreg.
18809         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
18810         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
18811         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
18812         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
18813         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
18814         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
18815         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
18816         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
18817         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
18818         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
18819         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
18820         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
18821         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
18822         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
18823         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
18824         alus_reg to alus_sreg.
18825
18826 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
18827
18828         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
18829         infinity format.
18830
18831 2014-07-17  Richard Biener  <rguenther@suse.de>
18832
18833         PR rtl-optimization/61801
18834         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
18835         don't set reg_pending_barrier if it appears in a debug-insn.
18836
18837 2014-07-16  DJ Delorie  <dj@redhat.com>
18838
18839         * config/rx/rx.c (rx_option_override): Fix alignment values.
18840         (rx_align_for_label): Likewise.
18841
18842 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
18843
18844         PR target/61737.
18845         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
18846         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
18847         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
18848         functions.
18849         (cris_print_index, cris_print_operand, cris_constant_index_p)
18850         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
18851         (cris_address_cost): Ditto last CONSTANT_P.
18852         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
18853         callers changed.  Yield cris_offsettable_symbol for non-PIC
18854         constant symbolic expressions including labels.  Yield cris_unspec
18855         for all unspecs.
18856         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
18857         target to pic_offset_table_rtx for calls that will likely go
18858         through PLT, const0_rtx when they can't.  All callers changed.
18859         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
18860         symbolic expressions to be PICified.  Remove second, redundant,
18861         assert on can_create_pseudo_p returning non-zero.  Use
18862         replace_equiv_address_nv, not replace_equiv_address, for final
18863         operand update.
18864         * config/cris/cris.md ("movsi"): Move variable t to pattern
18865         toplevel. Adjust assert for new cris_symbol_type member.  Use
18866         CONSTANT_P instead of CONSTANT_ADDRESS_P.
18867         ("*movsi_internal") <case 9>: Make check for valid unspec operands
18868         for lapc stricter.
18869         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
18870         ("call", "call_value"): Use second incoming operand as a marker
18871         for pic-offset-table-register being used.
18872         ("*expanded_call_non_v32", "*expanded_call_v32")
18873         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
18874         second incoming operand to CALL, match cris_call_type_marker.
18875         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
18876         ("*expanded_call_side"): Ditto.  Fix typo in comment.
18877         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
18878         CONSTANT_P.
18879         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
18880         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
18881         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
18882         users changed.  Add members cris_offsettable_symbol and cris_unspec.
18883         (cris_symbol_type): Rename from cris_pic_symbol_type.
18884         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
18885         just CONSTANT_P.
18886         * config/cris/cris-protos.h (cris_symbol_type_of,
18887         cris_expand_pic_call_address): Adjust prototypes.
18888         (cris_legitimate_constant_p): New prototype.
18889
18890         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
18891         an existing tmake_file.  Don't add t-slibgcc and t-linux.
18892
18893 2014-07-17  Jason Merrill  <jason@redhat.com>
18894
18895         PR c++/61623
18896         * symtab.c (symtab_remove_from_same_comdat_group): Also
18897         set_comdat_group to NULL_TREE.
18898         (verify_symtab): Fix diagnostic.
18899
18900 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
18901
18902         PR target/61662
18903         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
18904
18905 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
18906
18907         Support location tracking for built-in macro tokens
18908         * input.h (is_location_from_builtin_token): New function declaration.
18909         * input.c (is_location_from_builtin_token): New function definition.
18910         * toplev.c (general_init): Tell libcpp what the pre-defined
18911         spelling location for built-in tokens is.
18912
18913 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
18914
18915         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
18916         on the FUNCTION_DECL.
18917
18918 2014-07-16  Richard Biener  <rguenther@suse.de>
18919
18920         PR other/61782
18921         * doc/extend.texi (always_inline): Clarify.
18922
18923 2014-07-15  Eric Christopher  <echristo@gmail.com>
18924
18925         * doc/invoke.texi (Link Options): Document -z option.
18926
18927 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
18928
18929         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
18930         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
18931
18932 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
18933
18934         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
18935
18936 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18937
18938         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
18939         varpool_assemble_decl.
18940         * varpool.c (varpool_assemble_decl): Assert that node->definition is
18941         true.
18942
18943 2014-07-15  Michael Matz  <matz@suse.de>
18944
18945         PR rtl-optimization/61772
18946         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
18947
18948 2014-07-15  Richard Biener  <rguenther@suse.de>
18949
18950         * opts.c (default_options_table): Disable bit-ccp at -Og.
18951
18952 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
18953
18954         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
18955
18956 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
18957
18958         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
18959         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
18960         call langhook for unknown declaration.
18961         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
18962         * tree.h (DECL_ARGUMENTS): Update.
18963         * print-tree.c (print_node): Update.
18964         * tree-core.h (tree_decl_non_common): Remove arguments.
18965         (tree_function_decl): Add arguments.
18966
18967 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
18968
18969         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
18970
18971 2014-07-14  Richard Biener  <rguenther@suse.de>
18972
18973         PR tree-optimization/61779
18974         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
18975         simplifying a condition.
18976
18977 2014-07-14  Richard Biener  <rguenther@suse.de>
18978
18979         * builtins.c (c_strlen): Make only_value == 2 really only
18980         affect warning generation.
18981
18982 2014-07-14  Richard Biener  <rguenther@suse.de>
18983
18984         PR tree-optimization/61757
18985         PR tree-optimization/61783
18986         PR tree-optimization/61787
18987         * tree-ssa-dom.c (record_equality): Revert canonicalization
18988         change and add comment.
18989         (propagate_rhs_into_lhs): Revert previous fix, removing
18990         loop depth restriction again.
18991
18992 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18993
18994         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
18995         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
18996         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
18997         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
18998         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
18999         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
19000         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
19001
19002 2014-07-14  Richard Biener  <rguenther@suse.de>
19003
19004         * cgraph.h (decl_in_symtab_p): Make inline.
19005
19006 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
19007
19008         PR middle-end/61294
19009         * doc/invoke.texi (-Wmemset-transposed-args): Document.
19010
19011         PR target/61656
19012         * config/i386/i386.c (classify_argument): Don't merge classes above
19013         number of words.
19014
19015 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
19016
19017         * cgraph.h (symtab_node): Add nonzero_address.
19018         (decl_in_symtab_p): Break out from ...
19019         (symtab_get_node): ... here.
19020         * fold-const.c: Include cgraph.h
19021         (tree_single_nonzero_warnv_p): Use symtab to determine
19022         if symbol is non-zero.
19023         * symtab.c (symtab_node::nonzero_address): New method.
19024
19025 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
19026
19027         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
19028         forgotten in previous commit.
19029
19030 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
19031
19032         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
19033         on builtin types.
19034         * ipa-devirt.c: Include stor-layout.h and intl.h
19035         (odr_subtypes_equivalent_p): New function.
19036         (warn_odr): New function.
19037         (warn_type_mismatch): New function.
19038         (odr_types_equivalent_p): New function.
19039         (add_type_duplicate): Use it.
19040         * common.opt (Wodr): New flag.
19041         * doc/invoke.texi (Wodr): Document new warning.
19042
19043 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
19044
19045         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
19046         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
19047         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
19048         (varpool_get_constructor): Push CTORS_IN timevar.
19049         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
19050
19051 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
19052
19053         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
19054         Remove VOID_FTYPE_PUSHORT.
19055         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
19056         Change code to USHORT_FTYPE_VOID.
19057         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
19058         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
19059         (ix86_atomic_assign_expand_fenv): Update for
19060         __builtin_ia32_fnstsw changes.
19061         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
19062         (fnstsw): Change operand 0 to nonimmediate operand.
19063
19064 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
19065
19066         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
19067         (varpool_get_constructor): New function.
19068         (varpool_ctor_useable_for_folding_p): Break out from ...
19069         (ctor_for_folding): ... here; use varpool_get_constructor.
19070         (varpool_assemble_decl): Likewise.
19071         * lto-streamer.h (struct output_block): Turn cgraph_node
19072         to symbol filed.
19073         (lto_input_variable_constructor): Declare.
19074         * ipa-visibility.c (function_and_variable_visibility): Use
19075         varpool_get_constructor.
19076         * cgraph.h (varpool_get_constructor): Declare.
19077         (varpool_ctor_useable_for_folding_p): New function.
19078         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
19079         parameter; return error_mark_node for non-trivial constructors.
19080         (lto_write_tree_1, DFS_write_tree): Update use of
19081         get_symbol_initial_value.
19082         (output_function): Update initialization of symbol.
19083         (output_constructor): New function.
19084         (copy_function): Rename to ..
19085         (copy_function_or_variable): ... this one; handle vars too.
19086         (lto_output): Output variable sections.
19087         * lto-streamer-in.c (input_constructor): New function.
19088         (lto_read_body): Rename from ...
19089         (lto_read_body_or_constructor): ... this one; handle vars too.
19090         (lto_input_variable_constructor): New function.
19091         * ipa-prop.c (ipa_prop_write_jump_functions,
19092         ipa_prop_write_all_agg_replacement): Update.
19093         * lto-cgraph.c (compute_ltrans_boundary): Use it.
19094         (output_cgraph_opt_summary): Set symbol to NULL.
19095
19096 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
19097
19098         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
19099         non-polymorphic types.
19100         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
19101         * ipa-devirt.c (types_same_for_odr): Do not explode when one
19102         of types is not polymorphic.
19103
19104 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
19105
19106         * lra-constraints.c (remove_inheritance_pseudos): Process
19107         destination pseudo too.
19108
19109 2014-07-11  Rong Xu  <xur@google.com>
19110
19111         * gcov-tool.c (gcov_output_files): Fix build error introduced in
19112         commit r212448.
19113
19114 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
19115
19116         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
19117         * config/avr/avr-devices.c (AVR_MCU): Same.
19118         (avr_mcu_types): add text start value to end of device list.
19119         * config/avr/avr-mcus.def: Add text section start for all devices.
19120         (ata5782): Add new avr5 device.
19121         (ata5831): Same.
19122         * config/avr/avr-tables.opt: Regenerate.
19123         * config/avr/avr.h: Add declaration for text section start handler.
19124         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
19125         SPEC functions.
19126         (LINK_SPEC): Include text section start handler to linker spec.
19127         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
19128         pass -Ttext option to linker if the text section start for the device
19129         is not zero.
19130         * config/avr/t-multilib: Regenerate.
19131         * doc/avr-mmcu.texi: Regenerate.
19132
19133 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
19134
19135         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
19136         * config/rs6000/aix52.h (LINK_SPEC): Same.
19137         * config/rs6000/aix53.h (LINK_SPEC): Same.
19138         * config/rs6000/aix61.h (LINK_SPEC): Same.
19139         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
19140
19141 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
19142
19143         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
19144         (graphite_verify): New function.
19145         (ivs_params_clear): New function.
19146         (gcc_expression_from_isl_ast_expr_id): New function.
19147         (gcc_expression_from_isl_expr_int): New function.
19148         (binary_op_to_tree): New function.
19149         (ternary_op_to_tree): New function.
19150         (unary_op_to_tree): New function.
19151         (nary_op_to_tree): New function.
19152         (gcc_expression_from_isl_expr_op): New function.
19153         (gcc_expression_from_isl_expression): New function.
19154         (graphite_create_new_loop): New function.
19155         (translate_isl_ast_for_loop): New function.
19156         (get_upper_bound): New function.
19157         (graphite_create_new_loop_guard): New function.
19158         (translate_isl_ast_node_for): New function.
19159         (translate_isl_ast): New function.
19160         (add_parameters_to_ivs_params): New function.
19161         (scop_to_isl_ast): New parameter ip.
19162         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
19163
19164 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
19165
19166         * config/xtensa/predicates.md (call expander): Update for
19167         DECL_SECTION_NAME being string.
19168
19169 2014-07-11  Richard Biener  <rguenther@suse.de>
19170
19171         PR middle-end/61473
19172         * builtins.c (fold_builtin_memory_op): Inline memory moves that
19173         can be implemented with a single load followed by a single store.
19174         (c_strlen): Only warn when only_value is not 2.
19175
19176 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
19177
19178         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
19179
19180 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
19181
19182         PR target/61561
19183         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
19184         (*movhi_bytes): Likewise.
19185         (*arm_movqi_insn): Likewise.
19186
19187 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
19188
19189         PR target/56858
19190         * config/alpha/alpha.c: Include tree-pass.h, context.h
19191         and pass_manager.h.
19192         (pass_data_handle_trap_shadows): New pass.
19193         (pass_handle_trap_shadows::gate): New pass gate function.
19194         (make_pass_handle_trap_shadows): New function.
19195         (rest_of_handle_trap_shadows): Ditto.
19196
19197         (alpha_align_insns_1): Rename from alpha_align_insns.
19198         (pass_data_align_insns): New pass.
19199         (pass_align_insns::gate): New pass gate function.
19200         (make_pass_aling_insns): New function.
19201         (rest_of_align_insns): Ditto.
19202         (alpha_align_insns): Ditto.
19203
19204         (alpha_option_override): Declare handle_trap_shadows info
19205         and align_insns_info.  Register handle_trap_shadows and align_insns
19206         passes here.
19207         (alpha_reorg): Do not call alpha_trap_shadows and
19208         alpha_align_insn from here.
19209
19210         (alpha_pad_function_end): Do not skip BARRIERs.
19211
19212 2014-07-10  Rong Xu  <xur@google.com>
19213
19214         Add gcov-tool: an offline gcda profile processing tool support.
19215         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
19216         (gcov_is_error): Ditto.
19217         (gcov_read_string): Ditto.
19218         (gcov_read_sync): Ditto.
19219         * gcov-io.h: Move counter defines to gcov-counter.def.
19220         * gcov-dump.c (tag_counters): Use gcov-counter.def.
19221         * coverage.c: Ditto.
19222         * gcov-tool.c: Offline gcda profile processing tool.
19223         (unlink_gcda_file): Remove one gcda file.
19224         (unlink_profile_dir): Remove gcda files from the profile path.
19225         (gcov_output_files): Output gcda files to an output dir.
19226         (profile_merge): Merge two profiles in directory.
19227         (print_merge_usage_message): Print merge usage.
19228         (merge_usage): Print merge usage and exit.
19229         (do_merge): Driver for profile merge sub-command.
19230         (profile_rewrite): Rewrite profile.
19231         (print_rewrite_usage_message): Print rewrite usage.
19232         (rewrite_usage): Print rewrite usage and exit.
19233         (do_rewrite): Driver for profile rewrite sub-command.
19234         (print_usage): Print gcov-info usage and exit.
19235         (print_version): Print gcov-info version.
19236         (process_args): Process arguments.
19237         (main): Main routine for gcov-tool.
19238         * Makefile.in: Build and install gcov-tool.
19239         * gcov-counter.def: New file split from gcov-io.h.
19240         * doc/gcc.texi: Include gcov-tool.texi.
19241         * doc/gcov-tool.texi: Document for gcov-tool.
19242
19243 2014-07-10  Richard Biener  <rguenther@suse.de>
19244
19245         PR tree-optimization/61757
19246         * tree-ssa-dom.c (loop_depth_of_name): Restore.
19247         (propagate_rhs_into_lhs): Revert part of last change.
19248
19249 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
19250
19251         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
19252         FUNCTION_DECLs.
19253
19254 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
19255
19256         PR middle-end/53590
19257         * function.c (allocate_struct_function): Revert r188667 change.
19258
19259         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
19260
19261 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
19262
19263         * doc/install.texi: Remove links to defunct package providers for
19264         Solaris.
19265
19266 2014-07-09  Tom de Vries  <tom@codesourcery.com>
19267
19268         * final.c (get_call_fndecl): Declare.
19269         (self_recursive_call_p): New function.
19270         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
19271
19272 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19273
19274         * ipa-devirt.c (record_node): Walk through aliases.
19275
19276 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19277
19278         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
19279
19280 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19281
19282         Revert:
19283         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
19284
19285 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19286
19287         * ipa-visibility.c (function_and_variable_visibility): Remove
19288         temporary hack disabling local aliases on AIX.
19289
19290 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19291
19292         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
19293         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
19294
19295 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19296
19297         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
19298         * rs6000/rs6000.c: Inline output of .set instruction.
19299         (declare_alias_data): New struct.
19300         (rs6000_declare_alias): New function.
19301         (rs6000_xcoff_declare_function_name): Use it.
19302         (rs6000_xcoff_declare_object_name): New function.
19303         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
19304         (ASM_OUTPUT_DEF): Turn to empty definition.
19305
19306 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
19307
19308         PR bootstrap/61679
19309         * hash-table.h: use hash_table::value_type instead of
19310         Descriptor::value_type in the return types of several methods.
19311
19312 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
19313
19314         * tree-pass.h (pass_data): Remove has_execute member.
19315         * passes.c (execute_one_pass): Don't check pass->has_execute.
19316         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
19317         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
19318         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
19319         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
19320         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
19321         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
19322         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
19323         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
19324         gimple-low.c, gimple-ssa-isolate-paths.c,
19325         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
19326         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
19327         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
19328         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
19329         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
19330         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
19331         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
19332         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
19333         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
19334         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
19335         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
19336         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
19337         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
19338         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
19339         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
19340         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
19341         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
19342         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
19343         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
19344         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
19345         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
19346         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
19347         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
19348         web.c: Remove initializer for pass_data::has_execute.
19349
19350 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
19351
19352         * graphite-htab.h: Use hash_map instead of hash_table.
19353         * graphite-clast-to-gimple.c: Adjust.
19354         * passes.c: Use hash_map instead of hash_table.
19355         * sese.c: Likewise.
19356         * sese.h: Remove now unused code.
19357
19358 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
19359
19360         PR target/61599
19361         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
19362         than zero.
19363
19364 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
19365
19366         PR rtl-optimization/61673
19367         * combine.c (simplify_comparison): Test just mode's sign bit
19368         in tmode rather than the sign bit and any bits above it.
19369
19370 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
19371
19372         * graphite-isl-ast-to-gimple.c (generate_isl_context):
19373         Add __isl_give to the declaration.
19374         (generate_isl_schedule): Likewise.
19375         (scop_to_isl_ast): Likewise.
19376
19377 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19378
19379         * config/arm/arm.c (cortexa5_extra_costs): New table.
19380         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
19381
19382 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
19383
19384         PR tree-optimization/61725
19385         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
19386         range, use range_includes_zerop_p instead of integer_zerop on
19387         vr0->min, only use log2 of max if min is not negative.
19388
19389 2014-07-08  Richard Biener  <rguenther@suse.de>
19390
19391         * tree-ssa-dom.h (loop_depth_of_name): Remove.
19392         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
19393         restriction on loop depth difference.
19394         (record_equality): Likewise.
19395         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
19396         (loop_depth_of_name): Remove.
19397         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
19398         restriction on loop depth difference.
19399         (init_copy_prop): Likewise.
19400
19401 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19402
19403         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
19404         parameter.
19405         (walk_aliased_vdefs): Likewise.
19406         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
19407         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
19408         (detect_type_change_from_memory_writes): Check if entry was reached.
19409
19410 2014-07-08  Richard Biener  <rguenther@suse.de>
19411
19412         PR tree-optimization/61681
19413         * tree-ssa-structalias.c (find_what_var_points_to): Expand
19414         NONLOCAL inside ESCAPED.
19415
19416 2014-07-08  Richard Biener  <rguenther@suse.de>
19417
19418         PR tree-optimization/61680
19419         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
19420         Handle properly all read-write dependences with group accesses.
19421
19422 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
19423
19424         PR tree-optimization/61576
19425         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
19426         block containing reduction statement is predecessor of phi basi block.
19427
19428 2014-07-08  Marek Polacek  <polacek@redhat.com>
19429
19430         PR c/60226
19431         * fold-const.c (round_up_loc): Change the parameter type.
19432         Remove assert.
19433         * fold-const.h (round_up_loc): Adjust declaration.
19434         * stor-layout.c (finalize_record_size): Check for too large types.
19435
19436 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
19437
19438         * symtab.c: Include calls.h.
19439         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
19440
19441 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
19442
19443         * config/rs6000/rs6000.c (output_vec_const_move): Handle
19444         little-endian code generation.
19445         * config/rs6000/spe.md (spe_evmergehi): Rename to...
19446         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
19447         (spe_evmergehilo): Rename to...
19448         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
19449         (spe_evmergelo): Rename to...
19450         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
19451         (spe_evmergelohi): Rename to...
19452         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
19453         (spe_evmergehi, spe_evmergehilo): New expanders.
19454         (spe_evmergelo, spe_evmergelohi): Likewise.
19455         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
19456         (*frob_tf_ti): Likewise.
19457         (*frob_<mode>_di_2): Likewise.
19458         (*frob_tf_di_8_2): Likewise.
19459         (*frob_di_<mode>): Likewise.
19460         (*frob_ti_tf): Likewise.
19461         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
19462         (*frob_ti_<mode>_8_2): Likewise.
19463         (*frob_ti_tf_2): Likewise.
19464         (mov_si<mode>_e500_subreg0): Rename to...
19465         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
19466         endianness only.
19467         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
19468         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
19469         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
19470         the big endianness only.
19471         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
19472         (*mov_si<mode>_e500_subreg0_2): Rename to...
19473         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
19474         big big endianness only.
19475         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
19476         (*mov_si<mode>_e500_subreg4): Rename to...
19477         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
19478         endianness only.
19479         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
19480         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
19481         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
19482         the big endianness only.
19483         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
19484         pattern.
19485         (*mov_si<mode>_e500_subreg4_2): Rename to...
19486         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
19487         endianness only.
19488         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
19489         (*mov_sitf_e500_subreg8): Rename to...
19490         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
19491         endianness only.
19492         (*mov_sitf_e500_subreg8_le): New instruction pattern.
19493         (*mov_sitf_e500_subreg8_2): Rename to...
19494         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
19495         endianness only.
19496         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
19497         (*mov_sitf_e500_subreg12): Rename to...
19498         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
19499         endianness only.
19500         (*mov_sitf_e500_subreg12_le): New instruction pattern.
19501         (*mov_sitf_e500_subreg12_2): Rename to...
19502         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
19503         endianness only.
19504         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
19505
19506 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
19507
19508         * asan.c (instrument_strlen_call): Do not instrument first byte
19509         in strlen if already instrumented.
19510
19511 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19512
19513         * config/arm/arm.opt (mwords-little-endian): Delete.
19514         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
19515         of TARGET_LITTLE_WORDS.
19516         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
19517         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
19518         warning.
19519         * doc/invoke.texi: Remove references to -mwords-little-endian.
19520
19521 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
19522
19523         * expmed.c (struct init_expmed_rtl): Change all fields but
19524         pow2 and cint from struct rtx_def to rtx.
19525         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
19526         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
19527         at the end again.
19528
19529 2014-07-06  Marek Polacek  <polacek@redhat.com>
19530
19531         PR c/6940
19532         * doc/invoke.texi: Document -Wsizeof-array-argument.
19533
19534 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
19535
19536         * wide-int.h (wide_int_storage): Change declaration from struct
19537         to class.
19538
19539 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
19540
19541         * cgraph.c (cgraph_create_indirect_edge): Update call of
19542         get_polymorphic_call_info.
19543         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
19544         (possible_polymorphic_call_targets): Add parameter call.
19545         (decl_maybe_in_construction_p): New predicate.
19546         (get_polymorphic_call_info): Add parameter call;
19547         use decl_maybe_in_construction_p.
19548         * gimple-fold.c (fold_gimple_assign): Update use of
19549         possible_polymorphic_call_targets.
19550         (gimple_fold_call): Likewise.
19551         * ipa-prop.c: Inlcude calls.h
19552         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
19553         (param_type_may_change_p): New predicate.
19554         (detect_type_change_from_memory_writes): Break out from ...
19555         (detect_type_change): ... this one; use param_type_may_change_p.
19556         (detect_type_change_ssa): Use param_type_may_change_p.
19557         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
19558
19559 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
19560
19561         PR target/49423
19562         * config/arm/arm-protos.h (arm_legitimate_address_p,
19563         arm_is_constant_pool_ref): Add prototypes.
19564         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
19565         (arm_is_constant_pool_ref) New function.
19566         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
19567         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
19568         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
19569         operand. Remove pool_range and neg_pool_range attributes.
19570         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
19571         pool_range and neg_pool_range attributes.
19572         * config/arm/constraints.md (Uh): New constraint.
19573         (Uq): Don't allow constant pool references.
19574
19575 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
19576
19577         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
19578         (move_lo_quad_internal_be_<mode>): Likewise.
19579         (move_lo_quad_<mode>): Convert to define_expand.
19580         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
19581         (aarch64_simd_move_hi_quad_be_<mode>): New.
19582         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
19583         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
19584         (aarch64_combinez_be<mode>): New.
19585         (aarch64_combine<mode>): Convert to define_expand.
19586         (aarch64_combine_internal<mode>): New.
19587         (aarch64_simd_combine<mode>): Remove bogus RTL description.
19588
19589 2014-07-04  Tom de Vries  <tom@codesourcery.com>
19590
19591         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
19592         combination of earlyclobber and read/write modifiers.
19593
19594 2014-07-04  Tom de Vries  <tom@codesourcery.com>
19595
19596         * config/aarch64/aarch64-simd.md
19597         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
19598
19599 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
19600
19601         PR target/61714
19602         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
19603
19604 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
19605
19606         PR middle-end/61654
19607         * cgraphunit.c (expand_thunk): Call free_dominance_info.
19608
19609         PR tree-optimization/61684
19610         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
19611         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
19612
19613 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19614             Kito Cheng  <kito@0xlab.org>
19615             Monk Chiang  <sh.chiang04@gmail.com>
19616
19617         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
19618         (nds32_symbol_load_store_p): Move to ...
19619         (nds32_fp_as_gp_check_available): Move to ...
19620         * config/nds32/nds32-fp-as-gp.c: ... here.
19621         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
19622         extern declaration.
19623
19624 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19625             Kito Cheng  <kito@0xlab.org>
19626             Monk Chiang  <sh.chiang04@gmail.com>
19627
19628         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
19629         (nds32_expand_store_multiple): Move to ...
19630         (nds32_expand_movmemqi): Move to ...
19631         * config/nds32/nds32-memory-manipulation.c: ... here.
19632
19633 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19634             Kito Cheng  <kito@0xlab.org>
19635             Monk Chiang  <sh.chiang04@gmail.com>
19636
19637         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
19638         (nds32_output_casesi_pc_relative): Move to ...
19639         (nds32_output_casesi): Move to ...
19640         (nds32_mem_format): Move to ...
19641         (nds32_output_16bit_store): Move to ...
19642         (nds32_output_16bit_load): Move to ...
19643         (nds32_output_32bit_store): Move to ...
19644         (nds32_output_32bit_load): Move to ...
19645         (nds32_output_32bit_load_s): Move to ...
19646         (nds32_output_stack_push): Move to ...
19647         (nds32_output_stack_pop): Move to ...
19648         * config/nds32/nds32-md-auxiliary.c: ... here.
19649
19650 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19651             Ling-Hua Tseng  <uranus@tinlans.org>
19652
19653         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
19654         the purpose of this file.
19655
19656 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19657             Kito Cheng  <kito@0xlab.org>
19658             Monk Chiang  <sh.chiang04@gmail.com>
19659
19660         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
19661         (nds32_address_cost): Move implementation to ...
19662         * config/nds32/nds32-cost.c: ... here.
19663         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
19664         (nds32_address_cost_impl): Declare.
19665
19666 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19667             Kito Cheng  <kito@0xlab.org>
19668             Monk Chiang  <sh.chiang04@gmail.com>
19669
19670         * config/nds32/nds32.c
19671         (nds32_consecutive_registers_load_store_p): Move to ...
19672         (nds32_valid_multiple_load_store): Move to ...
19673         (nds32_valid_stack_push_pop): Move to ...
19674         (nds32_can_use_bclr_p): Move to ...
19675         (nds32_can_use_bset_p): Move to ...
19676         (nds32_can_use_btgl_p): Move to ...
19677         (nds32_can_use_bitci_p): Move to ...
19678         * config/nds32/nds32-predicates.c: ... here.
19679
19680 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19681             Kito Cheng  <kito@0xlab.org>
19682             Monk Chiang  <sh.chiang04@gmail.com>
19683
19684         * config/nds32/nds32.c
19685         (nds32_expand_builtin_null_ftype_reg): Move to ...
19686         (nds32_expand_builtin_reg_ftype_imm): Move to ...
19687         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
19688         (nds32_init_builtins): Move implementation to ...
19689         (nds32_expand_builtin): Move implementation to ...
19690         * config/nds32/nds32-intrinsic.c: ... here.
19691         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
19692         (nds32_expand_builtin_impl): Declare.
19693
19694 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19695             Kito Cheng  <kito@0xlab.org>
19696             Monk Chiang  <sh.chiang04@gmail.com>
19697
19698         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
19699         (nds32_emit_section_tail_template): Move to ...
19700         (nds32_emit_isr_jmptbl_section): Move to ...
19701         (nds32_emit_isr_vector_section): Move to ...
19702         (nds32_emit_isr_reset_conten): Move to ...
19703         (nds32_check_isr_attrs_conflict): Move to ...
19704         (nds32_construct_isr_vectors_information): Move to ...
19705         (nds32_asm_file_start): Move implementation to ...
19706         (nds32_asm_file_end): Move implementation to ...
19707         * config/nds32/nds32-isr.c: ... here.
19708         * config/nds32/nds32-protos.h
19709         (nds32_check_isr_attrs_conflict): Declare.
19710         (nds32_construct_isr_vectors_information): Declare.
19711         (nds32_asm_file_start_for_isr): Declare.
19712         (nds32_asm_file_end_for_isr): Declare.
19713
19714 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19715             Kito Cheng  <kito@0xlab.org>
19716             Monk Chiang  <sh.chiang04@gmail.com>
19717
19718         * config.gcc (nds32*): Add new modules to extra_objs.
19719         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
19720         (nds32be-*-*): Likewise.
19721         * config/nds32/nds32-cost.c: New file.
19722         * config/nds32/nds32-fp-as-gp.c: New file.
19723         * config/nds32/nds32-intrinsic.c: New file.
19724         * config/nds32/nds32-isr.c: New file.
19725         * config/nds32/nds32-md-auxiliary.c: New file.
19726         * config/nds32/nds32-memory-manipulation.c: New file.
19727         * config/nds32/nds32-pipelines-auxiliary.c: New file.
19728         * config/nds32/nds32-predicates.c: New file.
19729         * config/nds32/t-nds32: New file.
19730
19731 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
19732
19733         PR tree-optimization/61682
19734         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
19735         using cases and when one of the operands is equal to 1.
19736
19737 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
19738
19739         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
19740         ashr<mode>3): Correct mode of operands[2].
19741         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
19742         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
19743         Correct mode of operands[2].  Fix split condition.
19744
19745 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
19746
19747         * arm.md (arch): Add armv6_or_vfpv3.
19748         (arch_enabled): Add test for the above.
19749         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
19750         on VFP9.
19751         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
19752
19753 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
19754
19755         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
19756         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
19757         HWI 1 and negate the unsigned value.
19758         * expmed.c (expand_sdiv_pow2): For modes wider than word always
19759         use AND instead of shift.
19760         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
19761
19762 2014-07-03  Marek Polacek  <polacek@redhat.com>
19763
19764         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
19765         (-fsanitize=float-divide-by-zero): Move to the table with
19766         -fsanitize=undefined suboptions.
19767         (-fsanitize=float-cast-overflow): Likewise.
19768
19769 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
19770
19771         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
19772         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
19773         endianness.
19774
19775 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19776
19777         * loop-invariant.c (struct invariant): Add a new member: eqno;
19778         (find_identical_invariants): Update eqno;
19779         (create_new_invariant): Init eqno;
19780         (get_inv_cost): Compute comp_cost with eqno;
19781
19782 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
19783
19784         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
19785         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
19786         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
19787         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
19788         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
19789
19790 2014-07-02  Christian Bruel  <christian.bruel@st.com>
19791
19792         PR target/29349
19793         PR target/53513
19794         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
19795         (make_preds_opaque): Delete.
19796         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
19797         (commit_mode_sets): New function.
19798         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
19799         Process all modes at once.
19800         * basic-block.h (pre_edge_lcm_avs): Declare.
19801         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
19802         Call clear_aux_for_edges. Fix comments.
19803         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
19804         (pre_edge_rev_lcm): Idem.
19805         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
19806         parameter.
19807         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
19808         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
19809         Idem.
19810         * config/i386/i386.c (x96_emit_mode_set): Idem.
19811         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
19812         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
19813         (fpscr_toggle) Disallow from delay slot.
19814         * target.def (emit_mode_set): Add prev_mode parameter.
19815         * doc/tm.texi: Regenerate.
19816
19817 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19818
19819         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
19820         variable i.
19821
19822 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
19823
19824         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
19825         vtable_pointer_value_to_vtable): Constify.
19826         (contains_polymorphic_type_p): Declare.
19827         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
19828         vtable_pointer_value_to_vtable): Constify.
19829         (contains_polymorphic_type_p): New predicate.
19830         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
19831         polymorphic types.
19832         (ipa_set_ancestor_jf): Likewise.
19833         (detect_type_change): Return false in easy cases.
19834         (compute_complex_assign_jump_func): Require type to contain
19835         polymorphic type.
19836         (compute_known_type_jump_func): Likewise.
19837
19838 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
19839
19840         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
19841         Remove.
19842         (type_in_anonymous_namespace_p): Constify argument.
19843         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
19844         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
19845         (main_odr_variant): New function.
19846         (hash_type_name): Make static; update assert; do not ICE on
19847         non-records.
19848         (types_same_for_odr): Bring here from tree.c; simplify and remove
19849         old structural comparing code that doesn't work for templates.
19850         (odr_hasher::equal): Update assert.
19851         (add_type_duplicate): Return true when bases should be computed;
19852         replace incomplete loader by complete; do not output duplicated
19853         warnings; do not ICE on non-records; set odr_violated flag.
19854         (get_odr_type): Be ready to replace incomplete type by complete
19855         one; work on ODR variants instead of main variants; reorder item
19856         in array so bases have still smaller indexes.
19857         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
19858         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
19859
19860 2014-07-01  Cary Coutant  <ccoutant@google.com>
19861
19862         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
19863         lookup.
19864         (resolve_addr_in_expr): When replacing the rtx in a location list
19865         entry, get a new address table entry.
19866         (dwarf2out_finish): Call index_location_lists even if there are no
19867         addr_index_table entries yet.
19868
19869 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
19870
19871         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
19872         change for not being obvious.
19873
19874 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
19875
19876         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
19877         unused argument.
19878
19879 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19880
19881         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
19882         (vcagt_f64): Likewise.
19883         (vcale_f64): Likewise.
19884         (vcaled_f64): Likewise.
19885         (vcales_f32): Likewise.
19886         (vcalt_f64): Likewise.
19887         (vcaltd_f64): Likewise.
19888         (vcalts_f32): Likewise.
19889
19890 2014-07-01  Marek Polacek  <polacek@redhat.com>
19891
19892         * doc/invoke.texi: Document -Wint-conversion.
19893
19894 2014-07-01  Marek Polacek  <polacek@redhat.com>
19895
19896         PR c/58286
19897         * doc/invoke.texi: Document -Wincompatible-pointer-types.
19898
19899 2014-07-01  Martin Liska  <mliska@suse.cz>
19900
19901         IPA REF alias refactoring
19902         * cgraph.h (iterate_direct_aliases): New function.
19903         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
19904         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
19905         FOR_EACH_ALIAS added.
19906         (cgraph_for_node_and_aliases): Likewise.
19907         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
19908         * ipa-inline.c (reset_edge_caches): Likewise.
19909         (update_caller_keys): Likewise.
19910         * trans-mem.c (ipa_tm_execute): Likewise.
19911         *varpool.c (varpool_analyze_node): Likewise.
19912         (varpool_for_node_and_aliases): Likewise.
19913         * ipa-ref.h (first_alias): New function.
19914         (last_alias): Likewise.
19915         (has_aliases_p): Likewise.
19916         * ipa-ref.c (ipa_ref::remove_reference): Removal function
19917         is sensitive to IPA_REF_ALIASes.
19918         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
19919         are put at the beginning of the list.
19920         (symtab_node::iterate_direct_aliases): New function.
19921
19922 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19923
19924         Revert:
19925         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
19926         type is complete.
19927         (write_ts_type_common_tree_pointers): Do not stream fields not set
19928         for incomplete types; do not stream duplicated fields for variants;
19929         sanity check that variant and type match.
19930         (write_ts_type_non_common_tree_pointers): Likewise.
19931         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
19932         TYPE_SIZE whether type is complete.
19933         (lto_input_ts_type_common_tree_pointers): Do same changes as in
19934         write_ts_type_common_tree_pointers
19935         (lto_input_ts_type_non_common_tree_pointers): Likewise.
19936
19937 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
19938
19939         * var-tracking.c (add_stores): Return instead of asserting if old
19940         and new values for conditional store are the same.
19941
19942 2014-06-30  Richard Henderson  <rth@redhat.com>
19943
19944         PR rtl-opt/61608
19945         PR target/39284
19946         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
19947         the cfg if there were any changes.
19948         * passes.def: Revert move of peephole2 after reorder_blocks;
19949         move duplicate_computed_gotos before peephole2.
19950
19951 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
19952
19953         * except.c (emit_note_eh_region_end): New helper function.
19954         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
19955         emit EH_REGION_END note.
19956         * jump.c (cleanup_barriers): Do not split a call and its
19957         corresponding CALL_ARG_LOCATION note.
19958
19959 2014-06-30  Jeff Law  <law@redhat.com>
19960
19961         PR tree-optimization/61607
19962         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
19963         deeper into the SSA_NAME_VALUE chain.
19964
19965 2014-06-30  Marek Polacek  <polacek@redhat.com>
19966
19967         * convert.c (convert_to_integer): Don't instrument conversions if the
19968         function has no_sanitize_undefined attribute.
19969         * ubsan.c: Don't run the ubsan pass if the function has
19970         no_sanitize_undefined attribute.
19971
19972 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
19973
19974         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
19975         -fsanitize=undefined suboptions.
19976
19977 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
19978
19979         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
19980         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
19981         against bigendian and adjust indices.
19982
19983 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
19984
19985         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
19986
19987 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
19988
19989         PR target/61633
19990         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
19991         Add alternative; make early clobber.  Adjust both split patterns
19992         to use operand 0 as the working register.
19993
19994 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
19995
19996         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
19997         as ira_object_id_map might be NULL, or 1.
19998
19999 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20000
20001         * loop-invariant.c (get_inv_cost): Handle register class.
20002         (gain_for_invariant): Check the register pressure of the inv
20003         and its overlapped register class, other than all.
20004
20005 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
20006
20007         * doc/invoke.texi (Optimize Options): Fix descriptions of
20008         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
20009
20010 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
20011
20012         * doc/extend.texi (Function Attributes): Update 'naked' attribute
20013         documentation.
20014
20015 2014-06-29  Tobias Grosser <tobias@grosser.es>
20016
20017         PR bootstrap/61650
20018         * graphite-isl-ast-to-gimple.c: Add missing guards.
20019
20020 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
20021
20022         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
20023         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
20024         * flag-types.h: Add new enum fgraphite_generator.
20025         * graphite-isl-ast-to-gimple.c: New.
20026         * graphite-isl-ast-to-gimple.h: New.
20027         * graphite.c (graphite_transform_loops): Add choice of Graphite
20028         code generator, which depends on flag_graphite_code_gen.
20029
20030 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
20031
20032         * graphite-dependences.c (subtract_commutative_associative_deps):
20033         Add NULL checking of the following variables: must_raw_no_source,
20034         may_raw_no_source, must_war_no_source, may_war_no_source,
20035         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
20036         must_war, may_war, must_waw, may_waw.
20037
20038 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
20039
20040         * graphite-clast-to-gimple.c: gloog is renamed to
20041         graphite_regenerate_ast_cloog.  gloog_error is renamed to
20042         graphite_regenerate_error.
20043         * graphite-clast-to-gimple.h: The definition of the struct
20044         bb_pbb_def is moved to graphite-htab.h.
20045         Add inclusion of the hash-table.h.
20046         * graphite-htab.h: The declaration of the function gloog is moved
20047         to graphite-clast-to-gimple.h and renamed to
20048         graphite_regenerate_ast_cloog.
20049         * graphite.c (graphite_transform_loops): gloog is renamed
20050         to graphite_regenerate_ast_cloog.
20051
20052 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
20053
20054         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
20055         type is complete.
20056         (write_ts_type_common_tree_pointers): Do not stream fields not set
20057         for incomplete types; do not stream duplicated fields for variants;
20058         sanity check that variant and type match.
20059         (write_ts_type_non_common_tree_pointers): Likewise.
20060         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
20061         TYPE_SIZE whether type is complete.
20062         (lto_input_ts_type_common_tree_pointers): Do same changes as in
20063         write_ts_type_common_tree_pointers
20064         (lto_input_ts_type_non_common_tree_pointers): Likewise.
20065
20066 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
20067
20068         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
20069
20070 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
20071
20072         * tree-inline.c (remap_type_1): Do not duplicate fields
20073         that are shared in between type and its main variant.
20074
20075 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
20076
20077         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
20078         of the type.
20079         (ipa_set_ancestor_jf) Likewise.
20080         (check_stmt_for_type_change): Check that we work on main variant.
20081         (detect_type_change): Look into main variant.
20082         (compute_known_type_jump_func): Check that main variant has BINFO.
20083
20084 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
20085
20086         * ipa-devirt.c (set_type_binfo): New function.
20087         (add_type_duplicate): Use it.
20088         (get_odr_type): Sanity check that binfos points to main variants.
20089         (get_class_context): Be sure the context's outer_type is main variant.
20090         (contains_type_p): Walk main variant.
20091         (get_polymorphic_call_info_for_decl): Set outer_type to be
20092         main variant.
20093         (get_polymorphic_call_info): Likewise.
20094         (possible_polymorphic_call_targets): Sanity check that we operate
20095         on main variant.
20096
20097 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
20098
20099         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
20100
20101 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20102
20103         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
20104         accidental change due to wide-int branch merge.
20105
20106 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20107
20108         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
20109         compressed debug support.
20110         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
20111         * configure: Regenerate.
20112         * config.in: Regenerate.
20113         * common.opt (compressed_debug_sections): New enum.
20114         (gz, gz=): New options.
20115         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
20116         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
20117         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
20118         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
20119         LINK_COMPRESS_DEBUG_SPEC.
20120         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
20121         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
20122         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
20123         (Debugging Options): Document -gz[=type].
20124
20125 2014-06-27  Martin Jambor  <mjambor@suse.cz>
20126
20127         PR ipa/61160
20128         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
20129         args_to_skip, use those from node instead.  Copy args_to_skip and
20130         combined_args_to_skip from node to the new thunk.
20131         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
20132         (cgraph_create_virtual_clone): Moved computation of
20133         combined_args_to_skip...
20134         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
20135
20136 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
20137
20138         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
20139         redundant diagnostic machinary.
20140
20141 2014-06-27  Richard Biener  <rguenther@suse.de>
20142
20143         * tree-ssa-math-opts.c (bswap_replace): Fix
20144         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
20145
20146 2014-06-27  Martin Liska  <mliska@suse.cz>
20147
20148         * gimple.h (gimple_location_safe): New function introduced.
20149         * cgraphunit.c (walk_polymorphic_call_targets): Usage
20150         of gimple_location_safe replaces gimple_location.
20151         (gimple_fold_call): Likewise.
20152         * ipa-devirt.c (ipa_devirt): Likewise.
20153         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
20154         * ipa.c (walk_polymorphic_call_targets): Likewise.
20155         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
20156
20157 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
20158
20159         PR tree-optimization/57233
20160         PR tree-optimization/61299
20161         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
20162         functions.
20163         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
20164         would be lowered to scalar shifts, check if corresponding
20165         shifts and vector BIT_IOR_EXPR are supported and don't lower
20166         or lower just to narrower vector type in that case.
20167         * expmed.c (expand_shift_1): Fix up handling of vector
20168         shifts and rotates.
20169
20170 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
20171
20172         PR target/61586
20173         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
20174
20175 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
20176
20177         * doc/invoke.texi (-fsemantic-interposition): Document.
20178         * common.opt (fsemantic-interposition): New flag.
20179         * varasm.c (decl_replaceable_p): Use it.
20180
20181 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20182
20183         PR target/61542
20184         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
20185         extraction other than index 3.
20186
20187 2014-06-26  Teresa Johnson  <tejohnson@google.com>
20188
20189         * doc/invoke.texi: Fix typo.
20190         * dumpfile.c: Add support for documented -fdump-* options
20191         optimized/missed/note/optall.
20192
20193 2014-06-26  Martin Jambor  <mjambor@suse.cz>
20194
20195         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
20196         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
20197         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
20198         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
20199         * opts.c (default_options_optimization): Set
20200         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
20201         * doc/invoke.texi (allow-load-data-races)
20202         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
20203         (allow-store-data-races): Document the new default.
20204
20205 2014-06-26  Martin Jambor  <mjambor@suse.cz>
20206
20207         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
20208         renamed to ipa_impossible_devirt_target.  Fix typo.
20209         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
20210         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
20211         ipa_impossible_devirt_target.
20212
20213 2014-06-26  Richard Biener  <rguenther@suse.de>
20214
20215         PR tree-optimization/61607
20216         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
20217         explaining why we restrict copies on loop depth.
20218         * tree-ssa-dom.c (cprop_operand): Remove restriction on
20219         on loop depth.
20220         (record_equivalences_from_phis): Instead add it here.
20221
20222 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
20223
20224         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
20225         (LTO_WRAPPER_OBJS): New variable.
20226         (lto-wrapper$(exeext)): Use it.
20227         * collect2.c: Include "collect-utils.h".
20228         (verbose, debug): Remove variables.
20229         (at_file_supplied): No longer static.
20230         (tool_name): New variable.
20231         (do_wait, fork_execute, maybe_unlink): Don't declare.
20232         (tool_cleanup): No longer static.
20233         (notice): Remove function.
20234         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
20235         fork_execute calls.
20236         (collect_wait, do_wait, collect_execute): Remove functions.
20237         (maybe_unlink): No longer static.
20238         * collect2.h (verbose, debug): Don't declare.
20239         (at_file_supplied): Declare.
20240         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
20241         changed.
20242         (collect_execute): Replace with implementation from collect2, plus a
20243         new arg use_atfile.  All callers changed.
20244         (collect_wait): Replace with implementation from collect2.
20245         (maybe_unlink_file): Remove function.
20246         (fork_execute): Replace with implementation from collect2, plus a
20247         new arg use_atfile.  All callers changed.
20248         (do_wait): Add call to utils_cleanup to the error path.
20249         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
20250         (tool_cleanup): Adjust declarations.
20251         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
20252         * tlink.c: Include "collect-utils.h".
20253         (tlink_execute): New arg use_atfile.  All callers changed.
20254         (tlink_init, tlink_execute): Remove declarations.
20255
20256         * collect-utils.c (save_temps): New variable.
20257         (do_wait): Use it instead of debug.  Use fatal_error.
20258         * collect-utils.h (save_temps): Declare.
20259         * collect2.c (verbose): Rename from vflag.  All uses changed.
20260         (tool_cleanup): New function, copied from collect_atexit.
20261         (collect_atexit, handler): Just call it.
20262         * collect2.h (verbose): Declaration renamed from vflag.
20263         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
20264         debug.
20265
20266         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
20267         (lto-wrapper$(exeext)): Link with collect-utils.o.
20268         * collect-utils.c: New file.
20269         * collect-utils.h: New file.
20270         * lto-wrapper.c: Include "collect-utils.h".
20271         (args_name): Delete variable.
20272         (tool_name): New variable.
20273         (tool_cleanup): New function.
20274         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
20275         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
20276         (fork_execute): Remove functions.
20277
20278 2014-06-26  Nick Clifton  <nickc@redhat.com>
20279
20280         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
20281
20282         * doc/extend.texi (Function Attributes): Fix typo in description
20283         of RX vector attribute.
20284
20285 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
20286
20287         * config.gcc (supported_defaults): Error when passing either
20288         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
20289
20290 2014-06-26  Richard Biener  <rguenther@suse.de>
20291
20292         * tree-ssa-dom.c (cprop_operand): Remove restriction on
20293         propagating volatile pointers.
20294
20295 2014-06-26  Richard Biener  <rguenther@suse.de>
20296
20297         PR tree-optimization/61607
20298         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
20299         loop if we redirected its latch edge.
20300         (thread_block_1): Do not cancel loops prematurely.
20301
20302 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
20303
20304         * toplev.c (backend_init_target): Move init_emit_regs and
20305         init_regs to...
20306         (backend_init) ... here; skip ira_init_once and backend_init_target.
20307         (target_reinit) ... and here; clear
20308         this_target_rtl->lang_dependent_initialized.
20309         (lang_dependent_init_target): Clear
20310         this_target_rtl->lang_dependent_initialized;
20311         break out rtl initialization to ...
20312         (initialize_rtl): ... here; call also backend_init_target
20313         and ira_init_once.
20314         * toplev.h (initialize_rtl): New function.
20315         * function.c: Include toplev.h
20316         (init_function_start): Call initialize_rtl.
20317         * rtl.h (target_rtl): Add target_specific_initialized,
20318         lang_dependent_initialized.
20319
20320 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
20321             Jakub Jelinek  <jakub@redhat.com>
20322
20323         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
20324
20325 2014-06-25  Tom de Vries  <tom@codesourcery.com>
20326
20327         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
20328
20329 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20330
20331         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
20332         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
20333         Issue a strict overflow warning if appropriate.
20334
20335 2014-06-25  Martin Liska  <mliska@suse.cz>
20336
20337         IPA REF refactoring
20338         * Makefile.in: Removed header file (ipa-ref-inline.h).
20339         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
20340         called.
20341         (cgraph_speculative_call_info): Likewise.
20342         (cgraph_for_node_thunks_and_aliases): Likewise.
20343         (cgraph_for_node_and_aliases): Likewise.
20344         (verify_cgraph_node): Likewise.
20345         * cgraph.h: Batch of IPA REF functions become member functions of
20346         symtab_node: add_reference, maybe_add_reference, clone_references,
20347         clone_referring, clone_reference, find_reference,
20348         remove_stmt_references, remove_all_references,
20349         remove_all_referring, dump_references, dump_referring,
20350         has_alias_p, iterate_reference, iterate_referring.
20351         * cgraphbuild.c (record_reference): New IPA REF function used.
20352         (record_type_list): Likewise.
20353         (record_eh_tables): Likewise.
20354         (mark_address): Likewise.
20355         (mark_load): Likewise.
20356         (mark_store): Likewise.
20357         (pass_build_cgraph_edges): Likewise.
20358         (rebuild_cgraph_edge): Likewise.
20359         (cgraph_rebuild_references): Likewise.
20360         (pass_remove_cgraph_callee_edges): Likewise.
20361         * cgraphclones.c (cgraph_clone_node): Likewise.
20362         (cgraph_create_virtual_clone): Likewise.
20363         (cgraph_materialize_clone): Likewise.
20364         (cgraph_materialize_all_clones): Likewise.
20365         * cgraphunit.c (cgraph_reset_node): Likewise.
20366         (cgraph_reset_node): Likewise.
20367         (analyze_function): Likewise.
20368         (assemble_thunks_and_aliases): Likewise.
20369         (expand_function): Likewise.
20370         * ipa-comdats.c (propagate_comdat_group): Likewise.
20371         (enqueue_references): Likewise.
20372         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
20373         (create_specialized_node): Likewise.
20374         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
20375         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
20376         * ipa-inline.c (reset_edge_caches): Likewise.
20377         (update_caller_keys): Likewise.
20378         (execute): Likewise.
20379         * ipa-prop.c (remove_described_reference): Likewise.
20380         (propagate_controlled_uses): Likewise.
20381         (ipa_edge_duplication_hook): Likewise.
20382         (ipa_modify_call_arguments): Likewise.
20383         * ipa-pure-const.c (propagate_pure_const): Likewise.
20384         * ipa-ref-inline.h: Header file removed, functions moved
20385         to symtab_node class.
20386         * ipa-ref.c (remove_reference): New class member function.
20387         (cannot_lead_to_return): New class member function.
20388         (referring_ref_list): Likewise.
20389         (referred_ref_list): Likewise.
20390         Rest of functions moved to symtab_node class.
20391         * ipa-ref.h: New member functions remove_reference,
20392         cannot_lead_to_return, referring_ref_list, referred_ref_list added
20393         to ipa_ref class.
20394         ipa_ref_list class has new member functions: first_reference,
20395         first_referring, clear, nreferences.
20396         * ipa-reference.c (analyze_function): New IPA REF function used.
20397         (write_node_summary_p): Likewise.
20398         (ipa_reference_write_optimization_summary): Likewise.
20399         * ipa-split.c (split_function): Likewise.
20400         * ipa-utils.c (ipa_reverse_postorder): Likewise.
20401         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
20402         (function_and_variable_visibility): Likewise.
20403         * ipa.c (has_addr_references_p): Likewise.
20404         (process_references): Argument type changed.
20405         (symtab_remove_unreachable_nodes): New IPA REF function used.
20406         (process_references): Likewise.
20407         (set_writeonly_bit): Likewise.
20408         * lto-cgraph.c: Implementation of new symtab_node member functions
20409         that uses new IPA REF functions.
20410         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
20411         function used.
20412         * lto-streamer-out.c (output_symbol_p): Likewise.
20413         * lto-streamer.h (referenced_from_this_partition_p): Argument type
20414         changed.
20415         * symtab.c: Implementation of new IPA REF API.
20416         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
20417         (ipa_tm_create_version): Likewise.
20418         (ipa_tm_execute): Likewise.
20419         * tree-emutls.c (gen_emutls_addr): Likewise.
20420         * tree-inline.c (copy_bb): Likewise.
20421         (delete_unreachable_blocks_update_callgraph): Likewise.
20422         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
20423         (varpool_for_node_and_aliases): Likewise.
20424
20425 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
20426
20427         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
20428
20429 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
20430
20431         PR bootstrap/61598
20432         * fold-const.c (fold_checksum_tree): Use a hash_table of const
20433         tree_node * instead of tree_node *.
20434         (fold): Adjust.
20435         (print_fold_checksum): Likewise.
20436         (fold_check_failed): Likewise.
20437         (debug_fold_checksum): Likewise.
20438         (fold_build1_stat_loc): Likewise.
20439         (fold_build2_stat_loc): Likewise.
20440         (fold_build3_stat_loc): Likewise.
20441         (fold_build_call_array_loc): Likewise.
20442
20443 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
20444
20445         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
20446         implementation with call to...
20447         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
20448         function.
20449         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
20450         Declare.
20451
20452 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
20453
20454         PR tree-optimization/57742
20455         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
20456         after replacing the statement.
20457
20458 2014-06-25  Nick Clifton  <nickc@redhat.com>
20459
20460         * config/v850/v850.c (GHS_default_section_names): Change to const
20461         char * type.
20462         (GHS_current_section_names): Likewise.
20463         (v850_insert_attributes): Do not build strings, just assign the
20464         names directly.  Change the type of 'chosen_section' to const
20465         char*.
20466         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
20467         directly to the array entry.
20468         * config/v850/v850.h (GHS_default_section_names): Change to const
20469         char * type.
20470         (GHS_current_section_names): Likewise.
20471
20472 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
20473
20474         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
20475         (LANG_HOOKS_DECLS): Add it.
20476         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
20477         has correct type.
20478         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
20479         * langhooks.h (struct lang_hooks_for_decls): Add
20480         omp_clause_linear_ctor hook.
20481         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
20482         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
20483         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
20484         combined simd loop use omp_clause_linear_ctor hook.
20485
20486 2014-06-24  Cong Hou  <congh@google.com>
20487
20488         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
20489         pattern recognition.
20490         (type_conversion_p): PROMOTION is true if it's a type promotion
20491         conversion, and false otherwise.  Return true if the given expression
20492         is a type conversion one.
20493         * tree-vectorizer.h: Adjust the number of patterns.
20494         * tree.def: Add SAD_EXPR.
20495         * optabs.def: Add sad_optab.
20496         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
20497         * expr.c (expand_expr_real_2): Likewise.
20498         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
20499         * gimple.c (get_gimple_rhs_num_ops): Likewise.
20500         * optabs.c (optab_for_tree_code): Likewise.
20501         * tree-cfg.c (estimate_operator_cost): Likewise.
20502         * tree-ssa-operands.c (get_expr_operands): Likewise.
20503         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
20504         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
20505         * doc/generic.texi: Add document for SAD_EXPR.
20506         * doc/md.texi: Add document for ssad and usad.
20507
20508 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
20509
20510         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
20511         qualification in cast.
20512
20513 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
20514
20515         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
20516         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
20517         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
20518         (tree_function_decl): ... here.
20519         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
20520         streaming of vindex to ...
20521         (write_ts_function_decl_tree_pointers): ... here.
20522         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
20523         Do not stream DECL_VINDEX.
20524         (lto_input_ts_function_decl_tree_pointers): Stream it here.
20525
20526 2014-06-24  Catherine Moore  <clm@codesourcery.com>
20527             Sandra Loosemore  <sandra@codesourcery.com>
20528
20529         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
20530         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
20531         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
20532
20533 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
20534
20535         * doc/invoke.texi (Warning Options): Remove duplicated
20536         -Wmaybe-uninitialized.
20537
20538 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
20539
20540         PR tree-optimization/57742
20541         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
20542         (handle_builtin_malloc, handle_builtin_memset): New functions.
20543         (strlen_optimize_stmt): Call them.
20544         * passes.def: Move strlen after loop+dom but before vrp.
20545
20546 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
20547
20548         PR target/61570
20549         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
20550         model family 6 CPU with has_longmode never use a CPU without
20551         64-bit support.
20552
20553 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
20554
20555         PR target/61570
20556         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
20557         the last change.
20558
20559 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
20560
20561         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
20562         * dominance.c (iterate_fix_dominators): Use hash_map instead of
20563         pointer_map.
20564         * hash-map.h: New file.
20565         * ipa-comdats.c: Use hash_map instead of pointer_map.
20566         * ipa.c: Likewise.
20567         * lto-section-out.c: Adjust.
20568         * lto-streamer.h: Replace pointer_map with hash_map.
20569         * symtab.c (verify_symtab): Likewise.
20570         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
20571         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
20572         * tree-streamer.h: Likewise.
20573         * tree-streamer.c: Adjust.
20574         * pointer-set.h: Remove pointer_map.
20575
20576 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
20577
20578         * hash-table.h: Add a template arg to choose between storing values
20579         and storing pointers to values, and then provide partial
20580         specializations for both.
20581         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
20582         should store, not the type values should point to.
20583         * tree-into-ssa.c (var_info_hasher): Likewise.
20584         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
20585         * tree-complex.c: Adjust.
20586         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
20587         table instead of int_tree_map *.
20588         * tree-parloops.c: Adjust.
20589         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
20590         type is being stored.
20591         * tree-vectorizer.c: Adjust.
20592
20593 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
20594
20595         * hash-table.h: Remove a layer of indirection from hash_table so that
20596         it contains the hash table's data instead of a pointer to the data.
20597         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
20598         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
20599         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
20600         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
20601         fold-const.c, gcse.c, ggc-common.c,
20602         gimple-ssa-strength-reduction.c, gimplify.c,
20603         graphite-clast-to-gimple.c, graphite-dependences.c,
20604         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
20605         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
20606         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
20607         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
20608         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
20609         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
20610         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
20611         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
20612         tree-ssa-live.c, tree-ssa-loop-im.c,
20613         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
20614         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
20615         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
20616         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
20617         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
20618         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
20619         vtable-verify.c, vtable-verify.h: Adjust.
20620
20621 2014-06-24  Richard Biener  <rguenther@suse.de>
20622
20623         PR tree-optimization/61572
20624         * tree-ssa-sink.c (statement_sink_location): Do not sink
20625         loads from hard registers.
20626
20627 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
20628
20629         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
20630         not mentioned in clauses use private clause if the iterator is
20631         declared in #pragma omp for simd, and when adding lastprivate
20632         instead, add it to the outer #pragma omp for too.  Diagnose
20633         if the variable is private in outer context.  For simd collapse > 1
20634         loops, replace all iterators with temporaries.
20635         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
20636         same even in collapse > 1 loops.
20637
20638         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
20639         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
20640         non-NULL.
20641         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
20642         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
20643         non-NULL.
20644         (gimplify_adjust_omp_clauses): Likewise.
20645         * omp-low.c (lower_rec_simd_input_clauses,
20646         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
20647         safelen the same as safelen(1).
20648         * tree-nested.c (convert_nonlocal_omp_clauses,
20649         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
20650         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
20651         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
20652         Fixup handling of GIMPLE_OMP_TARGET.
20653         (convert_tramp_reference_stmt, convert_gimple_call): Handle
20654         GIMPLE_OMP_TARGET.
20655
20656 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
20657
20658         PR tree-optimization/61554
20659         * tree-ssa-propagate.c: Include "bitmap.h".
20660         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
20661         properly update constructor/destructor.
20662         (substitute_and_fold_dom_walker::before_dom_children):
20663         Remove call to gimple_purge_dead_eh_edges, add bb->index to
20664         need_eh_cleaup instead.
20665         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
20666         need_eh_cleanup.
20667
20668 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
20669
20670         * varpool.c (dump_varpool_node): Dump used_by_single_function.
20671         * tree-pass.h (make_pass_ipa_single_use): New pass.
20672         * cgraph.h (used_by_single_function): New flag.
20673         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
20674         Stream it.
20675         * passes.def (pass_ipa_single_use): Scedule.
20676         * ipa.c (BOTTOM): New macro.
20677         (meet): New function
20678         (propagate_single_user): New function.
20679         (ipa_single_use): New function.
20680         (pass_data_ipa_single_use): New pass.
20681         (pass_ipa_single_use): New pass.
20682         (pass_ipa_single_use::gate): New gate.
20683         (make_pass_ipa_single_use): New function.
20684
20685 2014-06-23  Kai Tietz  <ktietz@redhat.com>
20686
20687         PR target/39284
20688         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
20689         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
20690
20691 2014-06-23  Richard Biener  <rguenther@suse.de>
20692
20693         * tree-ssa-loop.c (gate_loop): New function.
20694         (pass_tree_loop::gate): Call it.
20695         (pass_data_tree_no_loop, pass_tree_no_loop,
20696         make_pass_tree_no_loop): New.
20697         * tree-vectorizer.c: Include tree-scalar-evolution.c
20698         (pass_slp_vectorize::execute): Initialize loops and SCEV if
20699         required.
20700         (pass_slp_vectorize::clone): New method.
20701         * timevar.def (TV_TREE_NOLOOP): New.
20702         * tree-pass.h (make_pass_tree_no_loop): Declare.
20703         * passes.def (pass_tree_no_loop): New pass group with
20704         SLP vectorizer.
20705
20706 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
20707
20708         PR target/61570
20709         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
20710         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
20711
20712 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
20713
20714         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
20715         "yes" where needed.
20716
20717 2014-06-23  Alan Modra  <amodra@gmail.com>
20718
20719         PR bootstrap/61583
20720         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
20721         to zero on debug statements.
20722
20723 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
20724
20725         PR target/60825
20726         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
20727         Ignore third operand if present by marking qualifier_internal.
20728
20729         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
20730
20731         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
20732         vector extension.
20733         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
20734         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
20735         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
20736         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
20737         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
20738         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
20739         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
20740         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
20741         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
20742         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
20743         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
20744         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
20745         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
20746         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
20747         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
20748         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
20749         logic in GCC vector extensions
20750
20751         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
20752         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
20753         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
20754         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
20755         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
20756         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
20757         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
20758         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
20759         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
20760         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
20761
20762         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
20763
20764         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
20765         extensions.
20766
20767         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
20768         (vget_low_s64): Use __GET_LOW macro.
20769         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
20770         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
20771         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
20772         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
20773         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
20774
20775         (vcombine_s64): Use GCC vector extensions; remove cast.
20776         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
20777         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
20778         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
20779         Fix type signature; remove cast.
20780
20781 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
20782
20783         PR target/60825
20784         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
20785         V1DFmode.
20786         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
20787         add V1DFmode
20788         (BUILTIN_VD1): New.
20789         (BUILTIN_VD_RE): Remove.
20790         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
20791         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
20792         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
20793         variant but not df.
20794         (vreinterpretv1df*, vreinterpret*v1df): New.
20795         (vreinterpretdf*, vreinterpret*df): Remove.
20796         * config/aarch64/aarch64-simd.md (aarch64_create,
20797         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
20798         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
20799         (VD1): New.
20800         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
20801         (vcreate_f64): Remove cast, use v1df builtin.
20802         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
20803         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
20804         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
20805         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
20806         vmov_n_f64, vst1_f64): Use gcc vector extensions.
20807         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
20808         add range check using __builtin_aarch64_im_lane_boundsi.
20809         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
20810         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
20811         type signature, use gcc vector extensions.
20812         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
20813         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
20814         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
20815         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
20816         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
20817         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
20818         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
20819         vreinterpret_u64_f64): Use v1df builtin not df.
20820
20821 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
20822
20823         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
20824         vector registers.
20825
20826 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
20827
20828         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
20829         priority directly.
20830
20831 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20832
20833         * loop-invariant.c (pre_check_invariant_p): New function.
20834         (find_invariant_insn): Call pre_check_invariant_p.
20835
20836 2014-06-22  Richard Henderson  <rth@redhat.com>
20837
20838         PR target/61565
20839         * compare-elim.c (struct comparison): Add eh_note.
20840         (find_comparison_dom_walker::before_dom_children): Don't eliminate
20841         a redundant comparison in a different EH region.  Purge EH edges if
20842         necessary.
20843
20844 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20845
20846         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
20847         (var_shift): Use it.
20848         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
20849         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
20850         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
20851         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
20852         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
20853         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
20854         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
20855         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
20856         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
20857         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
20858         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
20859         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
20860         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
20861         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
20862         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
20863         *rotldi3_internal15be): Use the new attribute.  Merge register and
20864         integer alternatives.
20865
20866 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20867
20868         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
20869         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
20870         split, *ashrdi3_internal3 and split): Delete, merge into...
20871         (ashr<mode>3): New expander.
20872         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
20873         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
20874
20875 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20876
20877         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
20878         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
20879         *rotldi3_internal3 and split): Delete, merge into...
20880         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
20881         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
20882         Use "rotlw" extended mnemonic.
20883
20884 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20885
20886         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
20887         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
20888         and split, *ashldi3_internal3 and split): Delete, merge into...
20889         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
20890         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
20891
20892 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20893
20894         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
20895         (lshrsi3, two anonymous define_insns and define_splits,
20896         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
20897         *lshrdi3_internal3 and split): Delete, merge into...
20898         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
20899         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
20900
20901 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20902
20903         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
20904         Remove "O" alternative.
20905
20906 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
20907
20908         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
20909         (mips_move_from_gpr_cost): Likewise.
20910         (mips_register_move_cost): Update accordingly.
20911         (mips_secondary_reload_class): Remove name of in_p.
20912
20913 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
20914
20915         PR target/61503
20916         * config/i386/i386.md (x86_64_shrd, x86_shrd,
20917         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
20918
20919 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20920
20921         * config/nios2/nios2.c: Include "builtins.h".
20922
20923 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
20924
20925         * cgraph.h (tls_model_names): New variable.
20926         * print-tree.c (print_node): Simplify.
20927         * varpool.c (tls_model_names): New variable.
20928         (dump_varpool_node): Output tls model.
20929
20930 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
20931
20932         * ipa-visibility.c (function_and_variable_visibility): Disable
20933         temporarily local aliases for some targets.
20934
20935 2014-06-20  Marek Polacek  <polacek@redhat.com>
20936
20937         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
20938         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
20939         into SANITIZE_UNDEFINED.
20940         * doc/invoke.texi: Describe -fsanitize=bounds.
20941         * gimplify.c (gimplify_call_expr): Add gimplification of internal
20942         functions created in the FEs.
20943         * internal-fn.c: Move "internal-fn.h" after "tree.h".
20944         (expand_UBSAN_BOUNDS): New function.
20945         * internal-fn.def (UBSAN_BOUNDS): New internal function.
20946         * internal-fn.h: Don't define internal functions here.
20947         * opts.c (common_handle_option): Add -fsanitize=bounds.
20948         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
20949         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
20950         * tree-core.h: Define internal functions here.
20951         (struct tree_base): Add ifn field.
20952         * tree-pretty-print.c: Include "internal-fn.h".
20953         (dump_generic_node): Handle functions without CALL_EXPR_FN.
20954         * tree.c (get_callee_fndecl): Likewise.
20955         (build_call_expr_internal_loc): New function.
20956         * tree.def (CALL_EXPR): Update description.
20957         * tree.h (CALL_EXPR_IFN): Define.
20958         (build_call_expr_internal_loc): Declare.
20959         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
20960         types.
20961         (ubsan_type_descriptor): Change bool parameter to enum
20962         ubsan_print_style.  Adjust the code.  Add handling of
20963         UBSAN_PRINT_ARRAY.
20964         (ubsan_expand_bounds_ifn): New function.
20965         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
20966         (ubsan_build_overflow_builtin): Likewise.
20967         (instrument_bool_enum_load): Likewise.
20968         (ubsan_instrument_float_cast): Likewise.
20969         * ubsan.h (enum ubsan_print_style): New enum.
20970         (ubsan_expand_bounds_ifn): Declare.
20971         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
20972
20973 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
20974
20975         * config/rs6000/rs6000.md: Append `DONE' to preparation
20976         statements of `bswap' pattern splitters.
20977
20978 2014-06-20  Tom de Vries  <tom@codesourcery.com>
20979
20980         * target.def (call_fusage_contains_non_callee_clobbers): Update
20981         definition.
20982         * doc/tm.texi: Regenerate.
20983
20984 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
20985             Max Ostapenko  <m.ostapenko@partner.samsung.com>
20986
20987         PR sanitizer/61547
20988         * asan.c (instrument_strlen_call): Fixed instrumentation of
20989         trailing byte.
20990
20991 2014-06-20  Martin Jambor  <mjambor@suse.cz>
20992
20993         PR ipa/61540
20994         * ipa-prop.c (impossible_devirt_target): New function.
20995         (try_make_edge_direct_virtual_call): Use it, also instead of
20996         asserting.
20997
20998 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
20999             Max Ostapenko  <m.ostapenko@partner.samsung.com>
21000
21001         PR sanitizer/61530
21002         * asan.c (build_check_stmt): Add condition.
21003
21004 2014-06-20  Martin Jambor  <mjambor@suse.cz>
21005
21006         PR ipa/61211
21007         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
21008         expanded clones.
21009
21010 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21011
21012         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
21013         Update comments.
21014         (VCONQ): Make comment more helpful.
21015         (VCON): Delete.
21016         * config/aarch64/aarch64-simd.md
21017         (aarch64_sqdmulh_lane<mode>):
21018         Use VCOND for operands 2.  Update lane checking and flipping logic.
21019         (aarch64_sqrdmulh_lane<mode>): Likewise.
21020         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
21021         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
21022         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
21023         attribute of operand 3 to VCOND.
21024         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
21025         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
21026         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
21027         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
21028         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
21029         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
21030         define_insn.
21031         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
21032         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
21033         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
21034         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
21035         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
21036         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
21037         operand to VCOND.  Update lane flipping and bounds checking logic.
21038         (aarch64_sqdmlal2_lane<mode>): Likewise.
21039         (aarch64_sqdmlsl_lane<mode>): Likewise.
21040         (aarch64_sqdmull_lane<mode>): Likewise.
21041         (aarch64_sqdmull2_lane<mode>): Likewise.
21042         (aarch64_sqdmlal_laneq<mode>):
21043         Replace VCON usage with VCONQ.
21044         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
21045         (aarch64_sqdmlal2_laneq<mode>): Emit
21046         aarch64_sqdmlal2_laneq<mode>_internal insn.
21047         Replace VCON with VCONQ.
21048         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
21049         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
21050         (aarch64_sqdmull_laneq<mode>): Emit
21051         aarch64_sqdmull_laneq<mode>_internal insn.
21052         Replace VCON with VCONQ.
21053         (aarch64_sqdmull2_laneq<mode>): Emit
21054         aarch64_sqdmull2_laneq<mode>_internal insn.
21055         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
21056         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
21057         of 3rd argument to int16x4_t.
21058         (vqdmlalh_lane_s16): Likewise.
21059         (vqdmlslh_lane_s16): Likewise.
21060         (vqdmull_high_lane_s16): Likewise.
21061         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
21062         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
21063         (vqdmlsl_lane_s16): Likewise.
21064         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
21065         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
21066         (vqdmlals_lane_s32): Likewise.
21067         (vqdmlsls_lane_s32): Likewise.
21068         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
21069         (vqdmulls_lane_s32): Likewise.
21070         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
21071         (vqdmlsl_lane_s32): Likewise.
21072         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
21073         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
21074         (vqrdmulhh_lane_s16): Likewise.
21075         (vqdmlsl_high_lane_s16): Likewise.
21076         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
21077         (vqdmlsl_high_lane_s32): Likewise.
21078         (vqrdmulhs_lane_s32): Likewise.
21079
21080 2014-06-20  Tom de Vries  <tom@codesourcery.com>
21081
21082         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
21083         get_call_reg_set_usage.
21084
21085 2014-06-20  Tom de Vries  <tom@codesourcery.com>
21086
21087         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
21088         it contains all call_used_regs.
21089
21090 2014-06-20  Tom de Vries  <tom@codesourcery.com>
21091
21092         * final.c (collect_fn_hard_reg_usage): Add and use variable
21093         function_used_regs.
21094
21095 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
21096
21097         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
21098         (set_init_priority, get_init_priority, set_fini_priority,
21099         get_fini_priority): New methods.
21100         * tree.c (init_priority_for_decl): Remove.
21101         (init_ttree): Do not initialize init priority.
21102         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
21103         (decl_priority_info): Remove.
21104         (decl_init_priority_insert): Rewrite.
21105         (decl_fini_priority_insert): Rewrite.
21106         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
21107         tree_priority_map_marked_p): Remove.
21108         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
21109         * lto-streamer-out.c (hash_tree): Do not hash priorities.
21110         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
21111         not output priorities.
21112         (pack_ts_function_decl_value_fields): Likewise.
21113         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
21114         not input priorities.
21115         (unpack_ts_function_decl_value_fields): Likewise.
21116         * symtab.c (symbol_priority_map): Declare.
21117         (init_priority_hash): Declare.
21118         (symtab_unregister_node): Unregister from priority hash, too.
21119         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
21120         New methods.
21121         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
21122         (symbol_priority_info): New function.
21123         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
21124         New methods.
21125         * tree-core.h (tree_priority_map): Remove.
21126
21127 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
21128
21129         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
21130         0xff to uint64_t before shifting it up.
21131
21132 2014-06-20  Julian Brown  <julian@codesourcery.com>
21133             Chung-Lin Tang  <cltang@codesourcery.com>
21134
21135         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
21136         TARGET_THUMB1_ONLY. Add comments.
21137
21138 2014-06-19  Tom de Vries  <tom@codesourcery.com>
21139
21140         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
21141         return type to void.
21142         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
21143
21144 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
21145
21146         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
21147         as "move", from depends_on.
21148
21149 2014-06-19  Terry Guo  <terry.guo@arm.com>
21150
21151         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
21152         stage.
21153
21154 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
21155
21156         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
21157         Remove cr5.
21158         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
21159
21160 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
21161
21162         PR target/61550
21163         * config/sh/sh.c (prepare_move_operands): Don't process TLS
21164         addresses here if reload in progress or completed.
21165
21166 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
21167
21168         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
21169         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
21170         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
21171         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
21172         (mips_register_priority): New function that implements the target
21173         hook TARGET_REGISTER_PRIORITY.
21174         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
21175         (mips_lra_p): Likewise for TARGET_LRA_P.
21176         (TARGET_REGISTER_PRIORITY): Define macro.
21177         (TARGET_SPILL_CLASS): Likewise.
21178         (TARGET_LRA_P): Likewise.
21179         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
21180         classes.
21181         (REG_CLASS_NAMES): Likewise.
21182         (REG_CLASS_CONTENTS): Likewise.
21183         (BASE_REG_CLASS): Use M16_SP_REGS.
21184         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
21185         New set attribute to enable alternatives depending on the register
21186         allocator used.
21187         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
21188         (*lea64): Disable pattern for MIPS16.
21189         * config/mips/mips.opt (mlra): New option.
21190
21191 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
21192
21193         * lra-constraints.c (base_to_reg): New function.
21194         (process_address): Use new function.
21195
21196 2014-06-18  Tom de Vries  <tom@codesourcery.com>
21197
21198         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
21199         * config/aarch64/aarch64.c
21200         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
21201         (aarch64_emit_call_insn): New function.
21202         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
21203         of emit_call_insn.
21204         * config/aarch64/aarch64.md (define_expand "call_internal")
21205         (define_expand "call_value_internal", define_expand "sibcall_internal")
21206         (define_expand "sibcall_value_internal"): New.
21207         (define_expand "call", define_expand "call_value")
21208         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
21209         expand variant and aarch64_emit_call_insn.
21210
21211 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
21212             Tom de Vries  <tom@codesourcery.com>
21213
21214         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
21215         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
21216         Redefine to true.
21217         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
21218         clobbers to CALL_INSN_FUNCTION_USAGE.
21219         (define_expand "sibcall_internal")
21220         (define_expand "sibcall_value_internal"): New.
21221         (define_expand "call", define_expand "call_value"): Add argument to
21222         arm_emit_call_insn.
21223         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
21224         (define_expand "sibcall_value"): Use sibcall_value_internal and
21225         arm_emit_call_insn.
21226
21227 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21228
21229         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
21230
21231 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21232
21233         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
21234         __udivmoddi4.
21235
21236 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21237
21238         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
21239         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
21240         annotations. Fix DWARF information.
21241
21242 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21243
21244         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
21245         __udivmoddi4, and fixups for negative operands.
21246
21247 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21248
21249         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
21250
21251 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21252
21253         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
21254         to __udivmoddi4.
21255
21256 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21257
21258         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
21259         manipulation.
21260
21261 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21262
21263         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
21264         describing register usage on function entry and exit.
21265
21266 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21267
21268         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
21269         (__aeabi_ldivmod): Fix whitespace.
21270
21271 2014-06-18  Andreas Schwab  <schwab@suse.de>
21272
21273         * doc/md.texi (Standard Names): Use @itemx for grouped items.
21274         Remove blank line after @item.
21275
21276 2014-06-18  Richard Henderson  <rth@redhat.com>
21277
21278         PR target/61545
21279         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
21280
21281 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21282
21283         * config/arm/arm.c (neon_vector_mem_operand): Allow register
21284         POST_MODIFY for neon loads and stores.
21285         (arm_print_operand): Output post-index register for neon loads and
21286         stores.
21287
21288 2014-06-18  Richard Biener  <rguenther@suse.de>
21289
21290         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
21291
21292 2014-06-18  Richard Biener  <rguenther@suse.de>
21293
21294         * tree-pass.h (make_pass_dce_loop): Remove.
21295         * passes.def: Replace pass_dce_loop with pass_dce.
21296         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
21297         changed free niter estimates and reset the scev cache.
21298         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
21299         make_pass_dce_loop): Remove.
21300         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
21301         (fini_copy_prop): Return whether something changed.  Always
21302         let substitute_and_fold perform DCE and free niter estimates
21303         and reset the scev cache if so.
21304         (execute_copy_prop): If sth changed schedule cleanup-cfg.
21305         (pass_data_copy_prop): Do not unconditionally schedule
21306         cleanup-cfg or update-ssa.
21307
21308 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
21309
21310         PR tree-optimization/61518
21311         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
21312         reduction var is used in reduction stmt or phi-function only.
21313
21314 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21315
21316         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
21317
21318 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21319
21320         PR tree-optimization/61517
21321         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
21322         whose rhs's first tree is the source expression instead of the
21323         expression itself.
21324         (find_bswap_or_nop): Likewise.
21325         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
21326         gimple stmt whose rhs's first tree is the source. In the memory source
21327         case, move the stmt to be replaced close to one of the original load to
21328         avoid the problem of a store between the load and the stmt's original
21329         location.
21330         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
21331         signature.
21332
21333 2014-06-18  Andreas Schwab  <schwab@suse.de>
21334
21335         PR rtl-optimization/54555
21336         * postreload.c (move2add_use_add2_insn): Substitute
21337         STRICT_LOW_PART only if it is cheaper.
21338
21339 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
21340
21341         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
21342         Do not use unspec as call operand.  Use memory_operand instead of
21343         memory_nox32_operand and add "m" operand constraint.  Disable
21344         pattern for TARGET_X32.
21345         (*sibcall_pop_memory): Ditto.
21346         (*sibcall_value_memory): Ditto.
21347         (*sibcall_value_pop_memory): Ditto.
21348         (sibcall peepholes): Merge SImode and DImode patterns using
21349         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
21350         Disable pattern for TARGET_X32.  Check if eliminated register is
21351         really dead after call insn.  Generate call RTX without unspec operand.
21352         (sibcall_value peepholes): Ditto.
21353         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
21354         instead of memory_nox32_operand.  Check if eliminated register is
21355         really dead after call insn. Generate call RTX without unspec operand.
21356         (sibcall_value_pop peepholes): Ditto.
21357         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
21358
21359 2014-06-18  Terry Guo  <terry.guo@arm.com>
21360
21361         PR target/61544
21362         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
21363         reach the head.
21364
21365 2014-06-18  Olivier Hainque  <hainque@adacore.com>
21366
21367         * tree-core.h (tree_block): Add an "end_locus" field, allowing
21368         memorization of the end of block source location.
21369         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
21370         * gimplify.c (gimplify_bind_expr): Propagate the block start and
21371         end source location info we have on the block entry/exit code we
21372         generate.
21373
21374 2014-06-18  Richard Biener  <rguenther@suse.de>
21375
21376         * common.opt (fssa-phiopt): New option.
21377         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
21378         but not with -Og.
21379         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
21380         * doc/invoke.texi (-fssa-phiopt): Document.
21381
21382 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21383
21384         * genattrtab.c (n_bypassed): New variable.
21385         (process_bypasses): Initialise n_bypassed.
21386         Count number of bypassed reservations.
21387         (make_automaton_attrs): Allocate space for bypassed reservations
21388         rather than number of bypasses.
21389
21390 2014-06-18  Richard Biener  <rguenther@suse.de>
21391
21392         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
21393         we propagated anything.
21394         (substitute_and_fold_dom_walker::before_dom_children): Something
21395         changed if we propagated into PHI arguments.
21396         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
21397         we removed a stmt.
21398
21399 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
21400
21401         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
21402         vector case.
21403         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
21404         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
21405         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
21406         Introduces alternative way of loads group permutaions.
21407         (vect_transform_grouped_load): Try alternative way of permutations.
21408
21409 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
21410
21411         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
21412         changed in ORT_TARGET region, don't jump to do_outer.
21413         (struct gimplify_adjust_omp_clauses_data): New type.
21414         (gimplify_adjust_omp_clauses_1): Adjust for data being
21415         a struct gimplify_adjust_omp_clauses_data pointer instead
21416         of tree *.  Pass pre_p as a new argument to
21417         lang_hooks.decls.omp_finish_clause hook.
21418         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
21419         splay_tree_foreach to pass both list_p and pre_p.
21420         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
21421         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
21422         gimplify_adjust_omp_clauses callers.
21423         * langhooks.c (lhd_omp_finish_clause): New function.
21424         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
21425         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
21426         * langhooks.h (struct lang_hooks_for_decls): Add a new
21427         gimple_seq * argument to omp_finish_clause hook.
21428         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
21429         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
21430         (scan_omp_parallel, lower_omp_for): When adding
21431         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
21432         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
21433         * tree-nested.c (convert_nonlocal_omp_clauses,
21434         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
21435         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
21436
21437 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
21438
21439         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
21440         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
21441
21442 2014-06-17  Xinliang David Li  <davidxl@google.com>
21443
21444         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
21445         * passes.c (pass_init_dump_file): Do not set initialize
21446         flag to false unconditionally.
21447
21448 2014-06-17  Richard Biener  <rguenther@suse.de>
21449
21450         * genopinit.c (main): Use vec<>::qsort method.
21451         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
21452         Likewise.
21453         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
21454
21455 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
21456
21457         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
21458         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
21459         (mips_move_to_gpr_cost): Remove ST_REGS case.
21460         (mips_move_from_gpr_cost): Likewise.
21461         (mips_register_move_cost): Likewise.
21462         (mips_secondary_reload_class): Likewise.
21463
21464 2014-06-17  Richard Biener  <rguenther@suse.de>
21465
21466         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
21467         (pass_all_optimizations): Move 3rd copy-prop pass from after
21468         fre to before ifcombine/phiopt.
21469
21470 2014-06-17  Richard Biener  <rguenther@suse.de>
21471
21472         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
21473         and allow all blocks to be forwarders.
21474
21475 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
21476
21477         PR target/61483
21478         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
21479         variable 'size'; calculate 'size' right in the front; use
21480         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
21481         pcum->aapcs_stack_words.
21482
21483 2014-06-17  Nick Clifton  <nickc@redhat.com>
21484
21485         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
21486         (umulhi3, mulsidi3, umulsidi3): Likewise.
21487
21488 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
21489
21490         PR middle-end/61508
21491         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
21492         check for section name.
21493
21494 2014-06-17  Richard Biener  <rguenther@suse.de>
21495
21496         * tree-ssa-propagate.c: Include domwalk.h.
21497         (substitute_and_fold): Outline main worker into a domwalker ...
21498         (substitute_and_fold_dom_walker::before_dom_children): ... here.
21499         Schedule stmts we can fully propagate for removal.  Remove
21500         poor-mans DCE.
21501         (substitute_and_fold): Apply a dominator walk to perform
21502         substitution.  Process stmts scheduled for removal here.
21503
21504 2014-06-17  Richard Biener  <rguenther@suse.de>
21505
21506         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
21507         of PHI node moving.
21508
21509 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
21510
21511         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
21512         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
21513         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
21514         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
21515         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
21516         TARGET_HARD_FLOAT.
21517         (get_fpscr) : Likewise.
21518
21519 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
21520
21521         PR rtl-optimization/61325
21522         * lra-constraints.c (valid_address_p): Add forward declaration.
21523         (simplify_operand_subreg): Check address validity before and after
21524         alter_reg of memory subreg.
21525
21526 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
21527
21528         * config/i386/i386.c (decide_alg): Correctly handle
21529         maximum size of stringop algorithm.
21530
21531 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
21532
21533         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
21534
21535 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
21536
21537         PR rtl-optimization/61522
21538         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
21539
21540 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
21541
21542         Revert:
21543         * symtab.c (symtab_node::reset_section): New method.
21544         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
21545         for localization.
21546         * cgraph.h (reset_section): Declare.
21547         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
21548         do not consider comdat locals.
21549         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
21550         for new symbol.
21551         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
21552         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
21553         reset sections of symbols dragged out of the comdats.
21554         (function_and_variable_visibility): Reset sections of
21555         localized symbols.
21556
21557 2014-06-16  Richard Biener  <rguenther@suse.de>
21558
21559         PR tree-optimization/61482
21560         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
21561         [-INF(OVF), +INF(OVF)] range.
21562
21563 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
21564
21565         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
21566         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
21567         handling 32-bit multiplication.
21568
21569 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
21570
21571         PR middle-end/61430
21572         * lra-lives.c (process_bb_lives): Skip creating copy during
21573         insn scan when src/dest has constrained to same regno.
21574
21575 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
21576
21577         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
21578         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
21579
21580 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
21581
21582         * asan.c (check_func): New function.
21583         (maybe_create_ssa_name): Likewise.
21584         (build_check_stmt_with_calls): Likewise.
21585         (use_calls_p): Likewise.
21586         (report_error_func): Change interface.
21587         (build_check_stmt): Allow non-integer lengths; add support
21588         for new parameter.
21589         (asan_instrument): Likewise.
21590         (instrument_mem_region_access): Moved code to build_check_stmt.
21591         (instrument_derefs): Likewise.
21592         (instrument_strlen_call): Likewise.
21593         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
21594         * doc/invoke.texi: Describe new parameter.
21595         * params.def: Define new parameter.
21596         * params.h: Likewise.
21597         * sanitizer.def: Describe new builtins.
21598
21599 2014-06-16  Richard Biener  <rguenther@suse.de>
21600
21601         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21602         Make all defs available at the end.
21603         (eliminate): If we remove a PHI node schedule cfg-cleanup.
21604
21605 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
21606
21607         PR plugins/45078
21608         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
21609
21610 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
21611
21612         PR bootstrap/61516
21613         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
21614         initialization.  Replace remaining use of uid.
21615
21616 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
21617
21618         * c-family/c-common.c (handle_tls_model_attribute): Use
21619         set_decl_tls_model.
21620         * c-family/c-common.c (handle_tls_model_attribute): Use
21621         set_decl_tls_model.
21622         * cgraph.h (struct varpool_node): Add tls_model.
21623         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
21624         * tree.h (DECL_TLS_MODEL): Update.
21625         (DECL_THREAD_LOCAL_P): Check that variable is static.
21626         (decl_tls_model): Declare.
21627         (set_decl_tls_model): Declare.
21628         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
21629         set symbol prorperties.
21630         (get_emutls_init_templ_addr): Cleanup.
21631         (new_emutls_decl): Update.
21632         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
21633         (lto_input_varpool_node): Likewise.
21634         * lto-streamer-out.c (hash_tree): Likewise.
21635         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
21636         not stream DECL_TLS_MODEL.
21637         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
21638         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
21639
21640 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21641
21642         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
21643
21644 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21645
21646         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
21647         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
21648         lists.
21649         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
21650         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
21651         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
21652         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
21653         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
21654         (df_get_artificial_defs, df_get_artificial_uses)
21655         (df_single_def, df_single_use): Update accordingly.
21656         (df_refs_chain_dump): Take the first element in a linked list as
21657         parameter, rather than a pointer to an array of pointers.
21658         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
21659         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
21660         (df_chain_create_bb_process_use): Likewise.
21661         (df_md_bb_local_compute_process_def): Likewise.
21662         * fwprop.c (process_defs, process_uses): Likewise.
21663         (register_active_defs, update_uses): Likewise.
21664         (forward_propagate_asm): Update for new df_ref linking.
21665         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
21666         (df_null_ref_rec, df_null_mw_rec): Likewise.
21667         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
21668         explicitly.
21669         (df_scan_free_bb_info): Remove check for null artificial_defs.
21670         (df_install_ref_incremental): Adjust for new df_ref linking.
21671         Use a single-element insertion rather than a full sort.
21672         (df_ref_chain_delete_du_chain): Take the first element
21673         in a linked list as parameter, rather than a pointer to an array of
21674         pointers.
21675         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
21676         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
21677         (df_insn_info_delete): Remove check for null defs and call to
21678         df_scan_free_mws_vec.
21679         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
21680         null rather than df_null_*_rec.
21681         (df_insn_rescan_debug_internal): Likewise, and update null
21682         checks in the same way.  Remove check for null defs.
21683         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
21684         Move a single element rather doing a full sort.
21685         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
21686         linking.
21687         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
21688         Initialize df_ref and df_mw_hardreg lists to null rather than
21689         df_null_*_rec.
21690         (df_ref_compare): Take df_refs as parameter, transferring the
21691         old interface to...
21692         (df_ref_ptr_compare): ...this new function.
21693         (df_sort_and_compress_refs): Update accordingly.
21694         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
21695         old interface to...
21696         (df_mw_ptr_compare): ...this new function.
21697         (df_sort_and_compress_mws): Update accordingly.
21698         (df_install_refs, df_install_mws): Return a linked list rather than
21699         an array of pointers.
21700         (df_refs_add_to_chains): Assert that old lists are empty rather
21701         than freeing them.
21702         (df_insn_refs_verify): Don't handle null defs speciailly.
21703         * web.c (union_match_dups): Update for new df_ref linking.
21704
21705 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21706
21707         * df.h (df_ref_create, df_ref_remove): Delete.
21708         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
21709         (df_ref_remove): Likewise.
21710
21711 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21712
21713         * df.h (df_single_def, df_single_use): New functions.
21714         * ira.c (find_moveable_pseudos): Use them.
21715
21716 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21717
21718         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
21719         * df-problems.c (df_note_bb_compute): Use it.
21720         * regstat.c (regstat_bb_compute_ri): Likewise.
21721
21722 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21723
21724         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
21725         * cse.c (cse_extended_basic_block): Use them.
21726         * dce.c (mark_artificial_use): Likewise.
21727         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
21728         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
21729         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
21730         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
21731         (df_simulate_initialize_backwards): Likewise.
21732         (df_simulate_finalize_backwards): Likewise.
21733         (df_simulate_initialize_forwards): Likewise.
21734         (df_md_simulate_artificial_defs_at_top): Likewise.
21735         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
21736         * regrename.c (init_rename_info): Likewise.
21737         * regstat.c (regstat_bb_compute_ri): Likewise.
21738         (regstat_bb_compute_calls_crossed): Likewise.
21739
21740 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21741
21742         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
21743         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
21744         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
21745         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
21746         * combine.c (create_log_links): Likewise.
21747         * compare-elim.c (find_flags_uses_in_insn): Likewise.
21748         (try_eliminate_compare): Likewise.
21749         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
21750         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
21751         (remove_reg_equal_equiv_notes_for_defs): Likewise.
21752         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
21753         (word_dce_process_block, dce_process_block): Likewise.
21754         * ddg.c (def_has_ccmode_p): Likewise.
21755         * df-core.c (df_bb_regno_first_def_find): Likewise.
21756         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
21757         * df-problems.c (df_rd_simulate_one_insn): Likewise.
21758         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
21759         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
21760         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
21761         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
21762         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
21763         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
21764         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
21765         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
21766         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
21767         * fwprop.c (local_ref_killed_between_p): Likewise.
21768         (all_uses_available_at, free_load_extend): Likewise.
21769         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
21770         * hw-doloop.c (scan_loop): Likewise.
21771         * ifcvt.c (dead_or_predicable): Likewise.
21772         * init-regs.c (initialize_uninitialized_regs): Likewise.
21773         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
21774         (process_bb_node_lives): Likewise.
21775         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
21776         (find_moveable_pseudos): Likewise.
21777         * loop-invariant.c (check_dependencies, record_uses): Likewise.
21778         * recog.c (peep2_find_free_register): Likewise.
21779         * ree.c (get_defs): Likewise.
21780         * regstat.c (regstat_bb_compute_ri): Likewise.
21781         (regstat_bb_compute_calls_crossed): Likewise.
21782         * sched-deps.c (find_inc, find_mem): Likewise.
21783         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
21784         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
21785         * shrink-wrap.c (requires_stack_frame_p): Likewise.
21786         (prepare_shrink_wrap): Likewise.
21787         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
21788         * web.c (union_defs, pass_web::execute): Likewise.
21789         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
21790         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
21791
21792 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
21793
21794         * lra-assign.c (assign_by_spills): Add code to assign vector regs
21795         to inheritance pseudos.
21796         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
21797
21798 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
21799
21800         PR target/61415
21801         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
21802         (BU_MISC_2): Rename to ...
21803         (BU_LDBL128_2): ... this.
21804         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
21805         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
21806         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
21807         RS6000_BTM_LDBL128.
21808         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
21809         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
21810         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
21811         (unpacktf_1): Likewise.
21812         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
21813         (__builtin_longdouble_dw1): Likewise.
21814         * doc/sourcebuild.texi (longdouble128): Document.
21815
21816 2014-06-13  Jeff Law  <law@redhat.com>
21817
21818         PR rtl-optimization/61094
21819         PR rtl-optimization/61446
21820         * ree.c (combine_reaching_defs): Get the mode for the copy from
21821         the extension insn rather than the defining insn.
21822
21823 2014-06-13  Dehao Chen  <dehao@google.com>
21824
21825         * dwarf2out.c (add_linkage_name): Emit more linkage name.
21826
21827 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
21828
21829         * doc/install.texi (--enable-linker-plugin-configure-flags)
21830         (--enable-linker-plugin-flags): Document new flags.
21831
21832 2014-06-13  Martin Jambor  <mjambor@suse.cz>
21833
21834         PR ipa/61186
21835         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
21836         cache_token if returning early.
21837
21838 2014-06-13  Nick Clifton  <nickc@redhat.com>
21839
21840         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
21841         requested alignment is active.
21842         (LABEL_ALIGN): Likewise.
21843         (LOOP_ALIGN): Likewise.
21844
21845 2014-06-13  Richard Biener  <rguenther@suse.de>
21846
21847         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21848         Rewrite to propagate the VN result into all uses where
21849         possible and to remove stmts becoming dead because of that.
21850         (eliminate): Generalize stmt removal handling, remove in
21851         reverse dominator order to support proper debug stmt
21852         generation.  Update stmts before removing stmts.
21853         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
21854
21855 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21856
21857         PR tree-optimization/61375
21858         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
21859         symbolic number cannot be represented in an uint64_t.
21860         (find_bswap_or_nop_1): Likewise.
21861
21862 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
21863
21864         * symtab.c (symtab_node::reset_section): New method.
21865         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
21866         for localization.
21867         * cgraph.h (reset_section): Declare.
21868         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
21869         do not consider comdat locals.
21870         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
21871         for new symbol.
21872         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
21873         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
21874         reset sections of symbols dragged out of the comdats.
21875         (function_and_variable_visibility): Reset sections of
21876         localized symbols.
21877
21878 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
21879
21880         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
21881         to use symtab and decl_binds_to_current_def_p
21882         * tree-vectorizer.c (increase_alignment): Increase alignment
21883         of alias target, too.
21884
21885 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
21886
21887         PR middle-end/61486
21888         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
21889         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
21890         if outer combined construct is distribute.
21891         (gimplify_omp_for): For OMP_DISTRIBUTE set
21892         gimplify_omp_ctxp->distribute.
21893         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
21894         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
21895         mapping into decl map.
21896
21897 2014-06-12  Jason Merrill  <jason@redhat.com>
21898
21899         * common.opt (fabi-version): Change default to 0.
21900
21901 2014-06-12  Jason Merrill  <jason@redhat.com>
21902
21903         * toplev.c (process_options): Reject -fabi-version=1.
21904
21905 2014-06-12  Jeff Law  <law@redhat.com>
21906
21907         PR tree-optimization/61009
21908         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
21909         value when we stop processing a block due to problematic PHIs.
21910
21911 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
21912
21913         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
21914         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
21915         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
21916         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
21917         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
21918         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
21919         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
21920         are not in the spec.
21921
21922 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
21923
21924         PR target/59843
21925         * config/aarch64/aarch64-modes.def: Add V1DFmode.
21926         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
21927         Support V1DFmode.
21928
21929 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
21930
21931         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
21932
21933 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
21934
21935         PR target/61443
21936         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
21937         loading from address spaces.
21938
21939 2014-06-12  Martin Liska  <mliska@suse.cz>
21940
21941         PR ipa/61462
21942         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
21943         statement is reachable.
21944
21945 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
21946
21947         * symtab.c (section_hash): New hash.
21948         (symtab_unregister_node): Clear section before freeing.
21949         (hash_section_hash_entry): New haser.
21950         (eq_sections): New function.
21951         (symtab_node::set_section_for_node): New method.
21952         (set_section_1): Update.
21953         (symtab_node::set_section): Take string instead of tree as parameter.
21954         (symtab_resolve_alias): Update.
21955         * cgraph.h (section_hash_entry_d): New structure.
21956         (section_hash_entry): New typedef.
21957         (cgraph_node): Change comdat_group_ to x_comdat_group,
21958         change section_ to x_section and turn into section_hash_entry;
21959         update accestors; put set_section_for_node offline.
21960         * tree.c (decl_section_name): Turn into string.
21961         (set_decl_section_name): Change parameter to be string.
21962         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
21963         * sdbout.c (sdbout_one_type): Update.
21964         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
21965         * varasm.c (IN_NAMED_SECTION, get_named_section,
21966         resolve_unique_section, hot_function_section, get_named_text_section,
21967         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
21968         make_decl_rtl, default_unique_section): Update.
21969         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
21970         (c6x_elf_unique_section): Update.
21971         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
21972         * config/pa/pa.c (pa_function_section): Update.
21973         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
21974         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
21975         * config/arc/arc.c (arc_in_small_data_p): Update.
21976         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
21977         * config/mcore/mcore.c (mcore_unique_section): Update.
21978         * config/mips/mips.c (mips16_build_function_stub): Update.
21979         (mips16_build_call_stub): Update.
21980         (mips_function_rodata_section): Update.
21981         (mips_in_small_data_p): Update.
21982         * config/score/score.c (score_in_small_data_p): Update.
21983         * config/rx/rx.c (rx_in_small_data): Update.
21984         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
21985         (rs6000_xcoff_asm_named_section): Update.
21986         (rs6000_xcoff_unique_section): Update.
21987         * config/frv/frv.c (frv_string_begins_with): Update.
21988         (frv_in_small_data_p): Update.
21989         * config/v850/v850.c (v850_encode_data_area): Update.
21990         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
21991         (bfin_handle_l1_data_attribute): Update.
21992         (bfin_handle_l2_attribute): Update.
21993         * config/mep/mep.c (mep_unique_section): Update.
21994         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
21995         Update.
21996         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
21997         (h8300_handle_tiny_data_attribute): Update.
21998         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
21999         (m32r_in_small_data_p): Update.
22000         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
22001         * config/i386/i386.c (ix86_in_large_data_p): Update.
22002         * config/i386/winnt.c (i386_pe_unique_section): Update.
22003         * config/darwin.c (darwin_function_section): Update.
22004         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
22005         * tree-emutls.c (get_emutls_init_templ_addr): Update.
22006         (new_emutls_decl): Update.
22007         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
22008         input_varpool_node): Update.
22009         (ead_string_cst): Turn to ...
22010         (read_string): ... this one.
22011         * dwarf2out.c (secname_for_decl): Update.
22012         * asan.c (asan_protect_global): Update.
22013
22014 2014-06-11  DJ Delorie  <dj@redhat.com>
22015
22016         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
22017         cache lines.
22018         * config/rx/rx.c (rx_option_override): Likewise.
22019         (rx_align_for_label): Likewise.
22020
22021         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
22022
22023 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
22024
22025         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
22026         prototype.
22027
22028 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
22029
22030         * common.md: New file.
22031         * doc/md.texi: Update description of generic, machine-independent
22032         constraints.
22033         * config/s390/constraints.md (e): Delete.
22034         * Makefile.in (md_file): Include common.md.
22035         * config/m32c/t-m32c (md_file): Likewise.
22036         * genpreds.c (general_mem): New array.
22037         (generic_constraint_letters): Remove constraints now defined by
22038         common.md.
22039         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
22040         Allow the first character to be '<' or '>' as well.
22041         * genoutput.c (general_mem): New array.
22042         (indep_constraints): Remove constraints now defined by common.md.
22043         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
22044         Remove special handling of 'm'.
22045         * ira-costs.c (record_reg_classes): Remove special handling of
22046         constraints now defined by common.md.
22047         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
22048         * ira-lives.c (single_reg_class): Likewise.
22049         (ira_implicitly_set_insn_hard_regs): Likewise.
22050         * lra-constraints.c (reg_class_from_constraints): Likewise.
22051         (process_alt_operands, process_address, curr_insn_transform): Likewise.
22052         * postreload.c (reload_cse_simplify_operands): Likewise.
22053         * reload.c (push_secondary_reload, scratch_reload_class)
22054         (find_reloads, alternative_allows_const_pool_ref): Likewise.
22055         * reload1.c (maybe_fix_stack_asms): Likewise.
22056         * targhooks.c (default_secondary_reload): Likewise.
22057         * stmt.c (parse_output_constraint): Likewise.
22058         * recog.c (preprocess_constraints): Likewise.
22059         (constrain_operands, peep2_find_free_register): Likewise.
22060         (asm_operand_ok): Likewise, but add a comment saying why 'o'
22061         must be handled specially.
22062
22063 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
22064
22065         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
22066         * genpreds.c (have_const_dbl_constraints): Delete.
22067         (add_constraint): Don't set it.
22068         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
22069         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
22070         constraints using the lookup_constraint logic.
22071         * ira-lives.c (single_reg_class): Likewise.
22072         * ira.c (ira_setup_alts): Likewise.
22073         * lra-constraints.c (process_alt_operands): Likewise.
22074         * recog.c (asm_operand_ok, constrain_operands): Likewise.
22075         * reload.c (find_reloads): Likewise.
22076
22077 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
22078
22079         * genpreds.c (const_int_start, const_int_end): New variables.
22080         (choose_enum_order): Output CONST_INT constraints before memory
22081         constraints.
22082         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
22083         Add CT_CONST_INT.
22084         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
22085         * ira.c (ira_setup_alts): Likewise.
22086         * lra-constraints.c (process_alt_operands): Likewise.
22087         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
22088         * reload.c (find_reloads): Likewise.
22089
22090 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
22091
22092         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
22093         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
22094         * recog.c (preprocess_constraints): Update accordingly.
22095
22096 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
22097
22098         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
22099         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
22100         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
22101         * genpreds.c (print_type_tree): New function.
22102         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
22103         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
22104         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
22105         Write out enum constraint_type and get_constraint_type.
22106         * lra-constraints.c (satisfies_memory_constraint_p): Take a
22107         constraint_num rather than a constraint string.
22108         (satisfies_address_constraint_p): Likewise.
22109         (reg_class_from_constraints): Avoid old constraint macros.
22110         (process_alt_operands, process_address_1): Likewise.
22111         (curr_insn_transform): Likewise.
22112         * ira-costs.c (record_reg_classes): Likewise.
22113         (record_operand_costs): Likewise.
22114         * ira-lives.c (single_reg_class): Likewise.
22115         (ira_implicitly_set_insn_hard_regs): Likewise.
22116         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
22117         * postreload.c (reload_cse_simplify_operands): Likewise.
22118         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
22119         (constrain_operands, peep2_find_free_register): Likewise.
22120         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
22121         (find_reloads, alternative_allows_const_pool_ref): Likewise.
22122         * reload1.c (maybe_fix_stack_asms): Likewise.
22123         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
22124         * targhooks.c (default_secondary_reload): Likewise.
22125         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
22126         to EXTRA_CONSTRAINT_STR.
22127         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
22128
22129 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
22130
22131         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
22132         (write_constraint_satisfied_p_array): ...this new function.
22133         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
22134         an array.
22135         (write_insn_preds_c): Update accordingly.
22136
22137 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
22138
22139         * genpreds.c (write_lookup_constraint): Rename to...
22140         (write_lookup_constraint_1): ...this.
22141         (write_lookup_constraint_array): New function.
22142         (write_tm_preds_h): Define lookup_constraint as an inline function
22143         that uses write_lookup_constraint_array where possible.
22144         (write_insn_preds_c): Update for the changes above.
22145
22146 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
22147
22148         * doc/md.texi (regclass_for_constraint): Rename to...
22149         (reg_class_for_constraint): ...this.
22150         * genpreds.c (num_constraints, enum_order, register_start)
22151         (register_end, satisfied_start, memory_start, memory_end)
22152         (address_start, address_end): New variables.
22153         (add_constraint): Count the number of constraints.
22154         (choose_enum_order): New function.
22155         (write_enum_constraint_num): Iterate over enum_order.
22156         (write_regclass_for_constraint): Rename to...
22157         (write_reg_class_for_constraint_1): ...this and update output
22158         accordingly.
22159         (write_constraint_satisfied_p): Rename to...
22160         (write_constraint_satisfied_p_1): ...this and update output
22161         accordingly.  Do nothing if all extra constraints are register
22162         constraints.
22163         (write_insn_extra_memory_constraint): Delete.
22164         (write_insn_extra_address_constraint): Delete.
22165         (write_range_function): New function.
22166         (write_tm_preds_h): Define constraint_satisfied_p and
22167         reg_class_for_constraint as inline functions that do a range check
22168         before calling the out-of-line function.  Use write_range_function
22169         to implement insn_extra_{register,memory,address}_constraint,
22170         the first of which is new.
22171         (write_insn_preds_c): Update after above changes to write_* functions.
22172         (main): Call choose_enum_order.
22173
22174 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22175
22176         PR tree-optimization/61306
22177         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
22178         expression instead of its size.
22179         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
22180         false to prevent optimization when the result is unpredictable due to
22181         arithmetic right shift of signed type with highest byte is set.
22182         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
22183         (init_symbolic_number): Likewise.
22184         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
22185         when the result is unpredictable due to sign extension.
22186
22187 2014-06-11  Terry Guo  <terry.guo@arm.com>
22188
22189         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
22190         (*thumb1_addsi3): Ditto.
22191         (*thumb_subdi3): Ditto.
22192         (thumb1_subsi3_insn): Ditto.
22193         (*thumb_mulsi3): Ditto.
22194         (*thumb_mulsi3_v6): Ditto.
22195         (*thumb1_andsi3_insn): Ditto.
22196         (thumb1_bicsi3): Ditto.
22197         (*thumb1_iorsi3_insn): Ditto.
22198         (*thumb1_xorsi3_insn): Ditto.
22199         (*thumb1_ashlsi3): Ditto.
22200         (*thumb1_ashrsi3): Ditto.
22201         (*thumb1_lshrsi3): Ditto.
22202         (*thumb1_rotrsi3): Ditto.
22203         (*thumb1_negdi2): Ditto.
22204         (*thumb1_negsi2): Ditto.
22205         (*thumb1_abssi2): Ditto.
22206         (*thumb1_neg_abssi2): Ditto.
22207         (*thumb1_one_cmplsi2): Ditto.
22208         (*thumb1_zero_extendhisi2): Ditto.
22209         (*thumb1_zero_extendqisi2): Ditto.
22210         (*thumb1_zero_extendqisi2_v6): Ditto.
22211         (thumb1_extendhisi2): Ditto.
22212         (thumb1_extendqisi2): Ditto.
22213         (*thumb1_movdi_insn): Ditto.
22214         (*thumb1_movsi_insn): Ditto.
22215         (*thumb1_movhi_insn): Ditto.
22216         (thumb_movhi_clobber): Ditto.
22217         (*thumb1_movqi_insn): Ditto.
22218         (*thumb1_movhf): Ditto.
22219         (*thumb1_movsf_insn): Ditto.
22220         (*thumb_movdf_insn): Ditto.
22221         (movmem12b): Ditto.
22222         (movmem8b): Ditto.
22223         (cbranchqi4): Ditto.
22224         (cbranchsi4_insn): Ditto.
22225         (cbranchsi4_scratch): Ditto.
22226         (*negated_cbranchsi4): Ditto.
22227         (*tbit_cbranch): Ditto.
22228         (*tlobits_cbranch): Ditto.
22229         (*tstsi3_cbranch): Ditto.
22230         (*cbranchne_decr1): Ditto.
22231         (*addsi3_cbranch): Ditto.
22232         (*addsi3_cbranch_scratch): Ditto.
22233         (*thumb_cmpdi_zero): Ditto.
22234         (cstoresi_eq0_thumb1): Ditto.
22235         (cstoresi_ne0_thumb1): Ditto.
22236         (*cstoresi_eq0_thumb1_insn): Ditto.
22237         (*cstoresi_ne0_thumb1_insn): Ditto.
22238         (cstoresi_nltu_thumb1): Ditto.
22239         (cstoresi_ltu_thumb1): Ditto.
22240         (thumb1_addsi3_addgeu): Ditto.
22241         (*thumb_jump): Ditto.
22242         (*call_reg_thumb1_v5): Ditto.
22243         (*call_reg_thumb1): Ditto.
22244         (*call_value_reg_thumb1_v5): Ditto.
22245         (*call_value_reg_thumb1): Ditto.
22246         (*call_insn): Ditto.
22247         (*call_value_insn): Ditto.
22248         (thumb1_casesi_internal_pic): Ditto.
22249         (thumb1_casesi_dispatch): Ditto.
22250         (*thumb1_indirect_jump): Ditto.
22251         (prologue_thumb1_interwork): Ditto.
22252         (*epilogue_insns): Ditto.
22253         (consttable_1): Ditto.
22254         (consttable_2): Ditto.
22255         (tablejump): Ditto.
22256         (*thumb1_tablejump): Ditto.
22257         (thumb_eh_return): Ditto.
22258         (define_peephole2): Two of them are thumb1 only and got moved into
22259         new file thumb1.md.
22260         (define_split): Six of them are thumb1 only and got moved into new
22261         file thumb1.md.
22262         * config/arm/thumb1.md: New file comprised of above thumb1 only
22263         patterns.
22264
22265 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22266
22267         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
22268         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
22269         dependencies.
22270         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
22271         (aarch64_crc_builtin_datum): New struct.
22272         (aarch64_crc_builtin_data): New.
22273         (aarch64_init_crc32_builtins): New function.
22274         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
22275         (aarch64_crc32_expand_builtin): New.
22276         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
22277         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
22278         __ARM_FEATURE_CRC32 when appropriate.
22279         (TARGET_CRC32): Define.
22280         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
22281         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
22282         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
22283         (aarch64_<crc_variant>): New pattern.
22284         * config/aarch64/arm_acle.h: New file.
22285         * config/aarch64/iterators.md (CRC): New int iterator.
22286         (crc_variant, crc_mode): New int attributes.
22287         * doc/aarch64-acle-intrinsics.texi: New file.
22288         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
22289         Include aarch64-acle-intrinsics.texi.
22290
22291 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
22292
22293         * tree-vect-data-refs.c (vect_grouped_store_supported): New
22294         check for stores group of length 3.
22295         (vect_permute_store_chain): New permutations for stores group of
22296         length 3.
22297         * tree-vect-stmts.c (vect_model_store_cost): Change cost
22298         of vec_perm_shuffle for the new permutations.
22299
22300 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
22301
22302         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
22303         table rewriting temporarily on targets not supporting ONE_ONLY.
22304
22305 2014-06-11  Richard Biener  <rguenther@suse.de>
22306
22307         PR middle-end/61437
22308         Revert
22309         2014-06-04  Richard Biener  <rguenther@suse.de>
22310
22311         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
22312         TREE_PUBLIC and DECL_EXTERNAL decls.
22313
22314 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
22315
22316         * varasm.c (set_implicit_section): New function.
22317         (resolve_unique_section): Use it to set implicit section
22318         for aliases, too.
22319         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
22320         (default_function_section): Likewise.
22321         (decl_binds_to_current_def_p): Constify argument.
22322         * varasm.h (decl_binds_to_current_def_p): Update prototype.
22323         * asan.c (asan_protect_global): Use
22324         symtab_get_node (decl)->implicit_section.
22325         * symtab.c (dump_symtab_base): Dump implicit sections.
22326         (verify_symtab_base): Verify sanity of sectoins and comdats.
22327         (symtab_resolve_alias): Alias share the section of its target.
22328         (set_section_1): New function.
22329         (symtab_node::set_section): Move here, recurse to aliases.
22330         (verify_symtab): Check for duplicated symtab lists.
22331         * tree-core.h (implicit_section_name_p): Remove.
22332         * tree-vect-data-refs.c: Include varasm.h.
22333         (vect_can_force_dr_alignment_p): Fix conditional on when
22334         decl bints to current definition; use
22335         symtab_get_node (decl)->implicit_section.
22336         * cgraph.c (cgraph_make_node_local_1): Fix section set.
22337         * cgraph.h (struct symtab_node): Add implicit_section.
22338         (set_section): Rename to ...
22339         (set_section_for_node): ... this one.
22340         (set_section): Declare.
22341         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
22342         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
22343         input_overwrite_node, input_varpool_node): Stream implicit_section.
22344         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
22345         removal; it will fail in LTO.
22346
22347 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22348
22349         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
22350         Change second alternative type to f_mcr.
22351         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
22352         and 12th alternatives' types to f_mcr and f_mrc.
22353         (*movdi_aarch64): Same for 12th and 13th alternatives.
22354         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
22355         (aarch64_movtilow_tilow): Change type to fmov.
22356
22357 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
22358
22359         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
22360         (aarch64_save_or_restore_callee_save_registers): Fix layout.
22361
22362 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22363
22364         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
22365         New expander.
22366         (aarch64_sqrdmulh_lane<mode>): Likewise.
22367         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
22368         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
22369         (aarch64_sqdmulh_laneq<mode>): New expander.
22370         (aarch64_sqrdmulh_laneq<mode>): Likewise.
22371         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
22372         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
22373         (aarch64_sqdmulh_lane<mode>): New expander.
22374         (aarch64_sqrdmulh_lane<mode>): Likewise.
22375         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
22376         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
22377         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
22378         (aarch64_sqdmlal_laneq<mode>): Likewise.
22379         (aarch64_sqdmlsl_lane<mode>): Likewise.
22380         (aarch64_sqdmlsl_laneq<mode>): Likewise.
22381         (aarch64_sqdmlal2_lane<mode>): Likewise.
22382         (aarch64_sqdmlal2_laneq<mode>): Likewise.
22383         (aarch64_sqdmlsl2_lane<mode>): Likewise.
22384         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
22385         (aarch64_sqdmull_lane<mode>): Likewise.
22386         (aarch64_sqdmull_laneq<mode>): Likewise.
22387         (aarch64_sqdmull2_lane<mode>): Likewise.
22388         (aarch64_sqdmull2_laneq<mode>): Likewise.
22389
22390 2014-06-10  Richard Biener  <rguenther@suse.de>
22391
22392         PR tree-optimization/61438
22393         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
22394         (eliminate_dom_walker::before_dom_children): Only try to inhibit
22395         insertion of IVs if running PRE.
22396         (eliminate): Adjust.
22397         (pass_pre::execute): Likewise.
22398         (pass_fre::execute): Likewise.
22399
22400 2014-06-10  Richard Biener  <rguenther@suse.de>
22401
22402         PR middle-end/61456
22403         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
22404         Do not use the main variant for the type comparison.
22405         (ncr_compar): Likewise.
22406         (nonoverlapping_component_refs_p): Likewise.
22407
22408 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22409
22410         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
22411         REG_CFA_RESTORE mode.
22412
22413 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
22414
22415         * config/i386/i386.c (expand_vec_perm_pblendv): New.
22416         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
22417         expand_vec_perm_pblendv.
22418
22419 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22420
22421         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
22422         available.
22423         Simplify description of __crc32d and __crc32cd intrinsics.
22424         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
22425         availability.
22426
22427 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
22428
22429         PR lto/61334
22430         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
22431         * config.in: Regenerate.
22432         * configure: Likewise.
22433
22434 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
22435
22436         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
22437         and public vars.
22438         (intersect_static_var_sets): Remove.
22439         (propagate): Do not prune local statics.
22440
22441 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
22442
22443         PR fortran/60928
22444         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
22445         Set lastprivate_firstprivate even if omp_private_outer_ref
22446         langhook returns true.
22447         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
22448         langhook, call unshare_expr on new_var and call
22449         build_outer_var_ref to get the last argument.
22450
22451 2014-06-10  Marek Polacek  <polacek@redhat.com>
22452
22453         PR c/60988
22454         * doc/extend.texi: Add cindex for transparent_union.
22455
22456 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22457
22458         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
22459         init_symbolic_number ().
22460
22461 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
22462
22463         PR middle-end/61141
22464         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
22465         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
22466         (verify_rtl_sharing): Likewise.
22467
22468 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
22469
22470         PR c++/54442
22471         * tree.c (build_qualified_type): Use a canonical type for
22472         TYPE_CANONICAL.
22473
22474 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22475
22476         * config/arm/arm-modes.def: Remove XFmode.
22477
22478 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
22479
22480         PR target/61062
22481         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
22482         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
22483         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
22484         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
22485         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
22486         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
22487         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
22488         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
22489         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
22490
22491 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
22492
22493         * tree-core.h (tree_decl_with_vis): Remove section_name.
22494
22495 2014-06-09  Kito Cheng  <kito@0xlab.org>
22496
22497         * ira.c (ira): Don't call init_caller_save if LRA enabled
22498         since LRA use its own infrastructure to handle that.
22499
22500 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
22501
22502         * symtab.c (dump_symtab_base): Update dumping.
22503         (symtab_make_decl_local): Clear only DECL_COMDAT.
22504         * tree-vect-data-refs.c (Check that variable is static before
22505         tampering with sections.
22506         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
22507         (cgraph_create_virtual_clone): Likewise.
22508         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
22509         (decl_section_name, set_decl_section_name): New accessors.
22510         (find_decls_types_r): Do not walk section name
22511         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
22512         (decl_comdat_group, decl_comdat_group_id): Constify.
22513         (decl_section_name, set_decl_section_name): Update.
22514         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
22515         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
22516         (cgraph_make_node_local_1): Clear section and comdat group.
22517         * cgraph.h (set_comdat_group): Sanity check.
22518         (get_section, set_section): New.
22519         * ipa-comdats.c (ipa_comdats): Use get_section.
22520         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
22521         * lto-streamer-out.c: Do not follow section names.
22522         * c-family/c-common.c (handle_section_attribute): Update.
22523         * lto-cgraph.c (lto_output_node): Output section.
22524         (lto_output_varpool_node): Likewise.
22525         (read_comdat_group): Rename to ...
22526         (read_identifier): ... this one.
22527         (read_string_cst): New function.
22528         (input_node, input_varpool_node): Input section names.
22529         * tree-emutls.c (get_emutls_init_templ_addr): Update.
22530         (new_emutls_decl): Update.
22531         (secname_for_decl): Check section names only of static vars.
22532         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
22533         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
22534         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
22535         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
22536         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
22537         * config/mcore/mcore.c (mcore_unique_section): Likewise.
22538         * config/mips/mips.c (mips16_build_function_stub): Likewise.
22539         * config/v850/v850.c (v850_insert_attributes): Likewise.
22540         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
22541         Likewise.
22542         (h8300_handle_tiny_data_attribute): Likewise.
22543         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
22544         (bfin_handle_l2_attribute): Likewise.
22545
22546 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
22547
22548         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
22549         remove static initializer.
22550
22551 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
22552
22553         * varasm.c (use_blocks_for_decl_p): Check symbol table
22554         instead of alias attribute.
22555         (place_block_symbol): Recurse on aliases.
22556
22557 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
22558
22559         * ipa-visibility.c: Include varasm.h
22560         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
22561
22562 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
22563
22564         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
22565         outputting aliases.
22566
22567 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
22568
22569         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
22570         from test_insn into GGC space escape via SET_SRC.
22571
22572 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
22573
22574         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
22575         call statement, if any.
22576         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
22577         statements, if any.  Tidy up.
22578
22579 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
22580
22581         PR target/61431
22582         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
22583         iterators, VSX_D that handles 64-bit types, and VSX_LE that
22584         handles swapping the two 64-bit double words on little endian
22585         systems.  Include V1TImode and optionally TImode in VSX_LE so that
22586         these types are properly swapped.  Change all of the insns and
22587         splits that do the 64-bit swaps to use VSX_LE.
22588         (vsx_le_perm_load_<mode>): Likewise.
22589         (vsx_le_perm_store_<mode>): Likewise.
22590         (splitters for little endian memory operations): Likewise.
22591         (vsx_xxpermdi2_le_<mode>): Likewise.
22592         (vsx_lxvd2x2_le_<mode>): Likewise.
22593         (vsx_stxvd2x2_le_<mode>): Likewise.
22594
22595 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
22596
22597         PR target/61423
22598         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
22599         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
22600         and corresponding splitters.  Zero extend general register
22601         or memory input operand to XMM temporary.  Enable for
22602         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
22603         (floatunssi<mode>2): Update expander predicate.
22604
22605 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
22606
22607         PR rtl-optimization/61325
22608         * lra-constraints.c (process_address_1): Check scale equal to one
22609         to prevent transformation: base + scale * index => base + new_reg.
22610
22611 2014-06-06  Richard Biener  <rguenther@suse.de>
22612
22613         PR tree-optimization/59299
22614         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
22615         a def operand.
22616         (nearest_common_dominator_of_uses): Likewise.
22617         (statement_sink_location): Adjust.  Support sinking loads.
22618
22619 2014-06-06  Martin Jambor  <mjambor@suse.cz>
22620
22621         * ipa-prop.c (get_place_in_agg_contents_list): New function.
22622         (build_agg_jump_func_from_list): Likewise.
22623         (determine_known_aggregate_parts): Renamed to
22624         determine_locally_known_aggregate_parts.  Moved some functionality
22625         to the two functions above, removed bound checks.
22626
22627 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
22628
22629         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
22630         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
22631         (aarch64_progress_pointer): Likewise.
22632         (aarch64_copy_one_part_and_move_pointers): Likewise.
22633         (aarch64_expand_movmen): Likewise.
22634         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
22635         * config/aarch64/aarch64.md (movmem<mode>): New.
22636
22637 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
22638
22639         * targhooks.c (default_add_stmt_cost): Call target specific
22640         hook instead of default one.
22641
22642 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22643
22644         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
22645         endianness instead of host endianness.
22646         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
22647         comments.
22648
22649 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22650
22651         PR debug/53927
22652         * function.c (instantiate_decls): Process the saved static chain.
22653         (expand_function_start): If not optimizing, save the static chain
22654         onto the stack.
22655         * tree-nested.c (convert_all_function_calls): Always create the static
22656         chain for nested functions if not optimizing.
22657
22658 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22659
22660         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
22661
22662 2014-06-06  Richard Biener  <rguenther@suse.de>
22663
22664         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
22665         (construct_init_block): Likewise.
22666         (construct_exit_block): Likewise.
22667         (pass_expand::execute): Likewise.
22668         * graphite.c (graphite_transforms): Replace check for current_loops
22669         with a check for > 1 loops.
22670         (pass_graphite_transforms::execute): Adjust.
22671         * ipa-split.c (split_function): Remove check for current_loops.
22672         * omp-low.c (expand_parallel_call): Likewise.
22673         (expand_omp_for_init_counts): Likewise.
22674         (extract_omp_for_update_vars): Likewise.
22675         (expand_omp_for_generic): Likewise.
22676         (expand_omp_sections): Likewise.
22677         (expand_omp_target): Likewise.
22678         * tracer.c (tail_duplicate): Likewise.
22679         (pass_tracer::execute): Likewise.
22680         * trans-mem.c (expand_transaction): Likewise.
22681         * tree-complex.c (expand_complex_div_wide): Likewise.
22682         * tree-eh.c (lower_resx): Likewise.
22683         (cleanup_empty_eh_merge_phis): Likewise.
22684         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
22685         current_loops with a check for > 1 loops.
22686         (pass_predcom::execute): Adjust.
22687         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
22688         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
22689         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
22690         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
22691         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
22692         * tree-switch-conversion.c (process_switch): Likewise.
22693         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
22694         * tree-vrp.c (vrp_visit_phi_node): Likewise.
22695         (execute_vrp): Likewise.
22696         * ubsan.c (ubsan_expand_null_ifn): Likewise.
22697
22698 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22699
22700         * rtl.h (insn_location): Declare.
22701         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
22702         with UNKNOWN_LOCATION.
22703         * emit-rtl.c (insn_location): New function.
22704         * final.c (notice_source_line): Check that the instruction has a
22705         location before retrieving it and use insn_location.
22706         * modulo-sched.c (loop_single_full_bb_p): Likewise.
22707         * print-rtl.c (print_rtx): Likewise.
22708
22709 2014-06-06  Richard Biener  <rguenther@suse.de>
22710
22711         * passes.def: Move 2nd VRP pass before phi-only-cprop.
22712
22713 2014-06-06  Christian Bruel  <christian.bruel@st.com>
22714
22715         PR tree-optimization/43934
22716         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
22717         cost.
22718
22719 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
22720
22721         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
22722         return NO_REGS for extra address and memory constraints.  Handle
22723         operands that match (or are equivalent to something that matches)
22724         extra constant constraints.  Ignore other non-register operands.
22725
22726 2014-06-06  Alan Modra  <amodra@gmail.com>
22727
22728         PR target/61300
22729         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
22730         * doc/tm.texi: Regenerate.
22731         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
22732         Use throughout in place of REG_PARM_STACK_SPACE.
22733         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
22734         "incoming" param.  Pass to rs6000_function_parms_need_stack.
22735         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
22736         prototype_p when incoming.  Use function decl when incoming
22737         to handle K&R style functions.
22738         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
22739         (INCOMING_REG_PARM_STACK_SPACE): Define.
22740
22741 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
22742
22743         PR target/52472
22744         * cfgexpand.c (expand_debug_expr): Use address space of nested
22745         TREE_TYPE for ADDR_EXPR and MEM_REF.
22746
22747 2014-06-05  Jeff Law  <law@redhat.com>
22748
22749         PR tree-optimization/61289
22750         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
22751         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
22752         looking for those which match LHS.  All callers changed.
22753         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
22754         parameters and code which manipulated them.  All callers changed.
22755         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
22756         and DST_MAP parameters.  Simplify invalidation code by just calling
22757         invalidate_equivalences.  All callers changed.
22758         (thread_across_edge): Simplify now that we don't need to maintain
22759         the map of equivalences to invalidate.
22760
22761 2014-06-05  Kai Tietz  <ktietz@redhat.com>
22762             Richard Henderson  <rth@redhat.com>
22763
22764         PR target/46219
22765         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
22766         checking for !TARGET_X32.
22767         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
22768         (sibcall_intern): New define_insn, plus required peepholes.
22769         (sibcall_pop_intern): Likewise.
22770         (sibcall_value_intern): Likewise.
22771         (sibcall_value_pop_intern): Likewise.
22772
22773 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
22774
22775         * tree-inline.c (tree_function_versioning): Check DF info existence
22776         before accessing it.
22777
22778 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22779
22780         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
22781         frame_size.
22782         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
22783         aarch64_frame hard_fp_offset and frame_size.
22784         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
22785         frame_size; remove original_frame_size.
22786         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
22787         (aarch64_initial_elimination_offset): Remove frame_size and
22788         offset.  Use aarch64_frame frame_size.
22789
22790 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22791             Jiong Wang  <jiong.wang@arm.com>
22792             Renlin  <renlin.li@arm.com>
22793
22794         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
22795         initialization of R30 offset.  Update offset.  Iterate core
22796         regisers upto X30.  Remove X29, X30 specific code.
22797
22798 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22799             Jiong Wang  <jiong.wang@arm.com>
22800
22801         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
22802         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
22803         (aarch64_register_saved_on_entry): Adjust test.
22804
22805 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22806
22807         * config/aarch64/aarch64.h (machine_function): Move
22808         saved_varargs_size from here...
22809         (aarch64_frame): ... to here.
22810
22811         * config/aarch64/aarch64.c (aarch64_expand_prologue)
22812         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
22813         (aarch64_initial_elimination_offset)
22814         (aarch64_setup_incoming_varargs): Adjust location of
22815         saved_varargs_size.
22816
22817 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22818
22819         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
22820         layout comment.
22821
22822 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
22823             Prachi Godbole  <Prachi.Godbole@imgtec.com>
22824
22825         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
22826         mips32r5 entry to use PROCESSOR_P5600.
22827         * config/mips/mips-tables.opt: Regenerate.
22828         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
22829         * config/mips/mips.c (mips_fmadd_bypass): New function.
22830         (mips_rtx_cost_data): Add costs for p5600.
22831         (mips_issue_rate): Add support for p5600.
22832         (mips_multipass_dfa_lookahead): Likewise.
22833         * config/mips/mips.h (TUNE_P5600): New define.
22834         (TUNE_MACC_CHAINS): Add TUNE_P5600.
22835         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
22836         * config/mips/mips.md: Include p5600.md.
22837         (processor): Add p5600.
22838         * config/mips/p5600.md: New file.
22839
22840 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
22841
22842         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
22843         * config/i386/predicates.md (palignr_operand): New.
22844         Indicates if permutation is suitable for palignr instruction.
22845
22846 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
22847
22848         PR tree-optimization/61319
22849         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
22850         stmt belongs to loop.
22851
22852 2014-06-05  Richard Biener  <rguenther@suse.de>
22853
22854         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
22855         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
22856         (lookup_tmp_var): Adjust.
22857         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
22858
22859 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22860
22861         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
22862
22863 2014-06-05  Marek Polacek  <polacek@redhat.com>
22864
22865         PR c/49706
22866         * doc/invoke.texi: Document -Wlogical-not-parentheses.
22867
22868 2014-06-04  Tom de Vries  <tom@codesourcery.com>
22869
22870         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
22871         CONST_INT.
22872
22873 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
22874
22875         PR tree-optimization/61385
22876         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
22877
22878 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
22879
22880         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
22881         changed to use fatal_error.
22882         (main): Ensure lto_wrapper_cleanup is run atexit.
22883
22884 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22885
22886         * lra-constraints.c (valid_address_p): Move earlier in file.
22887         (address_eliminator): New structure.
22888         (satisfies_memory_constraint_p): New function.
22889         (satisfies_address_constraint_p): Likewise.
22890         (process_alt_operands, process_address, curr_insn_transform): Use them.
22891
22892 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22893
22894         * lra-int.h (lra_static_insn_data): Make operand_alternative a
22895         const pointer.
22896         (target_lra_int, default_target_lra_int, this_target_lra_int)
22897         (op_alt_data): Delete.
22898         * lra.h (lra_init): Delete.
22899         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
22900         (init_insn_code_data_once): Remove op_alt_data handling.
22901         (finish_insn_code_data_once): Likewise.
22902         (init_op_alt_data): Delete.
22903         (get_static_insn_data): Initialize operand_alternative to null.
22904         (free_insn_recog_data): Cast operand_alternative before freeing it.
22905         (setup_operand_alternative): Take the operand_alternative as
22906         parameter and assume it isn't already cached in the static
22907         insn data.
22908         (lra_set_insn_recog_data): Update accordingly.
22909         (lra_init): Delete.
22910         * ira.c (ira_init): Don't call lra_init.
22911         * target-globals.h (this_target_lra_int): Declare.
22912         (target_globals): Remove lra_int.
22913         (restore_target_globals): Update accordingly.
22914         * target-globals.c: Don't include lra-int.h.
22915         (default_target_globals, save_target_globals): Remove lra_int.
22916
22917 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22918
22919         * recog.h (operand_alternative): Convert reg_class, reject,
22920         matched and matches into bitfields.
22921         (preprocess_constraints): New overload.
22922         (preprocess_insn_constraints): New function.
22923         (preprocess_constraints): Take the insn as parameter.
22924         (recog_op_alt): Change into a pointer.
22925         (target_recog): Add x_op_alt.
22926         * recog.c (asm_op_alt): New variable.
22927         (recog_op_alt): Change into a pointer.
22928         (preprocess_constraints): New overload, replacing the old function
22929         definition with one that doesn't use global state.
22930         (preprocess_insn_constraints): New function.
22931         (preprocess_constraints): Use them.  Take the insn as parameter.
22932         Use asm_op_alt for asms.
22933         (recog_init): Free existing x_op_alt entries.
22934         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
22935         pointer const.
22936         (make_early_clobber_and_input_conflicts): Likewise.
22937         (process_bb_node_lives): Pass the insn to process_constraints.
22938         * reg-stack.c (check_asm_stack_operands): Likewise.
22939         (subst_asm_stack_regs): Likewise.
22940         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
22941         * regrename.c (build_def_use): Likewise.
22942         * sched-deps.c (sched_analyze_insn): Likewise.
22943         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
22944         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
22945         (note_invalid_constants): Likewise.
22946         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22947         (ix86_legitimate_combined_insn): Make operand_alternative pointer
22948         const.
22949
22950 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22951
22952         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
22953         * ira-lives.c (check_and_make_def_conflict): Check for disabled
22954         alternatives.
22955         (make_early_clobber_and_input_conflicts): Likewise.
22956         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22957
22958 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22959
22960         * recog.h (alternative_class): New function.
22961         (which_op_alt): Return a const recog_op_alt.
22962         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
22963         (subst_asm_stack_regs): Likewise.
22964         * config/arm/arm.c (note_invalid_constants): Likewise.
22965         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
22966         the operand_alternative; use alternative class instead.
22967         * sel-sched.c (get_reg_class): Likewise.
22968         * regrename.c (build_def_use): Likewise.
22969         (hide_operands, restore_operands, record_out_operands): Update type
22970         accordingly.
22971
22972 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22973
22974         * recog.h (recog_op_alt): Convert to a flat array.
22975         (which_op_alt): New function.
22976         * recog.c (recog_op_alt): Convert to a flat array.
22977         (preprocess_constraints): Update accordingly, grouping all
22978         operands of the same alternative together, rather than the
22979         other way around.
22980         * ira-lives.c (check_and_make_def_conflict): Likewise.
22981         (make_early_clobber_and_input_conflicts): Likewise.
22982         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22983         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
22984         (subst_asm_stack_regs): Likewise.
22985         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
22986         * regrename.c (hide_operands, record_out_operands): Likewise.
22987         (build_def_use): Likewise.
22988         * sel-sched.c (get_reg_class): Likewise.
22989         * config/arm/arm.c (note_invalid_constants): Likewise.
22990
22991 2014-06-04  Jason Merrill  <jason@redhat.com>
22992
22993         PR c++/51253
22994         PR c++/61382
22995         * gimplify.c (gimplify_arg): Non-static.
22996         * gimplify.h: Declare it.
22997
22998 2014-06-04  Richard Biener  <rguenther@suse.de>
22999
23000         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
23001         TREE_PUBLIC and DECL_EXTERNAL decls.
23002
23003 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
23004
23005         * regcprop.c (copyprop_hardreg_forward_1): Account for
23006         HARD_REGNO_CALL_PART_CLOBBERED.
23007
23008 2014-06-04  Richard Biener  <rguenther@suse.de>
23009
23010         * configure.ac: Check whether the underlying type of int64_t
23011         is long or long long.
23012         * configure: Regenerate.
23013         * config.in: Likewise.
23014         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
23015         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23016
23017 2014-06-04  Richard Biener  <rguenther@suse.de>
23018
23019         PR tree-optimization/60098
23020         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
23021         we hit a kill.
23022         (dse_optimize_stmt): Simplify, now that we found a kill
23023         earlier.
23024
23025 2014-06-04  Richard Biener  <rguenther@suse.de>
23026
23027         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
23028         of accesses with non-invariant address.
23029
23030 2014-06-04  Martin Liska  <mliska@suse.cz>
23031
23032         * cgraph.h (cgraph_make_wrapper): New function introduced.
23033         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
23034         * ipa-inline.h (inline_analyze_function): The function is global.
23035         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
23036
23037 2014-06-04  Martin Liska  <mliska@suse.cz>
23038
23039         * tree.h (private_lookup_attribute_starting): New function.
23040         (lookup_attribute_starting): Likewise.
23041         * tree.c (private_lookup_attribute_starting): Likewise.
23042
23043 2014-06-04  Martin Liska  <mliska@suse.cz>
23044
23045         * cgraph.h (expand_thunk): New argument added.
23046         (address_taken_from_non_vtable_p): New global function.
23047         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
23048         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
23049         * cgraphunit.c (analyze_function): Likewise.
23050         (assemble_thunks_and_aliases): Argument added to call.
23051         (expand_thunk): New argument forces to produce GIMPLE thunk.
23052
23053 2014-06-04  Martin Liska  <mliska@suse.cz>
23054
23055         * coverage.h (coverage_compute_cfg_checksum): Argument added.
23056         * coverage.c (coverage_compute_cfg_checksum): Likewise.
23057         * profile.c (branch_prob): Likewise.
23058
23059 2014-06-04  Martin Jambor  <mjambor@suse.cz>
23060
23061         PR ipa/61340
23062         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
23063         handler for switch on an ipa_ref_use enum.
23064         * ipa-reference.c (analyze_function): Likewise.
23065
23066 2014-06-04  Kai Tietz  <ktietz@redhat.com>
23067
23068         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
23069         from old call-instruction.
23070
23071 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
23072
23073         * config/aarch64/aarch64.c (aarch64_classify_address)
23074         (aarch64_legitimize_reload_address): Support full addressing modes
23075         for vector modes.
23076         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
23077         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
23078
23079 2014-06-03  Andrew Pinski  <apinski@cavium.com>
23080
23081         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
23082         for OP0.
23083
23084 2014-06-03  Andrew Pinski  <apinski@cavium.com>
23085
23086         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
23087         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
23088
23089 2014-06-03  Kai Tietz  <ktietz@redhat.com>
23090
23091         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
23092         for 64-bit ms-abi.
23093
23094 2014-06-03  Dehao Chen  <dehao@google.com>
23095
23096         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
23097         the same loop.
23098
23099 2014-06-03  Marek Polacek  <polacek@redhat.com>
23100
23101         PR c/60439
23102         * doc/invoke.texi: Document -Wswitch-bool.
23103         * function.c (stack_protect_epilogue): Cast controlling expression of
23104         the switch to int.
23105         * gengtype.c (walk_type): Generate switch expression with its
23106         controlling expression cast to int.
23107
23108 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
23109
23110         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
23111         and attiny841.
23112         * config/avr/avr-tables.opt: Regenerate.
23113         * config/avr/t-multilib: Regenerate.
23114         * doc/avr-mmcu.texi: Regenerate.
23115
23116 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
23117             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
23118
23119         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
23120         (ata6617c, ata664251): Add new avr35 devices.
23121         (ata6612c): Add new avr4 device.
23122         (ata6613c, ata6614q): Add new avr5 devices.
23123         * config/avr/avr-tables.opt: Regenerate.
23124         * config/avr/t-multilib: Regenerate.
23125         * doc/avr-mmcu.texi: Regenerate.
23126
23127 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
23128
23129         * gcc/config/aarch64/aarch64-builtins.c
23130         (aarch64_types_binop_ssu_qualifiers): New static data.
23131         (TYPES_BINOP_SSU): Define.
23132         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
23133         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
23134         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
23135         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
23136         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
23137         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
23138         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
23139         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
23140         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
23141         suffix to builtin function name, remove cast.
23142         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
23143         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
23144         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
23145
23146 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
23147
23148         * gcc/config/aarch64/aarch64-builtins.c
23149         (aarch64_types_binop_uus_qualifiers,
23150         aarch64_types_shift_to_unsigned_qualifiers,
23151         aarch64_types_unsigned_shiftacc_qualifiers): Define.
23152         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
23153         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
23154         sqshlu_n, uqshl_n): Update qualifiers.
23155         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
23156         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
23157         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
23158         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
23159         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
23160         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
23161         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
23162         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
23163         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
23164         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
23165         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
23166         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
23167         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
23168         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
23169         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
23170         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
23171         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
23172         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
23173         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
23174         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
23175         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
23176         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
23177         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
23178         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
23179         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
23180         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
23181         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
23182
23183 2014-06-03  Teresa Johnson  <tejohnson@google.com>
23184
23185         * tree-sra.c (modify_function): Record caller nodes after rebuild.
23186
23187 2014-06-02  Jason Merrill  <jason@redhat.com>
23188
23189         PR c++/61020
23190         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
23191
23192 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
23193
23194         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
23195         location == 0.
23196
23197 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
23198
23199         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
23200         New pattern.
23201         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
23202         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
23203         * config/aarch64/iterators.md (REVERSE): New iterator.
23204         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
23205         (rev_op): New int_attribute.
23206         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
23207         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
23208         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
23209         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
23210         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
23211         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
23212         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
23213         Replace temporary __asm__ with __builtin_shuffle.
23214
23215 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
23216
23217         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
23218         mips64r5.
23219         * config/mips/mips-tables.opt: Regenerate.
23220         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
23221         to use mips_isa_rev rather than ISA_MIPS32R2.
23222         * config/mips/mips.h (ISA_MIPS32R3): New define.
23223         (ISA_MIPS32R5): New define.
23224         (ISA_MIPS64R3): New define.
23225         (ISA_MIPS64R5): New define.
23226         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
23227         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
23228         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
23229         and mips64r5.
23230         (MIPS_ISA_SYNCI_SPEC): Likewise.
23231         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
23232         (LINK_SPEC): Added mips32r3 and mips32r5.
23233         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
23234         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
23235         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
23236         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
23237         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
23238         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
23239         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
23240
23241 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
23242
23243         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
23244         options.
23245         * config/mips/mips.opt (mxpa): New option.
23246         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
23247         assembler.
23248
23249 2014-06-03  Martin Jambor  <mjambor@suse.cz>
23250
23251         PR ipa/61160
23252         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
23253         thunks.
23254
23255 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23256
23257         PR tree-optimization/61328
23258         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
23259         initialization from find_bswap_or_nop_1.
23260         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
23261         in source_expr2 before using the size value the function sets. Also
23262         make use of init_symbolic_number () in both the old place and
23263         find_bswap_or_nop_load () to avoid reading uninitialized memory when
23264         doing recursion in the GIMPLE_BINARY_RHS case.
23265
23266 2014-06-03  Richard Biener  <rguenther@suse.de>
23267
23268         PR tree-optimization/61383
23269         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
23270         stmts can't trap.
23271
23272 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
23273
23274         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
23275         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
23276         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
23277         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
23278         in this file.
23279         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
23280         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
23281         * system.h: ...here and make it unconditional.
23282         * target.def (conditional_register_usage): Mention
23283         define_register_constraint instead of old-style constraint macros.
23284         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
23285         * doc/tm.texi: Regenerate.
23286         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
23287         protected by !USE_MD_CONSTRAINTS.
23288         * config/frv/frv.md: Remove quote from old version of documentation.
23289         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
23290         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
23291         CONST_DOUBLE_OK_FOR_LETTER.
23292         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
23293
23294 2014-06-02  Andrew Pinski  <apinski@cavium.com>
23295
23296         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
23297         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
23298         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
23299         file whose name depends on -mabi= and -mbig-endian.
23300         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
23301         Handle LP64 better and handle ilp32 too.
23302         (MULTILIB_OPTIONS): Delete.
23303         (MULTILIB_DIRNAMES): Delete.
23304
23305 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
23306
23307         * expr.h: Remove prototypes of functions defined in builtins.c.
23308         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
23309         Remove prototypes of functions defined in builtins.c.
23310         * builtins.h: Update prototype list to include all exported functions.
23311         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
23312         no_c99_libc_has_function): Move to targhooks.c
23313         (build_string_literal, build_call_expr_loc_array,
23314         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
23315         to tree.c.
23316         (expand_builtin_object_size, fold_builtin_object_size): Make static.
23317         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
23318         no_c99_libc_has_function): Relocate from builtins.c.
23319         * tree.c: Include builtins.h.
23320         (build_call_expr_loc_array, build_call_expr_loc_vec,
23321         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
23322         from builtins.c.
23323         * fold-const.h (fold_fma): Move prototype to builtins.h.
23324         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
23325         * asan.c: Include builtins.h.
23326         * cfgexpand.c: Likewise.
23327         * convert.c: Likewise.
23328         * emit-rtl.c: Likewise.
23329         * except.c: Likewise.
23330         * expr.c: Likewise.
23331         * fold-const.c: Likewise.
23332         * gimple-fold.c: Likewise.
23333         * gimple-ssa-strength-reduction.c: Likewise.
23334         * gimplify.c: Likewise.
23335         * ipa-inline.c: Likewise.
23336         * ipa-prop.c: Likewise.
23337         * lto-streamer-out.c: Likewise.
23338         * stmt.c: Likewise.
23339         * tree-inline.c: Likewise.
23340         * tree-object-size.c: Likewise.
23341         * tree-sra.c: Likewise.
23342         * tree-ssa-ccp.c: Likewise.
23343         * tree-ssa-forwprop.c: Likewise.
23344         * tree-ssa-loop-ivcanon.c: Likewise.
23345         * tree-ssa-loop-ivopts.c: Likewise.
23346         * tree-ssa-math-opts.c: Likewise.
23347         * tree-ssa-reassoc.c: Likewise.
23348         * tree-ssa-threadedge.c: Likewise.
23349         * tree-streamer-in.c: Likewise.
23350         * tree-vect-data-refs.c: Likewise.
23351         * tree-vect-patterns.c: Likewise.
23352         * tree-vect-stmts.c: Likewise.
23353         * config/aarch64/aarch64.c: Likewise.
23354         * config/alpha/alpha.c: Likewise.
23355         * config/arc/arc.c: Likewise.
23356         * config/arm/arm.c: Likewise.
23357         * config/avr/avr.c: Likewise.
23358         * config/bfin/bfin.c: Likewise.
23359         * config/c6x/c6x.c: Likewise.
23360         * config/cr16/cr16.c: Likewise.
23361         * config/cris/cris.c: Likewise.
23362         * config/epiphany/epiphany.c: Likewise.
23363         * config/fr30/fr30.c: Likewise.
23364         * config/frv/frv.c: Likewise.
23365         * config/h8300/h8300.c: Likewise.
23366         * config/i386/i386.c: Likewise.
23367         * config/i386/winnt.c: Likewise.
23368         * config/ia64/ia64.c: Likewise.
23369         * config/iq2000/iq2000.c: Likewise.
23370         * config/lm32/lm32.c: Likewise.
23371         * config/m32c/m32c.c: Likewise.
23372         * config/m32r/m32r.c: Likewise.
23373         * config/m68k/m68k.c: Likewise.
23374         * config/mcore/mcore.c: Likewise.
23375         * config/mep/mep.c: Likewise.
23376         * config/microblaze/microblaze.c: Likewise.
23377         * config/mips/mips.c: Likewise.
23378         * config/mmix/mmix.c: Likewise.
23379         * config/mn10300/mn10300.c: Likewise.
23380         * config/moxie/moxie.c: Likewise.
23381         * config/msp430/msp430.c: Likewise.
23382         * config/nds32/nds32.c: Likewise.
23383         * config/pa/pa.c: Likewise.
23384         * config/pdp11/pdp11.c: Likewise.
23385         * config/picochip/picochip.c: Likewise.
23386         * config/rl78/rl78.c: Likewise.
23387         * config/rs6000/rs6000.c: Likewise.
23388         * config/rx/rx.c: Likewise.
23389         * config/s390/s390.c: Likewise.
23390         * config/score/score.c: Likewise.
23391         * config/sh/sh.c: Likewise.
23392         * config/sparc/sparc.c: Likewise.
23393         * config/spu/spu.c: Likewise.
23394         * config/stormy16/stormy16.c: Likewise.
23395         * config/tilegx/tilegx.c: Likewise.
23396         * config/tilepro/tilepro.c: Likewise.
23397         * config/v850/v850.c: Likewise.
23398         * config/vax/vax.c: Likewise.
23399         * config/xtensa/xtensa.c: Likewise.
23400
23401 2014-06-02  Jeff Law  <law@redhat.com>
23402
23403         PR rtl-optimization/61094
23404         * ree.c (combine_reaching_defs): Do not reextend an insn if it
23405         was marked as do_no_reextend.  If a copy is needed to eliminate
23406         an extension, then mark it as do_not_reextend.
23407
23408 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
23409
23410         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
23411
23412 2014-06-02  Richard Henderson  <rth@redhat.com>
23413
23414         PR target/61336
23415         * config/alpha/alpha.c (print_operand_address): Allow symbolic
23416         addresses inside asms.  Use output_operand_lossage instead of
23417         gcc_unreachable.
23418
23419 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
23420
23421         PR target/61239
23422         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
23423         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
23424
23425 2014-06-02  Tom de Vries  <tom@codesourcery.com>
23426
23427         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
23428         case that x has VOIDmode.
23429
23430 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
23431
23432         * varasm.c (copy_constant): Delete function.
23433         (build_constant_desc): Don't call it.
23434
23435 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23436
23437         PR target/61154
23438         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
23439         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
23440         with immediate_operand.
23441
23442 2014-06-02  Andreas Schwab  <schwab@suse.de>
23443
23444         * config/ia64/ia64.c
23445         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
23446         pending_data_specs first.
23447
23448 2014-06-02  Richard Biener  <rguenther@suse.de>
23449
23450         PR tree-optimization/61378
23451         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
23452         valueized_anything.
23453
23454 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
23455
23456         * config/i386/constraints.md (Bw): Rename from 'w'.
23457         (Bz): Rename from 'z'.
23458         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
23459
23460 2014-06-01  Kai Tietz  <ktietz@redhat.com>
23461
23462         PR target/61377
23463         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
23464         * config/i386/i386.md (sibcall_insn_operand): Use Bs
23465         instead of m constraint.
23466
23467 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
23468
23469         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
23470         a separate alternative where the scratch operand 2 is marked as
23471         early clobber.
23472
23473 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
23474
23475         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
23476         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
23477         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
23478         and __builtins_arm_get_fpscr.
23479         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
23480         __builtins_arm_get_fpscr.
23481         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
23482         __builtins_arm_ldfpscr.
23483         (arm_atomic_assign_expand_fenv): New function.
23484         * config/arm/vfp.md (set_fpscr): New pattern.
23485         (get_fpscr) : Likewise.
23486         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
23487         VUNSPEC_SET_FPSCR.
23488         * doc/extend.texi (AARCH64 Built-in Functions) : Document
23489         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
23490
23491 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
23492
23493         * asan.c (report_error_func): Add SLOW_P argument, use
23494         BUILT_IN_ASAN_*_N if set.
23495         (build_check_stmt): Likewise.
23496         (instrument_derefs): If T has insufficient alignment,
23497         force same handling as for odd sizes.
23498
23499         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
23500         BUILT_IN_ASAN_REPORT_STORE_N): New.
23501         * asan.c (struct asan_mem_ref): Change access_size type to
23502         HOST_WIDE_INT.
23503         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
23504         update_mem_ref_hash_table): Likewise.
23505         (asan_mem_ref_hasher::hash): Hash in a HWI.
23506         (report_error_func): Change size_in_bytes argument to HWI.
23507         Use *_N builtins if size_in_bytes is larger than 16 or not power of
23508         two.
23509         (build_shadow_mem_access): New function.
23510         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
23511         Handle size_in_bytes not power of two or larger than 16.
23512         (instrument_derefs): Don't give up if size_in_bytes is not
23513         power of two or is larger than 16.
23514
23515 2014-05-30  Kai Tietz  <ktietz@redhat.com>
23516
23517         PR target/60104
23518         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
23519         for sibling-tail-calls.
23520         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
23521         to its use.
23522         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
23523         (sibcall_insn_operand): Add check for sibcall_memory_operand.
23524
23525 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
23526
23527         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
23528         * config/avr/avr-tables.opt: Regenerate.
23529         * config/avr/t-multilib: Regenerate.
23530         * doc/avr-mmcu.texi: Regenerate.
23531
23532 2014-05-30  Ian Lance Taylor  <iant@google.com>
23533
23534         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
23535         target("sse").
23536
23537 2014-05-30  Tom de Vries  <tom@codesourcery.com>
23538
23539         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
23540         Redefine as true.
23541
23542 2014-05-30  Tom de Vries  <tom@codesourcery.com>
23543
23544         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23545         * lra.c (initialize_lra_reg_info_element): Add init of
23546         actual_call_used_reg_set field.
23547         (lra): Call lra_create_live_ranges before lra_inheritance for
23548         -fuse-caller-save.
23549         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23550         -fuse-caller-save.
23551         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
23552         instead of call_used_reg_set for -fuse-caller-save.
23553         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23554
23555 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23556
23557         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
23558         to mov_imm.
23559         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
23560
23561 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
23562
23563         * ira.c (ira_get_dup_out_num): Check for output operands at
23564         the start of the loop.  Handle cases where an included alternative
23565         follows an excluded one.
23566
23567 2014-05-29  Mike Stump  <mikestump@comcast.net>
23568
23569         PR debug/61352
23570         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
23571         post ld passes when lto is used.
23572
23573 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
23574
23575         PR rtl-optimization/61325
23576         * lra-constraints.c (process_address): Rename to process_address_1.
23577         (process_address): New function.
23578
23579 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
23580
23581         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
23582         TYPES_BINOPV): New static data.
23583         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
23584         New builtin.
23585         * config/aarch64/aarch64-simd.md (aarch64_ext,
23586         aarch64_im_lane_boundsi): New patterns.
23587         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
23588         patterns for EXT.
23589         (aarch64_evpc_ext): New function.
23590
23591         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
23592
23593         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
23594         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
23595         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
23596         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
23597         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
23598
23599 2014-05-29  Tom de Vries  <tom@codesourcery.com>
23600
23601         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
23602
23603 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
23604             Richard Sandiford  <rdsandiford@googlemail.com>
23605
23606         * arm/iterators.md (shiftable_ops): New code iterator.
23607         (t2_binop0, arith_shift_insn): New code attributes.
23608         * arm/predicates.md (shift_nomul_operator): New predicate.
23609         * arm/arm.md (insn_enabled): Delete.
23610         (enabled): Remove insn_enabled test.
23611         (*arith_shiftsi): Delete.  Replace with ...
23612         (*<arith_shift_insn>_multsi): ... new pattern.
23613         (*<arith_shift_insn>_shiftsi): ... new pattern.
23614         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
23615
23616 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
23617             Tom de Vries  <tom@codesourcery.com>
23618
23619         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
23620         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
23621         clobber.
23622         (mips_split_call): Use POST_CALL_TMP_REG.
23623         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
23624
23625 2014-05-29  Tom de Vries  <tom@codesourcery.com>
23626
23627         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
23628         with #ifdef STACK_REGS.
23629
23630 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
23631
23632         * varasm.c (get_variable_section): Walk aliases.
23633         (place_block_symbol): Walk aliases.
23634
23635 2014-05-28  Tom de Vries  <tom@codesourcery.com>
23636
23637         Revert:
23638         2014-05-28  Tom de Vries  <tom@codesourcery.com>
23639
23640         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23641         * lra.c (initialize_lra_reg_info_element): Add init of
23642         actual_call_used_reg_set field.
23643         (lra): Call lra_create_live_ranges before lra_inheritance for
23644         -fuse-caller-save.
23645         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23646         -fuse-caller-save.
23647         * lra-constraints.c (need_for_call_save_p): Use
23648         actual_call_used_reg_set instead of call_used_reg_set for
23649         -fuse-caller-save.
23650         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23651
23652 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23653
23654         * doc/md.texi: Document that the % constraint character must
23655         be at the beginning of the string.
23656         * genoutput.c (validate_insn_alternatives): Check that '=',
23657         '+' and '%' only appear at the beginning of a constraint.
23658         * ira.c (commutative_constraint_p): Delete.
23659         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
23660         at the start of the string.
23661         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
23662         duplicate '='s.
23663         * config/arm/neon.md (bicdi3_neon): Likewise.
23664         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
23665         (slt_si, sltu_si): Likewise.
23666         * config/vax/vax.md (sbcdi3): Likewise.
23667         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
23668         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
23669         (mul64): Move '%' to beginning of constraint.
23670         * config/arm/arm.md (*xordi3_insn): Likewise.
23671         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
23672         (xorsi3): Likewise.
23673
23674 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23675
23676         * doc/md.texi: Document the restrictions on the "enabled" attribute.
23677
23678 2014-05-28  Jason Merrill  <jason@redhat.com>
23679
23680         PR c++/47202
23681         * cgraph.h (symtab_node::get_comdat_group_id): New.
23682         * cgraphunit.c (analyze_functions): Call it.
23683         * symtab.c (dump_symtab_node): Likewise.
23684         * tree.c (decl_comdat_group_id): New.
23685         * tree.h: Declare it.
23686         * lto-streamer-out.c (write_symbol): Use it.
23687         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
23688
23689 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
23690
23691         PR bootstrap/PR61146
23692         * wide-int.cc: Do not include longlong.h when compiling with clang.
23693
23694 2014-05-28  Richard Biener  <rguenther@suse.de>
23695
23696         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
23697         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
23698         (vrp_visit_assignment_or_call): Print less vertical space.
23699         (vrp_visit_stmt): Likewise.
23700         (vrp_visit_phi_node): Likewise.  For a PHI argument with
23701         VR_VARYING range consider recording it as copy.
23702
23703 2014-05-28  Richard Biener  <rguenther@suse.de>
23704
23705         Revert
23706         2014-05-28  Richard Biener  <rguenther@suse.de>
23707
23708         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23709
23710 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
23711
23712         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
23713         sufficiently aligned and an offset is used at the same time.
23714         (expand_expr_real_1): Likewise.
23715
23716 2014-05-28  Richard Biener  <rguenther@suse.de>
23717
23718         PR middle-end/61045
23719         * fold-const.c (fold_comparison): When folding
23720         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
23721         the sign of the remaining constant operand stays the same.
23722
23723 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
23724
23725         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
23726         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
23727         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
23728         to the assembler.
23729         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
23730         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
23731         (m32bit-doubles) Likewise.
23732         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
23733         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
23734         option for RL78.
23735
23736 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23737
23738         * configure.ac ($gcc_cv_ld_clearcap): New test.
23739         * configure: Regenerate.
23740         * config.in: Regenerate.
23741         * config/sol2.opt (mclear-hwcap): New option.
23742         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
23743         * config/sol2-clearcap.map: Moved here from
23744         testsuite/gcc.target/i386/clearcap.map.
23745         * config/sol2-clearcapv2.map: Move here from
23746         gcc.target/i386/clearcapv2.map.
23747         * config/t-sol2 (install): Depend on install-clearcap-map.
23748         (install-clearcap-map): New target.
23749         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
23750         -mclear-hwcap.
23751
23752 2014-05-28  Richard Biener  <rguenther@suse.de>
23753
23754         * hwint.h (*_HALF_WIDE_INT*): Move to ...
23755         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
23756         ... here and remove the rest.
23757         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23758
23759 2014-05-28  Richard Biener  <rguenther@suse.de>
23760
23761         PR tree-optimization/61335
23762         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
23763         new range fails, drop to varying.
23764
23765 2014-05-28  Olivier Hainque  <hainque@adacore.com>
23766
23767         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
23768         (CPP_SPEC): Add entry for -mcpu=8548.
23769         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
23770         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
23771
23772 2014-05-28  Tom de Vries  <tom@codesourcery.com>
23773
23774         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23775         * lra.c (initialize_lra_reg_info_element): Add init of
23776         actual_call_used_reg_set field.
23777         (lra): Call lra_create_live_ranges before lra_inheritance for
23778         -fuse-caller-save.
23779         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23780         -fuse-caller-save.
23781         * lra-constraints.c (need_for_call_save_p): Use
23782         actual_call_used_reg_set instead of call_used_reg_set for
23783         -fuse-caller-save.
23784         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23785
23786 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23787             Tom de Vries  <tom@codesourcery.com>
23788
23789         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
23790         to gccoptlist.
23791         (@item -fuse-caller-save): New item.
23792
23793 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23794             Tom de Vries  <tom@codesourcery.com>
23795
23796         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
23797         OPT_fuse_caller_save.
23798
23799 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23800             Tom de Vries  <tom@codesourcery.com>
23801
23802         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
23803         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
23804         get_call_reg_set_usage.
23805         * resource.c (mark_set_resources, mark_target_live_regs): Use
23806         get_call_reg_set_usage.
23807         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
23808         field.
23809         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
23810         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
23811         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23812         * ira-build.c (ira_create_allocno): Init
23813         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23814         (create_cap_allocno, propagate_allocno_info)
23815         (propagate_some_info_from_allocno)
23816         (copy_info_to_removed_store_destinations): Handle
23817         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23818         * ira-costs.c (ira_tune_allocno_costs): Use
23819         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
23820
23821 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23822             Tom de Vries  <tom@codesourcery.com>
23823
23824         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
23825         and function_used_regs_valid fields.
23826         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
23827         find_all_hard_reg_sets.
23828         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
23829         (get_call_reg_set_usage): New function.
23830         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
23831         * regs.h (get_call_reg_set_usage): Declare.
23832
23833 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
23834
23835         PR libgcc/61152
23836         * config/dbx.h (License): Add Runtime Library Exception.
23837         * config/newlib-stdint.h (License): Same.
23838         * config/rtems.h (License): Same
23839         * config/initfini-array.h (License): Same
23840         * config/v850/v850.h (License): Same.
23841         * config/v850/v850-opts.h (License): Same
23842         * config/v850/rtems.h (License): Same.
23843
23844 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
23845
23846         PR target/61044
23847         * doc/extend.texi (Local Labels): Note that label differences are
23848         not supported for AVR.
23849
23850 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23851             Olivier Hainque  <hainque@adacore.com>
23852
23853         * rtl.h (set_for_reg_notes): Declare.
23854         * emit-rtl.c (set_for_reg_notes): New function.
23855         (set_unique_reg_note): Use it.
23856         * optabs.c (add_equal_note): Likewise
23857
23858 2014-05-27  Andrew Pinski  <apinski@cavium.com>
23859
23860         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
23861         Use <w> for the register in assembly template.
23862         (stack_protect_test): Use the mode of operands[0] for the result.
23863         (stack_protect_test_<mode>): Use <w> for the register
23864         in assembly template.
23865
23866 2014-05-27  DJ Delorie  <dj@redhat.com>
23867
23868         * config/rx/rx.c (add_vector_labels): New.
23869         (rx_output_function_prologue): Call it.
23870         (rx_handle_func_attribute): Don't require empty arguments.
23871         (rx_handle_vector_attribute): New.
23872         (rx_attribute_table): Add "vector" attribute.
23873         * doc/extend.texi (interrupt, vector): Document new/changed
23874         RX-specific attributes.
23875
23876         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
23877
23878 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
23879
23880         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
23881         predicate to detect a negative quotient.
23882
23883 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
23884
23885         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
23886         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
23887         Add X - Y CMP 0 to X CMP Y transformation.
23888         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
23889
23890 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
23891
23892         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
23893         before printing.
23894
23895 2014-05-27  Steve Ellcey  <sellcey@mips.com>
23896
23897         * config/mips/mips.c: Add include of cgraph.h.
23898
23899 2014-05-27  Richard Biener  <rguenther@suse.de>
23900
23901         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
23902
23903 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
23904
23905         PR libgcc/61152
23906         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
23907         * config/arm/arm-cores.def (License): Same.
23908         * config/arm/arm-opts.h (License): Same.
23909         * config/arm/aout.h (License): Same.
23910         * config/arm/bpabi.h (License): Same.
23911         * config/arm/elf.h (License): Same.
23912         * config/arm/linux-elf.h (License): Same.
23913         * config/arm/linux-gas.h (License): Same.
23914         * config/arm/netbsd-elf.h (License): Same.
23915         * config/arm/uclinux-eabi.h (License): Same.
23916         * config/arm/uclinux-elf.h (License): Same.
23917         * config/arm/vxworks.h (License): Same.
23918
23919 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23920
23921         * config/arm/neon.md (neon_bswap<mode>): New pattern.
23922         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
23923         (arm_init_neon_builtins): Handle NEON_BSWAP.
23924         Define required type nodes.
23925         (arm_expand_neon_builtin): Handle NEON_BSWAP.
23926         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
23927         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
23928         * config/arm/iterators.md (VDQHSD): New mode iterator.
23929
23930 2014-05-27  Richard Biener  <rguenther@suse.de>
23931
23932         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
23933         Try using literal operands when comparing value-ranges failed.
23934
23935 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
23936
23937         * ira.c (commutative_operand): Adjust for change to recog_data.
23938         [Missing from previous commit.]
23939
23940 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
23941
23942         * system.h (TEST_BIT): New macro.
23943         * recog.h (alternative_mask): New type.
23944         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
23945         (recog_data_d): Replace alternative_enabled_p array with
23946         enabled_alternatives.
23947         (target_recog): New structure.
23948         (default_target_recog, this_target_recog): Declare.
23949         (get_enabled_alternatives, recog_init): Likewise.
23950         * recog.c (default_target_recog, this_target_recog): New variables.
23951         (get_enabled_alternatives): New function.
23952         (extract_insn): Use it.
23953         (recog_init): New function.
23954         (preprocess_constraints, constrain_operands): Adjust for change to
23955         recog_data.
23956         * postreload.c (reload_cse_simplify_operands): Likewise.
23957         * reload.c (find_reloads): Likewise.
23958         * ira-costs.c (record_reg_classes): Likewise.
23959         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
23960         all alternatives after a disabled one would be skipped.
23961         (ira_implicitly_set_insn_hard_regs): Likewise.
23962         * ira.c (ira_setup_alts): Adjust for change to recog_data.
23963         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
23964         with enabled_alternatives.
23965         * lra.c (free_insn_recog_data): Update accordingly.
23966         (lra_update_insn_recog_data): Likewise.
23967         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
23968         * lra-constraints.c (process_alt_operands): Likewise.  Handle
23969         only_alternative as part of the enabled mask.
23970         * target-globals.h (this_target_recog): Declare.
23971         (target_globals): Add a recog field.
23972         (restore_target_globals): Restore this_target_recog.
23973         * target-globals.c: Include recog.h.
23974         (default_target_globals): Initialize recog field.
23975         (save_target_globals): Likewise.
23976         * reginfo.c (reinit_regs): Call recog_init.
23977         * toplev.c (backend_init_target): Likewise.
23978
23979 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
23980
23981         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
23982         rather than any named insn's code.
23983
23984 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
23985
23986         PR libgcc/61152
23987         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
23988         * config/arm/arm-cores.def (License): Same.
23989
23990 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
23991
23992         * tree.h (decl_comdat_group): Declare.
23993         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
23994         * tree.c (decl_comdat_group): Here.
23995
23996 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
23997
23998         PR rtl-optimization/61222
23999         * combine.c (simplify_shift_const_1): When moving a PLUS outside
24000         the shift, truncate the PLUS operand to the result mode.
24001
24002 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
24003
24004         PR target/61271
24005         * config/i386/i386.c (ix86_rtx_costs)
24006         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
24007         Fix condition.
24008
24009 2014-05-26  Martin Jambor  <mjambor@suse.cz>
24010
24011         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
24012         subreg uses.
24013
24014 2014-05-26  Richard Biener  <rguenther@suse.de>
24015
24016         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
24017         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
24018         Provide specializations.
24019         (wi::int_traits <HOST_WIDE_INT>,
24020         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
24021
24022 2014-05-26  Alan Modra  <amodra@gmail.com>
24023
24024         PR target/61098
24025         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
24026         params and return a bool.  Remove dead code.  Update comment.
24027         Assert we have a const_int source.  Remove bogus code from
24028         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
24029         handling of constants > 2G and reg_equal note, from..
24030         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
24031         return value.  Update comment.  If we can, use a new pseudo
24032         for intermediate calculations.
24033         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
24034         prototype.
24035         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
24036         call to rs6000_emit_set_const in splitter.
24037         (movdi_internal64+2, +3): Likewise.
24038
24039 2014-05-26  Richard Biener  <rguenther@suse.de>
24040
24041         * system.h: Define __STDC_FORMAT_MACROS before
24042         including inttypes.h.
24043         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
24044         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
24045         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
24046         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
24047         HOST_WIDEST_INT_C): Remove.
24048         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
24049         if C99 inttypes.h is not available.
24050         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
24051         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
24052         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
24053         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
24054         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
24055         (struct output_info): Likewise.
24056         (print_statistics): Adjust.
24057         (dump_bitmap_statistics): Likewise.
24058         * bt-load.c (migrate_btr_defs): Print with PRId64.
24059         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
24060         (MAX_SAFE_MULTIPLIER): Adjust.
24061         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
24062         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
24063         dump_cgraph_node): Likewise.
24064         * final.c (dump_basic_block_info): Likewise.
24065         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
24066         * gcov.c (format_gcov): Likewise.
24067         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
24068         for calculation.
24069         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
24070         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
24071         (inline_small_functions, dump_overall_stats, dump_inline_stats):
24072         Use PRId64 for dumping.
24073         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
24074         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
24075         (add_allocno_hard_regs): Adjust.
24076         * loop-doloop.c (doloop_modify): Print using PRId64.
24077         * loop-iv.c (inverse): Compute in uint64_t.
24078         (determine_max_iter, iv_number_of_iterations): Likewise.
24079         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
24080         Print using PRId64.
24081         * lto-streamer-out.c (write_symbol): Use uint64_t.
24082         * mcf.c (CAP_INFINITY): Use int64_t maximum.
24083         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
24084         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
24085         * modulo-sched.c (const_iteration_count): Use int64_t.
24086         (sms_schedule): Dump using PRId64.
24087         * predict.c (dump_prediction): Likewise.
24088         * pretty-print.h (pp_widest_integer): Remove.
24089         * profile.c (get_working_sets, is_edge_inconsistent,
24090         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
24091         * tree-pretty-print.c (pp_double_int): Remove case handling
24092         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
24093         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
24094         and adjust users.
24095         (pass_optimize_bswap::execute): Remove restriction on hosts.
24096         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
24097         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
24098         * tree.c (widest_int_cst_value): Remove.
24099         * tree.h (widest_int_cst_value): Likewise.
24100         * value-prof.c (dump_histogram_value): Print using PRId64.
24101         * gengtype.c (main): Also inject int64_t.
24102         * ggc-page.c (struct max_alignment): Use int64_t.
24103         * alloc-pool.c (struct allocation_object_def): Likewise.
24104         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
24105         for computation.
24106         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
24107         * doc/tm.texi: Regenerated.
24108         * gengtype-lex.l (IWORD): Handle [u]int64_t.
24109         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
24110         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
24111         mmix_output_register_setting): Use [u]int64_t in prototypes.
24112         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
24113         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
24114         mmix_output_octa, mmix_output_shifted_value): Adjust.
24115         (mmix_intval): Adjust.  Remove unreachable case.
24116         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
24117
24118 2014-05-26  Richard Biener  <rguenther@suse.de>
24119
24120         * configure.ac: Drop __int64 type check.  Insist that we
24121         found uint64_t and int64_t.
24122         * hwint.h (HOST_BITS_PER___INT64): Remove.
24123         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
24124         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
24125         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
24126         (HOST_WIDEST_FAST_INT): Remove __int64 case.
24127         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
24128         for dst_q_src_df_rms_cdt.
24129         * configure: Regenerate.
24130         * config.in: Likewise.
24131
24132 2014-05-26  Michael Tautschnig  <mt@debian.org>
24133
24134         PR target/61249
24135         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
24136         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
24137
24138 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
24139
24140         PR rtl-optimization/61278
24141         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
24142
24143 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
24144
24145         PR rtl-optimization/61220
24146         Part of PR rtl-optimization/61225
24147         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
24148         insn; skip split_edge for a block with only one successor.
24149
24150 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24151
24152         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
24153         for variables.
24154
24155 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24156
24157         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
24158         (update_vtable_references): New function.
24159         (function_and_variable_visibility): Rewrite also vtable initializers.
24160         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
24161
24162 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24163
24164         * ggc.h (ggc_grow): New function.
24165         * ggc-none.c (ggc_grow): New function.
24166         * ggc-page.c (ggc_grow): Likewise.
24167
24168 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24169
24170         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
24171         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
24172         comdat_can_be_unshared_p, cgraph_externally_visible_p,
24173         varpool_externally_visible_p, can_replace_by_local_alias,
24174         update_visibility_by_resolution_info, function_and_variable_visibility,
24175         pass_data_ipa_function_and_variable_visibility,
24176         make_pass_ipa_function_and_variable_visibility,
24177         whole_program_function_and_variable_visibility,
24178         pass_data_ipa_whole_program_visibility,
24179         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
24180         * cgraph.h (cgraph_local_node_p): Declare.
24181         * ipa-visibility.c: New file.
24182         * Makefile.in (OBJS): Add ipa-visiblity.o
24183
24184 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24185
24186         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
24187         that var decl is available.
24188
24189 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24190
24191         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
24192         symtab_node pointer.
24193         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
24194         (find_decls_types_r): Do not walk COMDAT_GROUP.
24195         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
24196         * varasm.c (make_decl_one_only): Use set_comdat_group;
24197         create node if needed.
24198         * ipa-inline-transform.c (save_inline_function_body): Update
24199         way we decl->symtab mapping.
24200         * symtab.c (symtab_hash, hash_node, eq_node
24201         symtab_insert_node_to_hashtable): Remove.
24202         (symtab_register_node): Update.
24203         (symtab_unregister_node): Update.
24204         (symtab_get_node): Reimplement as inline function.
24205         (symtab_add_to_same_comdat_group): Update.
24206         (symtab_dissolve_same_comdat_group_list): Update.
24207         (dump_symtab_base): Update.
24208         (verify_symtab_base): Update.
24209         (symtab_make_decl_local): Update.
24210         (fixup_same_cpp_alias_visibility): Update.
24211         (symtab_nonoverwritable_alias): Update.
24212         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
24213         * ipa.c (update_visibility_by_resolution_info): UPdate.
24214         * bb-reorder.c: Include cgraph.h
24215         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
24216         with comdat groups.
24217         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
24218         * cgraph.c (cgraph_get_create_node): Update.
24219         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
24220         and comdat_group_.
24221         (symtab_get_node): Make inline.
24222         (symtab_insert_node_to_hashtable): Remove.
24223         (symtab_can_be_discarded): Update.
24224         (decl_comdat_group): New function.
24225         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
24226         Update.
24227         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
24228         comdat group name.
24229         (read_comdat_group): New function.
24230         (input_node, input_varpool_node): Use it.
24231         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
24232         comdat groups.
24233         * mips.c (mips_start_unique_function): Likewise.
24234         (ix86_code_end): Likewise.
24235         (rs6000_code_end): Likweise.
24236         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
24237
24238 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24239
24240         * gengtype-state.c (fatal_reading_state): Bring offline.
24241         * optabs.c (widening_optab_handler): Bring offline.
24242         * optabs.h (widening_optab_handler): Likewise.
24243         * final.c (get_attr_length_1): Likewise.
24244
24245 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24246
24247         * sched-int.h (sd_iterator_cond): Manually tail recurse.
24248
24249 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24250
24251         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
24252         (ppc440-compare): Include shift with dot.
24253         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
24254         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
24255         without dot.
24256         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
24257         without dot.
24258         (e6500_sfx2): Include it.
24259         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
24260         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
24261         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
24262         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
24263         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
24264         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
24265         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
24266         *lshiftrt_internal1le, *lshiftrt_internal1be,
24267         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
24268         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
24269         *rotldi3_internal10le, *rotldi3_internal10be,
24270         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
24271         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
24272         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
24273         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
24274         define_insns): Use type "shift" in the appropriate alternatives.
24275
24276 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24277
24278         * config/rs6000/rs6000.md (type): Add "logical".  Delete
24279         "fast_compare".
24280         (dot): Adjust comment.
24281         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
24282         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
24283         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
24284         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
24285         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
24286         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
24287         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
24288         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
24289
24290         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
24291         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
24292         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
24293         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
24294         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
24295         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
24296         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
24297         * config/rs6000/8540.md (ppc8540_su): Adjust.
24298         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
24299         cell-cmp-microcoded): Adjust.
24300         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
24301         * config/rs6000/e500mc.md (e500mc_su): Adjust.
24302         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
24303         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
24304         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
24305         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
24306         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
24307         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
24308         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
24309         Adjust.
24310         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
24311         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
24312         Adjust.  Adjust comment.
24313         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
24314         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
24315
24316 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24317
24318         * config/rs6000/rs6000.md (type): Add "add".
24319         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
24320         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
24321         define_insns): Use it.
24322         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
24323
24324         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
24325         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
24326         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
24327         * config/rs6000/601.md (ppc601-integer): Adjust.
24328         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
24329         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
24330         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
24331         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
24332         * config/rs6000/8540.md (ppc8540_su): Adjust.
24333         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
24334         cell-cmp-microcoded): Adjust.
24335         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
24336         * config/rs6000/e500mc.md (e500mc_su): Adjust.
24337         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
24338         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
24339         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
24340         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
24341         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
24342         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
24343         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
24344         Adjust.
24345         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
24346         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
24347         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
24348         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
24349
24350 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24351
24352         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
24353         "delayed_compare", "var_delayed_compare".
24354         (var_shift): New attribute.
24355         (cell_micro): Adjust.
24356         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
24357         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
24358         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
24359         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
24360         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
24361         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
24362         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
24363         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
24364         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
24365         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
24366         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
24367         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
24368         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
24369         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
24370         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
24371         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
24372         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
24373         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
24374         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
24375         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
24376         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
24377         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
24378         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
24379         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24380         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
24381
24382         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
24383         * config/rs6000/440.md (ppc440-integer): Adjust.
24384         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
24385         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
24386         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
24387         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
24388         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
24389         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
24390         * config/rs6000/8540.md (ppc8540_su): Adjust.
24391         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
24392         cell-cmp-microcoded): Adjust.
24393         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
24394         * config/rs6000/e500mc.md (e500mc_su): Adjust.
24395         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
24396         e500mc64_delayed): Adjust.
24397         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
24398         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
24399         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
24400         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
24401         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
24402         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
24403         power6-delayed-compare, power6-var-delayed-compare): Adjust.
24404         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
24405         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
24406         Adjust comment.
24407         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
24408         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
24409
24410 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24411
24412         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
24413         (bits): New mode_attr.
24414         (idiv_ldiv): Delete mode_attr.
24415         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
24416         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24417         rs6000_adjust_priority, is_nonpipeline_insn,
24418         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
24419
24420         * config/rs6000/40x.md (ppc403-idiv): Adjust.
24421         * config/rs6000/440.md (ppc440-idiv): Adjust.
24422         * config/rs6000/476.md (ppc476-idiv): Adjust.
24423         * config/rs6000/601.md (ppc601-idiv): Adjust.
24424         * config/rs6000/603.md (ppc603-idiv): Adjust.
24425         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
24426         ppc620-ldiv): Adjust.
24427         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
24428         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
24429         * config/rs6000/8540.md (ppc8540_divide): Adjust.
24430         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
24431         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
24432         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
24433         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
24434         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
24435         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
24436         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
24437         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
24438         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
24439         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
24440         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
24441         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
24442         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
24443         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
24444         * config/rs6000/titan.md (titan_fxu_div): Adjust.
24445
24446 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24447
24448         * config/rs6000/rs6000.md (type): Delete "insert_word",
24449         "insert_dword".  Add "insert".
24450         (size): Update comment.
24451         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24452         insn_must_be_first_in_group): Adjust.
24453         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
24454         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
24455         *insvsi_internal6, insvdi_internal): Adjust.
24456
24457         * config/rs6000/40x.md (ppc403-integer): Adjust.
24458         * config/rs6000/440.md (ppc440-integer): Adjust.
24459         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
24460         * config/rs6000/601.md (ppc601-integer): Adjust.
24461         * config/rs6000/603.md (ppc603-integer): Adjust.
24462         * config/rs6000/6xx.md (ppc604-integer): Adjust.
24463         * config/rs6000/7450.md (ppc7450-integer): Adjust.
24464         * config/rs6000/7xx.md (ppc750-integer): Adjust.
24465         * config/rs6000/8540.md (ppc8540_su): Adjust.
24466         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
24467         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
24468         * config/rs6000/e500mc.md (e500mc_su): Adjust.
24469         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
24470         * config/rs6000/e5500.md (e5500_sfx): Adjust.
24471         * config/rs6000/e6500.md (e6500_sfx): Adjust.
24472         * config/rs6000/mpc.md (mpccore-integer): Adjust.
24473         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
24474         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
24475         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
24476         * config/rs6000/power7.md (power7-integer): Adjust.
24477         * config/rs6000/power8.md (power8-1cyc): Adjust.
24478         * config/rs6000/rs64.md (rs64a-integer): Adjust.
24479         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
24480
24481 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24482
24483         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
24484         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
24485         (size): New attribute.
24486         (dot): New attribute.
24487         (cell_micro): Adjust.
24488         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
24489         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
24490         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
24491         umuldi3_highpart): Adjust.
24492         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24493         rs6000_adjust_priority, is_nonpipeline_insn,
24494         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
24495
24496         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
24497         ppc405-imul3): Adjust.
24498         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
24499         * config/rs6000/476.md (ppc476-imul): Adjust.
24500         * config/rs6000/601.md (ppc601-imul): Adjust.
24501         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
24502         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
24503         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
24504         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
24505         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
24506         Adjust.
24507         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
24508         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
24509         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
24510         cell-imul): Adjust.
24511         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
24512         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
24513         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
24514         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
24515         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
24516         * config/rs6000/mpc.md (mpccore-imul): Adjust.
24517         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
24518         power4-lmul, power4-imul, power4-imul3): Adjust.
24519         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
24520         power5-lmul, power5-imul, power5-imul3): Adjust.
24521         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
24522         power6-lmul, power6-imul, power6-imul3): Adjust.
24523         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
24524         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
24525
24526         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
24527         rs64a-lmul): Adjust.
24528         * config/rs6000/titan.md (titan_imul): Adjust.
24529
24530 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24531
24532         * config/rs6000/rs6000.md (type): Add new value "halfmul".
24533         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
24534         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
24535         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
24536         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
24537         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
24538         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
24539         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
24540         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
24541         * config/rs6000/titan.md: Delete nonsensical comment.
24542         (titan_imul): Add type imul3.
24543         (titan_mulhw): Remove type imul3; add type halfmul.
24544
24545 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24546
24547         * config/rs6000/rs6000.md (type): Reorder, reformat.
24548
24549 2014-05-23  Martin Jambor  <mjambor@suse.cz>
24550
24551         PR tree-optimization/53787
24552         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
24553         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
24554         analysis_done, update all uses.
24555         * ipa-prop.c: Include domwalk.h
24556         (param_analysis_info): Removed.
24557         (param_aa_status): New type.
24558         (ipa_bb_info): Likewise.
24559         (func_body_info): Likewise.
24560         (ipa_get_bb_info): New function.
24561         (aa_overwalked): Likewise.
24562         (find_dominating_aa_status): Likewise.
24563         (parm_bb_aa_status_for_bb): Likewise.
24564         (parm_preserved_before_stmt_p): Changed to use new param AA info.
24565         (load_from_unmodified_param): Accept func_body_info as a parameter
24566         instead of parms_ainfo.
24567         (parm_ref_data_preserved_p): Changed to use new param AA info.
24568         (parm_ref_data_pass_through_p): Likewise.
24569         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
24570         (compute_complex_assign_jump_func): Changed to use new param AA info.
24571         (compute_complex_ancestor_jump_func): Likewise.
24572         (ipa_compute_jump_functions_for_edge): Likewise.
24573         (ipa_compute_jump_functions): Removed.
24574         (ipa_compute_jump_functions_for_bb): New function.
24575         (ipa_analyze_indirect_call_uses): Likewise, moved variable
24576         declarations down.
24577         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
24578         and info, moved variable declarations down.
24579         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
24580         node and info.
24581         (ipa_analyze_stmt_uses): Likewise.
24582         (ipa_analyze_params_uses): Removed.
24583         (ipa_analyze_params_uses_in_bb): New function.
24584         (ipa_analyze_controlled_uses): Likewise.
24585         (free_ipa_bb_info): Likewise.
24586         (analysis_dom_walker): New class.
24587         (ipa_analyze_node): Handle node-specific forbidden analysis,
24588         initialize and free func_body_info, use dominator walker.
24589         (ipcp_modif_dom_walker): New class.
24590         (ipcp_transform_function): Create and free func_body_info, use
24591         ipcp_modif_dom_walker, moved a lot of functionality there.
24592
24593 2014-05-23  Marek Polacek  <polacek@redhat.com>
24594             Jakub Jelinek  <jakub@redhat.com>
24595
24596         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
24597         * gcc.c (sanitize_spec_function): Likewise.
24598         * convert.c (convert_to_integer): Include "ubsan.h".  Add
24599         floating-point to integer instrumentation.
24600         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
24601         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
24602         SANITIZE_NONDEFAULT.
24603         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
24604         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
24605         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
24606         * ubsan.c: Include "realmpfr.h" and "dfp.h".
24607         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
24608         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
24609         float/double/long double.
24610         (ubsan_instrument_float_cast): New function.
24611         * ubsan.h (ubsan_instrument_float_cast): Declare.
24612
24613 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
24614
24615         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
24616         predicate.
24617         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
24618         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
24619         Adjust for tailcalling through registers.
24620         * config/aarch64/aarch64.h (enum reg_class): New caller save
24621         register class.
24622         (REG_CLASS_NAMES): Likewise.
24623         (REG_CLASS_CONTENTS): Likewise.
24624         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
24625         Allow tailcalling without decls.
24626
24627 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
24628
24629         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
24630         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
24631
24632         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
24633         gsi, and variables v_* to v*.
24634
24635 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
24636
24637         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
24638
24639 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
24640
24641         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
24642         * omp-low.c: Update accordingly.
24643
24644         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
24645         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
24646         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
24647         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
24648         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
24649         GF_OMP_TARGET_KIND_UPDATE.
24650
24651         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
24652         Explicitly enumerate the expected region types.
24653
24654 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
24655
24656         PR other/56955
24657         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
24658         documentation; the old documentation didn't clearly state the
24659         constraints on the contents of the pointed-to storage.
24660
24661 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24662
24663         Fix bootstrap error on ia64
24664         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
24665         Return default value.
24666
24667 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24668
24669         PR tree-optimization/54733
24670         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
24671         (CMPNOP): Define.
24672         (find_bswap_or_nop_load): New.
24673         (find_bswap_1): Renamed to ...
24674         (find_bswap_or_nop_1): This. Also add support for memory source.
24675         (find_bswap): Renamed to ...
24676         (find_bswap_or_nop): This. Also add support for memory source and
24677         detection of bitwise operations equivalent to load in target
24678         endianness.
24679         (execute_optimize_bswap): Likewise. Also move its leading comment back
24680         in place and split statement transformation into ...
24681         (bswap_replace): This.
24682
24683 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
24684
24685         PR rtl-optimization/61215
24686         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
24687         simplify_gen_subreg until final substitution.
24688
24689 2014-05-23  Alan Modra  <amodra@gmail.com>
24690
24691         PR target/61231
24692         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
24693         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
24694         Use "Y" constraint rather than "m".
24695
24696 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
24697
24698         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
24699         define.
24700         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
24701         New function declaration.
24702         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
24703         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
24704         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
24705         (aarch64_init_builtins) : Initialize builtins
24706         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
24707         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
24708         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
24709         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
24710         and __builtins_aarch64_set_fpsr.
24711         (aarch64_atomic_assign_expand_fenv): New function.
24712         * config/aarch64/aarch64.md (set_fpcr): New pattern.
24713         (get_fpcr) : Likewise.
24714         (set_fpsr) : Likewise.
24715         (get_fpsr) : Likewise.
24716         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
24717         and UNSPECV_SET_FPSR.
24718         * doc/extend.texi (AARCH64 Built-in Functions) : Document
24719         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
24720         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
24721
24722 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
24723
24724         PR rtl-optimization/60969
24725         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
24726         constraints.  Set up mem cost for NO_REGS case.
24727
24728 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
24729
24730         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
24731
24732 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
24733
24734         * config/darwin.c: Include "lto-section-names.h".
24735         (LTO_SEGMENT_NAME): Don't define.
24736         * config/i386/winnt.c: Include "lto-section-names.h".
24737         * lto-streamer.c: Include "lto-section-names.h".
24738         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
24739         * lto-wrapper.c: Include "lto-section-names.h".
24740         (LTO_SECTION_NAME_PREFIX): Don't define.
24741         * lto-section-names.h: New file.
24742         * cgraphunit.c: Include "lto-section-names.h".
24743
24744 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
24745
24746         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
24747
24748 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
24749
24750         PR target/61208
24751         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
24752
24753 2014-05-22  Nick Clifton  <nickc@redhat.com>
24754
24755         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
24756
24757 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
24758
24759         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
24760         -> (T)A transformation to integer types.
24761
24762 2014-05-22  Teresa Johnson  <tejohnson@google.com>
24763
24764         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
24765         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
24766         (gcov_rewrite): Use gcov_nonruntime_assert.
24767         (gcov_open): Ditto.
24768         (gcov_write_words): Ditto.
24769         (gcov_write_length): Ditto.
24770         (gcov_read_words): Use gcov_nonruntime_assert, and remove
24771         gcc_assert from IN_LIBGCOV code.
24772         (gcov_read_summary): Use gcov_error to flag profile corruption.
24773         (gcov_sync): Use gcov_nonruntime_assert.
24774         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
24775         (gcov_histo_index): Use gcov_nonruntime_assert.
24776         (static void gcov_histogram_merge): Ditto.
24777         (compute_working_sets): Ditto.
24778         * gcov-io.h (gcov_nonruntime_assert): Define.
24779         (gcov_error): Define for !IN_LIBGCOV
24780
24781 2014-05-22  Richard Biener  <rguenther@suse.de>
24782
24783         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
24784         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
24785         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
24786         and deallocation site.
24787         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
24788         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
24789         passing through the incoming points-to set.
24790         (handle_lhs_call): Use flags argument instead of recomputing it.
24791         (find_func_aliases_for_call): Call handle_lhs_call with proper
24792         call return flags.
24793
24794 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
24795
24796         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
24797         all padding bits in REAL_VALUE_TYPE are cleared.
24798
24799 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24800
24801         Cleanup and improve multipass_dfa_lookahead_guard
24802         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
24803         (core2i7_first_cycle_multipass_begin,)
24804         (core2i7_first_cycle_multipass_issue,)
24805         (core2i7_first_cycle_multipass_backtrack): Update signature.
24806         * config/ia64/ia64.c
24807         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
24808         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
24809         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
24810         hook definition.
24811         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
24812         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
24813         values.
24814         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
24815         return values.
24816         * doc/tm.texi: Regenerate.
24817         * doc/tm.texi.in
24818         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
24819         * haifa-sched.c (ready_try): Make signed to allow negative values.
24820         (rebug_ready_list_1): Update.
24821         (choose_ready): Simplify.
24822         (sched_extend_ready_list): Update.
24823
24824 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24825
24826         Remove IA64 speculation tweaking flags
24827         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
24828         speculation tuning flags.
24829         (msched-prefer-non-data-spec-insns,)
24830         (msched-prefer-non-control-spec-insns): Obsolete options.
24831         * haifa-sched.c (choose_ready): Remove handling of
24832         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
24833         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
24834         and PREFER_NON_DATA_SPEC.
24835         * sel-sched.c (process_spec_exprs): Remove handling of
24836         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
24837
24838 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24839
24840         Improve scheduling debug output
24841         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
24842         (advance_one_cycle): Update.
24843         (schedule_insn, queue_to_ready): Add debug printouts.
24844         (debug_ready_list_1): New static function.
24845         (debug_ready_list): Update.
24846         (max_issue): Add debug printouts.
24847         (dump_insn_stream): New static function.
24848         (schedule_block): Use it.  Also better indent printouts.
24849
24850 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24851
24852         Fix sched_insn debug counter
24853         * haifa-sched.c (schedule_insn): Update.
24854         (struct haifa_saved_data): Add nonscheduled_insns_begin.
24855         (save_backtrack_point, restore_backtrack_point): Update.
24856         (first_nonscheduled_insn): New static function.
24857         (queue_to_ready, choose_ready): Use it.
24858         (schedule_block): Init nonscheduled_insns_begin.
24859         (sched_emit_insn): Update.
24860
24861
24862 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
24863
24864         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
24865         to GENERAL_REGS.
24866         (aarch64_secondary_reload) : LikeWise.
24867         (aarch64_class_max_nregs) : Remove CORE_REGS.
24868         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
24869         (REG_CLASS_NAMES) : Likewise.
24870         (REG_CLASS_CONTENTS) : LikeWise.
24871         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
24872
24873 2014-05-21  Guozhi Wei  <carrot@google.com>
24874
24875         PR target/61202
24876         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
24877         constraint.
24878         (vqdmulhq_n_s16): Likewise.
24879
24880 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
24881
24882         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
24883
24884 2014-05-21  Marek Polacek  <polacek@redhat.com>
24885
24886         PR sanitizer/61272
24887         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
24888
24889 2014-05-21  Martin Jambor  <mjambor@suse.cz>
24890
24891         * doc/invoke.texi (Optimize Options): Document parameters
24892         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
24893         ipa-cp-array-index-hint-bonus.
24894
24895 2014-05-21  Mark Wielaard  <mjw@redhat.com>
24896
24897         PR debug/16063
24898         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
24899         version >= 3 or not strict DWARF.
24900         * langhooks.h (struct lang_hooks_for_types): Add
24901         enum_underlying_base_type.
24902         * langhooks.c (lhd_enum_underlying_base_type): New function.
24903         * gcc/langhooks.h (struct lang_hooks_for_types): Add
24904         enum_underlying_base_type.
24905         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
24906         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
24907         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
24908
24909 2014-05-21  Richard Biener  <rguenther@suse.de>
24910
24911         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
24912
24913 2014-05-21  John Marino  <gnugcc@marino.st>
24914
24915         * config.gcc (*-*-dragonfly*): New target.
24916         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
24917         * configure: Regenerate.
24918         * config/dragonfly-stdint.h: New.
24919         * config/dragonfly.h: New.
24920         * config/dragonfly.opt: New.
24921         * config/i386/dragonfly.h: New.
24922         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
24923
24924 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
24925
24926         * tree.def (VOID_CST): New.
24927         * tree-core.h (TI_VOID): New.
24928         * tree.h (void_node): New.
24929         * tree.c (tree_node_structure_for_code, tree_code_size)
24930         (iterative_hash_expr): Handle VOID_CST.
24931         (build_common_tree_nodes): Initialize void_node.
24932
24933 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
24934
24935         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
24936         functions.
24937         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
24938
24939         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
24940         more places.
24941
24942         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
24943         flag_reorder_blocks_and_partition.
24944         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
24945
24946 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
24947
24948         PR target/54236
24949         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
24950         constraints.
24951         (*addc_r_t): Add new insn_and_split.
24952
24953 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
24954
24955         PR middle-end/61252
24956         * omp-low.c (handle_simd_reference): New function.
24957         (lower_rec_input_clauses): Use it.  Defer adding reference
24958         initialization even for reduction without placeholder if in simd,
24959         handle it properly later on.
24960
24961 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24962
24963         PR tree-optimization/60899
24964         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
24965         assume all static symbols will have definition wile parsing and
24966         check the do have definition later in compilation; check that
24967         variable referring symbol will be output before concluding that
24968         reference is safe; be conservative for referring local statics;
24969         be more precise about when comdat is output in other partition.
24970
24971 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24972
24973         PR bootstrap/60984
24974         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
24975         parameter.
24976         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
24977         (ipa_inline): Loop inline_to_all_callers until no more aliases
24978         are removed.
24979
24980 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24981
24982         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
24983         set writeonly flag only for vars actually written to.
24984
24985 2014-05-20  Dehao Chen  <dehao@google.com>
24986
24987         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
24988         and callee count to get clone count.
24989         * tree-inline.c (expand_call_inline): Use callee count instead of bb
24990         count in copy_body.
24991
24992 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
24993
24994         PR rtl-optimization/61243
24995         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
24996
24997 2014-05-20  Xinliang David Li  <davidxl@google.com>
24998
24999         * cgraphunit.c (walk_polymorphic_call_targets): Add
25000         dbgcnt and fopt-info support.
25001         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
25002         * ipa-devirt.c (ipa_devirt): Ditto.
25003         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
25004         * ipa.c (walk_polymorphic_call_targets): Ditto.
25005         * gimple-fold.c (fold_gimple_assign): Ditto.
25006         (gimple_fold_call): Ditto.
25007         * dbgcnt.def: New counter.
25008
25009 2014-05-20  DJ Delorie  <dj@redhat.com>
25010
25011         * config/msp430/msp430.md (split): Don't allow subregs when
25012         splitting SImode adds.
25013         (andneghi): Fix subtraction logic.
25014         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
25015
25016 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
25017
25018         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
25019         symbols.
25020         * except.c (switch_to_exception_section, resolve_unique_section,
25021         get_named_text_section, default_function_rodata_section,
25022         align_variable, get_block_for_decl, default_section_type_flags):
25023         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
25024         * symtab.c (symtab_add_to_same_comdat_group,
25025         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
25026         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
25027         Likewise.
25028         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
25029         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
25030         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
25031         (c6x_function_in_section_p): Likewise.
25032         * config/darwin.c (machopic_select_section): Likewise.
25033         * config/arm/arm.c (arm_function_in_section_p): Likewise.
25034         * config/mips/mips.c (mips_function_rodata_section): Likewise.
25035         * config/mep/mep.c (mep_select_section): LIkewise.
25036         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
25037
25038 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
25039
25040         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
25041         EH region of calls to pure functions that can throw an exception.
25042         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
25043         (copy_reference_ops_from_call): Also copy the EH region of the call if
25044         it can throw an exception.
25045
25046 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25047
25048         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
25049         nested VEC_SELECTs that are inverses of each other.
25050
25051 2014-05-20  Richard Biener  <rguenther@suse.de>
25052
25053         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
25054         (extract_and_process_scc_for_name): not here.
25055         (cond_dom_walker::before_dom_children): Only process
25056         stmts that end the BB in interesting ways.
25057         (run_scc_vn): Mark param uses as visited.
25058
25059 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25060
25061         * config/arm/arm.md (arith_shiftsi): Do not predicate for
25062         arm_restrict_it.
25063
25064 2014-05-20  Nick Clifton  <nickc@redhat.com>
25065
25066         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
25067         (msp430_gimplify_va_arg_expr): New function.
25068         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
25069
25070         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
25071         operand 0 in order to prevent confusion about the number of
25072         registers involved.
25073
25074 2014-05-20  Richard Biener  <rguenther@suse.de>
25075
25076         PR tree-optimization/61221
25077         * tree-ssa-pre.c (el_to_update): Remove.
25078         (eliminate_dom_walker::before_dom_children): Handle released
25079         VDEFs by value-numbering them to the associated VUSE.  Update
25080         stmt immediately for substituted call address.
25081         (eliminate): Remove delayed stmt updating code.
25082         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
25083         possibly late re-numbered vuses.
25084         (vn_reference_lookup_2): Adjust.
25085         (vn_reference_lookup_pieces): Likewise.
25086         (vn_reference_lookup): Likewise.
25087
25088 2014-05-20  Richard Biener  <rguenther@suse.de>
25089
25090         * config.gcc: Remove need_64bit_hwint.
25091         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
25092         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
25093         it to be true.
25094         * config.in: Regenerate.
25095         * configure: Likewise.
25096
25097 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
25098
25099         * doc/extend.texi: Create Label Attributes section,
25100         move all label attributes into it and reference it.
25101
25102 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
25103
25104         * arm.c (thumb1_reorg): When scanning backwards skip anything
25105         that's not a proper insn.
25106
25107 2014-05-19  Richard Biener  <rguenther@suse.de>
25108
25109         PR tree-optimization/61221
25110         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
25111         Do nothing for unreachable blocks.
25112         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
25113         Improve unreachability detection.
25114
25115 2014-05-19  Richard Biener  <rguenther@suse.de>
25116
25117         PR tree-optimization/61209
25118         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
25119
25120 2014-05-19  Nick Clifton  <nickc@redhat.com>
25121
25122         * except.c (init_eh): Fix computation of builtin setjmp buffer
25123         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
25124
25125 2014-05-19  Richard Biener  <rguenther@suse.de>
25126
25127         PR tree-optimization/61184
25128         * tree-vrp.c (is_negative_overflow_infinity): Use
25129         TREE_OVERFLOW_P and do that check first.
25130         (is_positive_overflow_infinity): Likewise.
25131         (is_overflow_infinity): Likewise.
25132         (vrp_operand_equal_p): Properly treat operands with
25133         differing overflow as not equal.
25134
25135 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
25136
25137         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
25138         shift simplification where it was intended.
25139
25140 2014-05-19  Christian Bruel  <christian.bruel@st.com>
25141
25142         PR target/61195
25143         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
25144
25145 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
25146
25147         PR target/61084
25148         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
25149         than wide_int.
25150
25151 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
25152
25153         * reg-notes.def (CROSSING_JUMP): Likewise.
25154         * rtl.h (rtx_def): Update comment for jump flag.
25155         (CROSSING_JUMP_P): Define.
25156         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
25157         of a REG_CROSSING_JUMP note.
25158         * cfghooks.c (tidy_fallthru_edges): Likewise.
25159         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
25160         * emit-rtl.c (try_split): Likewise.
25161         * haifa-sched.c (sched_create_recovery_edges): Likewise.
25162         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
25163         * jump.c (redirect_jump_2): Likewise.
25164         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
25165         (relax_delay_slots): Likewise.
25166         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
25167         (bbit_di): Likewise.
25168         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
25169         * config/sh/sh.md (jump_compact): Likewise.
25170         * bb-reorder.c (rotate_loop): Likewise.
25171         (pass_duplicate_computed_gotos::execute): Likewise.
25172         (add_reg_crossing_jump_notes): Rename to...
25173         (update_crossing_jump_flags): ...this.
25174         (pass_partition_blocks::execute): Update accordingly.
25175
25176 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
25177
25178         * tree.h: Remove extraneous template <>.
25179
25180 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
25181
25182         * ipa.c (symtab_remove_unreachable_nodes): Remove
25183         symbol from comdat group if its body was eliminated.
25184         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
25185         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
25186         (symtab_unregister_node): ... this one.
25187         (verify_symtab_base): More strict checking of comdats.
25188         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
25189
25190 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
25191
25192         * tree-pass.h (make_pass_ipa_comdats): New pass.
25193         * timevar.def (TV_IPA_COMDATS): New timevar.
25194         * passes.def (pass_ipa_comdats): Add.
25195         * Makefile.in (OBJS): Add ipa-comdats.o
25196         * ipa-comdats.c: New file.
25197
25198 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
25199
25200         * ipa.c (update_visibility_by_resolution_info): New function.
25201         (function_and_variable_visibility): Use it.
25202
25203 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
25204
25205         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
25206         New functions.
25207         (FOR_EACH_DEFINED_SYMBOL): New macro.
25208         (varpool_first_static_initializer, varpool_next_static_initializer,
25209         varpool_first_defined_variable, varpool_next_defined_variable):
25210         Fix comments.
25211         (symtab_in_same_comdat_p): Correctly deal with inline functions.
25212
25213 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
25214
25215         * ggc-page.c (ggc_handle_finalizers): Add comment.
25216
25217 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
25218
25219         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
25220         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
25221         (ggc_internal_cleared_alloc): Likewise.
25222         * ggc-page.c (finalizer): New class.
25223         (vec_finalizer): Likewise.
25224         (globals::finalizers): New member.
25225         (globals::vec_finalizers): Likewise.
25226         (ggc_internal_alloc): Record the finalizer if any for the block being
25227         allocated.
25228         (ggc_handle_finalizers): New function.
25229         (ggc_collect): Call ggc_handle_finalizers.
25230         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
25231         finalizer.
25232         (ggc_internal_cleared_alloc): Likewise.
25233         (finalize): New function.
25234         (need_finalization_p): Likewise.
25235         (ggc_alloc): Install the type's destructor as the finalizer if it
25236         might do something.
25237         (ggc_cleared_alloc): Likewise.
25238         (ggc_vec_alloc): Likewise.
25239         (ggc_cleared_vec_alloc): Likewise.
25240
25241 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
25242
25243         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
25244
25245 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
25246
25247         * alias.c (record_alias_subset): Adjust.
25248         * bitmap.c (bitmap_element_allocate): Likewise.
25249         (bitmap_gc_alloc_stat): Likewise.
25250         * cfg.c (init_flow): Likewise.
25251         (alloc_block): Likewise.
25252         (unchecked_make_edge): Likewise.
25253         * cfgloop.c (alloc_loop): Likewise.
25254         (flow_loops_find): Likewise.
25255         (rescan_loop_exit): Likewise.
25256         * cfgrtl.c (init_rtl_bb_info): Likewise.
25257         * cgraph.c (insert_new_cgraph_node_version): Likewise.
25258         (cgraph_allocate_node): Likewise.
25259         (cgraph_create_edge_1): Likewise.
25260         (cgraph_allocate_init_indirect_info): Likewise.
25261         * cgraphclones.c (cgraph_clone_edge): Likewise.
25262         * cgraphunit.c (add_asm_node): Likewise.
25263         (init_lowered_empty_function): Likewise.
25264         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
25265         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
25266         (alpha_use_linkage): Likewise.
25267         * config/arc/arc.c (arc_init_machine_status): Likewise.
25268         * config/arm/arm.c (arm_init_machine_status): Likewise.
25269         * config/avr/avr.c (avr_init_machine_status): Likewise.
25270         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
25271         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
25272         * config/cris/cris.c (cris_init_machine_status): Likewise.
25273         * config/darwin.c (machopic_indirection_name): Likewise.
25274         (darwin_build_constant_cfstring): Likewise.
25275         (darwin_enter_string_into_cfstring_table): Likewise.
25276         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
25277         * config/frv/frv.c (frv_init_machine_status): Likewise.
25278         * config/i386/i386.c (get_dllimport_decl): Likewise.
25279         (ix86_init_machine_status): Likewise.
25280         (assign_386_stack_local): Likewise.
25281         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
25282         (i386_pe_maybe_record_exported_symbol): Likewise.
25283         (i386_pe_record_stub): Likewise.
25284         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
25285         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
25286         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
25287         (m32c_note_pragma_address): Likewise.
25288         * config/mep/mep.c (mep_init_machine_status): Likewise.
25289         (mep_note_pragma_flag): Likewise.
25290         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
25291         (mips16_local_alias): Likewise.
25292         (mips_init_machine_status): Likewise.
25293         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
25294         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
25295         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
25296         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
25297         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
25298         * config/pa/pa.c (pa_init_machine_status): Likewise.
25299         (pa_get_deferred_plabel): Likewise.
25300         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
25301         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
25302         (rs6000_init_machine_status): Likewise.
25303         (output_toc): Likewise.
25304         * config/s390/s390.c (s390_init_machine_status): Likewise.
25305         * config/score/score.c (score_output_external): Likewise.
25306         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
25307         * config/spu/spu.c (spu_init_machine_status): Likewise.
25308         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
25309         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
25310         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
25311         * coverage.c (coverage_end_function): Likewise.
25312         * dbxout.c (dbxout_init): Likewise.
25313         * doc/gty.texi: Don't mention variable_size attribute.
25314         * dwarf2cfi.c (new_cfi): Adjust.
25315         (new_cfi_row): Likewise.
25316         (copy_cfi_row): Likewise.
25317         (create_cie_data): Likewise.
25318         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
25319         (new_loc_descr): Likewise.
25320         (find_AT_string_in_table): Likewise.
25321         (add_addr_table_entry): Likewise.
25322         (new_die): Likewise.
25323         (add_var_loc_to_decl): Likewise.
25324         (clone_die): Likewise.
25325         (clone_as_declaration): Likewise.
25326         (break_out_comdat_types): Likewise.
25327         (new_loc_list): Likewise.
25328         (add_loc_descr_to_each): Likewise.
25329         (add_location_or_const_value_attribute): Likewise.
25330         (add_linkage_name): Likewise.
25331         (lookup_filename): Likewise.
25332         (dwarf2out_var_location): Likewise.
25333         (new_line_info_table): Likewise.
25334         (dwarf2out_init): Likewise.
25335         (mem_loc_descriptor): Likewise.
25336         (loc_descriptor): Likewise.
25337         (add_const_value_attribute): Likewise.
25338         (tree_add_const_value_attribute): Likewise.
25339         (comp_dir_string): Likewise.
25340         (dwarf2out_vms_debug_main_pointer): Likewise.
25341         (string_cst_pool_decl): Likewise.
25342         * emit-rtl.c (set_mem_attrs): Likewise.
25343         (get_reg_attrs): Likewise.
25344         (start_sequence): Likewise.
25345         (init_emit): Likewise.
25346         (init_emit_regs): Likewise.
25347         * except.c (init_eh_for_function): Likewise.
25348         (gen_eh_region): Likewise.
25349         (gen_eh_region_catch): Likewise.
25350         (gen_eh_landing_pad): Likewise.
25351         (add_call_site): Likewise.
25352         * function.c (add_frame_space): Likewise.
25353         (insert_temp_slot_address): Likewise.
25354         (assign_stack_temp_for_type): Likewise.
25355         (get_hard_reg_initial_val): Likewise.
25356         (allocate_struct_function): Likewise.
25357         (prepare_function_start): Likewise.
25358         (types_used_by_var_decl_insert): Likewise.
25359         * gengtype.c (variable_size_p): Remove function.
25360         (enum alloc_quantity): Remove enum.
25361         (write_typed_alloc_def): Remove function.
25362         (write_typed_struct_alloc_def): Likewise.
25363         (write_typed_typedef_alloc_def): Likewise.
25364         (write_typed_alloc_defns): Likewise.
25365         (main): Adjust.
25366         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
25367         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
25368         * ggc.h (ggc_alloc): new function.
25369         (ggc_cleared_alloc): Likewise.
25370         (ggc_vec_alloc): Template on type of vector element, and remove
25371         element size argument.
25372         (ggc_cleared_vec_alloc): Likewise.
25373         * gimple.c (gimple_build_omp_for): Adjust.
25374         (gimple_copy): Likewise.
25375         * ipa-cp.c (get_replacement_map): Likewise.
25376         (find_aggregate_values_for_callers_subset): Likewise.
25377         (known_aggs_to_agg_replacement_list): Likewise.
25378         * ipa-devirt.c (get_odr_type): Likewise.
25379         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
25380         (read_agg_replacement_chain): Likewise.
25381         * loop-iv.c (get_simple_loop_desc): Likewise.
25382         * lto-cgraph.c (input_node_opt_summary): Likewise.
25383         * lto-section-in.c (lto_new_in_decl_state): Likewise.
25384         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
25385         (input_eh_region): Likewise.
25386         (input_eh_lp): Likewise.
25387         (input_cfg): Likewise.
25388         * optabs.c (set_optab_libfunc): Likewise.
25389         (init_tree_optimization_optabs): Likewise.
25390         (set_conv_libfunc): Likewise.
25391         * passes.c (do_per_function_toporder): Likewise.
25392         * rtl.h: Don't use variable_size gty attribute.
25393         * sese.c (if_region_set_false_region): Adjust.
25394         * stringpool.c (gt_pch_save_stringpool): Likewise.
25395         * target-globals.c (save_target_globals): Likewise.
25396         * toplev.c (general_init): Likewise.
25397         * trans-mem.c (record_tm_replacement): Likewise.
25398         (split_bb_make_tm_edge): Likewise.
25399         * tree-cfg.c (move_sese_region_to_fn): Likewise.
25400         * tree-data-ref.h (lambda_vector_new): Likewise.
25401         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
25402         * tree-iterator.c (tsi_link_before): Likewise.
25403         (tsi_link_after): Likewise.
25404         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
25405         * tree-ssa-loop-niter.c (record_estimate): Likewise.
25406         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
25407         * tree-ssa-operands.h: Don't use variable_size gty attribute.
25408         * tree-ssa.c (init_tree_ssa): Adjust.
25409         * tree-ssanames.c (set_range_info): Likewise.
25410         (get_ptr_info): Likewise.
25411         (duplicate_ssa_name_ptr_info): Likewise.
25412         (duplicate_ssa_name_range_info): Likewise.
25413         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
25414         (unpack_ts_fixed_cst_value_fields): Likewise.
25415         * tree.c (build_fixed): Likewise.
25416         (build_real): Likewise.
25417         (build_string): Likewise.
25418         (decl_priority_info): Likewise.
25419         (decl_debug_expr_insert): Likewise.
25420         (decl_value_expr_insert): Likewise.
25421         (decl_debug_args_insert): Likewise.
25422         (type_hash_add): Likewise.
25423         (build_omp_clause): Likewise.
25424         * ubsan.c (decl_for_type_insert): Likewise.
25425         * varasm.c (get_unnamed_section): Likewise.
25426         (get_noswitch_section): Likewise.
25427         (get_section): Likewise.
25428         (get_block_for_section): Likewise.
25429         (create_block_symbol): Likewise.
25430         (build_constant_desc): Likewise.
25431         (create_constant_pool): Likewise.
25432         (force_const_mem): Likewise.
25433         (record_tm_clone_pair): Likewise.
25434         * varpool.c (varpool_create_empty_node): Likewise.
25435
25436 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
25437
25438         * dwarf2out.c (tree_add_const_value_attribute): Call
25439         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
25440         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
25441         instead of ggc_internal_<x>alloc_stat.
25442         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
25443         (ggc_realloc): Likewise.
25444         * ggc-none.c (ggc_internal_alloc): Likewise.
25445         (ggc_internal_cleared_alloc): Likewise.
25446         * ggc-page.c: Likewise.
25447         * ggc.h (ggc_internal_alloc_stat): Likewise.
25448         (ggc_internal_alloc): Remove macro.
25449         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
25450         (ggc_internal_cleared_alloc): Remove macro.
25451         (GGC_RESIZEVEC): Adjust.
25452         (ggc_resizevar): Remove macro.
25453         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
25454         (ggc_internal_cleared_vec_alloc_stat): Likewise.
25455         (ggc_internal_vec_cleared_alloc): Remove macro.
25456         (ggc_alloc_atomic_stat): Drop _stat suffix.
25457         (ggc_alloc_atomic): Remove macro.
25458         (ggc_alloc_cleared_atomic): Remove macro.
25459         (ggc_alloc_string_stat): Drop _stat suffix.
25460         (ggc_alloc_string): Remove macro.
25461         (ggc_alloc_rtx_def_stat): Adjust.
25462         (ggc_alloc_tree_node_stat): Likewise.
25463         (ggc_alloc_cleared_tree_node_stat): Likewise.
25464         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
25465         (ggc_alloc_cleared_simd_clone_stat): Likewise.
25466         * gimple.c (gimple_build_omp_for): Likewise.
25467         (gimple_copy): Likewise.
25468         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
25469         * toplev.c (realloc_for_line_map): Adjust.
25470         * tree-data-ref.h (lambda_vector_new): Likewise.
25471         * tree-phinodes.c (allocate_phi_node): Likewise.
25472         * tree.c (grow_tree_vec_stat): Likewise.
25473         * vec.h (va_gc::reserve): Adjust.
25474
25475 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
25476
25477         * config/microblaze/microblaze.c (break_handler): New Declaration.
25478         (microblaze_break_function_p,microblaze_is_break_handler): New.
25479         (compute_frame_size): Use microblaze_break_function_p.
25480         Add the test of break_handler.
25481         (microblaze_function_prologue) : Add the test of variable
25482         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
25483         (microblaze_function_epilogue) : Add the test of break_handler.
25484         (microblaze_globalize_label) : Add the test of break_handler.
25485         Check the name by BREAK_HANDLER_NAME.
25486
25487         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
25488
25489         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
25490         microblaze_is_break_handler test.
25491         (call_internal1,call_value_intern): Use microblaze_break_function_p.
25492         Use SYMBOL_REF_DECL.
25493
25494         * config/microblaze/microblaze-protos.h
25495         (microblaze_break_function_p,microblaze_is_break_handler):
25496         New Declaration.
25497
25498         * doc/extend.texi (MicroBlaze break_handler Functions): Document
25499         new MicroBlaze break_handler functions.
25500
25501 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
25502
25503         * doc/extend.texi (Size of an asm): Move node text according
25504         to its @menu entry position.
25505
25506 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
25507
25508         PR tree-optimization/61140
25509         PR tree-optimization/61150
25510         PR tree-optimization/61197
25511         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
25512
25513 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
25514
25515         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
25516
25517 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
25518
25519         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
25520         __SIZEOF_INT128__ is defined.
25521
25522 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
25523
25524         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
25525         (rs6000_delegitimize_address): Use it.
25526
25527 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
25528
25529         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
25530         inplace argument.  Store the new address in the original MEM when true.
25531         * emit-rtl.c (change_address_1): Likewise.
25532         (adjust_address_1, adjust_automodify_address_1, offset_address):
25533         Update accordingly.
25534         * rtl.h (plus_constant): Add an inplace argument.
25535         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
25536         when true.  Avoid generating (plus X (const_int 0)).
25537         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
25538         in-place.  Pass true to plus_constant.
25539         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
25540
25541 2014-05-16  Dehao Chen  <dehao@google.com>
25542
25543         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
25544
25545 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
25546
25547         PR target/54089
25548         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
25549         patterns.
25550         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
25551
25552 2014-05-16  Dehao Chen  <dehao@google.com>
25553
25554         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
25555         optimize_function_for_size_p.
25556         * regs.h (REG_FREQ_FROM_BB): Likewise.
25557
25558 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
25559
25560         PR target/51244
25561         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
25562         negt_reg_operand cases.
25563         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
25564         predicate.
25565         * config/sh/predicates.md (cbranch_treg_value): Simplify.
25566
25567 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
25568
25569         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
25570         target variants.
25571
25572 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
25573
25574         Revert:
25575         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
25576
25577         * tree-cfg.c (dump_function_to_file): Dump the return type of
25578         functions, in a line to itself before the function body, mimicking
25579         the layout of a C function.
25580
25581 2014-05-16  Dehao Chen  <dehao@google.com>
25582
25583         * cfghooks.c (make_forwarder_block): Use direct computation to
25584         get fall-through edge's count and frequency.
25585
25586 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
25587
25588         * config/arc/arc.c (arc_init): Fix typo in error message.
25589         * config/i386/i386.c (ix86_expand_builtin): Likewise.
25590         (split_stack_prologue_scratch_regno): Likewise.
25591         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
25592         word from error message.
25593
25594 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
25595
25596         * ira-costs.c: Fix typo in comment.
25597
25598 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
25599
25600         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
25601
25602 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
25603
25604         * varpool.c (dump_varpool_node): Dump write-only flag.
25605         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
25606         write-only flag.
25607         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
25608         write-only variables.
25609         * ipa.c (process_references): New function.
25610         (set_readonly_bit): New function.
25611         (set_writeonly_bit): New function.
25612         (clear_addressable_bit): New function.
25613         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
25614         fix handling of aliases.
25615         * cgraph.h (struct varpool_node): Add writeonly flag.
25616
25617 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
25618
25619         PR rtl-optimization/60969
25620         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
25621         Calculate costs for this case.
25622
25623 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
25624
25625         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
25626         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
25627
25628 2014-05-16  Richard Biener  <rguenther@suse.de>
25629
25630         PR tree-optimization/61194
25631         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
25632         bool patterns ending in a COND_EXPR.
25633
25634 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25635
25636         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
25637
25638 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25639
25640         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
25641         where we were unable to cost an RTX.
25642
25643 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25644
25645         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
25646         HIGH, LO_SUM.
25647
25648 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25649             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25650
25651         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
25652
25653 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25654             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25655
25656         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
25657         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
25658
25659 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25660             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25661
25662         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
25663         operators.
25664
25665 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25666             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25667
25668         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
25669         DIV/MOD.
25670
25671 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25672             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25673
25674         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
25675         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
25676
25677 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25678             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25679
25680         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
25681         rotates and shifts.
25682
25683 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25684             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25685
25686         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
25687         ZERO_EXTEND and SIGN_EXTEND better.
25688
25689 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25690             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25691
25692         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
25693         logical operations.
25694
25695 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25696             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25697
25698         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
25699         costs when costing loads and stores to memory.
25700
25701 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25702             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
25703
25704         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
25705         for SET RTX.
25706
25707 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25708
25709         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
25710
25711 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25712             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25713
25714         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
25715         to...
25716         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
25717         well formed.
25718         (aarch64_rtx_mult_cost): New.
25719         (aarch64_rtx_costs): Use it, refactor as appropriate.
25720
25721 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25722             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25723
25724         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
25725         emit instructions, return number of instructions which would
25726         be emitted.
25727         (aarch64_add_constant): Update call to aarch64_build_constant.
25728         (aarch64_output_mi_thunk): Likewise.
25729         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
25730         a CONST_DOUBLE.
25731
25732 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25733
25734         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
25735         (TARGET_RTX_COSTS): Call it.
25736
25737 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25738
25739         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
25740         (cortexa57_vector_cost): Likewise.
25741         (cortexa57_tunings): Use them.
25742
25743 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25744
25745         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
25746         (cpu_addrcost_table): Use it.
25747         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
25748         (aarch64_address_cost): Rewrite using aarch64_classify_address,
25749         move it.
25750
25751 2014-05-16  Richard Biener  <rguenther@suse.de>
25752
25753         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
25754         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
25755         (visit_phi): Ignore edges marked as not executable.
25756         (class cond_dom_walker): New.
25757         (cond_dom_walker::before_dom_children): Value-number
25758         control statements and mark successor edges as not
25759         executable if possible.
25760         (run_scc_vn): First walk all control statements in
25761         dominator order, marking edges as not executable.
25762         * tree-inline.c (copy_edges_for_bb): Be not confused
25763         about random edge flags.
25764
25765 2014-05-16  Richard Biener  <rguenther@suse.de>
25766
25767         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
25768
25769 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
25770
25771         PR target/61193
25772         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
25773         (__TM_simple_begin): Use it.
25774         (__TM_begin): Likewise.
25775
25776 2014-05-15  Martin Jambor  <mjambor@suse.cz>
25777
25778         PR ipa/61085
25779         * ipa-prop.c (update_indirect_edges_after_inlining): Check
25780         type_preserved flag when the indirect edge is polymorphic.
25781
25782 2014-05-15  Martin Jambor  <mjambor@suse.cz>
25783
25784         PR tree-optimization/61090
25785         * tree-sra.c (sra_modify_expr): Pass the current gsi to
25786         build_ref_for_model.
25787
25788 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25789
25790         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
25791         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
25792
25793 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
25794
25795         PR tree-optimization/61158
25796         * fold-const.c (fold_binary_loc): If X is zero-extended and
25797         shiftc >= prec, make sure zerobits is all ones instead of
25798         invoking undefined behavior.
25799
25800 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
25801
25802         * regcprop.h: New file.
25803         * regcprop.c (skip_debug_insn_p): New decl.
25804         (replace_oldest_value_reg): Check skip_debug_insn_p.
25805         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
25806         * shrink-wrap.c: Include regcprop.h.
25807         (prepare_shrink_wrap): Call
25808         copyprop_hardreg_forward_bb_without_debug_insn.
25809
25810 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
25811
25812         * shrink-wrap.h: Update comment.
25813         * shrink-wrap.c: Update comment.
25814         (next_block_for_reg): Rename to live_edge_for_reg.
25815         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
25816         (move_insn_for_shrink_wrap): Split live_edge.
25817         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
25818
25819 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
25820
25821         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
25822         Delete.
25823         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
25824         * config/sparc/sparc.md (fptype_ut699): New attribute.
25825         (in_branch_delay): Return false if -mfix-ut699 is specified and
25826         fptype_ut699 is set to single.
25827         (truncdfsf2): Add fptype_ut699 attribute.
25828         (fix_truncdfsi2): Likewise.
25829         (floatsisf2): Change fptype attribute.
25830         (fix_truncsfsi2): Likewise.
25831         (negtf2_notv9): Delete.
25832         (negtf2_v9): Likewise.
25833         (negtf2_hq): New instruction.
25834         (negtf2): New instruction and splitter.
25835         (negdf2_notv9): Rewrite.
25836         (abstf2_notv9): Delete.
25837         (abstf2_hq_v9): Likewise.
25838         (abstf2_v9): Likewise.
25839         (abstf2_hq): New instruction.
25840         (abstf2): New instruction and splitter.
25841         (absdf2_notv9): Rewrite.
25842
25843 2014-05-14  Cary Coutant  <ccoutant@google.com>
25844
25845         PR debug/61013
25846         * opts.c (common_handle_option): Don't special-case "-g".
25847         (set_debug_level): Default to at least level 2 with "-g".
25848
25849 2014-05-14  DJ Delorie  <dj@redhat.com>
25850
25851         * config/msp430/msp430.c (msp430_builtin): Add
25852         MSP430_BUILTIN_DELAY_CYCLES.
25853         (msp430_init_builtins): Register void __delay_cycles(long long).
25854         (msp430_builtin_decl): Add it.
25855         (cg_magic_constant): New.
25856         (msp430_expand_delay_cycles): New.
25857         (msp430_expand_builtin): Call it.
25858         (msp430_print_operand_raw): Change integer printing from "int" to
25859         HOST_WIDE_INT.
25860         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
25861         (delay_cycles_start): New.
25862         (delay_cycles_end): New.
25863         (delay_cycles_32): New.
25864         (delay_cycles_32x): New.
25865         (delay_cycles_16): New.
25866         (delay_cycles_16x): New.
25867         (delay_cycles_2): New.
25868         (delay_cycles_1): New.
25869         * doc/extend.texi: Document __delay_cycles().
25870
25871 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
25872
25873         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
25874         length attribute computation.
25875
25876 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
25877
25878         PR debug/61188
25879         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
25880
25881 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
25882
25883         PR target/61084
25884         * config/sparc/sparc.md: Fix types of low and high in DI constant
25885         splitter.  Use gen_int_mode in some other splitters.
25886
25887 2014-05-14  Martin Jambor  <mjambor@suse.cz>
25888
25889         PR ipa/60897
25890         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
25891
25892 2014-05-14  James Norris  <jnorris@codesourcery.com>
25893
25894         * omp-low.c (expand_parallel_call): Remove shadow variable.
25895         (expand_omp_taskreg): Likewise.
25896
25897 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
25898
25899         * common/config/i386/i386-common.c
25900         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
25901         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
25902         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
25903         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
25904         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
25905         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
25906         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
25907         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
25908         xsavecintrin.h, xsavesintrin.h.
25909         (x86_64-*-*): Ditto.
25910         * config/i386/clflushoptintrin.h: New.
25911         * config/i386/xsavecintrin.h: Ditto.
25912         * config/i386/xsavesintrin.h: Ditto.
25913         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
25914         (bit_XSAVES): Ditto.
25915         (bit_XSAVES): Ditto.
25916         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
25917         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
25918         -mno-clflushopt.
25919         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
25920         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
25921         OPTION_MASK_ISA_XSAVES.
25922         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
25923         -mxsavec, -mxsaves.
25924         (PTA_CLFLUSHOPT) Define.
25925         (PTA_XSAVEC): Ditto.
25926         (PTA_XSAVES): Ditto.
25927         (ix86_option_override_internal): Handle new options.
25928         (ix86_valid_target_attribute_inner_p): Ditto.
25929         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
25930         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
25931         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
25932         (bdesc_special_args): Add __builtin_ia32_xsaves,
25933         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
25934         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
25935         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
25936         (ix86_expand_builtin): Handle new builtins.
25937         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
25938         (TARGET_CLFLUSHOPT_P): Ditto.
25939         (TARGET_XSAVEC): Ditto.
25940         (TARGET_XSAVEC_P): Ditto.
25941         (TARGET_XSAVES): Ditto.
25942         (TARGET_XSAVES_P): Ditto.
25943         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
25944         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
25945         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
25946         (ANY_XRSTOR): New.
25947         (ANY_XRSTOR64): Ditto.
25948         (xrstor): Ditto.
25949         (xrstor): Change into <xrstor>.
25950         (xrstor_rex64): Change into <xrstor>_rex64.
25951         (xrstor64): Change into <xrstor>64
25952         (clflushopt): New.
25953         * config/i386/i386.opt (mclflushopt): New.
25954         (mxsavec): Ditto.
25955         (mxsaves): Ditto.
25956         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
25957         xsavecintrin.h.
25958         * doc/invoke.texi: Document new options.
25959
25960 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
25961
25962         PR rtl-optimization/60866
25963         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
25964         Default it to -1.  Pass it down to init_simplejump_data.
25965         (init_simplejump_data): New parameter old_seqno.  Pass it down
25966         to get_seqno_for_a_jump.
25967         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
25968         initializing new jump seqno as a last resort.  Add comment.
25969         (sel_redirect_edge_and_branch): Save old seqno of the conditional
25970         jump and pass it down to sel_init_new_insn.
25971         (sel_redirect_edge_and_branch_force): Likewise.
25972
25973 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
25974
25975         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
25976         shifted values to avoid build warning.
25977
25978 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
25979
25980         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
25981         * cfgrtl.c (rtl_merge_blocks): Fix comment.
25982         (cfg_layout_merge_blocks): Likewise.
25983         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
25984
25985 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
25986
25987         PR rtl-optimization/60901
25988         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
25989         bb predecessor belongs to the same scheduling region.  Adjust comment.
25990
25991 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
25992
25993         * doc/sourcebuild.texi: (dfp_hw): Document.
25994         (p8vector_hw): Likewise.
25995         (powerpc_eabi_ok): Likewise.
25996         (powerpc_elfv2): Likewise.
25997         (powerpc_htm_ok): Likewise.
25998         (ppc_recip_hw): Likewise.
25999         (vsx_hw): Likewise.
26000
26001 2014-05-13  Cary Coutant  <ccoutant@google.com>
26002
26003         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
26004
26005 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
26006
26007         * gengtype-parse.c (require3): Eliminate in favor of...
26008         (require4): New.
26009         (require_template_declaration): Update to support optional single *
26010         on a type.
26011
26012         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
26013         (create_user_defined_type): Handle a single level of explicit
26014         pointerness within template arguments.
26015         (struct write_types_data): Add field "kind".
26016         (filter_type_name): Handle "*" character.
26017         (write_user_func_for_structure_ptr): Require a write_types_data
26018         rather than just a prefix string, so that we can look up the kind
26019         of the wtd and use it as an index into wrote_user_func_for_ptr,
26020         ensuring that such functions are written at most once.  Support
26021         subclasses by invoking the marking function of the ultimate base class.
26022         (write_user_func_for_structure_body): Require a write_types_data
26023         rather than just a prefix string, so that we can pass this to
26024         write_user_func_for_structure_ptr.
26025         (write_func_for_structure): Likewise.
26026         (ggc_wtd): Add initializer of new "kind" field.
26027         (pch_wtd): Likewise.
26028
26029         * gengtype.h (enum write_types_kinds): New.
26030         (struct type): Add field wrote_user_func_for_ptr to the "s"
26031         union member.
26032
26033 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
26034
26035         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
26036         instead of const_binop.
26037         (fold_binary_loc): Likewise.
26038
26039 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
26040
26041         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
26042         calculation to match get_ref_base_and_extent.
26043
26044 2014-05-13  Catherine Moore  <clm@codesourcery.com>
26045             Sandra Loosemore  <sandra@codesourcery.com>
26046
26047         * configure.ac: Fix assembly for explicit JALR relocation check.
26048         * configure: Regenerate.
26049
26050 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26051
26052         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
26053         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
26054         Remove associated type declarations and initialisations.
26055         (arm_expand_neon_builtin): Likewise.
26056         (neon_emit_pair_result_insn): Delete.
26057         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
26058         * config/arm/neon.md (neon_vtrn<mode>): Delete.
26059         (neon_vzip<mode>): Likewise.
26060         (neon_vuzp<mode>): Likewise.
26061
26062 2014-05-13  Richard Biener  <rguenther@suse.de>
26063
26064         PR ipa/60973
26065         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
26066         it needs revisiting whether the call still may be tail-called.
26067
26068 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
26069
26070         * rtl.def (SYMBOL_REF): Remove middle "0" field.
26071         * rtl.h (block_symbol): Reduce number of fields to 2.
26072         (rtx_def): Add u2.symbol_ref_flags.
26073         (SYMBOL_REF_FLAGS): Use it.
26074         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
26075         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
26076         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
26077         Lower index of SYMBOL_REF_DATA.
26078         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
26079         Print SYMBOL_REF_FLAGS at the same time.
26080         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
26081
26082 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
26083
26084         * rtl.def (VAR_LOCATION): Remove "i" field.
26085         * rtl.h (rtx_def): Add u2.var_location_status.
26086         (PAT_VAR_LOCATION_STATUS): Use it.
26087         (gen_rtx_VAR_LOCATION): Declare.
26088         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
26089         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
26090         * var-tracking.c (emit_note_insn_var_location): Remove casts.
26091
26092 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
26093
26094         * rtl.def (scratch): Fix outdated comment and remove "0" field.
26095         * gengtype.c (adjust_field_rtx_def): Update accordingly.
26096
26097 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
26098
26099         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
26100         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
26101         * rtl.h (rtx_def): Add insn_uid to u2 field.
26102         (RTX_FLAG_CHECK8): Delete in favor of...
26103         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
26104         (INSN_DELETED_P): Update accordingly.
26105         (INSN_UID): Use u2.insn_uid.
26106         (INSN_CHAIN_CODE_P): Define.
26107         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
26108         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
26109         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
26110         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
26111         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
26112         indices accordingly.
26113         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
26114         Update indices for insn-chain rtxes.
26115         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
26116         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
26117         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
26118         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
26119         * combine.c (try_combine): Likewise.
26120         * ira.c (setup_prohibited_mode_move_regs): Likewise.
26121
26122 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
26123
26124         * rtl.def (REG): Remove middle field.
26125         * rtl.h (rtx_def): Add orignal_regno to u2.
26126         (ORIGINAL_REGNO): Use it instead of field 1.
26127         (REG_ATTRS): Lower field index accordingly.
26128         * gengtype.c (adjust_field_rtx_def): Remove handling of
26129         ORIGINAL_REGNO.  Move REG_ATTRS index down.
26130         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
26131         code that prints the REGNO.
26132
26133 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
26134
26135         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
26136         GENERATOR_FILE.
26137
26138 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
26139
26140         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
26141
26142 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
26143
26144         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
26145         (alloc_iv): Lower base expressions containing ADDR_EXPR.
26146
26147 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
26148
26149         * config/aarch64/aarch64-protos.h
26150         (aarch64_hard_regno_caller_save_mode): New prototype.
26151         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
26152         New function.
26153         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
26154
26155 2014-05-13  Christian Bruel  <christian.bruel@st.com>
26156
26157         * target.def (mode_switching): New hook vector.
26158         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
26159         (mode_exit, modepriority_to_mode): Likewise.
26160         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
26161         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26162         * target.h: Include tm.h and hard-reg-set.h.
26163         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
26164         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
26165         * doc/tm.texi Regenerate.
26166         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
26167         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26168         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
26169         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
26170         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
26171         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26172         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
26173         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
26174         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
26175         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
26176         (ix86_emit_mode_set): Hookify.
26177         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
26178         Delete.
26179         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26180         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
26181         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
26182         (epiphany_mode_priority_to_mode): Remove declaration.
26183         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
26184         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
26185         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
26186         Likewise.
26187         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
26188         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
26189         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
26190
26191 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
26192
26193         PR target/61060
26194         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
26195         is const0_rtx, return immediately.  Don't test count == 0 when
26196         it is always true.
26197
26198 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
26199
26200         * Makefile.in: add shrink-wrap.o.
26201         * config/i386/i386.c: include "shrink-wrap.h"
26202         * function.c: Likewise.
26203         (requires_stack_frame_p, next_block_for_reg,
26204         move_insn_for_shrink_wrap, prepare_shrink_wrap,
26205         dup_block_and_redirect): Move to shrink-wrap.c
26206         (thread_prologue_and_epilogue_insns): Extract three code segments
26207         as functions in shrink-wrap.c
26208         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
26209         shrink-wrap.h
26210         * shrink-wrap.c: New file.
26211         * shrink-wrap.h: New file.
26212
26213 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
26214
26215         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
26216         reference to Solaris.
26217
26218 2014-05-12  Mike Stump  <mikestump@comcast.net>
26219
26220         PR other/31778
26221         * genattrtab.c (filename): Add.
26222         (convert_set_attr_alternative): Improve error message.
26223         (check_defs): Restore read_md_filename for error messages.
26224         (gen_insn): Save filename.
26225
26226 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
26227
26228         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
26229         -fno-local-ivars and -fivar-visibility.
26230         * c-family/c.opt: Make -Wshadow also implicitly enable
26231         -Wshadow-ivar.
26232
26233 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
26234
26235         * doc/tm.texi: Remove reference to deleted macro.
26236         * doc/tm.texi.in: Likewise.
26237
26238 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
26239
26240         PR target/60991
26241         * config/avr/avr.c (avr_out_store_psi): Use correct constant
26242         to restore Y.
26243
26244 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
26245
26246         PR libgcc/61152
26247         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
26248         * config/arm/aout.h (License): Same.
26249         * config/arm/bpabi.h (License): Same.
26250         * config/arm/elf.h (License): Same.
26251         * config/arm/linux-elf.h (License): Same.
26252         * config/arm/linux-gas.h (License): Same.
26253         * config/arm/netbsd-elf.h (License): Same.
26254         * config/arm/uclinux-eabi.h (License): Same.
26255         * config/arm/uclinux-elf.h (License): Same.
26256         * config/arm/vxworks.h (License): Same.
26257
26258 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
26259
26260         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
26261         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
26262         number of operands to 3.
26263         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
26264         * tree-nested.c (convert_nonlocal_omp_clauses,
26265         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
26266         * gimplify.c (gimplify_scan_omp_clauses): Handle
26267         OMP_CLAUSE_LINEAR_STMT.
26268         * omp-low.c (lower_rec_input_clauses): Fix typo.
26269         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
26270         cast between Fortran boolean_type_node and C _Bool if
26271         needed.
26272
26273 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
26274
26275         PR tree-optimization/61136
26276         * wide-int.h (multiple_of_p): Define a version that doesn't return
26277         the quotient.
26278         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
26279         integer_zerop/const_binop pair.
26280         (multiple_of_p): Likewise, converting both operands to widest_int
26281         precision.
26282
26283 2014-05-09  Teresa Johnson  <tejohnson@google.com>
26284
26285         * cgraphunit.c (analyze_functions): Use correct dump file.
26286
26287 2014-05-09  Florian Weimer  <fweimer@redhat.com>
26288
26289         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
26290         expand_used_vars.
26291         (stack_protect_return_slot_p): New function.
26292         (expand_used_vars): Call stack_protect_decl_p and
26293         stack_protect_return_slot_p for -fstack-protector-strong.
26294
26295 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
26296         Andrew Haley <aph@redhat.com>
26297         Richard Sandiford <rdsandiford@googlemail.com>
26298
26299         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
26300         pages.
26301
26302 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
26303
26304         PR middle-end/61111
26305         * fold-const.c (fold_binary_loc): Changed width of mask.
26306
26307 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
26308
26309         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
26310         unsigned int initializers for regno_in, regno_out.
26311
26312 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
26313
26314         PR target/61055
26315         * config/avr/avr.md (cc): Add new attribute set_vzn.
26316         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
26317         Set cc insn attribute to set_vzn instead of set_zn for alternatives
26318         with INC, DEC or NEG.
26319         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
26320         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
26321         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
26322
26323 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26324
26325         Revert:
26326         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26327
26328         * wide-int.cc (UTItype): Define.
26329         (UDWtype): Define for appropriate W_TYPE_SIZE.
26330
26331 2014-05-09  Richard Biener  <rguenther@suse.de>
26332
26333         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
26334         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
26335         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
26336         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
26337         ssa_propagate): Adjust.
26338
26339 2014-05-08  Jeff Law  <law@redhat.com>
26340
26341         PR tree-optimization/61009
26342         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
26343         tri-state rather than a boolean.  When a block is too big to
26344         thread through, inform caller via negative return value.
26345         (thread_across_edge): If a block was too big for normal threading,
26346         then it's too big for a joiner too, so remove temporary equivalences
26347         and return immediately.
26348
26349 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26350             Matthias Klose  <doko@ubuntu.com>
26351
26352         PR driver/61106
26353         * optc-gen.awk: Fix option handling for -Wunused-parameter.
26354
26355 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
26356
26357         PR target/59952
26358         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
26359
26360 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
26361
26362         PR target/61092
26363         * config/alpha/alpha.c: Include gimple-iterator.h.
26364         (alpha_gimple_fold_builtin): New function.  Move
26365         ALPHA_BUILTIN_UMULH folding from ...
26366         (alpha_fold_builtin): ... here.
26367         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
26368
26369 2014-05-08  Wei Mi  <wmi@google.com>
26370
26371         PR target/58066
26372         * config/i386/i386.c (ix86_compute_frame_layout): Update
26373         preferred_stack_boundary for call, expanded from tls descriptor.
26374         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
26375         to depend on SP register.
26376         (*tls_local_dynamic_base_32_gnu): Ditto.
26377         (*tls_local_dynamic_32_once): Ditto.
26378         (tls_global_dynamic_64_<mode>): Set
26379         ix86_tls_descriptor_calls_expanded_in_cfun.
26380         (tls_local_dynamic_base_64_<mode>): Ditto.
26381         (tls_global_dynamic_32): Set
26382         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
26383         to depend on SP register.
26384         (tls_local_dynamic_base_32): Ditto.
26385
26386 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26387
26388         * config/arm/arm_neon.h: Update comment.
26389         * config/arm/neon-docgen.ml: Delete.
26390         * config/arm/neon-gen.ml: Delete.
26391         * doc/arm-neon-intrinsics.texi: Update comment.
26392
26393 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26394
26395         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
26396         and v4sf versions.
26397         (vand, vorr, veor, vorn, vbic): Remove.
26398         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
26399         iterator.
26400         (neon_vsub_unspec): Likewise.
26401         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
26402
26403 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26404
26405         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
26406         (vadd_s16): Likewise.
26407         (vadd_s32): Likewise.
26408         (vadd_f32): Likewise.
26409         (vadd_u8): Likewise.
26410         (vadd_u16): Likewise.
26411         (vadd_u32): Likewise.
26412         (vadd_s64): Likewise.
26413         (vadd_u64): Likewise.
26414         (vaddq_s8): Likewise.
26415         (vaddq_s16): Likewise.
26416         (vaddq_s32): Likewise.
26417         (vaddq_s64): Likewise.
26418         (vaddq_f32): Likewise.
26419         (vaddq_u8): Likewise.
26420         (vaddq_u16): Likewise.
26421         (vaddq_u32): Likewise.
26422         (vaddq_u64): Likewise.
26423         (vmul_s8): Likewise.
26424         (vmul_s16): Likewise.
26425         (vmul_s32): Likewise.
26426         (vmul_f32): Likewise.
26427         (vmul_u8): Likewise.
26428         (vmul_u16): Likewise.
26429         (vmul_u32): Likewise.
26430         (vmul_p8): Likewise.
26431         (vmulq_s8): Likewise.
26432         (vmulq_s16): Likewise.
26433         (vmulq_s32): Likewise.
26434         (vmulq_f32): Likewise.
26435         (vmulq_u8): Likewise.
26436         (vmulq_u16): Likewise.
26437         (vmulq_u32): Likewise.
26438         (vsub_s8): Likewise.
26439         (vsub_s16): Likewise.
26440         (vsub_s32): Likewise.
26441         (vsub_f32): Likewise.
26442         (vsub_u8): Likewise.
26443         (vsub_u16): Likewise.
26444         (vsub_u32): Likewise.
26445         (vsub_s64): Likewise.
26446         (vsub_u64): Likewise.
26447         (vsubq_s8): Likewise.
26448         (vsubq_s16): Likewise.
26449         (vsubq_s32): Likewise.
26450         (vsubq_s64): Likewise.
26451         (vsubq_f32): Likewise.
26452         (vsubq_u8): Likewise.
26453         (vsubq_u16): Likewise.
26454         (vsubq_u32): Likewise.
26455         (vsubq_u64): Likewise.
26456         (vand_s8): Likewise.
26457         (vand_s16): Likewise.
26458         (vand_s32): Likewise.
26459         (vand_u8): Likewise.
26460         (vand_u16): Likewise.
26461         (vand_u32): Likewise.
26462         (vand_s64): Likewise.
26463         (vand_u64): Likewise.
26464         (vandq_s8): Likewise.
26465         (vandq_s16): Likewise.
26466         (vandq_s32): Likewise.
26467         (vandq_s64): Likewise.
26468         (vandq_u8): Likewise.
26469         (vandq_u16): Likewise.
26470         (vandq_u32): Likewise.
26471         (vandq_u64): Likewise.
26472         (vorr_s8): Likewise.
26473         (vorr_s16): Likewise.
26474         (vorr_s32): Likewise.
26475         (vorr_u8): Likewise.
26476         (vorr_u16): Likewise.
26477         (vorr_u32): Likewise.
26478         (vorr_s64): Likewise.
26479         (vorr_u64): Likewise.
26480         (vorrq_s8): Likewise.
26481         (vorrq_s16): Likewise.
26482         (vorrq_s32): Likewise.
26483         (vorrq_s64): Likewise.
26484         (vorrq_u8): Likewise.
26485         (vorrq_u16): Likewise.
26486         (vorrq_u32): Likewise.
26487         (vorrq_u64): Likewise.
26488         (veor_s8): Likewise.
26489         (veor_s16): Likewise.
26490         (veor_s32): Likewise.
26491         (veor_u8): Likewise.
26492         (veor_u16): Likewise.
26493         (veor_u32): Likewise.
26494         (veor_s64): Likewise.
26495         (veor_u64): Likewise.
26496         (veorq_s8): Likewise.
26497         (veorq_s16): Likewise.
26498         (veorq_s32): Likewise.
26499         (veorq_s64): Likewise.
26500         (veorq_u8): Likewise.
26501         (veorq_u16): Likewise.
26502         (veorq_u32): Likewise.
26503         (veorq_u64): Likewise.
26504         (vbic_s8): Likewise.
26505         (vbic_s16): Likewise.
26506         (vbic_s32): Likewise.
26507         (vbic_u8): Likewise.
26508         (vbic_u16): Likewise.
26509         (vbic_u32): Likewise.
26510         (vbic_s64): Likewise.
26511         (vbic_u64): Likewise.
26512         (vbicq_s8): Likewise.
26513         (vbicq_s16): Likewise.
26514         (vbicq_s32): Likewise.
26515         (vbicq_s64): Likewise.
26516         (vbicq_u8): Likewise.
26517         (vbicq_u16): Likewise.
26518         (vbicq_u32): Likewise.
26519         (vbicq_u64): Likewise.
26520         (vorn_s8): Likewise.
26521         (vorn_s16): Likewise.
26522         (vorn_s32): Likewise.
26523         (vorn_u8): Likewise.
26524         (vorn_u16): Likewise.
26525         (vorn_u32): Likewise.
26526         (vorn_s64): Likewise.
26527         (vorn_u64): Likewise.
26528         (vornq_s8): Likewise.
26529         (vornq_s16): Likewise.
26530         (vornq_s32): Likewise.
26531         (vornq_s64): Likewise.
26532         (vornq_u8): Likewise.
26533         (vornq_u16): Likewise.
26534         (vornq_u32): Likewise.
26535         (vornq_u64): Likewise.
26536
26537 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26538
26539         * wide-int.cc (UTItype): Define.
26540         (UDWtype): Define for appropriate W_TYPE_SIZE.
26541
26542 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
26543
26544         PR tree-optimization/59100
26545         * tree-ssa-phiopt.c: Include tree-inline.h.
26546         (neutral_element_p, absorbing_element_p): New functions.
26547         (value_replacement): Handle conditional binary operations with a
26548         neutral or absorbing element.
26549
26550 2014-05-08  Richard Biener  <rguenther@suse.de>
26551
26552         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
26553         folding the expression.
26554         (valueize_expr): Remove.
26555         (visit_reference_op_load): Do not valueize the result of
26556         vn_get_expr_for.
26557         (simplify_binary_expression): Likewise.
26558         (simplify_unary_expression): Likewise.
26559
26560 2014-05-08  Richard Biener  <rguenther@suse.de>
26561
26562         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
26563         looking at TYPE_ARG_TYPES.
26564
26565 2014-05-08  Richard Biener  <rguenther@suse.de>
26566
26567         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
26568         pointer propagation special-case.
26569
26570 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
26571
26572         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
26573         core part of address expressions.
26574
26575 2014-05-08  Alan Modra  <amodra@gmail.com>
26576
26577         PR target/60737
26578         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
26579         loads and stores when -mno-strict-align at any alignment.
26580         (expand_block_clear): Similarly.  Also correct calculation of
26581         instruction count.
26582
26583 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26584
26585         PR middle-end/39246
26586         * tree-complex.c (expand_complex_move): Keep line info when expanding
26587         complex move.
26588         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
26589         of complex expression. Use new argument to display correct location
26590         for values coming from phi statement.
26591         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
26592         (warn_uninitialized_phi): Pass location of phi argument to
26593         warn_uninit.
26594         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
26595         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
26596
26597 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
26598
26599         * config/rs6000/predicates.md (indexed_address_mem): New.
26600         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
26601         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
26602         fpstore_ux, fpstore_u.
26603         (sign_extend, indexed, update): New.
26604         (cell_micro): Adjust.
26605         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
26606         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
26607         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
26608         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
26609         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
26610         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
26611         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
26612         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
26613         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
26614         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
26615         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
26616         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
26617         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
26618         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
26619         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
26620
26621         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
26622         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
26623         *vsx_extract_<mode>_store): Adjust.
26624         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
26625         is_cracked_insn, insn_must_be_first_in_group,
26626         insn_must_be_last_in_group): Adjust.
26627
26628         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
26629         Adjust.
26630         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
26631         ppc440-fpstore): Adjust.
26632         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
26633         ppc476-fpstore): Adjust.
26634         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
26635         ppc601-fpstore): Adjust.
26636         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
26637         Adjust.
26638         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
26639         Adjust.
26640         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
26641         ppc7450-fpstore): Adjust.
26642         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
26643         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
26644         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
26645         Adjust.
26646         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
26647         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
26648         cell-fpstore, cell-fpstore-update): Adjust.
26649         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
26650         ppce300c3_store, ppce300c3_fpstore): Adjust.
26651         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
26652         e500mc_fpstore): Adjust.
26653         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
26654         e500mc64_store, e500mc64_fpstore): Adjust.
26655         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
26656         e5500_fpstore): Adjust.
26657         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
26658         e6500_fpstore): Adjust.
26659         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
26660         Adjust.
26661         * config/rs6000/power4.md (power4-load, power4-load-ext,
26662         power4-load-ext-update, power4-load-ext-update-indexed,
26663         power4-load-update-indexed, power4-load-update, power4-fpload,
26664         power4-fpload-update, power4-store, power4-store-update,
26665         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
26666         Adjust.
26667         * config/rs6000/power5.md (power5-load, power5-load-ext,
26668         power5-load-ext-update, power5-load-ext-update-indexed,
26669         power5-load-update-indexed, power5-load-update, power5-fpload,
26670         power5-fpload-update, power5-store, power5-store-update,
26671         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
26672         Adjust.
26673         * config/rs6000/power6.md (power6-load, power6-load-ext,
26674         power6-load-update, power6-load-update-indexed,
26675         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
26676         power6-fpload-update, power6-store, power6-store-update,
26677         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
26678         Adjust.
26679         * config/rs6000/power7.md (power7-load, power7-load-ext,
26680         power7-load-update, power7-load-update-indexed,
26681         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
26682         power7-fpload-update, power7-store, power7-store-update,
26683         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
26684         Adjust.
26685         * config/rs6000/power8.md (power8-load, power8-load-update,
26686         power8-load-ext, power8-load-ext-update, power8-fpload,
26687         power8-fpload-update, power8-store, power8-store-update-indexed,
26688         power8-fpstore, power8-fpstore-update): Adjust.
26689         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
26690         Adjust.
26691         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
26692         titan_lsu_store, titan_lsu_fpstore): Adjust.
26693         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
26694
26695 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
26696
26697         PR target/60884
26698         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
26699         unrolled byte insns.  Emit address increments after move insns.
26700
26701 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
26702
26703         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
26704         const_gimple, rather than a gimple.
26705         (gimple_call_builtin_p): Likewise, for the three variants.
26706
26707         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
26708         (gimple_call_builtin_p): Likewise, for the three variants.
26709
26710 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
26711
26712         PR tree-optimization/61095
26713         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
26714
26715 2014-05-07  Richard Biener  <rguenther@suse.de>
26716
26717         PR tree-optimization/61034
26718         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
26719         (maybe_skip_until): Use translate to take into account
26720         lattices when trying to do disambiguations.
26721         (get_continuation_for_phi_1): Likewise.
26722         (get_continuation_for_phi): Adjust for added translate arguments.
26723         (walk_non_aliased_vuses): Likewise.
26724         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
26725         (walk_non_aliased_vuses): Likewise.
26726         (call_may_clobber_ref_p_1): Declare.
26727         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
26728         calls.  Stop early if we are only supposed to disambiguate.
26729         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
26730
26731 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
26732
26733         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
26734         Emit an error when the function has arguments.
26735
26736 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
26737
26738         * cfgloop.h (unswitch_loops): Remove.
26739         * doc/passes.texi: Remove references to loop-unswitch.c
26740         * timevar.def (TV_LOOP_UNSWITCH): Remove.
26741
26742 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
26743
26744         * tree-vect-data-refs.c (vect_grouped_load_supported): New
26745         check for loads group of length 3.
26746         (vect_permute_load_chain): New permutations for loads group of
26747         length 3.
26748         * tree-vect-stmts.c (vect_model_load_cost): Change cost
26749         of vec_perm_shuffle for the new permutations.
26750
26751 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
26752
26753         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
26754         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
26755         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
26756         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
26757         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
26758         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
26759         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
26760         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
26761
26762 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
26763
26764         * loop-unswitch.c: Delete.
26765
26766 2014-05-07  Richard Biener  <rguenther@suse.de>
26767
26768         * config.gcc: Always set need_64bit_hwint to yes.
26769
26770 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
26771
26772         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
26773         of using optimize_size.
26774
26775 2014-05-06  Mike Stump  <mikestump@comcast.net>
26776
26777         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
26778
26779 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
26780
26781         * config/i386/sse.md (*mov<mode>_internal)
26782         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
26783         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
26784         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
26785         (*<code><mode>3, *andnot<mode>3<mask_name>)
26786         (<mask_codefor><code><mode>3<mask_name>): Only consider
26787         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
26788
26789 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
26790
26791         Revert:
26792         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
26793
26794         * lra-constraints.c (valid_address_p): Move earlier in file.
26795         Add a constraint argument to the address_info version.
26796         (satisfies_memory_constraint_p): New function.
26797         (satisfies_address_constraint_p): Likewise.
26798         (process_alt_operands, curr_insn_transform): Use them.
26799         (process_address): Pass the constraint to valid_address_p when
26800         checking address operands.
26801
26802 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
26803
26804         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
26805         to their respective blocks.  Fix inadvertent use of "node".
26806
26807 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
26808
26809         * emit-rtl.c (init_derived_machine_modes): New functionm, split
26810         out from...
26811         (init_emit_once): ...here.
26812         * rtl.h (init_derived_machine_modes): Declare.
26813         * toplev.c (do_compile): Call it even if no_backend.
26814
26815 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
26816             Mike Stump  <mikestump@comcast.net>
26817             Richard Sandiford  <rdsandiford@googlemail.com>
26818             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26819
26820         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
26821         (rtx_equal_for_memref_p): Update comment.
26822         (adjust_offset_for_component_ref): Use wide-int interfaces.
26823         * builtins.c (get_object_alignment_2): Likewise.
26824         (c_readstr): Likewise.
26825         (target_char_cast): Add comment.
26826         (determine_block_size): Use wide-int interfaces.
26827         (expand_builtin_signbit): Likewise.
26828         (fold_builtin_int_roundingfn): Likewise.
26829         (fold_builtin_bitop): Likewise.
26830         (fold_builtin_bswap): Likewise.
26831         (fold_builtin_logarithm): Use signop.
26832         (fold_builtin_pow): Likewise.
26833         (fold_builtin_memory_op): Use wide-int interfaces.
26834         (fold_builtin_object_size): Likewise.
26835         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
26836         nb_iterations_estimate.
26837         (record_niter_bound): Use wide-int interfaces.
26838         (get_estimated_loop_iterations_int): Likewise.
26839         (get_estimated_loop_iterations): Likewise.
26840         (get_max_loop_iterations): Likewise.
26841         * cfgloop.h: Include wide-int.h.
26842         (struct nb_iter_bound): Change bound to widest_int.
26843         (struct loop): Change nb_iterations_upper_bound and
26844         nb_iterations_estimate to widest_int.
26845         (record_niter_bound): Switch to use widest_int.
26846         (get_estimated_loop_iterations): Likewise.
26847         (get_max_loop_iterations): Likewise.
26848         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
26849         update for wide-int.
26850         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
26851         * combine.c (try_combine): Likewise.
26852         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
26853         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
26854         interfaces.
26855         (aarch64_float_const_representable_p): Likewise.
26856         * config/arc/arc.c: Include wide-int.h.
26857         (arc_can_use_doloop_p): Use wide-int interfaces.
26858         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
26859         (vfp3_const_double_index): Likewise.
26860         * config/avr/avr.c (avr_out_round): Likewise.
26861         (avr_fold_builtin): Likewise.
26862         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
26863         (bfin_can_use_doloop_p): Likewise.
26864         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
26865         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
26866         * config/i386/i386.c: Include wide-int.h.
26867         (ix86_data_alignment): Use wide-int interfaces.
26868         (ix86_local_alignment): Likewise.
26869         (ix86_emit_swsqrtsf): Update real_from_integer.
26870         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
26871         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
26872         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
26873         (zero_constant): Likewise.
26874         (input_operand): Likewise.
26875         (splat_input_operand): Likewise.
26876         (non_logical_cint_operand): Change const_double to const_wide_int.
26877         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
26878         (easy_altivec_constant): Remove comment.
26879         (paired_expand_vector_init): Use CONSTANT_P.
26880         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
26881         (rs6000_emit_move): Update checks.
26882         (rs6000_aggregate_candidate): Use wide-int interfaces.
26883         (rs6000_expand_ternop_builtin): Likewise.
26884         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
26885         (rs6000_assemble_integer): Likewise.
26886         (rs6000_hash_constant): Likewise.
26887         (output_toc): Likewise.
26888         (rs6000_rtx_costs): Likewise.
26889         (rs6000_emit_swrsqrt); Update call to real_from_integer.
26890         * config/rs6000/rs6000-c.c: Include wide-int.h.
26891         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
26892         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
26893         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
26894         Handle CONST_WIDE_INT.
26895         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
26896         Use tree_fits_uhwi_p.
26897         * config/sparc/sparc.c: Include wide-int.h.
26898         (sparc_fold_builtin): Use wide-int interfaces.
26899         * config/vax/vax.c: Include wide-int.h.
26900         (vax_float_literal): Use real_from_integer.
26901         * coretypes.h (struct hwivec_def): New.
26902         (hwivec): New.
26903         (const_hwivec): New.
26904         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
26905         (equiv_constant): Handle CONST_WIDE_INT.
26906         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
26907         (cselib_hash_rtx): Handle CONST_WIDE_INT.
26908         * dbxout.c (stabstr_U): Use wide-int interfaces.
26909         (dbxout_type): Update to use cst_fits_shwi_p.
26910         * defaults.h (LOG2_BITS_PER_UNIT): Define.
26911         (TARGET_SUPPORTS_WIDE_INT): Add default.
26912         * dfp.c: Include wide-int.h.
26913         (decimal_real_to_integer2): Use wide-int interfaces and rename to
26914         decimal_real_to_integer.
26915         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
26916         decimal_real_to_integer.
26917         * doc/generic.texi (Constant expressions): Update for wide_int.
26918         * doc/rtl.texi (const_double): Likewise.
26919         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
26920         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
26921         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
26922         (REAL_VALUE_FROM_INT): Remove.
26923         (TARGET_SUPPORTS_WIDE_INT): New.
26924         * doc/tm.texi: Regenerate.
26925         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
26926         * double-int.h: Include wide-int.h.
26927         (struct wi::int_traits): New.
26928         * dwarf2out.c (get_full_len): New.
26929         (dw_val_equal_p): Add case dw_val_class_wide_int.
26930         (size_of_loc_descr): Likewise.
26931         (output_loc_operands): Likewise.
26932         (insert_double): Remove.
26933         (insert_wide_int): New.
26934         (add_AT_wide): New.
26935         (print_die): Add case dw_val_class_wide_int.
26936         (attr_checksum): Likewise.
26937         (attr_checksum_ordered): Likewise.
26938         (same_dw_val_p): Likewise.
26939         (size_of_die): Likewise.
26940         (value_format): Likewise.
26941         (output_die): Likewise.
26942         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
26943         Use wide-int.
26944         (clz_loc_descriptor): Use wide-int interfaces.
26945         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
26946         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
26947         (round_up_to_align): Use wide-int interfaces.
26948         (field_byte_offset): Likewise.
26949         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
26950         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
26951         CONST_DOUBLE handling.  Use wide-int interfaces.
26952         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
26953         (gen_enumeration_type_die): Use add_AT_wide.
26954         (hash_loc_operands): Add case dw_val_class_wide_int.
26955         (compare_loc_operands): Likewise.
26956         * dwarf2out.h: Include wide-int.h.
26957         (wide_int_ptr): New.
26958         (enum dw_val_class): Add dw_val_class_wide_int.
26959         (struct dw_val_struct): Add val_wide.
26960         * emit-rtl.c (const_wide_int_htab): New.
26961         (const_wide_int_htab_hash): New.
26962         (const_wide_int_htab_eq): New.
26963         (lookup_const_wide_int): New.
26964         (const_double_htab_hash): Use wide-int interfaces.
26965         (const_double_htab_eq): Likewise.
26966         (rtx_to_double_int): Conditionally compile for wide-int.
26967         (immed_double_int_const): Rename to immed_wide_int_const and
26968         update for wide-int.
26969         (immed_double_const): Conditionally compile for wide-int.
26970         (init_emit_once): Use wide-int interfaces.
26971         * explow.c (plus_constant): Likewise.
26972         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
26973         (lshift_value): Use wide-int interfaces.
26974         (expand_mult): Likewise.
26975         (choose_multiplier): Likewise.
26976         (expand_smod_pow2): Likewise.
26977         (make_tree): Likewise.
26978         * expr.c (convert_modes): Consolidate handling of constants.
26979         Use wide-int interfaces.
26980         (emit_group_load_1): Add note.
26981         (store_expr): Update comment.
26982         (get_inner_reference): Use wide-int interfaces.
26983         (expand_constructor): Update comment.
26984         (expand_expr_real_2): Use wide-int interfaces.
26985         (expand_expr_real_1): Likewise.
26986         (reduce_to_bit_field_precision): Likewise.
26987         (const_vector_from_tree): Likewise.
26988         * final.c: Include wide-int-print.h.
26989         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
26990         * fixed-value.c: Include wide-int.h.
26991         (fixed_from_string): Use wide-int interfaces.
26992         (fixed_to_decimal): Likewise.
26993         (fixed_convert_from_real): Likewise.
26994         (real_convert_from_fixed): Likewise.
26995         * fold-const.h (mem_ref_offset): Return an offset_int.
26996         (div_if_zero_remainder): Remove code parameter.
26997         * fold-const.c (div_if_zero_remainder): Remove code parameter.
26998         Use wide-int interfaces.
26999         (may_negate_without_overflow_p): Use wide-int interfaces.
27000         (negate_expr_p): Likewise.
27001         (fold_negate_expr): Likewise.
27002         (int_const_binop_1): Likewise.
27003         (const_binop): Likewise.
27004         (fold_convert_const_int_from_int): Likewise.
27005         (fold_convert_const_int_from_real): Likewise.
27006         (fold_convert_const_int_from_fixed): Likewise.
27007         (fold_convert_const_fixed_from_int): Likewise.
27008         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
27009         (sign_bit_p): Use wide-int interfaces.
27010         (make_range_step): Likewise.
27011         (build_range_check): Likewise.  Pass an integer of the correct type
27012         instead of using integer_one_node.
27013         (range_predecessor): Pass an integer of the correct type instead
27014         of using integer_one_node.
27015         (range_successor): Likewise.
27016         (merge_ranges): Likewise.
27017         (unextend): Use wide-int interfaces.
27018         (extract_muldiv_1): Likewise.
27019         (fold_div_compare): Likewise.
27020         (fold_single_bit_test): Likewise.
27021         (fold_sign_changed_comparison): Likewise.
27022         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
27023         (fold_plusminus_mult_expr): Use wide-int interfaces.
27024         (native_encode_int): Likewise.
27025         (native_interpret_int): Likewise.
27026         (fold_unary_loc): Likewise.
27027         (pointer_may_wrap_p): Likewise.
27028         (size_low_cst): Likewise.
27029         (mask_with_tz): Likewise.
27030         (fold_binary_loc): Likewise.
27031         (fold_ternary_loc): Likewise.
27032         (multiple_of_p): Likewise.
27033         (tree_call_nonnegative_warnv_p): Update calls to
27034         tree_int_cst_min_precision and real_from_integer.
27035         (fold_negate_const): Use wide-int interfaces.
27036         (fold_abs_const): Likewise.
27037         (fold_relational_const): Use tree_int_cst_lt.
27038         (round_up_loc): Use wide-int interfaces.
27039         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
27040         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
27041         * gengtype.c: Remove include of double-int.h.
27042         (do_typedef): Use wide-int interfaces.
27043         (open_base_files): Add wide-int.h.
27044         (main): Add offset_int and widest_int typedefs.
27045         * gengtype-lex.l: Handle "^".
27046         (CXX_KEYWORD): Add "static".
27047         * gengtype-parse.c (require3): New.
27048         (require_template_declaration): Handle constant template arguments
27049         and nested templates.
27050         * gengtype-state.c: Don't include "double-int.h".
27051         * genpreds.c (write_one_predicate_function): Update comment.
27052         (write_tm_constrs_h): Add check for hval and lval use in
27053         CONST_WIDE_INT.
27054         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
27055         (add_to_sequence): Likewise.
27056         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
27057         and const_double_operand.
27058         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
27059         interfaces.
27060         * gimple-fold.c (get_base_constructor): Likewise.
27061         (fold_array_ctor_reference): Likewise.
27062         (fold_nonarray_ctor_reference): Likewise.
27063         (fold_const_aggregate_ref_1): Likewise.
27064         (gimple_val_nonnegative_real_p): Likewise.
27065         (gimple_fold_indirect_ref): Likewise.
27066         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
27067         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
27068         (struct slsr_cand_d): Change index to be widest_int.
27069         (struct incr_info_d): Change incr to be widest_int.
27070         (alloc_cand_and_find_basis): Use wide-int interfaces.
27071         (slsr_process_phi): Likewise.
27072         (backtrace_base_for_ref): Likewise.  Return a widest_int.
27073         (restructure_reference): Take a widest_int instead of a double_int.
27074         (slsr_process_ref): Use wide-int interfaces.
27075         (create_mul_ssa_cand): Likewise.
27076         (create_mul_imm_cand): Likewise.
27077         (create_add_ssa_cand): Likewise.
27078         (create_add_imm_cand): Take a widest_int instead of a double_int.
27079         (slsr_process_add): Use wide-int interfaces.
27080         (slsr_process_cast): Likewise.
27081         (slsr_process_copy): Likewise.
27082         (dump_candidate): Likewise.
27083         (dump_incr_vec): Likewise.
27084         (replace_ref): Likewise.
27085         (cand_increment): Likewise.  Return a widest_int.
27086         (cand_abs_increment): Likewise.
27087         (replace_mult_candidate): Take a widest_int instead of a double_int.
27088         (replace_unconditional_candidate): Use wide-int interfaces.
27089         (incr_vec_index): Take a widest_int instead of a double_int.
27090         (create_add_on_incoming_edge): Likewise.
27091         (create_phi_basis): Use wide-int interfaces.
27092         (replace_conditional_candidate): Likewise.
27093         (record_increment): Take a widest_int instead of a double_int.
27094         (record_phi_increments): Use wide-int interfaces.
27095         (phi_incr_cost): Take a widest_int instead of a double_int.
27096         (lowest_cost_path): Likewise.
27097         (total_savings): Likewise.
27098         (analyze_increments): Use wide-int interfaces.
27099         (ncd_with_phi): Take a widest_int instead of a double_int.
27100         (ncd_of_cand_and_phis): Likewise.
27101         (nearest_common_dominator_for_cands): Likewise.
27102         (insert_initializers): Use wide-int interfaces.
27103         (all_phi_incrs_profitable): Likewise.
27104         (replace_one_candidate): Likewise.
27105         (replace_profitable_candidates): Likewise.
27106         * godump.c: Include wide-int-print.h.
27107         (go_output_typedef): Use wide-int interfaces.
27108         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
27109         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
27110         (build_loop_iteration_domains): Likewise.
27111         * hooks.h: Include wide-int.h rather than double-int.h.
27112         (hook_bool_dint_dint_uint_bool_true): Delete.
27113         (hook_bool_wint_wint_uint_bool_true): Declare.
27114         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
27115         (hook_bool_wint_wint_uint_bool_true): New.
27116         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
27117         interfaces.
27118         (ubsan_expand_si_overflow_mul_check): Likewise.
27119         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
27120         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
27121         (get_ancestor_addr_info): Likewise.
27122         (ipa_modify_call_arguments): Likewise.
27123         * loop-doloop.c (doloop_modify): Likewise.
27124         (doloop_optimize): Likewise.
27125         * loop-iv.c (iv_number_of_iterations): Likewise.
27126         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
27127         (unroll_loop_constant_iterations): Likewise.
27128         (decide_unroll_runtime_iterations): Likewise.
27129         (unroll_loop_runtime_iterations): Likewise.
27130         (decide_peel_simple): Likewise.
27131         (decide_unroll_stupid): Likewise.
27132         * lto-streamer-in.c (streamer_read_wi): Add.
27133         (input_cfg): Use wide-int interfaces.
27134         (lto_input_tree_1): Likewise.
27135         * lto-streamer-out.c (streamer_write_wi): Add.
27136         (hash_tree): Use wide-int interfaces.
27137         (output_cfg): Likewise.
27138         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
27139         (GTFILES): Add wide-int.h and signop.h.
27140         (TAGS): Look for .cc files too.
27141         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
27142         * optabs.c (expand_subword_shift): Likewise.
27143         (expand_doubleword_shift): Likewise.
27144         (expand_absneg_bit): Likewise.
27145         (expand_copysign_absneg): Likewise.
27146         (expand_copysign_bit): Likewise.
27147         * postreload.c (reload_cse_simplify_set): Likewise.
27148         * predict.c (predict_iv_comparison): Likewise.
27149         * pretty-print.h: Include wide-int-print.h.
27150         (pp_wide_int) New.
27151         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
27152         * print-tree.c: Include wide-int-print.h.
27153         (print_node_brief): Use wide-int interfaces.
27154         (print_node): Likewise.
27155         * read-rtl.c (validate_const_wide_int): New.
27156         (read_rtx_code): Add CONST_WIDE_INT case.
27157         * real.c: Include wide-int.h.
27158         (real_to_integer2): Delete.
27159         (real_to_integer): New function, returning a wide_int.
27160         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
27161         (ten_to_ptwo): Update call to real_from_integer.
27162         (real_digit): Likewise.
27163         * real.h: Include signop.h, wide-int.h and insn-modes.h.
27164         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
27165         (REAL_VALUE_TO_INT): Delete.
27166         (real_to_integer): Declare a wide-int form.
27167         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
27168         * recog.c (const_int_operand): Improve comment.
27169         (const_scalar_int_operand): New.
27170         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
27171         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
27172         (split_double): Likewise.
27173         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
27174         (rtx_size): Likewise.
27175         (rtx_alloc_stat_v): New.
27176         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
27177         (cwi_output_hex): New.
27178         (iterative_hash_rtx): Handle CONST_WIDE_INT.
27179         (cwi_check_failed_bounds): New.
27180         * rtl.def (CONST_WIDE_INT): New.
27181         * rtl.h: Include <utility> and wide-int.h.
27182         (struct hwivec_def): New.
27183         (CWI_GET_NUM_ELEM): New.
27184         (CWI_PUT_NUM_ELEM): New.
27185         (struct rtx_def): Add num_elem and hwiv.
27186         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
27187         (CASE_CONST_UNIQUE): Likewise.
27188         (CASE_CONST_ANY): Likewise.
27189         (CONST_SCALAR_INT_P): Likewise.
27190         (CONST_WIDE_INT_P): New.
27191         (CWI_ELT): New.
27192         (HWIVEC_CHECK): New.
27193         (cwi_check_failed_bounds): New.
27194         (CWI_ELT): New.
27195         (HWIVEC_CHECK): New.
27196         (CONST_WIDE_INT_VEC) New.
27197         (CONST_WIDE_INT_NUNITS) New.
27198         (CONST_WIDE_INT_ELT) New.
27199         (rtx_mode_t): New type.
27200         (wi::int_traits <rtx_mode_t>): New.
27201         (wi::shwi): New.
27202         (wi::min_value): New.
27203         (wi::max_value): New.
27204         (rtx_alloc_v) New.
27205         (const_wide_int_alloc): New.
27206         (immed_wide_int_const): New.
27207         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
27208         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
27209         * signop.h: New file.
27210         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
27211         (simplify_const_unary_operation): Use wide-int interfaces.
27212         (simplify_binary_operation_1): Likewise.
27213         (simplify_const_binary_operation): Likewise.
27214         (simplify_const_relational_operation): Likewise.
27215         (simplify_immed_subreg): Likewise.
27216         * stmt.c (expand_case): Likewise.
27217         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
27218         signop rather than a bool.
27219         * stor-layout.c (layout_type): Use wide-int interfaces.
27220         (initialize_sizetypes): Update calls to
27221         set_min_and_max_values_for_integral_type.
27222         (set_min_and_max_values_for_integral_type): Take a signop rather
27223         than a bool.  Use wide-int interfaces.
27224         (fixup_signed_type): Update accordingly.  Remove
27225         HOST_BITS_PER_DOUBLE_INT limit.
27226         (fixup_unsigned_type): Likewise.
27227         * system.h (STATIC_CONSTANT_P): New.
27228         (STATIC_ASSERT): New.
27229         * target.def (can_use_doloop_p): Take widest_ints rather than
27230         double_ints.
27231         * target.h: Include wide-int.h rather than double-int.h.
27232         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
27233         than double_ints.
27234         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
27235         rather than INT_CST_LT_UNSIGNED.
27236         (can_use_doloop_if_innermost): Take widest_ints rather than
27237         double_ints.
27238         * tree-affine.c: Include wide-int-print.h.
27239         (double_int_ext_for_comb): Delete.
27240         (wide_int_ext_for_comb): New.
27241         (aff_combination_zero): Use wide-int interfaces.
27242         (aff_combination_const): Take a widest_int instead of a double_int.
27243         (aff_combination_elt): Use wide-int interfaces.
27244         (aff_combination_scale): Take a widest_int instead of a double_int.
27245         (aff_combination_add_elt): Likewise.
27246         (aff_combination_add_cst): Likewise.
27247         (aff_combination_add): Use wide-int interfaces.
27248         (aff_combination_convert): Likewise.
27249         (tree_to_aff_combination): Likewise.
27250         (add_elt_to_tree): Take a widest_int instead of a double_int.
27251         (aff_combination_to_tree): Use wide-int interfaces.
27252         (aff_combination_remove_elt): Likewise.
27253         (aff_combination_add_product): Take a widest_int instead of
27254         a double_int.
27255         (aff_combination_mult): Use wide-int interfaces.
27256         (aff_combination_expand): Likewise.
27257         (double_int_constant_multiple_p): Delete.
27258         (wide_int_constant_multiple_p): New.
27259         (aff_combination_constant_multiple_p): Take a widest_int pointer
27260         instead of a double_int pointer.
27261         (print_aff): Use wide-int interfaces.
27262         (get_inner_reference_aff): Take a widest_int pointer
27263         instead of a double_int pointer.
27264         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
27265         * tree-affine.h: Include wide-int.h.
27266         (struct aff_comb_elt): Change type of coef to widest_int.
27267         (struct affine_tree_combination): Change type of offset to widest_int.
27268         (double_int_ext_for_comb): Delete.
27269         (wide_int_ext_for_comb): New.
27270         (aff_combination_const): Use widest_int instead of double_int.
27271         (aff_combination_scale): Likewise.
27272         (aff_combination_add_elt): Likewise.
27273         (aff_combination_constant_multiple_p): Likewise.
27274         (get_inner_reference_aff): Likewise.
27275         (aff_comb_cannot_overlap_p): Likewise.
27276         (aff_combination_zero_p): Use wide-int interfaces.
27277         * tree.c: Include tree.h.
27278         (init_ttree): Use make_int_cst.
27279         (tree_code_size): Removed code for INTEGER_CST case.
27280         (tree_size): Add INTEGER_CST case.
27281         (make_node_stat): Update comment.
27282         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
27283         (build_int_cst_type): Use wide-int interfaces.
27284         (double_int_to_tree): Likewise.
27285         (double_int_fits_to_tree_p): Delete.
27286         (force_fit_type_double): Delete.
27287         (force_fit_type): New.
27288         (int_cst_hash_hash): Use wide-int interfaces.
27289         (int_cst_hash_eq): Likewise.
27290         (build_int_cst_wide): Delete.
27291         (wide_int_to_tree): New.
27292         (cache_integer_cst): Use wide-int interfaces.
27293         (build_low_bits_mask): Likewise.
27294         (cst_and_fits_in_hwi): Likewise.
27295         (real_value_from_int_cst): Likewise.
27296         (make_int_cst_stat): New.
27297         (integer_zerop): Use wide_int interfaces.
27298         (integer_onep): Likewise.
27299         (integer_all_onesp): Likewise.
27300         (integer_pow2p): Likewise.
27301         (integer_nonzerop): Likewise.
27302         (tree_log2): Likewise.
27303         (tree_floor_log2): Likewise.
27304         (tree_ctz): Likewise.
27305         (int_size_in_bytes): Likewise.
27306         (mem_ref_offset): Return an offset_int rather than a double_int.
27307         (build_type_attribute_qual_variant): Use wide_int interfaces.
27308         (type_hash_eq): Likewise
27309         (tree_int_cst_equal): Likewise.
27310         (tree_int_cst_lt): Delete.
27311         (tree_int_cst_compare): Likewise.
27312         (tree_fits_shwi_p): Use wide_int interfaces.
27313         (tree_fits_uhwi_p): Likewise.
27314         (tree_int_cst_sign_bit): Likewise.
27315         (tree_int_cst_sgn): Likewise.
27316         (tree_int_cst_min_precision): Take a signop rather than a bool.
27317         (simple_cst_equal): Use wide_int interfaces.
27318         (compare_tree_int): Likewise.
27319         (iterative_hash_expr): Likewise.
27320         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
27321         INT_CST_LT.
27322         (get_type_static_bounds): Use wide_int interfaces.
27323         (tree_int_cst_elt_check_failed): New.
27324         (build_common_tree_nodes): Reordered to set prec before filling in
27325         value.
27326         (int_cst_value): Check cst_and_fits_in_hwi.
27327         (widest_int_cst_value): Use wide_int interfaces.
27328         (upper_bound_in_type): Likewise.
27329         (lower_bound_in_type): Likewise.
27330         (num_ending_zeros): Likewise.
27331         (drop_tree_overflow): Likewise.
27332         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
27333         (gen_conditions_for_pow_cst_base): Likewise.
27334         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
27335         (group_case_labels_stmt): Use wide-int interfaces.
27336         (verify_gimple_assign_binary): Likewise.
27337         (print_loop): Likewise.
27338         * tree-chrec.c (tree_fold_binomial): Likewise.
27339         * tree-core.h (struct tree_base): Add int_length.
27340         (struct tree_int_cst): Change rep of value.
27341         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
27342         (dr_may_alias_p): Likewise.
27343         (max_stmt_executions_tree): Likewise.
27344         * tree.def (INTEGER_CST): Update comment.
27345         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
27346         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
27347         * tree-dump.c: Include wide-int.h and wide-int-print.h.
27348         (dequeue_and_dump): Use wide-int interfaces.
27349         * tree.h: Include wide-int.h.
27350         (NULL_TREE): Moved to earlier loc in file.
27351         (TREE_INT_CST_ELT_CHECK): New.
27352         (tree_int_cst_elt_check_failed): New.
27353         (TYPE_SIGN): New.
27354         (TREE_INT_CST): Delete.
27355         (TREE_INT_CST_LOW): Use wide-int interfaces.
27356         (TREE_INT_CST_HIGH): Delete.
27357         (TREE_INT_CST_NUNITS): New.
27358         (TREE_INT_CST_EXT_NUNITS): Likewise.
27359         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
27360         (TREE_INT_CST_ELT): Likewise.
27361         (INT_CST_LT): Delete.
27362         (tree_int_cst_elt_check): New (two forms).
27363         (type_code_size): Update comment.
27364         (make_int_cst_stat, make_int_cst): New.
27365         (tree_to_double_int): Delete.
27366         (double_int_fits_to_tree_p): Delete.
27367         (force_fit_type_double): Delete.
27368         (build_int_cstu): Replace with out-of-line function.
27369         (build_int_cst_wide): Delete.
27370         (tree_int_cst_lt): Define inline.
27371         (tree_int_cst_le): New.
27372         (tree_int_cst_compare): Define inline.
27373         (tree_int_cst_min_precision): Take a signop rather than a bool.
27374         (wi::int_traits <const_tree>): New.
27375         (wi::int_traits <tree>): New.
27376         (wi::extended_tree): New.
27377         (wi::int_traits <wi::extended_tree>): New.
27378         (wi::to_widest): New.
27379         (wi::to_offset): New.
27380         (wi::fits_to_tree_p): New.
27381         (wi::min_value): New.
27382         (wi::max_value): New.
27383         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
27384         (copy_tree_body_r): Likewise.
27385         * tree-object-size.c (compute_object_offset): Likewise.
27386         (addr_object_size): Likewise.
27387         * tree-predcom.c: Include wide-int-print.h.
27388         (struct dref_d): Change type of offset to widest_int.
27389         (dump_dref): Call wide-int printer.
27390         (aff_combination_dr_offset): Use wide-int interfaces.
27391         (determine_offset): Take a widest_int pointer rather than a
27392         double_int pointer.
27393         (split_data_refs_to_components): Use wide-int interfaces.
27394         (suitable_component_p): Likewise.
27395         (order_drefs): Likewise.
27396         (add_ref_to_chain): Likewise.
27397         (valid_initializer_p): Likewise.
27398         (determine_roots_comp): Likewise.
27399         * tree-pretty-print.c: Include wide-int-print.h.
27400         (dump_generic_node): Use wide-int interfaces.
27401         * tree-sra.c (sra_ipa_modify_expr): Likewise.
27402         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
27403         (move_fixed_address_to_symbol): Likewise.
27404         (move_hint_to_base): Likewise.
27405         (move_pointer_to_base): Likewise.
27406         (move_variant_to_index): Likewise.
27407         (most_expensive_mult_to_index): Likewise.
27408         (addr_to_parts): Likewise.
27409         (copy_ref_info): Likewise.
27410         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
27411         (indirect_refs_may_alias_p): Likewise.
27412         (stmt_kills_ref_p_1): Likewise.
27413         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
27414         * tree-ssa-ccp.c: Update comment at top of file.  Include
27415         wide-int-print.h.
27416         (struct prop_value_d): Change type of mask to widest_int.
27417         (extend_mask): New function.
27418         (dump_lattice_value): Use wide-int interfaces.
27419         (get_default_value): Likewise.
27420         (set_constant_value): Likewise.
27421         (set_value_varying): Likewise.
27422         (valid_lattice_transition): Likewise.
27423         (set_lattice_value): Likewise.
27424         (value_to_double_int): Delete.
27425         (value_to_wide_int): New.
27426         (get_value_from_alignment): Use wide-int interfaces.
27427         (get_value_for_expr): Likewise.
27428         (do_dbg_cnt): Likewise.
27429         (ccp_finalize): Likewise.
27430         (ccp_lattice_meet): Likewise.
27431         (bit_value_unop_1): Use widest_ints rather than double_ints.
27432         (bit_value_binop_1): Likewise.
27433         (bit_value_unop): Use wide-int interfaces.
27434         (bit_value_binop): Likewise.
27435         (bit_value_assume_aligned): Likewise.
27436         (evaluate_stmt): Likewise.
27437         (ccp_fold_stmt): Likewise.
27438         (visit_cond_stmt): Likewise.
27439         (ccp_visit_stmt): Likewise.
27440         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
27441         (constant_pointer_difference): Likewise.
27442         (associate_pointerplus): Likewise.
27443         (combine_conversions): Likewise.
27444         * tree-ssa-loop.h: Include wide-int.h.
27445         (struct tree_niter_desc): Change type of max to widest_int.
27446         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
27447         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
27448         (remove_redundant_iv_tests): Likewise.
27449         (canonicalize_loop_induction_variables): Likewise.
27450         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
27451         (constant_multiple_of): Take a widest_int pointer instead of
27452         a double_int pointer.
27453         (get_computation_aff): Use wide-int interfaces.
27454         (ptr_difference_cost): Likewise.
27455         (difference_cost): Likewise.
27456         (get_loop_invariant_expr_id): Likewise.
27457         (get_computation_cost_at): Likewise.
27458         (iv_elimination_compare_lt): Likewise.
27459         (may_eliminate_iv): Likewise.
27460         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
27461         instead of double_int.
27462         (max_loop_iterations): Likewise.
27463         (max_stmt_executions): Likewise.
27464         (estimated_stmt_executions): Likewise.
27465         * tree-ssa-loop-niter.c: Include wide-int-print.h.
27466         (split_to_var_and_offset): Use wide-int interfaces.
27467         (determine_value_range): Likewise.
27468         (bound_difference_of_offsetted_base): Likewise.
27469         (bounds_add): Take a widest_int instead of a double_int.
27470         (number_of_iterations_ne_max): Use wide-int interfaces.
27471         (number_of_iterations_ne): Likewise.
27472         (number_of_iterations_lt_to_ne): Likewise.
27473         (assert_loop_rolls_lt): Likewise.
27474         (number_of_iterations_lt): Likewise.
27475         (number_of_iterations_le): Likewise.
27476         (number_of_iterations_cond): Likewise.
27477         (number_of_iterations_exit): Likewise.
27478         (finite_loop_p): Likewise.
27479         (derive_constant_upper_bound_assign): Likewise.
27480         (derive_constant_upper_bound): Return a widest_int.
27481         (derive_constant_upper_bound_ops): Likewise.
27482         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
27483         (record_estimate): Take a widest_int rather than a double_int.
27484         (record_nonwrapping_iv): Use wide-int interfaces.
27485         (double_int_cmp): Delete.
27486         (wide_int_cmp): New.
27487         (bound_index): Take a widest_int rather than a double_int.
27488         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
27489         (maybe_lower_iteration_bound): Likewise.
27490         (estimate_numbers_of_iterations_loop): Likewise.
27491         (estimated_loop_iterations): Take a widest_int pointer than than
27492         a double_int pointer.
27493         (estimated_loop_iterations_int): Use wide-int interfaces.
27494         (max_loop_iterations): Take a widest_int pointer than than
27495         a double_int pointer.
27496         (max_loop_iterations_int): Use wide-int interfaces.
27497         (max_stmt_executions): Take a widest_int pointer than than
27498         a double_int pointer.
27499         (estimated_stmt_executions): Likewise.
27500         (n_of_executions_at_most): Use wide-int interfaces.
27501         (scev_probably_wraps_p): Likewise.
27502         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
27503         to real_to_integer.
27504         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
27505         interfaces.
27506         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
27507         double_ints.  Adjust for trailing_wide_ints <3> representation.
27508         (set_nonzero_bits): Likewise.
27509         (get_range_info): Return wide_ints rather than double_ints.
27510         Adjust for trailing_wide_ints <3> representation.
27511         (get_nonzero_bits): Likewise.
27512         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
27513         representation.
27514         * tree-ssanames.h (struct range_info_def): Replace min, max and
27515         nonzero_bits with a trailing_wide_ints <3>.
27516         (set_range_info): Use wide_int_refs rather than double_ints.
27517         (set_nonzero_bits): Likewise.
27518         (get_range_info): Return wide_ints rather than double_ints.
27519         (get_nonzero_bits): Likewise.
27520         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
27521         * tree-ssa-pre.c (phi_translate_1): Likewise.
27522         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
27523         (acceptable_pow_call): Likewise.
27524         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
27525         interfaces.
27526         (vn_reference_fold_indirect): Likewise.
27527         (vn_reference_maybe_forwprop_address): Likewise.
27528         (valueize_refs_1): Likewise.
27529         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
27530         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
27531         tree_int_cst_lt and tree_int_cst_le.
27532         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
27533         interfaces.
27534         (streamer_alloc_tree): Likewise.
27535         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
27536         (streamer_write_tree_header): Likewise.
27537         (streamer_write_integer_cst): Likewise.
27538         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
27539         (build_constructors): Likewise.
27540         (array_value_type): Likewise.
27541         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
27542         (vect_check_gather): Likewise.
27543         * tree-vect-generic.c (build_replicated_const): Likewise.
27544         (expand_vector_divmod): Likewise.
27545         * tree-vect-loop.c (vect_transform_loop): Likewise.
27546         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
27547         (vect_do_peeling_for_alignment): Likewise.
27548         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
27549         * tree-vrp.c: Include wide-int.h.
27550         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
27551         (extract_range_from_assert): Use wide-int interfaces.
27552         (vrp_int_const_binop): Likewise.
27553         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
27554         double_int pointers.
27555         (ranges_from_anti_range): Use wide-int interfaces.
27556         (quad_int_cmp): Delete.
27557         (quad_int_pair_sort): Likewise.
27558         (extract_range_from_binary_expr_1): Use wide-int interfaces.
27559         (extract_range_from_unary_expr_1): Likewise.
27560         (adjust_range_with_scev): Likewise.
27561         (masked_increment): Take and return wide_ints rather than double_ints.
27562         (register_edge_assert_for_2): Use wide-int interfaces.
27563         (check_array_ref): Likewise.
27564         (search_for_addr_array): Likewise.
27565         (maybe_set_nonzero_bits): Likewise.
27566         (union_ranges): Pass an integer of the correct type instead of
27567         using integer_one_node.
27568         (intersect_ranges): Likewise.
27569         (simplify_truth_ops_using_ranges): Likewise.
27570         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
27571         (range_fits_type_p): Likewise.
27572         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
27573         a bool.
27574         (simplify_conversion_using_ranges): Use wide-int interfaces.
27575         (simplify_float_conversion_using_ranges): Likewise.
27576         (vrp_finalize): Likewise.
27577         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
27578         (gimple_stringops_transform): Likewise.
27579         * varasm.c (decode_addr_const): Likewise.
27580         (const_hash_1): Likewise.
27581         (const_rtx_hash_1): Likewise
27582         (output_constant): Likewise.
27583         (array_size_for_constructor): Likewise.
27584         (output_constructor_regular_field): Likewise.
27585         (output_constructor_bitfield): Likewise.
27586         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
27587         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
27588         GENERATOR_FILEs.
27589         * gencheck.c: Define BITS_PER_UNIT.
27590         * wide-int.cc: New.
27591         * wide-int.h: New.
27592         * wide-int-print.cc: New.
27593         * wide-int-print.h: New.
27594
27595 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27596
27597         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
27598
27599 2014-05-06  Richard Biener  <rguenther@suse.de>
27600
27601         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
27602         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
27603         (TODO_verify_all): Adjust.
27604         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
27605         TODO_verify_stmts and TODO_verify_rtl_sharing.
27606         * bb-reorder.c: Likewise.
27607         * cfgexpand.c: Likewise.
27608         * cprop.c: Likewise.
27609         * cse.c: Likewise.
27610         * function.c: Likewise.
27611         * fwprop.c: Likewise.
27612         * gcse.c: Likewise.
27613         * gimple-ssa-isolate-paths.c: Likewise.
27614         * gimple-ssa-strength-reduction.c: Likewise.
27615         * ipa-split.c: Likewise.
27616         * loop-init.c: Likewise.
27617         * loop-unroll.c: Likewise.
27618         * lower-subreg.c: Likewise.
27619         * modulo-sched.c: Likewise.
27620         * postreload-gcse.c: Likewise.
27621         * predict.c: Likewise.
27622         * recog.c: Likewise.
27623         * sched-rgn.c: Likewise.
27624         * store-motion.c: Likewise.
27625         * tracer.c: Likewise.
27626         * trans-mem.c: Likewise.
27627         * tree-call-cdce.c: Likewise.
27628         * tree-cfg.c: Likewise.
27629         * tree-cfgcleanup.c: Likewise.
27630         * tree-complex.c: Likewise.
27631         * tree-eh.c: Likewise.
27632         * tree-emutls.c: Likewise.
27633         * tree-if-conv.c: Likewise.
27634         * tree-into-ssa.c: Likewise.
27635         * tree-loop-distribution.c: Likewise.
27636         * tree-object-size.c: Likewise.
27637         * tree-parloops.c: Likewise.
27638         * tree-pass.h: Likewise.
27639         * tree-sra.c: Likewise.
27640         * tree-ssa-ccp.c: Likewise.
27641         * tree-ssa-copy.c: Likewise.
27642         * tree-ssa-copyrename.c: Likewise.
27643         * tree-ssa-dce.c: Likewise.
27644         * tree-ssa-dom.c: Likewise.
27645         * tree-ssa-dse.c: Likewise.
27646         * tree-ssa-forwprop.c: Likewise.
27647         * tree-ssa-ifcombine.c: Likewise.
27648         * tree-ssa-loop-ch.c: Likewise.
27649         * tree-ssa-loop-ivcanon.c: Likewise.
27650         * tree-ssa-loop.c: Likewise.
27651         * tree-ssa-math-opts.c: Likewise.
27652         * tree-ssa-phiopt.c: Likewise.
27653         * tree-ssa-phiprop.c: Likewise.
27654         * tree-ssa-pre.c: Likewise.
27655         * tree-ssa-reassoc.c: Likewise.
27656         * tree-ssa-sink.c: Likewise.
27657         * tree-ssa-strlen.c: Likewise.
27658         * tree-ssa-tail-merge.c: Likewise.
27659         * tree-ssa-uncprop.c: Likewise.
27660         * tree-switch-conversion.c: Likewise.
27661         * tree-tailcall.c: Likewise.
27662         * tree-vect-generic.c: Likewise.
27663         * tree-vectorizer.c: Likewise.
27664         * tree-vrp.c: Likewise.
27665         * tsan.c: Likewise.
27666         * var-tracking.c: Likewise.
27667         * bt-load.c: Likewise.
27668         * cfgcleanup.c: Likewise.
27669         * combine-stack-adj.c: Likewise.
27670         * combine.c: Likewise.
27671         * compare-elim.c: Likewise.
27672         * config/epiphany/resolve-sw-modes.c: Likewise.
27673         * config/i386/i386.c: Likewise.
27674         * config/mips/mips.c: Likewise.
27675         * config/s390/s390.c: Likewise.
27676         * config/sh/sh_treg_combine.cc: Likewise.
27677         * config/sparc/sparc.c: Likewise.
27678         * dce.c: Likewise.
27679         * dse.c: Likewise.
27680         * final.c: Likewise.
27681         * ifcvt.c: Likewise.
27682         * mode-switching.c: Likewise.
27683         * passes.c: Likewise.
27684         * postreload.c: Likewise.
27685         * ree.c: Likewise.
27686         * reg-stack.c: Likewise.
27687         * regcprop.c: Likewise.
27688         * regrename.c: Likewise.
27689         * web.c: Likewise.
27690
27691 2014-05-06  Richard Biener  <rguenther@suse.de>
27692
27693         PR middle-end/61070
27694         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
27695         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
27696
27697 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
27698
27699         PR ipa/60965
27700         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
27701
27702 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
27703             Tom de Vries  <tom@codesourcery.com>
27704
27705         * target.def (call_fusage_contains_non_callee_clobbers): New
27706         DEFHOOKPOD.
27707         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
27708         Hooks to @menu.
27709         (@node Miscellaneous Register Hooks): New node.
27710         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
27711         * doc/tm.texi: Regenerate.
27712
27713 2014-05-05  Marek Polacek  <polacek@redhat.com>
27714
27715         PR driver/61065
27716         * opts.c (common_handle_option): Call error_at instead of warning_at.
27717
27718 2014-05-05  Richard Biener  <rguenther@suse.de>
27719
27720         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
27721         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
27722         under the TODO_verify_il umbrella.
27723
27724 2014-05-05  Richard Biener  <rguenther@suse.de>
27725
27726         * passes.c (execute_function_todo): Move TODO_verify_flow under
27727         the TODO_verify_ul umbrella.
27728
27729 2014-05-05  Richard Biener  <rguenther@suse.de>
27730
27731         PR middle-end/61010
27732         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
27733         X & CST away from a CST that is the mask of a mode.
27734
27735 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27736
27737         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
27738         int argument to enum machine_mode.
27739         (picochip_class_max_nregs): Ditto.
27740         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
27741         (picochip_class_max_nregs): Ditto.
27742
27743 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27744
27745         * target.def: Add new target hook.
27746         * doc/tm.texi: Regenerate.
27747         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
27748         * targhooks.c (default_keep_leaf_when_profiled): New function.
27749
27750         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
27751         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
27752
27753 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
27754
27755         PR tree-optimization/60363
27756         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
27757         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
27758         (update_destination_phis): New parameter.
27759         (create_edge_and_update_destination_phis): Ditto.
27760         (ssa_fix_duplicate_block_edges): Pass new arguments.
27761         (thread_single_edge): Ditto.
27762
27763 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
27764
27765         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
27766         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
27767         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
27768         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
27769         Use RS6000_BTM_HARD_FLOAT.
27770         (BU_MISC_2): Likewise.
27771         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
27772         RS6000_BTM_HARD_FLOAT.
27773         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
27774         is explicitly used.
27775         (rs6000_invalid_builtin): Add hard floating builtin support.
27776         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
27777         hard float builtins.
27778         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
27779
27780 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27781
27782         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
27783         Add missing function* argument.
27784
27785 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
27786
27787         * lra-constraints.c (valid_address_p): Move earlier in file.
27788         Add a constraint argument to the address_info version.
27789         (satisfies_memory_constraint_p): New function.
27790         (satisfies_address_constraint_p): Likewise.
27791         (process_alt_operands, curr_insn_transform): Use them.
27792         (process_address): Pass the constraint to valid_address_p when
27793         checking address operands.
27794
27795 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
27796
27797         * config/mips/mips.c (mips_isa_rev): New variable.
27798         (mips_set_architecture): Set it.
27799         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
27800         from mips_isa_rev.
27801         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
27802         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
27803         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
27804         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
27805         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
27806         conditions in terms of mips_isa_rev.
27807         (mips_isa_rev): Declare.
27808
27809 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27810
27811         * config/sh/sh-mem.cc: Use tabs instead of spaces.
27812         (prob_unlikely, prob_likely): Make variables const.
27813
27814 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
27815
27816         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
27817
27818 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27819
27820         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
27821
27822 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27823
27824         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
27825         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
27826         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
27827         functions.
27828         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
27829         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
27830         sh_pass_in_reg_p.
27831         Replace usage of ROUND_REG with sh_round_reg.
27832         Use CEIL instead of ROUND_ADVANCE.
27833
27834 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27835
27836         PR target/61026
27837         * config/sh/sh.c: Include stdlib headers before everything else.
27838
27839 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
27840
27841         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
27842         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
27843         (gimplify_adjust_omp_clauses): Simd region is never
27844         directly nested in combined parallel.  Instead, for linear
27845         with copyin/copyout, if in combined for simd loop, make decl
27846         firstprivate/lastprivate on OMP_FOR.
27847         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
27848         expand_omp_for_static_chunk): When setting endvar, also set
27849         fd->loop.v to the same value.
27850
27851 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
27852
27853         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
27854
27855 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
27856
27857         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
27858         expression.
27859
27860 2014-05-02  Marek Polacek  <polacek@redhat.com>
27861
27862         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
27863
27864 2014-05-02  Kito Cheng  <kito@0xlab.org>
27865
27866         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
27867         to a C expression marco.
27868         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
27869         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
27870         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
27871         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
27872         HONOR_REG_ALLOC_ORDER.
27873         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
27874
27875 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27876
27877         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
27878
27879 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27880
27881         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
27882
27883 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
27884
27885         * tree-if-conv.c (is_cond_scalar_reduction): New function.
27886         (convert_scalar_cond_reduction): Likewise.
27887         (predicate_scalar_phi): Add recognition and transformation
27888         of simple conditioanl reduction to be vectorizable.
27889
27890 2014-05-01  Marek Polacek  <polacek@redhat.com>
27891
27892         PR c/43245
27893         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
27894
27895 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
27896
27897         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
27898         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
27899         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
27900         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
27901         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
27902         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
27903         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
27904         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
27905
27906 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
27907
27908         * config/arc/arc.opt (mlra): Move comment above option name
27909         to avoid mis-parsing as language options.
27910
27911 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27912
27913         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
27914         * config/sol2.h: ... here.
27915         * config/sol2-10.h: Remove.
27916
27917         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
27918         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
27919         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
27920         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
27921         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
27922         * config/sol2.h: ... here.
27923         (SECTION_NAME_FORMAT): Don't redefine.
27924         (STARTFILE_ARCH32_SPEC): Rename to ...
27925         (STARTFILE_ARCH_SPEC): ... this.
27926         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
27927         * config/sparc/sol2.h: ... here.
27928         (SECTION_NAME_FORMAT): Don't undef.
27929         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
27930         (SUBTARGET_EXTRA_SPECS): Remove.
27931         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
27932
27933         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
27934         (MD_STARTFILE_PREFIX): Remove.
27935         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
27936         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
27937         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
27938         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
27939         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
27940         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
27941         * config/i386/sol2.h: ... here.
27942         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
27943         * config/i386/sol2-bi.h: Remove.
27944         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
27945         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
27946
27947         * config/i386/t-sol2-64: Rename to ...
27948         * config/i386/t-sol2: ... this.
27949         * config/sparc/t-sol2-64: Rename to ...
27950         * config/sparc/t-sol2: ... this.
27951
27952         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
27953         sol2_tm_file_head, sol2_tm_file_tail.
27954         Include ${cpu_type}/sol2.h before sol2.h.
27955         Remove sol2-10.h.
27956         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
27957         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
27958         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
27959         Reflect i386/t-sol2-64 renaming.
27960         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
27961         Reflect sparc/t-sol2-64 renaming.
27962
27963 2014-04-30  Richard Biener  <rguenther@suse.de>
27964
27965         * passes.c (execute_function_todo): Move TODO_verify_stmts
27966         and TODO_verify_ssa under the TODO_verify_il umbrella.
27967         * tree-ssa.h (verify_ssa): Adjust prototype.
27968         * tree-ssa.c (verify_ssa): Add parameter to tell whether
27969         we should verify SSA operands.
27970         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
27971         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
27972         whether we should verify whether not throwing stmts have EH info.
27973         * graphite-scop-detection.c (create_sese_edges): Adjust.
27974         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
27975         * tree-eh.c (lower_try_finally_switch): Do not add the
27976         default case label twice.
27977
27978 2014-04-30  Marek Polacek  <polacek@redhat.com>
27979
27980         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
27981         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
27982         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
27983         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
27984
27985 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
27986
27987         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
27988         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
27989         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
27990         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
27991         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
27992         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
27993         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
27994         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
27995
27996 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
27997
27998         * tree-cfg.c (dump_function_to_file): Dump the return type of
27999         functions, in a line to itself before the function body, mimicking
28000         the layout of a C function.
28001
28002 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
28003
28004         PR tree-optimization/60971
28005         * tree-tailcall.c (process_assignment): Reject conversions which
28006         reduce precision.
28007
28008 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
28009
28010         * calls.c (initialize_argument_information): Always treat
28011         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
28012         (expand_call): Likewise.
28013         (emit_library_call_calue_1): Likewise.
28014         * expr.c (PUSH_ARGS_REVERSED): Do not define.
28015         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
28016         code accordingly.
28017
28018 2014-04-29  Nick Clifton  <nickc@redhat.com>
28019
28020         * config/msp430/msp430.md (umulsidi): Fix typo.
28021         (mulhisi3): Enable even inside interrupt handlers.
28022         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
28023         bigger return address pushed in large mode.
28024
28025 2014-04-29  Nick Clifton  <nickc@redhat.com>
28026
28027         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
28028         (arc_init_reg_tables): Use a machine_mode enum to iterate over
28029         available modes.
28030         * config/m32r/m32r.c (init_reg_tables): Likewise.
28031         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
28032         enum to hold the modes.
28033
28034 2014-04-29  Richard Biener  <rguenther@suse.de>
28035
28036         * dominance.c (free_dominance_info): Add overload with
28037         function parameter.
28038         (dom_info_state): Likewise.
28039         (dom_info_available_p): Likewise.
28040         * basic-block.h (free_dominance_info, dom_info_state,
28041         dom_info_available_p): Declare overloads.
28042         * passes.c (execute_function_todo): Verify that verifiers
28043         don't change dominator info state.  Drop dominator info
28044         for IPA pass invocations.
28045         * cgraph.c (release_function_body): Restore asserts that
28046         dominator information is released.
28047
28048 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
28049
28050         * doc/invoke.texi: Fix typo.
28051         * tree-vrp.c: Fix typos.
28052         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
28053
28054 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
28055
28056         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
28057
28058 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
28059
28060         * config/aarch64/aarch64-builtins.c
28061         (aarch64_types_storestruct_lane_qualifiers): New.
28062         (TYPES_STORESTRUCT_LANE): Likewise.
28063         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
28064         (st3_lane): Likewise.
28065         (st4_lane): Likewise.
28066         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
28067         (vec_store_lanesci_lane<mode>): Likewise.
28068         (vec_store_lanesxi_lane<mode>): Likewise.
28069         (aarch64_st2_lane<VQ:mode>): Likewise.
28070         (aarch64_st3_lane<VQ:mode>): Likewise.
28071         (aarch64_st4_lane<VQ:mode>): Likewise.
28072         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
28073         * config/aarch64/arm_neon.h
28074         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
28075         use new macro arguments.
28076         (__ST3_LANE_FUNC): Likewise.
28077         (__ST4_LANE_FUNC): Likewise.
28078         * config/aarch64/iterators.md (V_TWO_ELEM): New.
28079         (V_THREE_ELEM): Likewise.
28080         (V_FOUR_ELEM): Likewise.
28081
28082 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
28083
28084         * doc/gimple.texi: Replace the description of the now-defunct
28085         union gimple_statement_d with a diagram showing the
28086         gimple_statement_base class hierarchy and its relationships to
28087         the GSS_ and GIMPLE_ enums.
28088
28089 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
28090
28091         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
28092         * config/aarch64/aarch64.c
28093         (aarch64_cannot_change_mode_class): Weaken conditions.
28094         (aarch64_modes_tieable_p): New.
28095         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
28096
28097 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
28098
28099         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
28100         (loadsync_<mode>): Change mode.
28101         (load_quadpti, store_quadpti): New.
28102         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
28103         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
28104
28105 2014-04-28  Martin Jambor  <mjambor@suse.cz>
28106
28107         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
28108         same alias type as the original statement.
28109         (subreplacement_assignment_data): New type.
28110         (handle_unscalarized_data_in_subtree): New type of parameter,
28111         generate new memory accesses with same alias type as the original
28112         statement.
28113         (load_assign_lhs_subreplacements): Likewise.
28114         (sra_modify_constructor_assign): Generate new memory accesses with
28115         same alias type as the original statement.
28116
28117 2014-04-28  Richard Biener  <rguenther@suse.de>
28118
28119         * tree-pass.h (TODO_verify_il): Define.
28120         (TODO_verify_all): Complete properly.
28121         * passes.c (execute_function_todo): Move existing loop-closed
28122         SSA verification under TODO_verify_il.
28123         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
28124         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
28125         Fix tree sharing issue.
28126
28127 2014-04-28  Richard Biener  <rguenther@suse.de>
28128
28129         PR middle-end/60092
28130         * builtins.def (DEF_C11_BUILTIN): Add.
28131         (BUILT_IN_ALIGNED_ALLOC): Likewise.
28132         * coretypes.h (enum function_class): Add function_c11_misc.
28133         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
28134         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
28135         (call_may_clobber_ref_p_1): Likewise.
28136         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
28137         (mark_all_reaching_defs_necessary_1): Likewise.
28138         (propagate_necessity): Likewise.
28139         (eliminate_unnecessary_stmts): Likewise.
28140         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
28141
28142 2014-04-28  Richard Biener  <rguenther@suse.de>
28143
28144         * tree-vrp.c (vrp_var_may_overflow): Remove.
28145         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
28146         with overflow immediately bump to one before that value and
28147         let iteration figure out overflow status.
28148
28149 2014-04-28  Richard Biener  <rguenther@suse.de>
28150
28151         * configure.ac: Do valgrind header checks unconditionally.
28152         Add --enable-valgrind-annotations.
28153         * system.h: Guard valgrind header inclusion with
28154         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
28155         * alloc-pool.c (pool_alloc, pool_free): Use
28156         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
28157         to guard possibly dead code.
28158         * config.in: Regenerated.
28159         * configure: Likewise.
28160
28161 2014-04-28  Jeff Law  <law@redhat.com>
28162
28163         PR tree-optimization/60902
28164         * tree-ssa-threadedge.c
28165         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
28166         over real defs when invalidating outputs from statements that do not
28167         produce useful outputs for threading.
28168
28169 2014-04-28  Richard Biener  <rguenther@suse.de>
28170
28171         PR tree-optimization/60979
28172         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
28173         SCOPs that end in a block with a successor with abnormal
28174         predecessors.
28175
28176 2014-04-28  Richard Biener  <rguenther@suse.de>
28177
28178         * tree-pass.h (execute_pass_list): Adjust prototype.
28179         * passes.c (pass_manager::execute_early_local_passes): Adjust.
28180         (do_per_function): Change callback signature, push all actual
28181         work to the callbals.
28182         (do_per_function_toporder): Likewise.
28183         (execute_function_dump): Adjust.
28184         (execute_function_todo): Likewise.
28185         (clear_last_verified): Likewise.
28186         (verify_curr_properties): Likewise.
28187         (update_properties_after_pass): Likewise.
28188         (execute_pass_list_1): Split out from ...
28189         (execute_pass_list): ... here.  Adjust.
28190         (execute_ipa_pass_list): Likewise.
28191         * cgraphunit.c (cgraph_add_new_function): Adjust.
28192         (analyze_function): Likewise.
28193         (expand_function): Likewise.
28194         * cgraph.c (release_function_body): Free dominance info
28195         here instead of asserting it was magically freed elsewhere.
28196
28197 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
28198
28199         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
28200         * configure: Regenerate.
28201         * config/sparc/sparc.opt (muser-mode): New option.
28202         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
28203         for LEON3.
28204         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
28205         * doc/invoke.texi (SPARC options): Document -muser-mode.
28206
28207 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
28208
28209         * cselib.c (find_slot_memmode): Delete.
28210         (cselib_hasher): Change compare_type to a struct.
28211         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
28212         constants.
28213         (preserve_constants_and_equivs): Adjust for new compare_type.
28214         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
28215         (wrap_constant): Delete.
28216         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
28217
28218 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
28219
28220         * doc/install.texi (Building with profile feedback): Remove
28221         outdated sentence.
28222
28223 2014-04-26  Tom de Vries  <tom@codesourcery.com>
28224
28225         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
28226         array accesses.
28227
28228 2014-04-25  Cary Coutant  <ccoutant@google.com>
28229
28230         PR debug/60929
28231         * dwarf2out.c (should_move_die_to_comdat): A type definition
28232         can contain a subprogram definition, but don't move it to a
28233         comdat unit.
28234         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
28235         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
28236         from original DIE.
28237         (clone_tree_hash): Rename to...
28238         (clone_tree_partial): ...this; change callers.  Copy
28239         DW_TAG_subprogram DIEs as declarations.
28240         (copy_decls_walk): Don't copy children of a declaration into a
28241         type unit.
28242
28243 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
28244
28245         PR target/60969
28246         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
28247         alternative 12.
28248
28249 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
28250
28251         * config/arm/predicates.md (call_insn_operand): Add long_call check.
28252         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
28253         reg for long_call.
28254         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
28255         restriction.
28256
28257 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28258
28259         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
28260
28261 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28262
28263         PR tree-optimization/60930
28264         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
28265         creating a multiply candidate by folding two constant
28266         multiplicands when the result overflows.
28267
28268 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
28269
28270         PR tree-optimization/60960
28271         * tree-vect-generic.c (expand_vector_operation): Only call
28272         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
28273
28274 2014-04-25  Tom de Vries  <tom@codesourcery.com>
28275
28276         * expr.c (clobber_reg_mode): New function.
28277         * expr.h (clobber_reg): New function.
28278
28279 2014-04-25  Tom de Vries  <tom@codesourcery.com>
28280
28281         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
28282         clobbers.
28283
28284 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
28285             Tom de Vries  <tom@codesourcery.com>
28286
28287         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
28288         handle.
28289         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
28290         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
28291         new argument to find_all_hard_reg_sets call.
28292
28293 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28294
28295         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
28296         Use HOST_WIDE_INT_C for mask literal.
28297         (aarch_rev16_shleft_mask_imm_p): Likewise.
28298
28299 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
28300
28301         PR target/60941
28302         * config/sparc/sparc.md (ashlsi3_extend): Delete.
28303
28304 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
28305
28306         PR preprocessor/56540
28307         * config/i386/i386-c.c (ix86_target_macros): Define
28308         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
28309
28310 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28311
28312         * configure.ac (tga_func): Remove.
28313         (LIB_TLS_SPEC): Remove.
28314         * configure: Regenerate.
28315         * config.in: Regenerate.
28316         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
28317
28318 2014-04-25  Richard Biener  <rguenther@suse.de>
28319
28320         PR ipa/60912
28321         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
28322         call stmt use/clobber sets during stmt walk instead of
28323         walking the possibly incomplete set of caller edges.
28324
28325 2014-04-25  Richard Biener  <rguenther@suse.de>
28326
28327         PR ipa/60911
28328         * passes.c (apply_ipa_transforms): Inline into only caller ...
28329         (execute_one_pass): ... here.  Properly bring in function
28330         bodies for nodes we want to apply IPA transforms to.
28331
28332 2014-04-24  Cong Hou  <congh@google.com>
28333
28334         PR tree-optimization/60896
28335         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
28336         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
28337         (vect_mark_pattern_stmts): Set the def type of all statements in
28338         PATTERN_DEF_SEQ as vect_internal_def.
28339
28340 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
28341
28342         * doc/extend.texi (PowerPC Built-in Functions): Document new
28343         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
28344         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
28345
28346         * config/rs6000/predicates.md (const_0_to_3_operand): New
28347         predicate to match 0..3 integer constants.
28348
28349         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
28350         to support adding miscellaneous builtin functions.
28351         (BU_DFP_MISC_2): Likewise.
28352         (BU_P7_MISC_1): Likewise.
28353         (BU_P7_MISC_2): Likewise.
28354         (BU_P8V_MISC_3): Likewise.
28355         (BU_MISC_1): Likewise.
28356         (BU_MISC_2): Likewise.
28357         (DIVWE): Add extended divide builtin functions.
28358         (DIVWEO): Likewise.
28359         (DIVWEU): Likewise.
28360         (DIVWEUO): Likewise.
28361         (DIVDE): Likewise.
28362         (DIVDEO): Likewise.
28363         (DIVDEU): Likewise.
28364         (DIVDEUO): Likewise.
28365         (DXEX): Add decimal floating-point builtin functions.
28366         (DXEXQ): Likewise.
28367         (DDEDPD): Likewise.
28368         (DDEDPDQ): Likewise.
28369         (DENBCD): Likewise.
28370         (DENBCDQ): Likewise.
28371         (DIEX): Likewise.
28372         (DIEXQ): Likewise.
28373         (DSCLI): Likewise.
28374         (DSCLIQ): Likewise.
28375         (DSCRI): Likewise.
28376         (DSCRIQ): Likewise.
28377         (CDTBCD): Add new BCD builtin functions.
28378         (CBCDTD): Likewise.
28379         (ADDG6S): Likewise.
28380         (BCDADD): Likewise.
28381         (BCDADD_LT): Likewise.
28382         (BCDADD_EQ): Likewise.
28383         (BCDADD_GT): Likewise.
28384         (BCDADD_OV): Likewise.
28385         (BCDSUB): Likewise.
28386         (BCDSUB_LT): Likewise.
28387         (BCDSUB_EQ): Likewise.
28388         (BCDSUB_GT): Likewise.
28389         (BCDSUB_OV): Likewise.
28390         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
28391         (UNPACK_TD): Likewise.
28392         (PACK_TF): Likewise.
28393         (UNPACK_TF): Likewise.
28394         (UNPACK_TF_0): Likewise.
28395         (UNPACK_TF_1): Likewise.
28396         (PACK_V1TI): Likewise.
28397         (UNPACK_V1TI): Likewise.
28398
28399         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
28400         support for decimal floating point builtin functions.
28401         (rs6000_expand_ternop_builtin): Add checks for the new builtin
28402         functions that take constant arguments.
28403         (rs6000_invalid_builtin): Add decimal floating point builtin support.
28404         (rs6000_init_builtins): Setup long double, _Decimal64, and
28405         _Decimal128 types for new builtin functions.
28406         (builtin_function_type): Set the unsigned flags appropriately for
28407         the new builtin functions.
28408         (rs6000_opt_masks): Add support for decimal floating point builtin
28409         functions.
28410
28411         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
28412         floating point builtin functions.
28413         (RS6000_BTM_COMMON): Likewise.
28414         (RS6000_BTI_long_double): Likewise.
28415         (RS6000_BTI_dfloat64): Likewise.
28416         (RS6000_BTI_dfloat128): Likewise.
28417         (long_double_type_internal_node): Likewise.
28418         (dfloat64_type_internal_node): Likewise.
28419         (dfloat128_type_internal_node): Likewise.
28420
28421         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
28422         2.07 bcd arithmetic instructions.
28423         (UNSPEC_BCDSUB): Likewise.
28424         (UNSPEC_BCD_OVERFLOW): Likewise.
28425         (UNSPEC_BCD_ADD_SUB): Likewise.
28426         (bcd_add_sub): Likewise.
28427         (BCD_TEST): Likewise.
28428         (bcd<bcd_add_sub>): Likewise.
28429         (bcd<bcd_add_sub>_test): Likewise.
28430         (bcd<bcd_add_sub>_test2): Likewise.
28431         (bcd<bcd_add_sub>_<code>): Likewise.
28432         (peephole2 for combined bcd ops): Likewise.
28433
28434         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
28435         decimal floating point builtin functions.
28436         (UNSPEC_DENBCD): Likewise.
28437         (UNSPEC_DXEX): Likewise.
28438         (UNSPEC_DIEX): Likewise.
28439         (UNSPEC_DSCLI): Likewise.
28440         (UNSPEC_DSCRI): Likewise.
28441         (D64_D128): Likewise.
28442         (dfp_suffix): Likewise.
28443         (dfp_ddedpd_<mode>): Likewise.
28444         (dfp_denbcd_<mode>): Likewise.
28445         (dfp_dxex_<mode>): Likewise.
28446         (dfp_diex_<mode>): Likewise.
28447         (dfp_dscli_<mode>): Likewise.
28448         (dfp_dscri_<mode>): Likewise.
28449
28450         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
28451         builtin functions.
28452         (UNSPEC_CDTBCD): Likewise.
28453         (UNSPEC_CBCDTD): Likewise.
28454         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
28455         (UNSPEC_DIVEO): Likewise.
28456         (UNSPEC_DIVEU): Likewise.
28457         (UNSPEC_DIVEUO): Likewise.
28458         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
28459         pack/unpack 128-bit types.
28460         (UNSPEC_PACK_128BIT): Likewise.
28461         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
28462         (udiv<mode>3): Use idiv_ldiv mode attribute.
28463         (div<mode>3): Likewise.
28464         (addg6s): Add new BCD builtin functions.
28465         (cdtbcd): Likewise.
28466         (cbcdtd): Likewise.
28467         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
28468         (div_extend): Likewise.
28469         (div<div_extend>_<mode>"): Likewise.
28470         (FP128_64): Add support for new builtin functions to pack/unpack
28471         128-bit types.
28472         (unpack<mode>): Likewise.
28473         (unpacktf_0): Likewise.
28474         (unpacktf_1): Likewise.
28475         (unpack<mode>_dm): Likewise.
28476         (unpack<mode>_nodm): Likewise.
28477         (pack<mode>): Likewise.
28478         (unpackv1ti): Likewise.
28479         (packv1ti): Likewise.
28480
28481 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
28482
28483         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
28484         is disabled.
28485
28486 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
28487
28488         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
28489         * gimplify.c (omp_is_private): Change last argument's type to int.
28490         Only diagnose lastprivate if the simd argument is 1, only diagnose
28491         linear if the simd argument is 2.
28492         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
28493         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
28494         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
28495         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
28496         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
28497         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
28498         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
28499         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
28500         * tree-nested.c (convert_nonlocal_omp_clauses,
28501         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
28502
28503 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
28504
28505         PR target/60822
28506         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
28507         operand 1.
28508
28509 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
28510
28511         * flag-types.h (enum ivar_visibility): Add.
28512
28513 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
28514
28515         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
28516         function * argument.
28517
28518 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
28519
28520         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
28521
28522 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
28523             Tom de Vries  <tom@codesourcery.com>
28524
28525         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
28526         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
28527         reg-note.
28528         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
28529         * emit-rtl.c (try_split): Same.
28530
28531 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
28532             Tom de Vries  <tom@codesourcery.com>
28533
28534         * common.opt (fuse-caller-save): New option.
28535
28536 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
28537
28538         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
28539         elements for big-endian.
28540
28541 2014-04-24  Richard Biener  <rguenther@suse.de>
28542
28543         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
28544         during TER and instead use the sepops interface for expanding
28545         non-GIMPLE_SINGLE_RHS.
28546
28547 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28548
28549         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
28550         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
28551
28552 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28553
28554         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
28555         assembler 64-bit option.
28556         * configure: Regenerate.
28557
28558 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28559
28560         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
28561         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
28562         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
28563         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
28564         (TARGET_CRYPTO): Take TARGET_SIMD into account.
28565
28566 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28567
28568         * config/aarch64/aarch64-builtins.c
28569         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
28570         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
28571         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
28572         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
28573         builtins.
28574         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
28575         (Vrevsuff): New mode attribute.
28576
28577 2014-04-24  Terry Guo  <terry.guo@arm.com>
28578
28579         * config/arm/arm.h (machine_function): Define variable
28580         after_arm_reorg here.
28581         * config/arm/arm.c (after_arm_reorg): Remove the definition.
28582         (arm_split_constant): Update the way to access variable
28583         after_arm_reorg.
28584         (arm_reorg): Ditto.
28585         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
28586
28587 2014-04-23  Tom de Vries  <tom@codesourcery.com>
28588
28589         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
28590
28591 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
28592
28593         * is-a.h: Update comments to reflect the following changes to the
28594         "pointerness" of the API, making the template parameter match the
28595         return type, allowing use of is-a.h with typedefs of pointers.
28596         (is_a_helper::cast): Return a T rather then a pointer to a T, so
28597         that the return type matches the parameter to the is_a_helper.
28598         (as_a): Likewise.
28599         (dyn_cast): Likewise.
28600
28601         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
28602         pointer from the is-a.h API.
28603
28604         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
28605         (is_a_helper <cgraph_node *>::test): ...this, matching change to
28606         is-a.h API.
28607         (is_a_helper <varpool_node>::test): Likewise, convert to...
28608         (is_a_helper <varpool_node *>::test): ...this.
28609
28610         (varpool_first_variable): Update for removal of implicit pointer
28611         from the is-a.h API.
28612         (varpool_next_variable): Likewise.
28613         (varpool_first_static_initializer): Likewise.
28614         (varpool_next_static_initializer): Likewise.
28615         (varpool_first_defined_variable): Likewise.
28616         (varpool_next_defined_variable): Likewise.
28617         (cgraph_first_defined_function): Likewise.
28618         (cgraph_next_defined_function): Likewise.
28619         (cgraph_first_function): Likewise.
28620         (cgraph_next_function): Likewise.
28621         (cgraph_first_function_with_gimple_body): Likewise.
28622         (cgraph_next_function_with_gimple_body): Likewise.
28623         (cgraph_alias_target): Likewise.
28624         (varpool_alias_target): Likewise.
28625         (cgraph_function_or_thunk_node): Likewise.
28626         (varpool_variable_node): Likewise.
28627         (symtab_real_symbol_p): Likewise.
28628         * cgraphunit.c (referred_to_p): Likewise.
28629         (analyze_functions): Likewise.
28630         (handle_alias_pairs): Likewise.
28631         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
28632         * gimple-ssa.h (gimple_vuse_op): Likewise.
28633         (gimple_vdef_op): Likewise.
28634         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
28635         * gimple.c (gimple_build_asm_1): Likewise.
28636         (gimple_build_try): Likewise.
28637         (gimple_build_resx): Likewise.
28638         (gimple_build_eh_dispatch): Likewise.
28639         (gimple_build_omp_for): Likewise.
28640         (gimple_omp_for_set_clauses): Likewise.
28641
28642         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
28643         (is_a_helper <gimple_statement_asm *>::test): ...this.
28644         (is_a_helper <gimple_statement_bind>::test): Convert to...
28645         (is_a_helper <gimple_statement_bind *>::test): ...this.
28646         (is_a_helper <gimple_statement_call>::test): Convert to...
28647         (is_a_helper <gimple_statement_call *>::test): ...this.
28648         (is_a_helper <gimple_statement_catch>::test): Convert to...
28649         (is_a_helper <gimple_statement_catch *>::test): ...this.
28650         (is_a_helper <gimple_statement_resx>::test): Convert to...
28651         (is_a_helper <gimple_statement_resx *>::test): ...this.
28652         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
28653         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
28654         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
28655         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
28656         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
28657         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
28658         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
28659         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
28660         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
28661         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
28662         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
28663         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
28664         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
28665         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
28666         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
28667         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
28668         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
28669         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
28670         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
28671         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
28672         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
28673         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
28674         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
28675         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
28676         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
28677         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
28678         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
28679         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
28680         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
28681         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
28682         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
28683         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
28684         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
28685         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
28686         (is_a_helper <gimple_statement_phi>::test): Convert to...
28687         (is_a_helper <gimple_statement_phi *>::test): ...this.
28688         (is_a_helper <gimple_statement_transaction>::test): Convert to...
28689         (is_a_helper <gimple_statement_transaction *>::test): ...this.
28690         (is_a_helper <gimple_statement_try>::test): Convert to...
28691         (is_a_helper <gimple_statement_try *>::test): ...this.
28692         (is_a_helper <gimple_statement_wce>::test): Convert to...
28693         (is_a_helper <gimple_statement_wce *>::test): ...this.
28694         (is_a_helper <const gimple_statement_asm>::test): Convert to...
28695         (is_a_helper <const gimple_statement_asm *>::test): ...this.
28696         (is_a_helper <const gimple_statement_bind>::test): Convert to...
28697         (is_a_helper <const gimple_statement_bind *>::test): ...this.
28698         (is_a_helper <const gimple_statement_call>::test): Convert to...
28699         (is_a_helper <const gimple_statement_call *>::test): ...this.
28700         (is_a_helper <const gimple_statement_catch>::test): Convert to...
28701         (is_a_helper <const gimple_statement_catch *>::test): ...this.
28702         (is_a_helper <const gimple_statement_resx>::test): Convert to...
28703         (is_a_helper <const gimple_statement_resx *>::test): ...this.
28704         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
28705         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
28706         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
28707         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
28708         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
28709         Convert to...
28710         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
28711         ...this.
28712         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
28713         Convert to...
28714         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
28715         ...this.
28716         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
28717         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
28718         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
28719         to...
28720         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
28721         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
28722         to...
28723         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
28724         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
28725         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
28726         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
28727         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
28728         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
28729         to...
28730         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
28731         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
28732         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
28733         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
28734         to...
28735         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
28736         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
28737         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
28738         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
28739         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
28740         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
28741         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
28742         (is_a_helper <const gimple_statement_phi>::test): Convert to...
28743         (is_a_helper <const gimple_statement_phi *>::test): ...this.
28744         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
28745         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
28746         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
28747         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
28748         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
28749         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
28750         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
28751         to...
28752         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
28753         ...this.
28754         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
28755         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
28756
28757         (gimple_use_ops): Update for removal of implicit pointer from the
28758         is-a.h API.
28759         (gimple_set_use_ops): Likewise.
28760         (gimple_vuse): Likewise.
28761         (gimple_vdef): Likewise.
28762         (gimple_vuse_ptr): Likewise.
28763         (gimple_vdef_ptr): Likewise.
28764         (gimple_set_vuse): Likewise.
28765         (gimple_set_vdef): Likewise.
28766         (gimple_omp_return_set_lhs): Likewise.
28767         (gimple_omp_return_lhs): Likewise.
28768         (gimple_omp_return_lhs_ptr): Likewise.
28769         (gimple_call_fntype): Likewise.
28770         (gimple_call_set_fntype): Likewise.
28771         (gimple_call_set_internal_fn): Likewise.
28772         (gimple_call_use_set): Likewise.
28773         (gimple_call_clobber_set): Likewise.
28774         (gimple_bind_vars): Likewise.
28775         (gimple_bind_set_vars): Likewise.
28776         (gimple_bind_body_ptr): Likewise.
28777         (gimple_bind_set_body): Likewise.
28778         (gimple_bind_add_stmt): Likewise.
28779         (gimple_bind_block): Likewise.
28780         (gimple_bind_set_block): Likewise.
28781         (gimple_asm_ninputs): Likewise.
28782         (gimple_asm_noutputs): Likewise.
28783         (gimple_asm_nclobbers): Likewise.
28784         (gimple_asm_nlabels): Likewise.
28785         (gimple_asm_input_op): Likewise.
28786         (gimple_asm_input_op_ptr): Likewise.
28787         (gimple_asm_output_op): Likewise.
28788         (gimple_asm_output_op_ptr): Likewise.
28789         (gimple_asm_set_output_op): Likewise.
28790         (gimple_asm_clobber_op): Likewise.
28791         (gimple_asm_set_clobber_op): Likewise.
28792         (gimple_asm_label_op): Likewise.
28793         (gimple_asm_set_label_op): Likewise.
28794         (gimple_asm_string): Likewise.
28795         (gimple_catch_types): Likewise.
28796         (gimple_catch_types_ptr): Likewise.
28797         (gimple_catch_handler_ptr): Likewise.
28798         (gimple_catch_set_types): Likewise.
28799         (gimple_catch_set_handler): Likewise.
28800         (gimple_eh_filter_types): Likewise.
28801         (gimple_eh_filter_types_ptr): Likewise.
28802         (gimple_eh_filter_failure_ptr): Likewise.
28803         (gimple_eh_filter_set_types): Likewise.
28804         (gimple_eh_filter_set_failure): Likewise.
28805         (gimple_eh_must_not_throw_fndecl): Likewise.
28806         (gimple_eh_must_not_throw_set_fndecl): Likewise.
28807         (gimple_eh_else_n_body_ptr): Likewise.
28808         (gimple_eh_else_e_body_ptr): Likewise.
28809         (gimple_eh_else_set_n_body): Likewise.
28810         (gimple_eh_else_set_e_body): Likewise.
28811         (gimple_try_eval_ptr): Likewise.
28812         (gimple_try_cleanup_ptr): Likewise.
28813         (gimple_try_set_eval): Likewise.
28814         (gimple_try_set_cleanup): Likewise.
28815         (gimple_wce_cleanup_ptr): Likewise.
28816         (gimple_wce_set_cleanup): Likewise.
28817         (gimple_phi_capacity): Likewise.
28818         (gimple_phi_num_args): Likewise.
28819         (gimple_phi_result): Likewise.
28820         (gimple_phi_result_ptr): Likewise.
28821         (gimple_phi_set_result): Likewise.
28822         (gimple_phi_arg): Likewise.
28823         (gimple_phi_set_arg): Likewise.
28824         (gimple_resx_region): Likewise.
28825         (gimple_resx_set_region): Likewise.
28826         (gimple_eh_dispatch_region): Likewise.
28827         (gimple_eh_dispatch_set_region): Likewise.
28828         (gimple_omp_critical_name): Likewise.
28829         (gimple_omp_critical_name_ptr): Likewise.
28830         (gimple_omp_critical_set_name): Likewise.
28831         (gimple_omp_for_clauses): Likewise.
28832         (gimple_omp_for_clauses_ptr): Likewise.
28833         (gimple_omp_for_set_clauses): Likewise.
28834         (gimple_omp_for_collapse): Likewise.
28835         (gimple_omp_for_index): Likewise.
28836         (gimple_omp_for_index_ptr): Likewise.
28837         (gimple_omp_for_set_index): Likewise.
28838         (gimple_omp_for_initial): Likewise.
28839         (gimple_omp_for_initial_ptr): Likewise.
28840         (gimple_omp_for_set_initial): Likewise.
28841         (gimple_omp_for_final): Likewise.
28842         (gimple_omp_for_final_ptr): Likewise.
28843         (gimple_omp_for_set_final): Likewise.
28844         (gimple_omp_for_incr): Likewise.
28845         (gimple_omp_for_incr_ptr): Likewise.
28846         (gimple_omp_for_set_incr): Likewise.
28847         (gimple_omp_for_pre_body_ptr): Likewise.
28848         (gimple_omp_for_set_pre_body): Likewise.
28849         (gimple_omp_parallel_clauses): Likewise.
28850         (gimple_omp_parallel_clauses_ptr): Likewise.
28851         (gimple_omp_parallel_set_clauses): Likewise.
28852         (gimple_omp_parallel_child_fn): Likewise.
28853         (gimple_omp_parallel_child_fn_ptr): Likewise.
28854         (gimple_omp_parallel_set_child_fn): Likewise.
28855         (gimple_omp_parallel_data_arg): Likewise.
28856         (gimple_omp_parallel_data_arg_ptr): Likewise.
28857         (gimple_omp_parallel_set_data_arg): Likewise.
28858         (gimple_omp_task_clauses): Likewise.
28859         (gimple_omp_task_clauses_ptr): Likewise.
28860         (gimple_omp_task_set_clauses): Likewise.
28861         (gimple_omp_task_child_fn): Likewise.
28862         (gimple_omp_task_child_fn_ptr): Likewise.
28863         (gimple_omp_task_set_child_fn): Likewise.
28864         (gimple_omp_task_data_arg): Likewise.
28865         (gimple_omp_task_data_arg_ptr): Likewise.
28866         (gimple_omp_task_set_data_arg): Likewise.
28867         (gimple_omp_taskreg_clauses): Likewise.
28868         (gimple_omp_taskreg_clauses_ptr): Likewise.
28869         (gimple_omp_taskreg_set_clauses): Likewise.
28870         (gimple_omp_taskreg_child_fn): Likewise.
28871         (gimple_omp_taskreg_child_fn_ptr): Likewise.
28872         (gimple_omp_taskreg_set_child_fn): Likewise.
28873         (gimple_omp_taskreg_data_arg): Likewise.
28874         (gimple_omp_taskreg_data_arg_ptr): Likewise.
28875         (gimple_omp_taskreg_set_data_arg): Likewise.
28876         (gimple_omp_task_copy_fn): Likewise.
28877         (gimple_omp_task_copy_fn_ptr): Likewise.
28878         (gimple_omp_task_set_copy_fn): Likewise.
28879         (gimple_omp_task_arg_size): Likewise.
28880         (gimple_omp_task_arg_size_ptr): Likewise.
28881         (gimple_omp_task_set_arg_size): Likewise.
28882         (gimple_omp_task_arg_align): Likewise.
28883         (gimple_omp_task_arg_align_ptr): Likewise.
28884         (gimple_omp_task_set_arg_align): Likewise.
28885         (gimple_omp_single_clauses): Likewise.
28886         (gimple_omp_single_clauses_ptr): Likewise.
28887         (gimple_omp_single_set_clauses): Likewise.
28888         (gimple_omp_target_clauses): Likewise.
28889         (gimple_omp_target_clauses_ptr): Likewise.
28890         (gimple_omp_target_set_clauses): Likewise.
28891         (gimple_omp_target_child_fn): Likewise.
28892         (gimple_omp_target_child_fn_ptr): Likewise.
28893         (gimple_omp_target_set_child_fn): Likewise.
28894         (gimple_omp_target_data_arg): Likewise.
28895         (gimple_omp_target_data_arg_ptr): Likewise.
28896         (gimple_omp_target_set_data_arg): Likewise.
28897         (gimple_omp_teams_clauses): Likewise.
28898         (gimple_omp_teams_clauses_ptr): Likewise.
28899         (gimple_omp_teams_set_clauses): Likewise.
28900         (gimple_omp_sections_clauses): Likewise.
28901         (gimple_omp_sections_clauses_ptr): Likewise.
28902         (gimple_omp_sections_set_clauses): Likewise.
28903         (gimple_omp_sections_control): Likewise.
28904         (gimple_omp_sections_control_ptr): Likewise.
28905         (gimple_omp_sections_set_control): Likewise.
28906         (gimple_omp_for_set_cond): Likewise.
28907         (gimple_omp_for_cond): Likewise.
28908         (gimple_omp_atomic_store_set_val): Likewise.
28909         (gimple_omp_atomic_store_val): Likewise.
28910         (gimple_omp_atomic_store_val_ptr): Likewise.
28911         (gimple_omp_atomic_load_set_lhs): Likewise.
28912         (gimple_omp_atomic_load_lhs): Likewise.
28913         (gimple_omp_atomic_load_lhs_ptr): Likewise.
28914         (gimple_omp_atomic_load_set_rhs): Likewise.
28915         (gimple_omp_atomic_load_rhs): Likewise.
28916         (gimple_omp_atomic_load_rhs_ptr): Likewise.
28917         (gimple_omp_continue_control_def): Likewise.
28918         (gimple_omp_continue_control_def_ptr): Likewise.
28919         (gimple_omp_continue_set_control_def): Likewise.
28920         (gimple_omp_continue_control_use): Likewise.
28921         (gimple_omp_continue_control_use_ptr): Likewise.
28922         (gimple_omp_continue_set_control_use): Likewise.
28923         (gimple_transaction_body_ptr): Likewise.
28924         (gimple_transaction_label): Likewise.
28925         (gimple_transaction_label_ptr): Likewise.
28926         (gimple_transaction_set_body): Likewise.
28927         (gimple_transaction_set_label): Likewise.
28928
28929         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
28930         * ipa-inline-analysis.c (inline_write_summary): Likewise.
28931         * ipa-ref.c (ipa_record_reference): Likewise.
28932         * ipa-reference.c (analyze_function): Likewise.
28933         (ipa_reference_write_optimization_summary): Likewise.
28934         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
28935         (address_taken_from_non_vtable_p): Likewise.
28936         (comdat_can_be_unshared_p_1): Likewise.
28937         * lto-cgraph.c (lto_output_ref): Likewise.
28938         (add_references): Likewise.
28939         (compute_ltrans_boundary): Likewise.
28940         (output_symtab): Likewise.
28941         (input_ref): Likewise.
28942         (input_cgraph_1): Likewise.
28943         (output_cgraph_opt_summary): Likewise.
28944         * lto-streamer-out.c (lto_output): Likewise.
28945         (output_symbol_p): Likewise.
28946         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
28947         (lsei_start_function_in_partition): Likewise.
28948         (lsei_next_variable_in_partition): Likewise.
28949         (lsei_start_variable_in_partition): Likewise.
28950         * symtab.c (insert_to_assembler_name_hash): Likewise.
28951         (unlink_from_assembler_name_hash): Likewise.
28952         (symtab_unregister_node): Likewise.
28953         (symtab_remove_node): Likewise.
28954         (dump_symtab_node): Likewise.
28955         (verify_symtab_base): Likewise.
28956         (verify_symtab_node): Likewise.
28957         (symtab_make_decl_local): Likewise.
28958         (symtab_alias_ultimate_target): Likewise.
28959         (symtab_resolve_alias): Likewise.
28960         (symtab_get_symbol_partitioning_class): Likewise.
28961         * tree-phinodes.c (allocate_phi_node): Likewise.
28962         (reserve_phi_args_for_new_edge): Likewise.
28963         (remove_phi_args): Likewise.
28964         * varpool.c (varpool_node_for_asm): Likewise.
28965         (varpool_remove_unreferenced_decls): Likewise.
28966
28967 2014-04-23  Jeff Law  <law@redhat.com>
28968
28969         PR tree-optimization/60902
28970         * tree-ssa-threadedge.c
28971         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
28972         invalidate outputs from statements that do not produce useful
28973         outputs for threading.
28974
28975 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
28976
28977         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
28978         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
28979         machine descriptions for Stack Smashing Protector.
28980
28981 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
28982
28983         * aarch64.md (<optab>_rol<mode>3): New pattern.
28984         (<optab>_rolsi3_uxtw): Likewise.
28985         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
28986
28987 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
28988
28989         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
28990         (arm_cortex_a12_tune): Likewise.
28991
28992 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28993
28994         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
28995
28996 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28997
28998         * config/arm/arm.md (arm_rev16si2): New pattern.
28999         (arm_rev16si2_alt): Likewise.
29000         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
29001
29002 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29003
29004         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
29005         (rev16<mode>2_alt): Likewise.
29006         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
29007         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
29008         (aarch_rev16_shleft_mask_imm_p): Likewise.
29009         (aarch_rev16_p_1): Likewise.
29010         (aarch_rev16_p): Likewise.
29011         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
29012         (aarch_rev16_shright_mask_imm_p): Likewise.
29013         (aarch_rev16_shleft_mask_imm_p): Likewise.
29014
29015 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29016
29017         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
29018         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
29019         rev cost.
29020         (cortex_a53_extra_costs): Likewise.
29021         (cortex_a57_extra_costs): Likewise.
29022         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
29023         (cortexa7_extra_costs): Likewise.
29024         (cortexa8_extra_costs): Likewise.
29025         (cortexa12_extra_costs): Likewise.
29026         (cortexa15_extra_costs): Likewise.
29027         (v7m_extra_costs): Likewise.
29028         (arm_new_rtx_costs): Handle BSWAP.
29029
29030 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29031
29032         * config/arm/arm.c (cortexa8_extra_costs): New table.
29033         (arm_cortex_a8_tune): New tuning struct.
29034         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
29035
29036 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29037
29038         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
29039
29040 2014-04-23  Richard Biener  <rguenther@suse.de>
29041
29042         * Makefile.in (OBJS): Remove loop-unswitch.o.
29043         * tree-pass.h (make_pass_rtl_unswitch): Remove.
29044         * passes.def (pass_rtl_unswitch): Likewise.
29045         * loop-init.c (gate_rtl_unswitch): Likewise.
29046         (rtl_unswitch): Likewise.
29047         (pass_data_rtl_unswitch): Likewise.
29048         (pass_rtl_unswitch): Likewise.
29049         (make_pass_rtl_unswitch): Likewise.
29050         * rtl.h (reversed_condition): Likewise.
29051         (compare_and_jump_seq): Likewise.
29052         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
29053         and make static.
29054         * loop-unroll.c (compare_and_jump_seq): Likewise.
29055
29056 2014-04-23  Richard Biener  <rguenther@suse.de>
29057
29058         PR tree-optimization/60903
29059         * tree-ssa-loop-im.c (analyze_memory_references): Remove
29060         commented code block.
29061         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
29062         loop flags to newly created BBs and edges.
29063
29064 2014-04-23  Nick Clifton  <nickc@redhat.com>
29065
29066         * config/msp430/msp430.c (msp430_handle_option): Move function
29067         to msp430-common.c
29068         (msp430_option_override): Simplify mcu and mcpu option handling.
29069         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
29070         support for -mhwmult command line option.
29071         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
29072         -mhwmult command line option.
29073         (msp430_hwmult_enabled): Delete.
29074         (msp43o_output_labelref): Add support for -mhwmult command line option.
29075         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
29076         (umulsidi3): Likewise.
29077         * config/msp430/msp430.opt (mmcu): Add Report attribute.
29078         (mcpu, mlarge, msmall): Likewise.
29079         (mhwmult): New option.
29080         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
29081         prototype.
29082         (msp430_is_f5_mcu): Remove prototype.
29083         (msp430_use_f5_series_hwmult): Add prototype.
29084         * config/msp430/msp430-opts.h: New file.
29085         * common/config/msp430: New directory.
29086         * common/config/msp430/msp430-common.c: New file.
29087         * config.gcc (msp430): Remove target_has_targetm_common.
29088         * doc/invoke.texi: Document -mhwmult command line option.
29089
29090 2014-04-23  Nick Clifton  <nickc@redhat.com>
29091
29092         * config/i386/cygwin.h (ENDFILE_SPEC): Include
29093         default-manifest.o if it can be found in the search path.
29094         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
29095
29096 2014-04-23  Terry Guo  <terry.guo@arm.com>
29097
29098         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
29099
29100 2014-04-23  Richard Biener  <rguenther@suse.de>
29101
29102         PR middle-end/60895
29103         * tree-inline.c (declare_return_variable): Use mark_addressable.
29104
29105 2014-04-23  Richard Biener  <rguenther@suse.de>
29106
29107         PR middle-end/60891
29108         * loop-init.c (loop_optimizer_init): Make sure to apply
29109         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
29110
29111 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
29112
29113         PR sanitizer/60275
29114         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
29115         New options.
29116         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
29117         if flag_sanitize_undefined_trap_on_error.
29118         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
29119         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
29120         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
29121         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
29122         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
29123         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
29124         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
29125         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
29126         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
29127         * ubsan.c (ubsan_instrument_unreachable): Return
29128         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
29129         (ubsan_expand_null_ifn): Emit __builtin_trap ()
29130         if flag_sanitize_undefined_trap_on_error and
29131         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
29132         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
29133         instrument_bool_enum_load): Emit __builtin_trap () if
29134         flag_sanitize_undefined_trap_on_error and
29135         __builtin_handle_*_abort () if !flag_sanitize_recover.
29136         * doc/invoke.texi (-fsanitize-recover,
29137         -fsanitize-undefined-trap-on-error): Document.
29138
29139 2014-04-22  Christian Bruel  <christian.bruel@st.com>
29140
29141         * config/sh/sh.md (mov<mode>): Replace movQIHI.
29142         Force immediates to SImode.
29143
29144 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
29145
29146         * config/nios2/nios2.md (UNSPEC_ROUND): New.
29147         (lroundsfsi2): New.
29148         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
29149         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
29150         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
29151         (nios2_fpu_insn): Add entry for round.
29152         (N2FPU_NO_ERRNO_P): Define.
29153         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
29154         flag_errno_math.
29155         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
29156
29157 2014-04-22  Richard Henderson  <rth@redhat.com>
29158
29159         * config/aarch64/aarch64 (addti3, subti3): New expanders.
29160         (add<GPI>3_compare0): Remove leading * from name.
29161         (add<GPI>3_carryin): Likewise.
29162         (sub<GPI>3_compare0): Likewise.
29163         (sub<GPI>3_carryin): Likewise.
29164         (<su_optab>mulditi3): New expander.
29165         (multi3): New expander.
29166         (madd<GPI>): Remove leading * from name.
29167
29168 2014-04-22  Martin Jambor  <mjambor@suse.cz>
29169
29170         * cgraphclones.c (cgraph_function_versioning): Copy
29171         ipa_transforms_to_apply instead of asserting it is empty.
29172
29173 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
29174
29175         PR target/60868
29176         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
29177         on count_exp to get mode.
29178
29179 2014-04-22  Andrew Pinski  <apinski@cavium.com>
29180
29181         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
29182         Handle TLS for ILP32.
29183         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
29184         (tlsie_small_<mode>): this and handle PTR.
29185         (tlsie_small_sidi): New pattern.
29186         (tlsle_small): Change to an expand to handle ILP32.
29187         (tlsle_small_<mode>): New pattern.
29188         (tlsdesc_small): Rename to ...
29189         (tlsdesc_small_<mode>): this and handle PTR.
29190
29191 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29192
29193         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
29194
29195 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
29196
29197         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
29198         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
29199         (aarch64_types_signed_poly_qualifiers): Likewise.
29200         (aarch64_types_unsigned_signed_qualifiers): Likewise.
29201         (aarch64_types_poly_signed_qualifiers): Likewise.
29202         (TYPES_REINTERP_SS): Type macro added.
29203         (TYPES_REINTERP_SU): Likewise.
29204         (TYPES_REINTERP_SP): Likewise.
29205         (TYPES_REINTERP_US): Likewise.
29206         (TYPES_REINTERP_PS): Likewise.
29207         (aarch64_fold_builtin): New expression folding added.
29208         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
29209         Declarations removed.
29210         (REINTERP_SS): Declarations added.
29211         (REINTERP_US): Likewise.
29212         (REINTERP_PS): Likewise.
29213         (REINTERP_SU): Likewise.
29214         (REINTERP_SP): Likewise.
29215         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
29216         (vreinterpretq_p8_f64): Likewise.
29217         (vreinterpret_p16_f64): Likewise.
29218         (vreinterpretq_p16_f64): Likewise.
29219         (vreinterpret_f32_f64): Likewise.
29220         (vreinterpretq_f32_f64): Likewise.
29221         (vreinterpret_f64_f32): Likewise.
29222         (vreinterpret_f64_p8): Likewise.
29223         (vreinterpret_f64_p16): Likewise.
29224         (vreinterpret_f64_s8): Likewise.
29225         (vreinterpret_f64_s16): Likewise.
29226         (vreinterpret_f64_s32): Likewise.
29227         (vreinterpret_f64_s64): Likewise.
29228         (vreinterpret_f64_u8): Likewise.
29229         (vreinterpret_f64_u16): Likewise.
29230         (vreinterpret_f64_u32): Likewise.
29231         (vreinterpret_f64_u64): Likewise.
29232         (vreinterpretq_f64_f32): Likewise.
29233         (vreinterpretq_f64_p8): Likewise.
29234         (vreinterpretq_f64_p16): Likewise.
29235         (vreinterpretq_f64_s8): Likewise.
29236         (vreinterpretq_f64_s16): Likewise.
29237         (vreinterpretq_f64_s32): Likewise.
29238         (vreinterpretq_f64_s64): Likewise.
29239         (vreinterpretq_f64_u8): Likewise.
29240         (vreinterpretq_f64_u16): Likewise.
29241         (vreinterpretq_f64_u32): Likewise.
29242         (vreinterpretq_f64_u64): Likewise.
29243         (vreinterpret_s64_f64): Likewise.
29244         (vreinterpretq_s64_f64): Likewise.
29245         (vreinterpret_u64_f64): Likewise.
29246         (vreinterpretq_u64_f64): Likewise.
29247         (vreinterpret_s8_f64): Likewise.
29248         (vreinterpretq_s8_f64): Likewise.
29249         (vreinterpret_s16_f64): Likewise.
29250         (vreinterpretq_s16_f64): Likewise.
29251         (vreinterpret_s32_f64): Likewise.
29252         (vreinterpretq_s32_f64): Likewise.
29253         (vreinterpret_u8_f64): Likewise.
29254         (vreinterpretq_u8_f64): Likewise.
29255         (vreinterpret_u16_f64): Likewise.
29256         (vreinterpretq_u16_f64): Likewise.
29257         (vreinterpret_u32_f64): Likewise.
29258         (vreinterpretq_u32_f64): Likewise.
29259
29260 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
29261
29262         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
29263         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
29264         (vreinterpret_p8_s8): Likewise.
29265         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
29266         (vreinterpret_p8_s16): Likewise.
29267         (vreinterpret_p8_s32): Likewise.
29268         (vreinterpret_p8_s64): Likewise.
29269         (vreinterpret_p8_f32): Likewise.
29270         (vreinterpret_p8_u8): Likewise.
29271         (vreinterpret_p8_u16): Likewise.
29272         (vreinterpret_p8_u32): Likewise.
29273         (vreinterpret_p8_u64): Likewise.
29274         (vreinterpret_p8_p16): Likewise.
29275         (vreinterpretq_p8_s8): Likewise.
29276         (vreinterpretq_p8_s16): Likewise.
29277         (vreinterpretq_p8_s32): Likewise.
29278         (vreinterpretq_p8_s64): Likewise.
29279         (vreinterpretq_p8_f32): Likewise.
29280         (vreinterpretq_p8_u8): Likewise.
29281         (vreinterpretq_p8_u16): Likewise.
29282         (vreinterpretq_p8_u32): Likewise.
29283         (vreinterpretq_p8_u64): Likewise.
29284         (vreinterpretq_p8_p16): Likewise.
29285         (vreinterpret_p16_s8): Likewise.
29286         (vreinterpret_p16_s16): Likewise.
29287         (vreinterpret_p16_s32): Likewise.
29288         (vreinterpret_p16_s64): Likewise.
29289         (vreinterpret_p16_f32): Likewise.
29290         (vreinterpret_p16_u8): Likewise.
29291         (vreinterpret_p16_u16): Likewise.
29292         (vreinterpret_p16_u32): Likewise.
29293         (vreinterpret_p16_u64): Likewise.
29294         (vreinterpret_p16_p8): Likewise.
29295         (vreinterpretq_p16_s8): Likewise.
29296         (vreinterpretq_p16_s16): Likewise.
29297         (vreinterpretq_p16_s32): Likewise.
29298         (vreinterpretq_p16_s64): Likewise.
29299         (vreinterpretq_p16_f32): Likewise.
29300         (vreinterpretq_p16_u8): Likewise.
29301         (vreinterpretq_p16_u16): Likewise.
29302         (vreinterpretq_p16_u32): Likewise.
29303         (vreinterpretq_p16_u64): Likewise.
29304         (vreinterpretq_p16_p8): Likewise.
29305         (vreinterpret_f32_s8): Likewise.
29306         (vreinterpret_f32_s16): Likewise.
29307         (vreinterpret_f32_s32): Likewise.
29308         (vreinterpret_f32_s64): Likewise.
29309         (vreinterpret_f32_u8): Likewise.
29310         (vreinterpret_f32_u16): Likewise.
29311         (vreinterpret_f32_u32): Likewise.
29312         (vreinterpret_f32_u64): Likewise.
29313         (vreinterpret_f32_p8): Likewise.
29314         (vreinterpret_f32_p16): Likewise.
29315         (vreinterpretq_f32_s8): Likewise.
29316         (vreinterpretq_f32_s16): Likewise.
29317         (vreinterpretq_f32_s32): Likewise.
29318         (vreinterpretq_f32_s64): Likewise.
29319         (vreinterpretq_f32_u8): Likewise.
29320         (vreinterpretq_f32_u16): Likewise.
29321         (vreinterpretq_f32_u32): Likewise.
29322         (vreinterpretq_f32_u64): Likewise.
29323         (vreinterpretq_f32_p8): Likewise.
29324         (vreinterpretq_f32_p16): Likewise.
29325         (vreinterpret_s64_s8): Likewise.
29326         (vreinterpret_s64_s16): Likewise.
29327         (vreinterpret_s64_s32): Likewise.
29328         (vreinterpret_s64_f32): Likewise.
29329         (vreinterpret_s64_u8): Likewise.
29330         (vreinterpret_s64_u16): Likewise.
29331         (vreinterpret_s64_u32): Likewise.
29332         (vreinterpret_s64_u64): Likewise.
29333         (vreinterpret_s64_p8): Likewise.
29334         (vreinterpret_s64_p16): Likewise.
29335         (vreinterpretq_s64_s8): Likewise.
29336         (vreinterpretq_s64_s16): Likewise.
29337         (vreinterpretq_s64_s32): Likewise.
29338         (vreinterpretq_s64_f32): Likewise.
29339         (vreinterpretq_s64_u8): Likewise.
29340         (vreinterpretq_s64_u16): Likewise.
29341         (vreinterpretq_s64_u32): Likewise.
29342         (vreinterpretq_s64_u64): Likewise.
29343         (vreinterpretq_s64_p8): Likewise.
29344         (vreinterpretq_s64_p16): Likewise.
29345         (vreinterpret_u64_s8): Likewise.
29346         (vreinterpret_u64_s16): Likewise.
29347         (vreinterpret_u64_s32): Likewise.
29348         (vreinterpret_u64_s64): Likewise.
29349         (vreinterpret_u64_f32): Likewise.
29350         (vreinterpret_u64_u8): Likewise.
29351         (vreinterpret_u64_u16): Likewise.
29352         (vreinterpret_u64_u32): Likewise.
29353         (vreinterpret_u64_p8): Likewise.
29354         (vreinterpret_u64_p16): Likewise.
29355         (vreinterpretq_u64_s8): Likewise.
29356         (vreinterpretq_u64_s16): Likewise.
29357         (vreinterpretq_u64_s32): Likewise.
29358         (vreinterpretq_u64_s64): Likewise.
29359         (vreinterpretq_u64_f32): Likewise.
29360         (vreinterpretq_u64_u8): Likewise.
29361         (vreinterpretq_u64_u16): Likewise.
29362         (vreinterpretq_u64_u32): Likewise.
29363         (vreinterpretq_u64_p8): Likewise.
29364         (vreinterpretq_u64_p16): Likewise.
29365         (vreinterpret_s8_s16): Likewise.
29366         (vreinterpret_s8_s32): Likewise.
29367         (vreinterpret_s8_s64): Likewise.
29368         (vreinterpret_s8_f32): Likewise.
29369         (vreinterpret_s8_u8): Likewise.
29370         (vreinterpret_s8_u16): Likewise.
29371         (vreinterpret_s8_u32): Likewise.
29372         (vreinterpret_s8_u64): Likewise.
29373         (vreinterpret_s8_p8): Likewise.
29374         (vreinterpret_s8_p16): Likewise.
29375         (vreinterpretq_s8_s16): Likewise.
29376         (vreinterpretq_s8_s32): Likewise.
29377         (vreinterpretq_s8_s64): Likewise.
29378         (vreinterpretq_s8_f32): Likewise.
29379         (vreinterpretq_s8_u8): Likewise.
29380         (vreinterpretq_s8_u16): Likewise.
29381         (vreinterpretq_s8_u32): Likewise.
29382         (vreinterpretq_s8_u64): Likewise.
29383         (vreinterpretq_s8_p8): Likewise.
29384         (vreinterpretq_s8_p16): Likewise.
29385         (vreinterpret_s16_s8): Likewise.
29386         (vreinterpret_s16_s32): Likewise.
29387         (vreinterpret_s16_s64): Likewise.
29388         (vreinterpret_s16_f32): Likewise.
29389         (vreinterpret_s16_u8): Likewise.
29390         (vreinterpret_s16_u16): Likewise.
29391         (vreinterpret_s16_u32): Likewise.
29392         (vreinterpret_s16_u64): Likewise.
29393         (vreinterpret_s16_p8): Likewise.
29394         (vreinterpret_s16_p16): Likewise.
29395         (vreinterpretq_s16_s8): Likewise.
29396         (vreinterpretq_s16_s32): Likewise.
29397         (vreinterpretq_s16_s64): Likewise.
29398         (vreinterpretq_s16_f32): Likewise.
29399         (vreinterpretq_s16_u8): Likewise.
29400         (vreinterpretq_s16_u16): Likewise.
29401         (vreinterpretq_s16_u32): Likewise.
29402         (vreinterpretq_s16_u64): Likewise.
29403         (vreinterpretq_s16_p8): Likewise.
29404         (vreinterpretq_s16_p16): Likewise.
29405         (vreinterpret_s32_s8): Likewise.
29406         (vreinterpret_s32_s16): Likewise.
29407         (vreinterpret_s32_s64): Likewise.
29408         (vreinterpret_s32_f32): Likewise.
29409         (vreinterpret_s32_u8): Likewise.
29410         (vreinterpret_s32_u16): Likewise.
29411         (vreinterpret_s32_u32): Likewise.
29412         (vreinterpret_s32_u64): Likewise.
29413         (vreinterpret_s32_p8): Likewise.
29414         (vreinterpret_s32_p16): Likewise.
29415         (vreinterpretq_s32_s8): Likewise.
29416         (vreinterpretq_s32_s16): Likewise.
29417         (vreinterpretq_s32_s64): Likewise.
29418         (vreinterpretq_s32_f32): Likewise.
29419         (vreinterpretq_s32_u8): Likewise.
29420         (vreinterpretq_s32_u16): Likewise.
29421         (vreinterpretq_s32_u32): Likewise.
29422         (vreinterpretq_s32_u64): Likewise.
29423         (vreinterpretq_s32_p8): Likewise.
29424         (vreinterpretq_s32_p16): Likewise.
29425         (vreinterpret_u8_s8): Likewise.
29426         (vreinterpret_u8_s16): Likewise.
29427         (vreinterpret_u8_s32): Likewise.
29428         (vreinterpret_u8_s64): Likewise.
29429         (vreinterpret_u8_f32): Likewise.
29430         (vreinterpret_u8_u16): Likewise.
29431         (vreinterpret_u8_u32): Likewise.
29432         (vreinterpret_u8_u64): Likewise.
29433         (vreinterpret_u8_p8): Likewise.
29434         (vreinterpret_u8_p16): Likewise.
29435         (vreinterpretq_u8_s8): Likewise.
29436         (vreinterpretq_u8_s16): Likewise.
29437         (vreinterpretq_u8_s32): Likewise.
29438         (vreinterpretq_u8_s64): Likewise.
29439         (vreinterpretq_u8_f32): Likewise.
29440         (vreinterpretq_u8_u16): Likewise.
29441         (vreinterpretq_u8_u32): Likewise.
29442         (vreinterpretq_u8_u64): Likewise.
29443         (vreinterpretq_u8_p8): Likewise.
29444         (vreinterpretq_u8_p16): Likewise.
29445         (vreinterpret_u16_s8): Likewise.
29446         (vreinterpret_u16_s16): Likewise.
29447         (vreinterpret_u16_s32): Likewise.
29448         (vreinterpret_u16_s64): Likewise.
29449         (vreinterpret_u16_f32): Likewise.
29450         (vreinterpret_u16_u8): Likewise.
29451         (vreinterpret_u16_u32): Likewise.
29452         (vreinterpret_u16_u64): Likewise.
29453         (vreinterpret_u16_p8): Likewise.
29454         (vreinterpret_u16_p16): Likewise.
29455         (vreinterpretq_u16_s8): Likewise.
29456         (vreinterpretq_u16_s16): Likewise.
29457         (vreinterpretq_u16_s32): Likewise.
29458         (vreinterpretq_u16_s64): Likewise.
29459         (vreinterpretq_u16_f32): Likewise.
29460         (vreinterpretq_u16_u8): Likewise.
29461         (vreinterpretq_u16_u32): Likewise.
29462         (vreinterpretq_u16_u64): Likewise.
29463         (vreinterpretq_u16_p8): Likewise.
29464         (vreinterpretq_u16_p16): Likewise.
29465         (vreinterpret_u32_s8): Likewise.
29466         (vreinterpret_u32_s16): Likewise.
29467         (vreinterpret_u32_s32): Likewise.
29468         (vreinterpret_u32_s64): Likewise.
29469         (vreinterpret_u32_f32): Likewise.
29470         (vreinterpret_u32_u8): Likewise.
29471         (vreinterpret_u32_u16): Likewise.
29472         (vreinterpret_u32_u64): Likewise.
29473         (vreinterpret_u32_p8): Likewise.
29474         (vreinterpret_u32_p16): Likewise.
29475         (vreinterpretq_u32_s8): Likewise.
29476         (vreinterpretq_u32_s16): Likewise.
29477         (vreinterpretq_u32_s32): Likewise.
29478         (vreinterpretq_u32_s64): Likewise.
29479         (vreinterpretq_u32_f32): Likewise.
29480         (vreinterpretq_u32_u8): Likewise.
29481         (vreinterpretq_u32_u16): Likewise.
29482         (vreinterpretq_u32_u64): Likewise.
29483         (vreinterpretq_u32_p8): Likewise.
29484         (vreinterpretq_u32_p16): Likewise.
29485
29486 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
29487
29488         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
29489         Pattern extended.
29490         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
29491         (sqabs): Likewise.
29492         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
29493         (vqnegd_s64): Likewise.
29494         (vqabs_s64): Likewise.
29495         (vqabsd_s64): Likewise.
29496
29497 2014-04-22  Richard Henderson  <rth@redhat.com>
29498
29499         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
29500         computation to the top of the loop.
29501
29502 2014-04-22  Renlin  <renlin.li@arm.com>
29503             Jiong Wang  <jiong.wang@arm.com>
29504
29505         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
29506         * config/aarch64/aarch64.c (aarch64_layout_frame)
29507         (aarch64_initial_elimination_offset): Likewise.
29508
29509 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
29510
29511         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
29512         Fix indentation.
29513
29514 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
29515
29516         * machmode.h (bitwise_mode_for_mode): Declare.
29517         * stor-layout.h (bitwise_type_for_mode): Likewise.
29518         * stor-layout.c (bitwise_mode_for_mode): New function.
29519         (bitwise_type_for_mode): Likewise.
29520         * builtins.c (fold_builtin_memory_op): Use it instead of
29521         int_mode_for_mode and build_nonstandard_integer_type.
29522
29523 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29524
29525         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
29526         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
29527         (*-*-solaris2*): Simplify.
29528         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
29529         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
29530         *-*-solaris2.9* handling.
29531
29532         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
29533         as bug.
29534         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
29535         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
29536         handling, simplify.
29537         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
29538         * configure: Regenerate.
29539
29540         * config/i386/sol2-9.h: Remove.
29541
29542         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
29543         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
29544         Remove Solaris 9 references.
29545
29546 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
29547
29548         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
29549         (floatuns<GPI:mode><GPF:mode>2): Remove.
29550         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
29551         and floatuns conversions.
29552         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
29553         and floatuns conversions.
29554         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
29555         (w1,w2): New mode attributes for inequal width conversions.
29556
29557 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
29558
29559         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
29560         the output asm format.
29561
29562 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
29563
29564         * config/aarch64/aarch64-simd.md
29565         (aarch64_cm<optab>di): Always split.
29566         (*aarch64_cm<optab>di): New.
29567         (aarch64_cmtstdi): Always split.
29568         (*aarch64_cmtstdi): New.
29569
29570 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
29571
29572         PR tree-optimization/60823
29573         * omp-low.c (ipa_simd_modify_function_body): Go through
29574         all SSA_NAMEs and for those refering to vector arguments
29575         which are going to be replaced adjust SSA_NAME_VAR and,
29576         if it is a default definition, change it into a non-default
29577         definition assigned at the beginning of function from new_decl.
29578         (ipa_simd_modify_stmt_ops): Rewritten.
29579         * tree-dfa.c (set_ssa_default_def): When removing default def,
29580         check for NULL loc instead of NULL *loc.
29581
29582 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29583
29584         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
29585         restrictions on core registers for DImode values in Thumb2.
29586
29587 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
29588
29589         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
29590         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
29591
29592 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
29593
29594         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
29595         (*iordi_notzesidi_di): Likewise.
29596         (*iordi_notsesidi_di): Likewise.
29597
29598 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
29599
29600         * config/arm/arm-protos.h (tune_params): New struct members.
29601         * config/arm/arm.c: Initialise tune_params per processor.
29602         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
29603         for speed, based on new tune_params.
29604
29605 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
29606
29607         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
29608         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
29609         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
29610         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
29611         * config/aarch64/arm_neon.h (vrnd_f64): Added.
29612         (vrnda_f64): Likewise.
29613         (vrndi_f64): Likewise.
29614         (vrndm_f64): Likewise.
29615         (vrndn_f64): Likewise.
29616         (vrndp_f64): Likewise.
29617         (vrndx_f64): Likewise.
29618
29619 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
29620
29621         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
29622         GET_MODE_SIZE argument is enum machine_mode.
29623
29624 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
29625
29626         PR target/60910
29627         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
29628         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
29629
29630 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
29631
29632         PR middle-end/60281
29633         * asan.c (asan_emit_stack_protection): Force the base to align to
29634         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
29635         appropriate bits if STRICT_ALIGNMENT.
29636         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
29637         when asan is on.
29638         (expand_used_vars): Leave a space in the stack frame for alignment
29639         if STRICT_ALIGNMENT.
29640
29641 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
29642
29643         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
29644         than a gimple.
29645         (gimple_store_p): Likewise.
29646         (gimple_assign_load_p): Likewise.
29647         (gimple_assign_cast_p): Likewise.
29648         (gimple_clobber_p): Likewise.
29649
29650         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
29651         rather than a gimple.
29652         (gimple_assign_cast_p): Likewise.
29653
29654 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
29655
29656         PR target/60735
29657         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
29658         If mode is DDmode and TARGET_E500_DOUBLE allow move.
29659
29660         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
29661         more debug information for E500 if -mdebug=reg.
29662
29663 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
29664
29665         PR target/60909
29666         * config/i386/i386.c (ix86_expand_builtin)
29667         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
29668         register for target RTX.
29669         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
29670
29671 2014-04-18  Cong Hou  <congh@google.com>
29672
29673         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
29674         the widen-mult pattern by handling two operands with different sizes,
29675         and operands whose size is smaller than half of the result type.
29676
29677 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
29678
29679         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
29680         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
29681         (do_estimate_edge_time): Compute it.
29682         * ipa-inline.c (want_inline_small_function_p): Bypass
29683         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
29684
29685 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
29686
29687         * ipa-inline.c (spec_rem): New static variable.
29688         (dump_overall_stats): New function.
29689         (dump_inline_stats): New function.
29690
29691 2014-04-18  Richard Henderson  <rth@redhat.com>
29692
29693         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
29694         to GET_MODE_SIZE, not a reg_class_t.
29695
29696 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29697
29698         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
29699         (vsx_xxmrglw_<mode>): Likewise.
29700
29701 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
29702
29703         PR target/60876
29704         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
29705         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
29706         (rs6000_init_hard_regno_mode_ok): Likewise.
29707
29708 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
29709
29710         * ipa-inline.c (inline_small_functions): Account only non-cold
29711         functions.
29712         * doc/invoke.texi (inline-unit-growth): Update documentation.
29713
29714 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
29715
29716         * config/rs6000/rs6000.md (addti3, subti3): New.
29717
29718 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
29719
29720         PR target/60863
29721         * config/i386/i386.c (ix86_expand_clear): Remove outdated
29722         comment.  Check optimize_insn_for_size_p instead of
29723         optimize_insn_for_speed_p.
29724
29725 2014-04-17  Martin Jambor  <mjambor@suse.cz>
29726
29727         * gimple-iterator.c (gsi_start_edge): New function.
29728         * gimple-iterator.h (gsi_start_edge): Declare.
29729         * tree-sra.c (single_non_eh_succ): New function.
29730         (disqualify_ops_if_throwing_stmt): Renamed to
29731         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
29732         having one non-EH successor BB.
29733         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
29734         generate loads into replacements.
29735         (sra_modify_assign): Likewise and and also use the simple path for
29736         such statements.
29737         (sra_modify_function_body): Commit statements on edges.
29738
29739 2014-04-17  Richard Biener  <rguenther@suse.de>
29740
29741         PR middle-end/60849
29742         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
29743         comparison results and add clarifying comment.
29744
29745 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
29746
29747         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
29748         (blank_mode): Initialize it.
29749         (emit_mode_size_inline, emit_mode_nunits_inline,
29750         emit_mode_inner_inline): New functions.
29751         (emit_insn_modes_h): Call them and surround their output with
29752         #if GCC_VERSION >= 4001 ... #endif.
29753         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
29754         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
29755         mode_* arrays if the argument is __builtin_constant_p.
29756         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
29757         is enum machine_mode.
29758
29759 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29760
29761         * passes.c (opt_pass::execute): Adjust.
29762         (pass_manager::execute_pass_mode_switching): Likewise.
29763         (early_local_passes::execute): Likewise.
29764         (execute_one_pass): Pass cfun to the pass's execute method.
29765         * tree-pass.h (opt_pass::execute): Add function * argument.
29766         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29767         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29768         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29769         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29770         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29771         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
29772         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
29773         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
29774         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
29775         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
29776         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
29777         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
29778         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
29779         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
29780         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
29781         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
29782         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
29783         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
29784         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
29785         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29786         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29787         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29788         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29789         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29790         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29791         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29792         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29793         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29794         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
29795         Adjust.
29796
29797 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29798
29799         * passes.c (opt_pass::gate): Take function * argument.
29800         (gate_all_early_local_passes): Merge into
29801         (early_local_passes::gate): this.
29802         (gate_all_early_optimizations): Merge into
29803         (all_early_optimizations::gate): this.
29804         (gate_all_optimizations): Mege into
29805         (all_optimizations::gate): this.
29806         (gate_all_optimizations_g): Merge into
29807         (all_optimizations_g::gate): this.
29808         (gate_rest_of_compilation): Mege into
29809         (rest_of_compilation::gate): this.
29810         (gate_postreload): Merge into
29811         (postreload::gate): this.
29812         (dump_one_pass): Pass cfun to the pass's gate method.
29813         (execute_ipa_summary_passes): Likewise.
29814         (execute_one_pass): Likewise.
29815         (ipa_write_summaries_2): Likewise.
29816         (ipa_write_optimization_summaries_1): Likewise.
29817         (ipa_read_summaries_1): Likewise.
29818         (ipa_read_optimization_summaries_1): Likewise.
29819         (execute_ipa_stmt_fixups): Likewise.
29820         * tree-pass.h (opt_pass::gate): Add function * argument.
29821         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
29822         combine-stack-adj.c, combine.c, compare-elim.c,
29823         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29824         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
29825         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
29826         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
29827         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
29828         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
29829         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
29830         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
29831         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
29832         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
29833         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
29834         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
29835         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
29836         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
29837         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29838         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29839         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29840         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29841         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29842         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29843         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29844         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29845         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
29846         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
29847         var-tracking.c, vtable-verify.c, web.c: Adjust.
29848
29849 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29850
29851         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
29852         * configure: Regenerate.
29853
29854 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29855
29856         * passes.c (dump_one_pass): don't check pass->has_gate.
29857         (execute_ipa_summary_passes): Likewise.
29858         (execute_one_pass): Likewise.
29859         (ipa_write_summaries_2): Likewise.
29860         (ipa_write_optimization_summaries_1): Likewise.
29861         (ipa_read_optimization_summaries_1): Likewise.
29862         (execute_ipa_stmt_fixups): Likewise.
29863         * tree-pass.h (pass_data::has_gate): Remove.
29864         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29865         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29866         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29867         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29868         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29869         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
29870         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
29871         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
29872         gimple-low.c, gimple-ssa-isolate-paths.c,
29873         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
29874         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
29875         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
29876         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
29877         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
29878         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
29879         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
29880         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
29881         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
29882         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
29883         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
29884         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29885         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29886         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29887         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29888         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29889         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29890         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29891         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29892         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29893         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29894         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
29895         Adjust.
29896
29897 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29898
29899         * pass_manager.h (pass_manager::register_dump_files_1): Remove
29900         declaration.
29901         * passes.c (pass_manager::register_dump_files_1): Merge into
29902         (pass_manager::register_dump_files): this, and remove its handling of
29903         properties since the pass always has the properties anyway.
29904         (pass_manager::pass_manager): Adjust.
29905
29906 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29907
29908         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
29909         * passes.c (pass_manager::register_dump_files_1): Remove dead code
29910         dealing with properties.
29911         (pass_manager::register_dump_files): Adjust.
29912
29913 2014-03-20  Mark Wielaard  <mjw@redhat.com>
29914
29915         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
29916         then represent the bound as normal constant value.
29917
29918 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
29919
29920         PR target/60847
29921         Forward port from 4.8 branch
29922         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
29923
29924         * config/i386/bmiintrin.h (_blsi_u32): New.
29925         (_blsi_u64): Ditto.
29926         (_blsr_u32): Ditto.
29927         (_blsr_u64): Ditto.
29928         (_blsmsk_u32): Ditto.
29929         (_blsmsk_u64): Ditto.
29930         (_tzcnt_u32): Ditto.
29931         (_tzcnt_u64): Ditto.
29932
29933 2014-04-17  Kito Cheng  <kito@0xlab.org>
29934
29935         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
29936
29937 2014-04-17  Richard Biener  <rguenther@suse.de>
29938
29939         PR middle-end/60849
29940         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
29941         boolean results for comparisons.
29942
29943 2014-04-17  Richard Biener  <rguenther@suse.de>
29944
29945         PR tree-optimization/60836
29946         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
29947         initial PHI args to be gimple values.
29948
29949 2014-04-17  Richard Biener  <rguenther@suse.de>
29950
29951         PR tree-optimization/60841
29952         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
29953         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
29954         of stmts to SLP build.
29955         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
29956         (vect_analyze_slp): Likewise.
29957         (vect_analyze_slp_instance): Likewise.
29958         (vect_build_slp_tree): Limit overall SLP tree growth.
29959         * tree-vectorizer.h (vect_analyze_data_refs,
29960         vect_analyze_slp): Adjust prototypes.
29961
29962 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
29963
29964         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
29965         Silvermont.
29966
29967 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
29968
29969         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
29970         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
29971         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
29972         for TARGET_SLOW_PSHUFB
29973
29974 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
29975
29976         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
29977         * config/i386/i386.c (intel_cost): Ditto.
29978
29979 2014-04-17  Joey Ye  <joey.ye@arm.com>
29980
29981         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
29982
29983 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
29984
29985         * opts.c (common_handle_option): Disable -fipa-reference coorectly
29986         with -fuse-profile.
29987
29988 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
29989
29990         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
29991         (type_all_derivations_known_p): New predicate.
29992         (type_all_ctors_visible_p): New predicate.
29993         (type_possibly_instantiated_p): New predicate.
29994         (get_odr_type): Compute all_derivations_known.
29995         (dump_odr_type): Dump the flag.
29996         (maybe_record_type): Cleanup.
29997         (record_target_from_binfo): Add bases_to_consider array;
29998         record bases for types w/o instances and skip CXX destructor.
29999         (possible_polymorphic_call_targets_1): Add bases_to_consider
30000         and consider_construction parameters; check if type may have instance.
30001         (get_polymorphic_call_info): Set maybe_in_construction to true
30002         when we know nothing.
30003         (record_targets_from_bases): Skip CXX destructors; they are
30004         never called for types in construction.
30005         (possible_polymorphic_call_targets): Do not record target when
30006         type may not have instance.
30007
30008 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
30009
30010         PR ipa/60854
30011         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
30012         external aliases alive, too.
30013
30014 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
30015
30016         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
30017         definition.
30018
30019 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
30020
30021         * final.c (compute_alignments): Do not apply loop alignment to a block
30022         falling through to the exit.
30023
30024 2014-04-16  Catherine Moore  <clm@codesourcery.com>
30025
30026         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
30027         Adjust constraints for microMIPS store patterns.
30028
30029 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
30030
30031         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
30032
30033 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
30034
30035         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
30036         (append_use): Run at -O0.
30037         (append_vdef): Likewise.
30038         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
30039         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
30040
30041 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
30042
30043         PR tree-optimization/60844
30044         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
30045         (propagate_op_to_single_use, remove_visited_stmt_chain,
30046         linearize_expr, repropagate_negates, reassociate_bb): Use it
30047         instead of gsi_remove.
30048
30049 2014-04-16  Martin Jambor  <mjambor@suse.cz>
30050
30051         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
30052         ipa_transforms_to_apply.
30053         (cgraph_function_versioning): Assert that old_node has empty
30054         ipa_transforms_to_apply.
30055         * trans-mem.c (ipa_tm_create_version): Likewise.
30056         * tree-inline.c (tree_function_versioning): Do not duplicate
30057         ipa_transforms_to_apply.
30058
30059 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30060
30061         PR target/60817
30062         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
30063         x86_64-*-* cases.
30064         Pass necessary as flags on 64-bit Solaris/x86.
30065         Use lowercase relocs for x86_64-*-*.
30066         * configure: Regenerate.
30067
30068 2014-04-15  Jan Hubicka  <jh@suse.cz>
30069
30070         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
30071         (maybe_record_node, likely_target_p): Use it.
30072
30073 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30074
30075         PR target/60839
30076         Revert following patch
30077
30078         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
30079
30080         PR target/60735
30081         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
30082         software floating point or no floating point registers, do not
30083         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
30084         in GPRs that occurs after we tested for GPRs that would never be
30085         true.
30086
30087         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
30088         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
30089         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
30090         specifically allow DDmode, since that does not use the SPE SIMD
30091         instructions.
30092
30093 2014-03-21  Mark Wielaard  <mjw@redhat.com>
30094
30095         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
30096         as unsigned or int depending on type and value used.
30097
30098 2014-04-15  Richard Biener  <rguenther@suse.de>
30099
30100         PR rtl-optimization/56965
30101         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
30102         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
30103         ... here.
30104         * alias.c (true_dependence_1): Do not call
30105         nonoverlapping_component_refs_p.
30106         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
30107         nonoverlapping_component_refs_p.
30108         (indirect_refs_may_alias_p): Likewise.
30109
30110 2014-04-15  Teresa Johnson  <tejohnson@google.com>
30111
30112         * cfg.c (dump_bb_info): Fix flags check.
30113         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
30114
30115 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30116
30117         PR rtl-optimization/60663
30118         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
30119         avoid 0 cost.
30120
30121 2014-04-15  Richard Biener  <rguenther@suse.de>
30122
30123         * lto-streamer.h (LTO_major_version): Bump to 4.
30124
30125 2014-04-15  Richard Biener  <rguenther@suse.de>
30126
30127         * common.opt (lto_partition_model): New enum.
30128         (flto-partition=): Merge separate options with a single with argument,
30129         add -flto-partition=one support.
30130         * flag-types.h (enum lto_partition_model): Declare.
30131         * opts.c (finish_options): Remove duplicate -flto-partition=
30132         option check.
30133         * lto-wrapper.c (run_gcc): Adjust.
30134
30135 2014-04-15  Richard Biener  <rguenther@suse.de>
30136
30137         * alias.c (ncr_compar): New function.
30138         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
30139
30140 2014-04-15  Richard Biener  <rguenther@suse.de>
30141
30142         * alias.c (record_component_aliases): Do not walk BINFOs.
30143
30144 2014-04-15  Richard Biener  <rguenther@suse.de>
30145
30146         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
30147         Add struct function argument and adjust.
30148         (find_func_aliases_for_call): Likewise.
30149         (find_func_aliases): Likewise.
30150         (find_func_clobbers): Likewise.
30151         (intra_create_variable_infos): Likewise.
30152         (compute_points_to_sets): Likewise.
30153         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
30154
30155 2014-04-15  Richard Biener  <rguenther@suse.de>
30156
30157         * tree.c (iterative_hash_expr): Use enum tree_code_class
30158         to store TREE_CODE_CLASS.
30159         (tree_block): Likewise.
30160         (tree_set_block): Likewise.
30161         * tree.h (fold_build_pointer_plus_loc): Use
30162         convert_to_ptrofftype_loc.
30163
30164 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
30165
30166         PR plugins/59335
30167         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
30168         added in 4.9.
30169
30170 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
30171
30172         * cfgloop.h (struct loop): Move force_vectorize down.
30173         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
30174         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
30175         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
30176         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
30177         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
30178         * tree-core.h (enum annot_expr_kind): Add new kind values.
30179         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
30180         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
30181         kinds.
30182         * tree.def (ANNOTATE_EXPR): Tweak comment.
30183
30184 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
30185
30186         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
30187         cxa_pure_virtual).
30188
30189 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
30190
30191         * tree.h (TYPE_IDENTIFIER): Declare.
30192         * tree.c (subrange_type_for_debug_p): Use it.
30193         * godump.c (go_format_type): Likewise.
30194         * dwarf2out.c (is_cxx_auto, modified_type_die,
30195         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
30196         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
30197
30198 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
30199
30200         PR lto/60820
30201         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
30202
30203 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
30204
30205         * config/i386/i386.c (examine_argument): Return bool.  Return true if
30206         parameter should be passed in memory.
30207         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
30208         (construct_container): Update calls to examine_argument.
30209         (function_arg_advance_64): Ditto.
30210         (return_in_memory_32): Merge with ix86_return_in_memory.
30211         (return_in_memory_64): Ditto.
30212         (return_in_memory_ms_64): Ditto.
30213
30214 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
30215
30216         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
30217         * coverage.c (coverage_compute_profile_id): Handle externally visible
30218         symbols.
30219
30220 2014-04-14  Martin Jambor  <mjambor@suse.cz>
30221
30222         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
30223         DECL_DISREGARD_INLINE_LIMITS functions.
30224
30225 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
30226
30227         PR target/60827
30228         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
30229
30230 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
30231
30232         PR target/60827
30233         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
30234         optimize_insn_for_speed_p instead of
30235         optimize_function_for_speed_p.
30236
30237 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
30238
30239         * doc/invoke.texi (free): Document AArch64.
30240
30241 2014-04-14  Richard Biener  <rguenther@suse.de>
30242
30243         PR tree-optimization/60042
30244         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
30245         (insert_into_preds_of_block): Do not prevent PHI insertion
30246         for REFERENCE exprs here ...
30247         (eliminate_dom_walker::before_dom_children): ... but prevent
30248         their use here under similar conditions when applied to the
30249         IL after PRE optimizations.
30250
30251 2014-04-14  Richard Biener  <rguenther@suse.de>
30252
30253         * passes.def: Move early points-to after early SRA.
30254
30255 2014-04-14  Richard Biener  <rguenther@suse.de>
30256
30257         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
30258         check for which sign-changes we allow when forwarding
30259         a converted value into a switch.
30260
30261 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
30262
30263         * stor-layout.c (place_field): Finalize non-constant offset for the
30264         field, if any.
30265
30266 2014-04-14  Richard Biener  <rguenther@suse.de>
30267
30268         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
30269         as argument.
30270         (expand_switch_using_bit_tests_p): Likewise.
30271         (process_switch): Compute and pass on speed_p based on the
30272         switch stmt.
30273         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
30274         optimize_bb_for_speed_p.
30275
30276 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
30277
30278         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
30279         * function.h (struct function): Rename has_force_vect_loops into
30280         has_force_vectorize_loops.
30281         * lto-streamer-in.c (input_cfg): Adjust for renaming.
30282         (input_struct_function_base): Likewise.
30283         * lto-streamer-out.c (output_cfg): Likewise.
30284         (output_struct_function_base): Likewise.
30285         * omp-low.c (expand_omp_simd): Likewise.
30286         * tree-cfg.c (move_sese_region_to_fn): Likewise.
30287         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
30288         (version_loop_for_if_conversion): Likewise.
30289         (tree_if_conversion): Likewise.
30290         (main_tree_if_conversion): Likewise.
30291         (gate_tree_if_conversion): Likewise.
30292         * tree-inline.c (copy_loops): Likewise.
30293         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
30294         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
30295         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
30296         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
30297         * tree-vectorizer.c (vectorize_loops): Likewise.
30298         * tree-vectorizer.h (unlimited_cost_model): Likewise.
30299
30300 2014-04-14  Richard Biener  <rguenther@suse.de>
30301
30302         PR lto/60720
30303         * lto-streamer-out.c (wrap_refs): New function.
30304         (lto_output): Wrap symbol references in global initializes in
30305         type-preserving MEM_REFs.
30306
30307 2014-04-14  Christian Bruel  <christian.bruel@st.com>
30308
30309         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
30310
30311 2014-04-14  Christian Bruel  <christian.bruel@st.com>
30312
30313         * config/sh/sh.md (setmemqi): New expand pattern.
30314         * config/sh/sh.h (CLEAR_RATIO): Define.
30315         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
30316         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
30317
30318 2014-04-14  Richard Biener  <rguenther@suse.de>
30319
30320         PR middle-end/55022
30321         * fold-const.c (negate_expr_p): Don't negate directional rounding
30322         division.
30323         (fold_negate_expr): Likewise.
30324
30325 2014-04-14  Richard Biener  <rguenther@suse.de>
30326
30327         PR tree-optimization/59817
30328         PR tree-optimization/60453
30329         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
30330         recursion to catch all CHRECs in the scalar evolution and restrict
30331         the predicate for the remains appropriately.
30332
30333 2014-04-12  Catherine Moore  <clm@codesourcery.com>
30334
30335         * config/mips/constraints.md: Add new register constraint "kb".
30336         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
30337         (*movhi_internal): Likewise.
30338         (*movqi_internal): Likewise.
30339         * config/mips/mips.h (M16_STORE_REGS): New register class.
30340         (REG_CLASS_NAMES): Add M16_STORE_REGS.
30341         (REG_CLASS_CONTENTS): Likewise.
30342         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
30343
30344 2014-04-11  Tobias Burnus  <burnus@net-b.de>
30345
30346         PR c/60194
30347         * doc/invoke.texi (-Wformat-signedness): Document it.
30348         (Wformat=2): Mention that this enables -Wformat-signedness.
30349
30350 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
30351
30352         * common/config/epiphany/epiphany-common.c
30353         (epiphany_option_optimization_table): Enable section anchors by
30354         default at -O1 or higher.
30355         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
30356         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
30357         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
30358         carries no extra cost.
30359         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
30360         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
30361         * config/epiphany/predicates.md (memclob_operand): New predicate.
30362         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
30363         Use memclob_operand predicate and X constraint for operand 3.
30364
30365 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
30366
30367         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
30368         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
30369         its operands.
30370
30371 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
30372
30373         PR rtl-optimization/60651
30374         * mode-switching.c (optimize_mode_switching): Make sure to emit
30375         sets of a lower numbered entity before sets of a higher numbered
30376         entity to a mode of the same or lower priority.
30377         When creating a seginfo for a basic block that starts with a code
30378         label, move the insertion point past the code label.
30379         (new_seginfo): Document and enforce requirement that
30380         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
30381         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
30382         * doc/tm.texi: Regenerate.
30383
30384 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
30385
30386         PR target/60811
30387         * config/arc/arc.c (arc_save_restore): Fix assert typo.
30388
30389 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
30390
30391         * BASE-VER: Set to 4.10.0.
30392
30393 2014-04-11  Tobias Burnus  <burnus@net-b.de>
30394
30395         PR other/59055
30396         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
30397         * doc/gcc.texi (Service): Update description in the @menu
30398         * doc/invoke.texi (Option Summary): Remove misplaced and
30399         duplicated @menu.
30400
30401 2014-04-11  Steve Ellcey  <sellcey@mips.com>
30402             Jakub Jelinek  <jakub@redhat.com>
30403
30404         PR middle-end/60556
30405         * expr.c (convert_move): Use emit_store_flag_force instead of
30406         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
30407         argument to it.
30408
30409 2014-04-11  Richard Biener  <rguenther@suse.de>
30410
30411         PR middle-end/60797
30412         * varasm.c (assemble_alias): Avoid endless error reporting
30413         recursion by setting TREE_ASM_WRITTEN.
30414
30415 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30416
30417         * config/s390/s390.md: Add a splitter for NOT rtx.
30418
30419 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
30420
30421         PR rtl-optimization/60663
30422         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
30423
30424 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
30425             Jakub Jelinek  <jakub@redhat.com>
30426
30427         PR lto/60567
30428         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
30429         flag from decl_node to node.
30430
30431 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30432
30433         PR debug/60655
30434         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
30435         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
30436         ameliorating the cases where it can be.
30437
30438 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
30439
30440         Revert
30441         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
30442
30443         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
30444         (loadsync_<mode>): Change mode.
30445         (load_quadpti, store_quadpti): New.
30446         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
30447         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
30448         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
30449
30450 2014-04-09  Cong Hou  <congh@google.com>
30451
30452         PR testsuite/60773
30453         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
30454         documentation.
30455
30456 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30457
30458         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
30459         instead of vnor to exploit possible fusion opportunity in the
30460         future.
30461         (altivec_expand_vec_perm_const_le): Likewise.
30462
30463 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
30464
30465         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
30466         (loadsync_<mode>): Change mode.
30467         (load_quadpti, store_quadpti): New.
30468         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
30469         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
30470
30471 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
30472
30473         PR target/60763
30474         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
30475         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
30476         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
30477
30478 2014-04-08  Richard Biener  <rguenther@suse.de>
30479
30480         PR middle-end/60706
30481         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
30482         a 64bit widest int print double-int similar to on HWI64 hosts.
30483
30484 2014-04-08  Richard Biener  <rguenther@suse.de>
30485
30486         PR tree-optimization/60785
30487         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
30488         default defs properly.
30489
30490 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
30491
30492         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
30493         (Weffc++): Likewise.
30494
30495 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
30496
30497         * ipa-devirt.c (maybe_record_node): When node is not recorded,
30498         set completep to false rather than true.
30499
30500 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
30501
30502         PR target/60504
30503         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
30504         ARM_TARGET2_DWARF_FORMAT.
30505
30506 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
30507
30508         PR target/60609
30509         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
30510         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
30511         ADDR_DIFF_VEC.
30512
30513 2014-04-07  Richard Biener  <rguenther@suse.de>
30514
30515         PR tree-optimization/60766
30516         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
30517         (may_eliminate_iv): Convert cand_value_at result to desired type.
30518
30519 2014-04-07  Jason Merrill  <jason@redhat.com>
30520
30521         PR c++/60731
30522         * common.opt (-fno-gnu-unique): Add.
30523         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
30524
30525 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30526
30527         * haifa-sched.c: Fix outdated function reference and minor
30528         grammar errors in introductory comment.
30529
30530 2014-04-07  Richard Biener  <rguenther@suse.de>
30531
30532         PR middle-end/60750
30533         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
30534         for noreturn calls.
30535         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
30536
30537 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
30538
30539         PR debug/55794
30540         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
30541         size accounting for thunks.
30542         (pa_asm_output_mi_thunk): Use final_start_function() and
30543         final_end_function() to output function start and end directives.
30544
30545 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
30546
30547         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
30548         device specific ISA/ feature information. Remove short_sp and
30549         errata_skip ds.  Add avr_device_specific_features enum to have device
30550         specific info.
30551         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
30552         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
30553         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
30554         updated device specific info.
30555         * config/avr/avr-mcus.def: Merge device specific details to
30556         dev_attribute field.
30557         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
30558         errata_skip.
30559         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
30560         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
30561         assembler if RMW isa supported by current device.
30562         * config/avr/genmultilib.awk: Update as device info structure changed.
30563         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
30564
30565 2014-04-04  Cong Hou  <congh@google.com>
30566
30567         PR tree-optimization/60656
30568         * tree-vect-stmts.c (supportable_widening_operation):
30569         Fix a bug that elements in a vector with vect_used_by_reduction
30570         property are incorrectly reordered when the operation on it is not
30571         consistant with the one in reduction operation.
30572
30573 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
30574
30575         PR rtl-optimization/60155
30576         * gcse.c (record_set_data): New function.
30577         (single_set_gcse): New function.
30578         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
30579         (hoist_code): Likewise.
30580         (get_pressure_class_and_nregs): Likewise.
30581
30582 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
30583
30584         * explow.c (probe_stack_range): Emit a final optimization blockage.
30585
30586 2014-04-04  Anthony Green  <green@moxielogic.com>
30587
30588         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
30589         typos.
30590
30591 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
30592
30593         PR ipa/59626
30594         * lto-cgraph.c (input_overwrite_node): Check that partitioning
30595         flags are set only during streaming.
30596         * ipa.c (process_references, walk_polymorphic_call_targets,
30597         symtab_remove_unreachable_nodes): Drop bodies of always inline
30598         after early inlining.
30599         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
30600
30601 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
30602         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30603
30604         PR debug/60655
30605         * dwarf2out.c (const_ok_for_output_1): Reject expressions
30606         containing a NOT.
30607
30608 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30609
30610         PR bootstrap/60743
30611         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
30612         duration.
30613         (cortex_a53_fdivd): Likewise.
30614
30615 2014-04-04  Martin Jambor  <mjambor@suse.cz>
30616
30617         PR ipa/60640
30618         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
30619         Adjust all callers.
30620         * cgraph.c (clone_of_p): Also return true if thunks match.
30621         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
30622         cgraph_function_or_thunk_node and an obsolete comment.
30623         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
30624         file.
30625         (build_function_decl_skip_args): Likewise.
30626         (set_new_clone_decl_and_node_flags): New function.
30627         (duplicate_thunk_for_node): Likewise.
30628         (redirect_edge_duplicating_thunks): Likewise.
30629         (cgraph_clone_node): New parameter args_to_skip, pass it to
30630         redirect_edge_duplicating_thunks which is called instead of
30631         cgraph_redirect_edge_callee.
30632         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
30633         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
30634
30635 2014-04-04  Jeff Law  <law@redhat.com>
30636
30637         PR target/60657
30638         * config/arm/predicates.md (const_int_I_operand): New predicate.
30639         (const_int_M_operand): Similarly.
30640         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
30641         const_int_operand.
30642         (insv_t2, extv_reg, extzv_t2): Likewise.
30643         (load_multiple_with_writeback): Similarly for const_int_I_operand.
30644         (pop_multiple_with_writeback_and_return): Likewise.
30645         (vfp_pop_multiple_with_writeback): Likewise
30646
30647 2014-04-04  Richard Biener  <rguenther@suse.de>
30648
30649         PR ipa/60746
30650         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
30651         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
30652         non-GIMPLE_LABELs.
30653         * gimplify.h (gimple_add_tmp_var_fn): Declare.
30654         * gimplify.c (gimple_add_tmp_var_fn): New function.
30655         * gimple-expr.h (create_tmp_reg_fn): Declare.
30656         * gimple-expr.c (create_tmp_reg_fn): New function.
30657         * gimple-low.c (record_vars_into): Don't change cfun.
30658         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
30659         code generation without cfun.
30660
30661 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
30662
30663         PR bootstrap/60719
30664         * Makefile.in (install-driver): Fix shell scripting.
30665
30666 2014-04-03  Cong Hou  <congh@google.com>
30667
30668         PR tree-optimization/60505
30669         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
30670         threshold of number of iterations below which no vectorization
30671         will be done.
30672         * tree-vect-loop.c (new_loop_vec_info):
30673         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
30674         * tree-vect-loop.c (vect_analyze_loop_operations):
30675         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
30676         * tree-vect-loop.c (vect_transform_loop):
30677         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
30678         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
30679         of iterations of the loop and see if we should build the epilogue.
30680
30681 2014-04-03  Richard Biener  <rguenther@suse.de>
30682
30683         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
30684         (streamer_tree_cache_create): Adjust.
30685         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
30686         to allow optional nodes array.
30687         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
30688         (streamer_tree_cache_append): Likewise.
30689         (streamer_tree_cache_create): Create nodes array optionally
30690         as specified by parameter.
30691         * lto-streamer-out.c (create_output_block): Avoid maintaining
30692         the node array in the writer cache.
30693         (DFS_write_tree): Remove assertion.
30694         (produce_asm_for_decls): Free the out decl state hash table early.
30695         * lto-streamer-in.c (lto_data_in_create): Adjust for
30696         streamer_tree_cache_create prototype change.
30697
30698 2014-04-03  Richard Biener  <rguenther@suse.de>
30699
30700         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
30701         set TREE_CHAIN to NULL_TREE.
30702
30703 2014-04-03  Richard Biener  <rguenther@suse.de>
30704
30705         PR tree-optimization/60740
30706         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
30707         over all GIMPLE_COND operands.
30708
30709 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
30710
30711         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
30712         (Weffc++): Remove Scott's numbering, merge lists and reference
30713         Wnon-virtual-dtor.
30714
30715 2014-04-03  Nick Clifton  <nickc@redhat.com>
30716
30717         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
30718         properly.
30719
30720 2014-04-03  Martin Jambor  <mjambor@suse.cz>
30721
30722         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
30723         mention gcc_unreachable before failing.
30724         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
30725         removed symbols.
30726
30727 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
30728
30729         PR ipa/60659
30730         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
30731         inconsistent code and instead mark the context inconsistent.
30732         (possible_polymorphic_call_targets): For inconsistent contexts
30733         return empty complete list.
30734
30735 2014-04-02  Anthony Green  <green@moxielogic.com>
30736
30737         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
30738         (extendqisi2, extendhisi2): Define.
30739         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
30740         (WCHAR_TYPE): Change to unsigned int.
30741
30742 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30743
30744         PR tree-optimization/60733
30745         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
30746         insertion point for PHI candidates to be the end of the feeding
30747         block for the PHI argument.
30748
30749 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
30750
30751         PR rtl-optimization/60650
30752         * lra-constraints.c (process_alt_operands): Decrease reject for
30753         earlyclobber matching.
30754
30755 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30756
30757         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
30758
30759 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30760
30761         * config/spu/spu.c (pad_bb): Do not crash when the last
30762         insn is CODE_FOR_blockage.
30763
30764 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30765
30766         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
30767         lies outside the target mode.
30768
30769 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
30770
30771         PR target/60735
30772         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
30773         software floating point or no floating point registers, do not
30774         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
30775         in GPRs that occurs after we tested for GPRs that would never be
30776         true.
30777
30778         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
30779         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
30780         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
30781         specifically allow DDmode, since that does not use the SPE SIMD
30782         instructions.
30783
30784 2014-04-02  Richard Biener  <rguenther@suse.de>
30785
30786         PR middle-end/60729
30787         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
30788         MODE_INTs.  Properly use negv_optab.
30789         (expand_abs): Likewise.
30790
30791 2014-04-02  Richard Biener  <rguenther@suse.de>
30792
30793         PR bootstrap/60719
30794         * Makefile.in (install-driver): Guard extra installs with special
30795         names properly.
30796
30797 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
30798
30799         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30800         Document vec_vgbbd.
30801
30802 2014-04-01  Richard Henderson  <rth@redhat.com>
30803
30804         PR target/60704
30805         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
30806         alternative enabled before register allocation.
30807
30808 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
30809
30810         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
30811         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
30812         typo.
30813         (nios2_large_got_address): Remove unneeded 'sym' parameter.
30814         (nios2_got_address): Update nios2_large_got_address call site.
30815         (nios2_delegitimize_address): New function.
30816         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
30817         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
30818         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
30819
30820 2014-04-01  Martin Husemann  <martin@duskware.de>
30821
30822         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
30823         for -mabi=32.
30824
30825 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
30826
30827         PR rtl-optimization/60604
30828         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
30829         check from register_operand.
30830         (register_operand): Redefine in terms of general_operand.
30831         (nonmemory_operand): Use register_operand for the non-constant cases.
30832
30833 2014-04-01  Richard Biener  <rguenther@suse.de>
30834
30835         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
30836
30837 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30838
30839         * doc/invoke.texi (mapp-regs): Clarify.
30840
30841 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
30842
30843         * config/i386/avx512fintrin.h (__v32hi): Define type.
30844         (__v64qi): Likewise.
30845         (_mm512_set1_epi8): Define.
30846         (_mm512_set1_epi16): Define.
30847         (_mm512_set4_epi32): Define.
30848         (_mm512_set4_epi64): Define.
30849         (_mm512_set4_pd): Define.
30850         (_mm512_set4_ps): Define.
30851         (_mm512_setr4_epi64): Define.
30852         (_mm512_setr4_epi32): Define.
30853         (_mm512_setr4_pd): Define.
30854         (_mm512_setr4_ps): Define.
30855         (_mm512_setzero_epi32): Define.
30856
30857 2014-03-31  Martin Jambor  <mjambor@suse.cz>
30858
30859         PR middle-end/60647
30860         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
30861         callsite_arguments_match_p.  Updated all callers.  Also check types of
30862         corresponding formal parameters and actual arguments.
30863         (not_all_callers_have_enough_arguments_p) Renamed to
30864         some_callers_have_mismatched_arguments_p.
30865
30866 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
30867
30868         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
30869
30870 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
30871
30872         PR target/60034
30873         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
30874         section anchor.
30875
30876 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
30877
30878         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
30879         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
30880         Split out
30881         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
30882         Use FMAMODE_NOVF512 mode iterator.
30883         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
30884         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
30885         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
30886         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
30887         Split out
30888         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
30889         Use VF_128_256 mode iterator.
30890         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
30891         Ditto.
30892
30893 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
30894
30895         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
30896         static chain if needed.
30897
30898 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
30899
30900         PR target/60697
30901         * lra-constraints.c (index_part_to_reg): New.
30902         (process_address): Use it.
30903
30904 2014-03-27  Jeff Law  <law@redhat.com>
30905             Jakub Jelinek  <jakub@redhat.com>
30906
30907         PR target/60648
30908         * expr.c (do_tablejump): Use simplify_gen_binary rather than
30909         gen_rtx_{PLUS,MULT} to build up the address expression.
30910
30911         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
30912         creating non-canonical RTL.
30913
30914 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
30915
30916         PR ipa/60243
30917         * ipa-inline.c (want_inline_small_function_p): Short circuit large
30918         functions; reorganize to make cheap checks first.
30919         (inline_small_functions): Do not estimate growth when dumping;
30920         it is expensive.
30921         * ipa-inline.h (inline_summary): Add min_size.
30922         (growth_likely_positive): New function.
30923         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
30924         (set_cond_stmt_execution_predicate): Cleanup.
30925         (estimate_edge_size_and_time): Compute min_size.
30926         (estimate_calls_size_and_time): Likewise.
30927         (estimate_node_size_and_time): Likewise.
30928         (inline_update_overall_summary): Update min_size.
30929         (do_estimate_edge_time): Likewise.
30930         (do_estimate_edge_size): Update.
30931         (do_estimate_edge_hints): Update.
30932         (growth_likely_positive): New function.
30933
30934 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
30935
30936         PR target/60693
30937         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
30938         also if addr has VOIDmode.
30939
30940 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30941
30942         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
30943         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
30944         Declare extern.
30945         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
30946         instructions as well as AdvancedSIMD loads.
30947
30948 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30949
30950         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
30951         Use crypto_aese type.
30952         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
30953         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
30954         crypto_aese, crypto_aesmc.  Move to types.md.
30955         * config/arm/types.md (crypto_aes): Split into crypto_aese,
30956         crypto_aesmc.
30957         * config/arm/iterators.md (crypto_type): Likewise.
30958
30959 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
30960
30961         * cgraph.c: Include expr.h and tree-dfa.h.
30962         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
30963         remove LHS.
30964
30965 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
30966
30967         PR target/60675
30968         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
30969         regs from checking multi-reg pseudos.
30970
30971 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30972
30973         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
30974
30975 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30976
30977         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
30978         if it would clobber the stack pointer, even temporarily.
30979
30980 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
30981
30982         * mode-switching.c: Make small adjustments to the top comment.
30983
30984 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
30985
30986         * config/rs6000/constraints.md (wD constraint): New constraint to
30987         match the constant integer to get the top DImode/DFmode out of a
30988         vector in a VSX register.
30989
30990         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
30991         match the constant integer to get the top DImode/DFmode out of a
30992         vector in a VSX register.
30993
30994         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
30995         for ISA 2.07.
30996
30997         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
30998         vbpermq builtins.
30999
31000         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
31001         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
31002
31003         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
31004         Optimize vec_extract of 64-bit values, where the value being
31005         extracted is in the top word, where we can use scalar
31006         instructions.  Add direct move and store support.  Combine the big
31007         endian/little endian vector select load support into a single insn.
31008         (vsx_extract_<mode>_internal1): Likewise.
31009         (vsx_extract_<mode>_internal2): Likewise.
31010         (vsx_extract_<mode>_load): Likewise.
31011         (vsx_extract_<mode>_store): Likewise.
31012         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
31013         combined into vsx_extract_<mode>_load.
31014         (vsx_extract_<mode>_one_le): Likewise.
31015
31016         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
31017         define the top 64-bit vector element.
31018
31019         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
31020         constraint.
31021
31022         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
31023         Document vec_vbpermq builtin.
31024
31025         PR target/60672
31026         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
31027         enable use of xxsldwi and xxpermdi builtin functions.
31028         (vec_xxpermdi): Likewise.
31029
31030         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
31031         Document use of vec_xxsldwi and vec_xxpermdi builtins.
31032
31033 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
31034
31035         PR rtl-optimization/60650
31036         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
31037         first_p.  Use it.
31038         (find_spills_for): New.
31039         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
31040         Spill all pseudos on the second iteration.
31041
31042 2014-03-27  Marek Polacek  <polacek@redhat.com>
31043
31044         PR c/50347
31045         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
31046         types.
31047
31048 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31049
31050         * config/s390/s390.c (s390_can_use_return_insn): Check for
31051         call-saved FPRs on 31 bit.
31052
31053 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
31054
31055         PR middle-end/60682
31056         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
31057         if they need regimplification, just drop them instead of
31058         calling gimple_regimplify_operands on them.
31059
31060 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
31061
31062         PR target/60580
31063         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
31064         (aarch64_frame_pointer_required): Adjust logic.
31065         (aarch64_can_eliminate): Adjust logic.
31066         (aarch64_override_options_after_change): Adjust logic.
31067
31068 2014-03-27  Dehao Chen  <dehao@google.com>
31069
31070         * ipa-inline.c (early_inliner): Update node's inline info.
31071
31072 2014-03-26  Dehao Chen  <dehao@google.com>
31073
31074         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
31075         compiler inserted conditional jumps for NAN float check.
31076
31077 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
31078
31079         * ubsan.h (ubsan_create_data): Change second argument's type
31080         to const location_t *.
31081         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
31082         _("<unknown>").
31083         (ubsan_create_data): Change second argument to const location_t *PLOC.
31084         Create Loc field whenever PLOC is non-NULL.
31085         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
31086         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
31087         callers.
31088
31089         PR other/59545
31090         * real.c (real_to_integer2): Change type of low to UHWI.
31091
31092 2014-03-26  Tobias Burnus  <burnus@net-b.de>
31093
31094         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
31095         (CILK_SELF_SPECS): New define.
31096         (driver_self_specs): Use it.
31097
31098 2014-03-26  Richard Biener  <rguenther@suse.de>
31099
31100         * tree-pretty-print.c (percent_K_format): Implement special
31101         case for LTO and its stripped down BLOCK tree.
31102
31103 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
31104
31105         PR sanitizer/60636
31106         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
31107
31108         * tree-vrp.c (simplify_internal_call_using_ranges): If only
31109         one range is range_int_cst_p, but not both, at least optimize
31110         addition/subtraction of 0 and multiplication by 0 or 1.
31111         * gimple-fold.c (gimple_fold_call): Fold
31112         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
31113         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
31114         INTEGER_CSTs, try to fold at least x * 0 and y - y.
31115
31116 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
31117
31118         PR rtl-optimization/60452
31119         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
31120         <case REG>: Return 1 for invalid offsets from the frame pointer.
31121
31122 2014-03-26  Marek Polacek  <polacek@redhat.com>
31123
31124         PR c/37428
31125         * doc/extend.texi (C Extensions): Mention variable-length arrays in
31126         a structure/union.
31127
31128 2014-03-26  Marek Polacek  <polacek@redhat.com>
31129
31130         PR c/39525
31131         * doc/extend.texi (Designated Inits): Describe what happens to omitted
31132         field members.
31133
31134 2014-03-26  Marek Polacek  <polacek@redhat.com>
31135
31136         PR other/59545
31137         * ira-color.c (update_conflict_hard_regno_costs): Perform the
31138         multiplication in unsigned type.
31139
31140 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
31141
31142         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
31143
31144 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
31145
31146         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
31147
31148 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
31149
31150         PR ipa/60315
31151         * cif-code.def (UNREACHABLE) New code.
31152         * ipa-inline.c (inline_small_functions): Skip edges to
31153         __builtlin_unreachable.
31154         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
31155         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
31156         predicate to __bulitin_unreachable.
31157         (set_cond_stmt_execution_predicate): Fix issue when
31158         invert_tree_comparison returns ERROR_MARK.
31159         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
31160         propagate to inline clones.
31161         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
31162         to unreachable.
31163         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
31164         * cgraphclones.c (cgraph_clone_node): If call destination is already
31165         ureachable, do not redirect it back.
31166         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
31167         unreachable.
31168
31169 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
31170
31171         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
31172         Do not modify inline clones.
31173
31174 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
31175
31176         * config/i386/i386.md (general_sext_operand): New mode attr.
31177         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
31178         don't generate (sign_extend (const_int)).
31179         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
31180         operands[2].  Use We constraint instead of <i> and
31181         <general_sext_operand> predicate instead of <general_operand>.
31182         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
31183         * config/i386/constraints.md (We): New constraint.
31184         * config/i386/predicates.md (x86_64_sext_operand,
31185         sext_operand): New predicates.
31186
31187 2014-03-25  Martin Jambor  <mjambor@suse.cz>
31188
31189         PR ipa/60600
31190         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
31191         inconsistent devirtualizations to __builtin_unreachable.
31192
31193 2014-03-25  Marek Polacek  <polacek@redhat.com>
31194
31195         PR c/35449
31196         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
31197
31198 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
31199
31200         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
31201         order of elements for big-endian.
31202
31203 2014-03-25  Richard Biener  <rguenther@suse.de>
31204
31205         PR middle-end/60635
31206         * gimplify-me.c (gimple_regimplify_operands): Update the
31207         re-gimplifed stmt.
31208
31209 2014-03-25  Martin Jambor  <mjambor@suse.cz>
31210
31211         PR ipa/59176
31212         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
31213         (lto_output_varpool_node): Likewise.
31214         (input_overwrite_node): Likewise.
31215         (input_varpool_node): Likewise.
31216
31217 2014-03-25  Richard Biener  <rguenther@suse.de>
31218
31219         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
31220         (run_gcc): Likewise.
31221
31222 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
31223
31224         * combine.c (simplify_compare_const): Add MODE argument.
31225         Handle mode_width 0 as very large mode_width.
31226         (try_combine, simplify_comparison): Adjust callers.
31227
31228         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
31229         type to avoid signed integer overflow.
31230         * explow.c (plus_constant): Likewise.
31231
31232 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
31233
31234         * doc/generic.texi: Correct typos.
31235
31236 2014-03-24  Tobias Burnus  <burnus@net-b.de>
31237
31238         * doc/invoke.texi (-flto): Expand section about
31239         using static libraries with LTO.
31240
31241 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31242
31243         PR rtl-optimization/60501
31244         * optabs.def (addptr3_optab): New optab.
31245         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
31246         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
31247         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
31248
31249         * lra.c (emit_add3_insn): Use the addptr pattern if available.
31250
31251         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
31252
31253 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
31254
31255         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
31256         _mm512_set1_pd.
31257
31258         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
31259         (_mm256_undefined_ps): Define.
31260         (_mm256_undefined_pd): Define.
31261         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
31262         (_mm_undefined_pd): Define.
31263         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
31264         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
31265         (_mm512_undefined_ps): Define.
31266         (_mm512_undefined_pd): Define.
31267         Use _mm*_undefined_*.
31268         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
31269
31270 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
31271
31272         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
31273         (lshr_simd): DI mode added.
31274         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
31275         (aarch64_ushr_simddi): Likewise.
31276         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
31277         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
31278         (vshrd_n_u64): Likewise.
31279
31280 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31281
31282         * Makefile.in (s-macro_list): Depend on cc1.
31283
31284 2014-03-23  Teresa Johnson  <tejohnson@google.com>
31285
31286         * ipa-utils.c (ipa_print_order): Use specified dump file.
31287
31288 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
31289
31290         PR rtl-optimization/60601
31291         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
31292
31293         * gcc.c (eval_spec_function): Initialize save_growing_value.
31294
31295 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
31296
31297         PR sanitizer/60613
31298         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
31299         code == MINUS_EXPR, never swap op0 with op1.
31300
31301         * toplev.c (init_local_tick): Avoid signed integer multiplication
31302         overflow.
31303         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
31304         shift by first operand's bitsize.
31305
31306 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
31307
31308         PR target/60610
31309         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
31310         redefine to 1 or 0.
31311         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
31312         TARGET_ISA_64BIT_P(x).
31313
31314 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31315
31316         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
31317         pattern for vector nor instead of subtract from splat(-1).
31318         (altivec_expand_vec_perm_const_le): Likewise.
31319
31320 2014-03-21  Richard Henderson  <rth@twiddle.net>
31321
31322         PR target/60598
31323         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
31324         related insns after epilogue_completed.
31325
31326 2014-03-21  Martin Jambor  <mjambor@suse.cz>
31327
31328         PR ipa/59176
31329         * cgraph.h (symtab_node): New flag body_removed.
31330         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
31331         when removing bodies.
31332         * symtab.c (dump_symtab_base): Dump body_removed flag.
31333         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
31334         had their bodies removed.
31335
31336 2014-03-21  Martin Jambor  <mjambor@suse.cz>
31337
31338         PR ipa/60419
31339         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
31340         in the border.
31341
31342 2014-03-21  Richard Biener  <rguenther@suse.de>
31343
31344         PR tree-optimization/60577
31345         * tree-core.h (struct tree_base): Document nothrow_flag use
31346         in DECL_NONALIASED.
31347         * tree.h (DECL_NONALIASED): New.
31348         (may_be_aliased): Adjust.
31349         * coverage.c (build_var): Set DECL_NONALIASED.
31350
31351 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
31352
31353         * expr.c (expand_expr_real_1): Remove outdated comment.
31354
31355 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
31356
31357         PR middle-end/60597
31358         * ira.c (adjust_cleared_regs): Call copy_rtx on
31359         *reg_equiv[REGNO (loc)].src_p before passing it to
31360         simplify_replace_fn_rtx.
31361
31362         PR target/60568
31363         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
31364         into CONST, put pic register as first operand of PLUS.  Use
31365         gen_const_mem for both 32-bit and 64-bit PIC got loads.
31366
31367 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31368
31369         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
31370
31371 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
31372
31373         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
31374         around for store forwarding issue in the FPU on the UT699.
31375         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
31376         loads and operations if -mfix-ut699 is specified.
31377         (divtf3_hq): Tweak attribute.
31378         (sqrttf2_hq): Likewise.
31379
31380 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
31381
31382         * calls.c (store_one_arg): Remove incorrect const qualification on the
31383         type of the temporary.
31384         * cfgexpand.c (expand_return): Likewise.
31385         * expr.c (expand_constructor): Likewise.
31386         (expand_expr_real_1): Likewise.
31387
31388 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
31389
31390         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
31391         of parts.
31392
31393 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
31394
31395         PR target/60039
31396         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
31397
31398 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
31399
31400         * config/arm/aarch-common-protos.h
31401         (alu_cost_table): Fix spelling of "extend".
31402         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
31403
31404 2014-03-19  Richard Biener  <rguenther@suse.de>
31405
31406         PR middle-end/60553
31407         * tree-core.h (tree_type_common): Re-order pointer members
31408         to reduce recursion depth during GC walks.
31409
31410 2014-03-19  Marek Polacek  <polacek@redhat.com>
31411
31412         PR sanitizer/60569
31413         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
31414         before accessing it.
31415
31416 2014-03-19  Richard Biener  <rguenther@suse.de>
31417
31418         PR lto/59543
31419         * lto-streamer-in.c (input_function): In WPA stage do not drop
31420         debug stmts.
31421
31422 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
31423
31424         PR tree-optimization/60559
31425         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
31426         with build_zero_cst assignment.
31427
31428 2014-03-18  Kai Tietz  <ktietz@redhat.com>
31429
31430         PR rtl-optimization/56356
31431         * sdbout.c (sdbout_parms): Verify that parms'
31432         incoming argument is valid.
31433         (sdbout_reg_parms): Likewise.
31434
31435 2014-03-18  Richard Henderson  <rth@redhat.com>
31436
31437         PR target/60562
31438         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
31439         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
31440         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
31441
31442 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
31443
31444         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
31445         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
31446         Italicize plugin event names in description.  Explain that
31447         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
31448         Remind that no GCC functions should be called after PLUGIN_FINISH.
31449         Explain what pragmas with expansion are.
31450
31451 2014-03-18  Martin Liska  <mliska@suse.cz>
31452
31453         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
31454         gimple call statement is update.
31455         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
31456         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
31457
31458 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
31459
31460         PR sanitizer/60557
31461         * ubsan.c (ubsan_instrument_unreachable): Call
31462         initialize_sanitizer_builtins.
31463         (ubsan_pass): Likewise.
31464
31465         PR sanitizer/60535
31466         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
31467         varpool_finalize_decl instead of rest_of_decl_compilation.
31468
31469 2014-03-18  Richard Biener  <rguenther@suse.de>
31470
31471         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
31472         by using bitmap_and_compl instead of bitmap_and_compl_into.
31473         (df_rd_transfer_function): Likewise.
31474
31475 2014-03-18  Richard Biener  <rguenther@suse.de>
31476
31477         * doc/lto.texi (fresolution): Fix typo.
31478
31479 2014-03-18  Richard Biener  <rguenther@suse.de>
31480
31481         * doc/invoke.texi (flto): Update for changes in 4.9.
31482
31483 2014-03-18  Richard Biener  <rguenther@suse.de>
31484
31485         * doc/loop.texi: Remove section on the removed lambda framework.
31486         Update loop docs with recent changes in preserving loop structure.
31487
31488 2014-03-18  Richard Biener  <rguenther@suse.de>
31489
31490         * doc/lto.texi (-fresolution): Document.
31491
31492 2014-03-18  Richard Biener  <rguenther@suse.de>
31493
31494         * doc/contrib.texi: Adjust my name.
31495
31496 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
31497
31498         PR ipa/58721
31499         * internal-fn.c: Include diagnostic-core.h.
31500         (expand_BUILTIN_EXPECT): New function.
31501         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
31502         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
31503         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
31504         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
31505         IFN_BUILTIN_EXPECT.
31506         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
31507         Revert 3 argument __builtin_expect code.
31508         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
31509         * gimple-fold.c (gimple_fold_call): Likewise.
31510         * tree.h (fold_builtin_expect): New prototype.
31511         * builtins.c (build_builtin_expect_predicate): Add predictor
31512         argument, if non-NULL, create 3 argument __builtin_expect.
31513         (fold_builtin_expect): No longer static.  Add ARG2 argument,
31514         pass it through to build_builtin_expect_predicate.
31515         (fold_builtin_2): Adjust caller.
31516         (fold_builtin_3): Handle BUILT_IN_EXPECT.
31517         * internal-fn.def (BUILTIN_EXPECT): New.
31518
31519 2014-03-18  Tobias Burnus  <burnus@net-b.de>
31520
31521         PR ipa/58721
31522         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
31523         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
31524         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
31525
31526 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
31527
31528         PR ipa/58721
31529         * predict.c (combine_predictions_for_bb): Fix up formatting.
31530         (expr_expected_value_1, expr_expected_value): Add predictor argument,
31531         fill what it points to if non-NULL.
31532         (tree_predict_by_opcode): Adjust caller, use the predictor.
31533         * predict.def (PRED_COMPARE_AND_SWAP): Add.
31534
31535 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
31536
31537         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
31538         proper constant for the store mode.
31539
31540 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
31541
31542         * symtab.c (change_decl_assembler_name): Fix transparent alias
31543         chain construction.
31544
31545 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
31546
31547         * config/aarch64/aarch64.c: Correct the comments about the
31548         aarch64 stack layout.
31549
31550 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
31551
31552         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
31553         check for GF_OMP_FOR_KIND_FOR.
31554
31555 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
31556
31557         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
31558         ymm and zmm register names.
31559
31560 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
31561
31562         PR target/60516
31563         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
31564         note creation for the 2010-08-31 changes.
31565
31566 2014-03-17  Marek Polacek  <polacek@redhat.com>
31567
31568         PR middle-end/60534
31569         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
31570         as -fno-tree-loop-vectorize.
31571         (expand_omp_simd): Likewise.
31572
31573 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
31574
31575         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
31576         (eligible_for_call_delay): New prototype.
31577         * config/sparc/sparc.c (tls_call_delay): Rename into...
31578         (eligible_for_call_delay): ...this.  Return false if the instruction
31579         cannot be put in the delay slot of a branch.
31580         (eligible_for_restore_insn): Simplify.
31581         (eligible_for_return_delay): Return false if the instruction cannot be
31582         put in the delay slot of a branch and simplify.
31583         (eligible_for_sibcall_delay): Return false if the instruction cannot be
31584         put in the delay slot of a branch.
31585         * config/sparc/sparc.md (fix_ut699): New attribute.
31586         (tls_call_delay): Delete.
31587         (in_call_delay): Reimplement.
31588         (eligible_for_sibcall_delay): Rename into...
31589         (in_sibcall_delay): ...this.
31590         (eligible_for_return_delay): Rename into...
31591         (in_return_delay): ...this.
31592         (in_branch_delay): Reimplement.
31593         (in_uncond_branch_delay): Delete.
31594         (in_annul_branch_delay): Delete.
31595
31596 2014-03-14  Richard Henderson  <rth@redhat.com>
31597
31598         PR target/60525
31599         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
31600         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
31601         (*floathi<X87MODEF>2_i387_with_temp): Remove.
31602         (floathi splitters): Remove.
31603         (float<SWI48x>xf2): New pattern.
31604         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
31605         code that tried to handle DImode for 32-bit, but which was excluded
31606         by the pattern's condition.  Drop allocation of stack temporary.
31607         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
31608         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
31609         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
31610         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
31611         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
31612         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
31613         (*float<SWI48><MODEF>2_sse_interunit): Remove.
31614         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
31615         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
31616         (*float<SWI48x><X87MODEF>2_i387): Remove.
31617         (all float _with_temp splitters): Remove.
31618         (*float<SWI48x><MODEF>2_i387): New pattern.
31619         (*float<SWI48><MODEF>2_sse): New pattern.
31620         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
31621         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
31622
31623 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
31624             Marek Polacek  <polacek@redhat.com>
31625
31626         PR middle-end/60484
31627         * common.opt (dump_base_name_prefixed): New Variable.
31628         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
31629         if x_dump_base_name_prefixed is already set, set it at the end.
31630
31631 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
31632
31633         PR rtl-optimization/60508
31634         * lra-constraints.c (get_reload_reg): Add new parameter
31635         in_subreg_p.
31636         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
31637         Pass the new parameter values.
31638
31639 2014-03-14  Richard Biener  <rguenther@suse.de>
31640
31641         * common.opt: Revert unintented changes from r205065.
31642         * opts.c: Likewise.
31643
31644 2014-03-14  Richard Biener  <rguenther@suse.de>
31645
31646         PR middle-end/60518
31647         * cfghooks.c (split_block): Properly adjust all loops the
31648         block was a latch of.
31649
31650 2014-03-14  Martin Jambor  <mjambor@suse.cz>
31651
31652         PR lto/60461
31653         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
31654         and simplify it.
31655
31656 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
31657
31658         PR target/59396
31659         * config/avr/avr.c (avr_set_current_function): Pass function name
31660         through default_strip_name_encoding before sanity checking instead
31661         of skipping the first char of the assembler name.
31662
31663 2014-03-13  Richard Henderson  <rth@redhat.com>
31664
31665         PR debug/60438
31666         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
31667         (ix86_force_to_memory, ix86_free_from_memory): Remove.
31668         * config/i386/i386-protos.h: Likewise.
31669         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
31670         in the expander instead of a splitter.
31671         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
31672         any possibility of requiring a memory.
31673         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
31674         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
31675         (fp branch splitters): Update for ix86_split_fp_branch.
31676         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
31677         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
31678         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
31679         (*fop_<MODEF>_2_i387): Remove f/r alternative.
31680         (*fop_<MODEF>_3_i387): Likewise.
31681         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
31682         (splitters for the fop_* register patterns): Remove.
31683         (fscalexf4_i387): Rename from *fscalexf4_i387.
31684         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
31685
31686 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
31687
31688         PR tree-optimization/59779
31689         * tree-dfa.c (get_ref_base_and_extent): Use double_int
31690         type for bitsize and maxsize instead of HOST_WIDE_INT.
31691
31692 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
31693
31694         PR rtl-optimization/57320
31695         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
31696         the CFG after thread_prologue_and_epilogue_insns.
31697
31698 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
31699
31700         PR rtl-optimization/57189
31701         * lra-constraints.c (process_alt_operands): Disfavor spilling
31702         vector pseudos.
31703
31704 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
31705
31706         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
31707
31708 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
31709
31710         PR tree-optimization/59025
31711         PR middle-end/60418
31712         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
31713         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
31714
31715 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
31716
31717         PR target/60486
31718         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
31719         calls of avr_out_plus_1.
31720
31721 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
31722
31723         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
31724         BB's single pred and update the father loop's latch info later.
31725
31726 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
31727
31728         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
31729         (VEC_M): Likewise.
31730         (VEC_N): Likewise.
31731         (VEC_R): Likewise.
31732         (VEC_base): Likewise.
31733         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
31734         registers, we need to swap double words in little endian mode.
31735
31736         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
31737         to be a container mode for 128-bit integer operations added in ISA
31738         2.07.  Unlike TImode and PTImode, the preferred register set is
31739         the Altivec/VMX registers for the 128-bit operations.
31740
31741         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
31742         declarations.
31743         (rs6000_split_128bit_ok_p): Likewise.
31744
31745         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
31746         macros for creating ISA 2.07 normal and overloaded builtin
31747         functions with 3 arguments.
31748         (BU_P8V_OVERLOAD_3): Likewise.
31749         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
31750         for use as overloaded functions.
31751         (VPERM_1TI_UNS): Likewise.
31752         (VSEL_1TI): Likewise.
31753         (VSEL_1TI_UNS): Likewise.
31754         (ST_INTERNAL_1ti): Likewise.
31755         (LD_INTERNAL_1ti): Likewise.
31756         (XXSEL_1TI): Likewise.
31757         (XXSEL_1TI_UNS): Likewise.
31758         (VPERM_1TI): Likewise.
31759         (VPERM_1TI_UNS): Likewise.
31760         (XXPERMDI_1TI): Likewise.
31761         (SET_1TI): Likewise.
31762         (LXVD2X_V1TI): Likewise.
31763         (STXVD2X_V1TI): Likewise.
31764         (VEC_INIT_V1TI): Likewise.
31765         (VEC_SET_V1TI): Likewise.
31766         (VEC_EXT_V1TI): Likewise.
31767         (EQV_V1TI): Likewise.
31768         (NAND_V1TI): Likewise.
31769         (ORC_V1TI): Likewise.
31770         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
31771         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
31772         overloaded builtin.
31773         (VADDUQM): Likewise.
31774         (VSUBCUQ): Likewise.
31775         (VADDEUQM): Likewise.
31776         (VADDECUQ): Likewise.
31777         (VSUBEUQM): Likewise.
31778         (VSUBECUQ): Likewise.
31779
31780         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
31781         __int128_t and __uint128_t types.
31782         (__uint128_type): Likewise.
31783         (altivec_categorize_keyword): Add support for vector __int128_t,
31784         vector __uint128_t, vector __int128, and vector unsigned __int128
31785         as a container type for TImode operations that need to be done in
31786         VSX/Altivec registers.
31787         (rs6000_macro_to_expand): Likewise.
31788         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
31789         to support 128-bit integer instructions vaddcuq, vadduqm,
31790         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
31791         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
31792
31793         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
31794         for V1TImode, and set up preferences to use VSX/Altivec registers.
31795         Setup VSX reload handlers.
31796         (rs6000_debug_reg_global): Likewise.
31797         (rs6000_init_hard_regno_mode_ok): Likewise.
31798         (rs6000_preferred_simd_mode): Likewise.
31799         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
31800         (easy_altivec_constant): Likewise.
31801         (output_vec_const_move): Likewise.
31802         (rs6000_expand_vector_set): Convert V1TImode set and extract to
31803         simple move.
31804         (rs6000_expand_vector_extract): Likewise.
31805         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
31806         addressing.
31807         (rs6000_const_vec): Add support for V1TImode.
31808         (rs6000_emit_le_vsx_load): Swap double words when loading or
31809         storing TImode/V1TImode.
31810         (rs6000_emit_le_vsx_store): Likewise.
31811         (rs6000_emit_le_vsx_move): Likewise.
31812         (rs6000_emit_move): Add support for V1TImode.
31813         (altivec_expand_ld_builtin): Likewise.
31814         (altivec_expand_st_builtin): Likewise.
31815         (altivec_expand_vec_init_builtin): Likewise.
31816         (altivec_expand_builtin): Likewise.
31817         (rs6000_init_builtins): Add support for V1TImode type.  Add
31818         support for ISA 2.07 128-bit integer builtins.  Define type names
31819         for the VSX/Altivec vector types.
31820         (altivec_init_builtins): Add support for overloaded vector
31821         functions with V1TImode type.
31822         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
31823         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
31824         external function.
31825         (rs6000_split_128bit_ok_p): Likewise.
31826         (rs6000_handle_altivec_attribute): Create V1TImode from vector
31827         __int128_t and vector __uint128_t.
31828
31829         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
31830         and mode attributes.
31831         (VSX_M): Likewise.
31832         (VSX_M2): Likewise.
31833         (VSm): Likewise.
31834         (VSs): Likewise.
31835         (VSr): Likewise.
31836         (VSv): Likewise.
31837         (VS_scalar): Likewise.
31838         (VS_double): Likewise.
31839         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
31840
31841         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
31842         we support the ISA 2.07 128-bit integer arithmetic instructions.
31843         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
31844         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
31845         and TImode types for use with the builtin functions.
31846         (V1TI_type_node): Likewise.
31847         (unsigned_V1TI_type_node): Likewise.
31848         (intTI_type_internal_node): Likewise.
31849         (uintTI_type_internal_node): Likewise.
31850
31851         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
31852         128-bit builtin functions.
31853         (UNSPEC_VADDEUQM): Likewise.
31854         (UNSPEC_VADDECUQ): Likewise.
31855         (UNSPEC_VSUBCUQ): Likewise.
31856         (UNSPEC_VSUBEUQM): Likewise.
31857         (UNSPEC_VSUBECUQ): Likewise.
31858         (VM): Add V1TImode to vector mode iterators.
31859         (VM2): Likewise.
31860         (VI_unit): Likewise.
31861         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
31862         (altivec_vaddcuq): Likewise.
31863         (altivec_vsubuqm): Likewise.
31864         (altivec_vsubcuq): Likewise.
31865         (altivec_vaddeuqm): Likewise.
31866         (altivec_vaddecuq): Likewise.
31867         (altivec_vsubeuqm): Likewise.
31868         (altivec_vsubecuq): Likewise.
31869
31870         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
31871         mode iterators.
31872         (BOOL_128): Likewise.
31873         (BOOL_REGS_OUTPUT): Likewise.
31874         (BOOL_REGS_OP1): Likewise.
31875         (BOOL_REGS_OP2): Likewise.
31876         (BOOL_REGS_UNARY): Likewise.
31877         (BOOL_REGS_AND_CR0): Likewise.
31878
31879         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
31880         128-bit integer builtin support.
31881         (vec_vadduqm): Likewise.
31882         (vec_vaddecuq): Likewise.
31883         (vec_vaddeuqm): Likewise.
31884         (vec_vsubecuq): Likewise.
31885         (vec_vsubeuqm): Likewise.
31886         (vec_vsubcuq): Likewise.
31887         (vec_vsubuqm): Likewise.
31888
31889         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
31890         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
31891         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
31892         128-bit integer add/subtract to ISA 2.07.
31893
31894 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
31895
31896         * config/arc/arc.c (arc_predicate_delay_insns):
31897         Fix third argument passed to conditionalize_nonjump.
31898
31899 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
31900
31901         * config/aarch64/aarch64-builtins.c
31902         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
31903         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
31904         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
31905         instead of __builtin_lfloor.
31906         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
31907
31908 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
31909
31910         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
31911         (tree_ssa_ifcombine_bb_1): New function.
31912         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
31913         is an empty forwarder block to then_bb or vice versa and then_bb
31914         and else_bb are effectively swapped.
31915
31916 2014-03-12  Christian Bruel  <christian.bruel@st.com>
31917
31918         PR target/60264
31919         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
31920         REG_CFA_DEF_CFA note.
31921         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
31922         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
31923
31924 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31925
31926         PR tree-optimization/60454
31927         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
31928
31929 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31930
31931         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
31932         Do not define target_cpu_default2 to generic.
31933         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
31934         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
31935         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
31936
31937 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
31938             Marc Glisse  <marc.glisse@inria.fr>
31939
31940         PR tree-optimization/60502
31941         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
31942         instead of build_low_bits_mask.
31943
31944 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
31945
31946         PR middle-end/60482
31947         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
31948         if there are multiple uses, but op doesn't live on E edge.
31949         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
31950         clobber stmts before __builtin_unreachable.
31951
31952 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
31953
31954         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
31955         hard_frame_pointer_rtx.
31956         * cse.c (cse_insn): Remove volatile check.
31957         * cselib.c (cselib_process_insn): Likewise.
31958         * dse.c (scan_insn): Likewise.
31959
31960 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
31961
31962         * config/arc/arc.c (conditionalize_nonjump): New function,
31963         broken out of ...
31964         (arc_ifcvt): ... this.
31965         (arc_predicate_delay_insns): Use it.
31966
31967 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
31968
31969         * config/arc/predicates.md (extend_operand): During/after reload,
31970         allow const_int_operand.
31971         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
31972         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
31973         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
31974         to "i".
31975         (umulsi3_highpart_i): Likewise.
31976
31977 2014-03-11  Richard Biener  <rguenther@suse.de>
31978
31979         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
31980         Add asserts to guard possible wrong-code bugs.
31981
31982 2014-03-11  Richard Biener  <rguenther@suse.de>
31983
31984         PR tree-optimization/60429
31985         PR tree-optimization/60485
31986         * tree-ssa-structalias.c (set_union_with_increment): Properly
31987         take into account all fields that overlap the shifted vars.
31988         (do_sd_constraint): Likewise.
31989         (do_ds_constraint): Likewise.
31990         (get_constraint_for_ptr_offset): Likewise.
31991
31992 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
31993
31994         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
31995         (nios2_compute_frame_layout):
31996         Add calculation of cfun->machine->fp_save_offset.
31997         (nios2_expand_prologue): Correct setting of frame pointer register
31998         in prologue.
31999         (nios2_expand_epilogue): Update recovery of stack pointer from
32000         frame pointer accordingly.
32001         (nios2_initial_elimination_offset): Update calculation of offset
32002         for eliminating to HARD_FRAME_POINTER_REGNUM.
32003
32004 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
32005
32006         PR ipa/60457
32007         * ipa.c (symtab_remove_unreachable_nodes): Don't call
32008         cgraph_get_create_node on VAR_DECLs.
32009
32010 2014-03-10  Richard Biener  <rguenther@suse.de>
32011
32012         PR middle-end/60474
32013         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
32014
32015 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
32016
32017         * config/vms/vms.opt (vms_float_format): New variable.
32018
32019 2014-03-08  Tobias Burnus  <burnus@net-b.de>
32020
32021         * doc/invoke.texi (-fcilkplus): Update implementation status.
32022
32023 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
32024             Richard Biener  <rguenther@suse.de>
32025
32026         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
32027         consistently accross all TUs.
32028         (run_gcc): Enable -fshort-double automatically at link at link-time
32029         and disallow override.
32030
32031 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
32032
32033         PR target/58271
32034         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
32035         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
32036         if they can't be used.
32037
32038 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32039
32040         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
32041         for Solaris 11/x86 ld.
32042         * configure: Regenerate.
32043
32044 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32045
32046         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
32047         (LIB_TLS_SPEC): Save as ld_tls_libs.
32048         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
32049         (HAVE_AS_IX86_TLSLDM): New test.
32050         * configure, config.in: Regenerate.
32051         * config/i386/i386.c (legitimize_tls_address): Fall back to
32052         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
32053         cannot support TLS_MODEL_LOCAL_DYNAMIC.
32054         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
32055         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
32056
32057 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
32058
32059         * common.opt (fira-loop-pressure): Mark as optimization.
32060
32061 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
32062
32063         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
32064         an OpenMP mappable type.
32065
32066 2014-03-06  Matthias Klose  <doko@ubuntu.com>
32067
32068         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
32069         MULTILIB_OSDIRNAMES is not defined.
32070
32071 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
32072             Meador Inge  <meadori@codesourcery.com>
32073
32074         PR target/58595
32075         * config/arm/arm.c (arm_tls_symbol_p): Remove.
32076         (arm_legitimize_address): Call legitimize_tls_address for any
32077         arm_tls_referenced_p expression, handle constant addend.  Call it
32078         before testing for !TARGET_ARM.
32079         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
32080
32081 2014-03-06  Richard Biener  <rguenther@suse.de>
32082
32083         PR middle-end/60445
32084         PR lto/60424
32085         PR lto/60427
32086         Revert
32087         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
32088
32089         * tree-streamer.c (record_common_node): Assert we don't record
32090         nodes with type double.
32091         (preload_common_node): Skip type double, complex double and double
32092         pointer since it is now frontend dependent due to fshort-double option.
32093
32094 2014-03-06  Richard Biener  <rguenther@suse.de>
32095
32096         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
32097         or -fno-lto is specified and the linker has full plugin support.
32098         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
32099         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
32100         * lto-wrapper.c (merge_and_complain): Merge compile-time
32101         optimization levels.
32102         (run_gcc): And pass it through to the link options.
32103
32104 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
32105
32106         PR debug/60381
32107         Revert:
32108         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
32109         PR debug/59992
32110         * cselib.c (remove_useless_values): Skip to avoid quadratic
32111         behavior if the condition moved from...
32112         (cselib_process_insn): ... here holds.
32113
32114 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
32115
32116         PR plugins/59335
32117         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
32118         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
32119
32120         PR plugins/59335
32121         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
32122         (TM_H): Add x86-tune.def.
32123
32124 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32125
32126         * config/aarch64/aarch64.c (generic_tunings):
32127         Use cortexa57_extra_costs.
32128
32129 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
32130
32131         PR lto/60404
32132         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
32133         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
32134         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
32135         cost for in_lto_p.
32136
32137 2014-03-04  Heiher  <r@hev.cc>
32138
32139         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
32140         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
32141
32142 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
32143
32144         * config/i386/predicates.md (const2356_operand): Change to ...
32145         (const2367_operand): ... this.
32146         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
32147         const2367_operand.
32148         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
32149         (*avx512pf_scatterpf<mode>sf): Ditto.
32150         (avx512pf_scatterpf<mode>df): Ditto.
32151         (*avx512pf_scatterpf<mode>df_mask): Ditto.
32152         (*avx512pf_scatterpf<mode>df): Ditto.
32153         * config/i386/i386.c (ix86_expand_builtin): Update
32154         incorrect hint operand error message.
32155
32156 2014-03-04  Richard Biener  <rguenther@suse.de>
32157
32158         * lto-section-in.c (lto_get_section_data): Fix const cast.
32159
32160 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
32161
32162         * tree-streamer.c (record_common_node): Assert we don't record
32163         nodes with type double.
32164         (preload_common_node): Skip type double, complex double and double
32165         pointer since it is now frontend dependent due to fshort-double option.
32166
32167 2014-03-04  Richard Biener  <rguenther@suse.de>
32168
32169         PR lto/60405
32170         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
32171         (lto_input_toplevel_asms): Likewise.
32172         * lto-section-in.c (lto_get_section_data): Instead do it here
32173         for every section.
32174
32175 2014-03-04  Richard Biener  <rguenther@suse.de>
32176
32177         PR tree-optimization/60382
32178         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
32179         dead PHIs a reduction.
32180
32181 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
32182
32183         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
32184         hint value.
32185         (_mm_prefetch): Move out of GCC target("sse") pragma.
32186         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
32187         GCC target("prfchw") pragma.
32188         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
32189         for locality <= 2.
32190         * config/i386/i386.c (ix86_option_override_internal): Enable
32191         -mprfchw with -mprefetchwt1.
32192
32193 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
32194
32195         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
32196         Mark as varying.
32197
32198 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
32199
32200         * opts.h (CL_PCH_IGNORE): Define.
32201         * targhooks.c (option_affects_pch_p):
32202         Return false for options that have CL_PCH_IGNORE set.
32203         * opt-functions.awk: Process PchIgnore.
32204         * doc/options.texi: Document PchIgnore.
32205
32206         * config/arc/arc.opt (misize): Add PchIgnore property.
32207
32208 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32209
32210         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
32211         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
32212         constraint on constants to permit them being loaded into
32213         GENERAL_REGS or BASE_REGS.
32214
32215 2014-03-03  Nick Clifton  <nickc@redhat.com>
32216
32217         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
32218         anti-cacnonical alternatives.
32219         (negandhi3_real): New pattern.
32220         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
32221
32222 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
32223
32224         * config/avr/avr-mcus.def: Remove atxmega16x1.
32225         * config/avr/avr-tables.opt: Regenerate.
32226         * config/avr/t-multilib: Regenerate.
32227         * doc/avr-mmcu.texi: Regenerate.
32228
32229 2014-03-03  Tobias Grosser  <tobias@grosser.es>
32230             Mircea Namolaru  <mircea.namolaru@inria.fr>
32231
32232         PR tree-optimization/58028
32233         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
32234         scalar dimensions.
32235
32236 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32237
32238         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
32239         not handled by recognizers.
32240
32241 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
32242
32243         PR middle-end/60175
32244         * function.c (expand_function_end): Don't emit
32245         clobber_return_register sequence if clobber_after is a BARRIER.
32246         * cfgexpand.c (construct_exit_block): Append instructions before
32247         return_label to prev_bb.
32248
32249 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32250
32251         * config/rs6000/constraints.md: Document reserved use of "wc".
32252
32253 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
32254
32255         PR ipa/60150
32256         * ipa.c (function_and_variable_visibility): When dissolving comdat
32257         group, also set all symbols to local.
32258
32259 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
32260
32261         PR ipa/60306
32262
32263         Revert:
32264         2013-12-14  Jan Hubicka  <jh@suse.cz>
32265         PR middle-end/58477
32266         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
32267
32268 2014-03-02  Jon Beniston  <jon@beniston.com>
32269
32270         PR bootstrap/48230
32271         PR bootstrap/50927
32272         PR bootstrap/52466
32273         PR target/46898
32274         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
32275         (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
32276         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
32277         (simple_return, *simple_return): New patterns
32278         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
32279         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
32280
32281 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
32282
32283         * dwarf2out.c (gen_subprogram_die): Tidy.
32284
32285 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
32286
32287         PR target/60071
32288         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
32289         (*mov_t_msb_neg_negc): ... this new insn.
32290
32291 2014-02-28  Jason Merrill  <jason@redhat.com>
32292
32293         PR c++/58678
32294         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
32295         function.
32296
32297 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
32298
32299         PR c++/60314
32300         * dwarf2out.c (decltype_auto_die): New static.
32301         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
32302         (gen_type_die_with_usage): Handle 'decltype(auto)'.
32303         (is_cxx_auto): Likewise.
32304
32305 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
32306
32307         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
32308         we are not using general regs only.
32309
32310 2014-02-28  Richard Biener  <rguenther@suse.de>
32311
32312         PR target/60280
32313         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
32314         previous fix and only allow to remove trivial pre-headers
32315         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
32316         (remove_forwarder_block): Properly update the latch of a loop.
32317
32318 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
32319
32320         PR debug/59992
32321         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
32322         (cselib_preserved_hash_table): New.
32323         (preserve_constants_and_equivs): Move preserved vals to it.
32324         (cselib_find_slot): Look it up first.
32325         (cselib_init): Initialize it.
32326         (cselib_finish): Release it.
32327         (dump_cselib_table): Dump it.
32328
32329 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
32330
32331         PR debug/59992
32332         * cselib.c (remove_useless_values): Skip to avoid quadratic
32333         behavior if the condition moved from...
32334         (cselib_process_insn): ... here holds.
32335
32336 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
32337
32338         PR debug/57232
32339         * var-tracking.c (vt_initialize): Apply the same condition to
32340         preserve the CFA base value.
32341
32342 2014-02-28  Joey Ye  <joey.ye@arm.com>
32343
32344         PR target/PR60169
32345         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
32346         if reload in progress or completed.
32347
32348 2014-02-28  Tobias Burnus  <burnus@net-b.de>
32349
32350         PR middle-end/60147
32351         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
32352         NAMELIST_DECL.
32353
32354 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
32355
32356         * doc/tm.texi.in (Condition Code Status): Update documention for
32357         relative locations of cc0-setter and cc0-user.
32358
32359 2014-02-27  Jeff Law  <law@redhat.com>
32360
32361         PR rtl-optimization/52714
32362         * combine.c (try_combine): When splitting an unrecognized PARALLEL
32363         into two independent simple sets, if I3 is a jump, ensure the
32364         pattern we place into I3 is a (set (pc) ...).
32365
32366 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
32367             Jeff Law  <law@redhat.com>
32368
32369         PR rtl-optimization/49847
32370         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
32371         are in different blocks.
32372         * doc/tm.texi (Condition Code Status): Update documention for
32373         relative locations of cc0-setter and cc0-user.
32374
32375 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
32376
32377         PR target/59222
32378         * lra.c (lra_emit_add): Check SUBREG too.
32379
32380 2014-02-27  Andreas Schwab  <schwab@suse.de>
32381
32382         * config/m68k/m68k.c (m68k_option_override): Disable
32383         -flive-range-shrinkage for classic m68k.
32384         (m68k_override_options_after_change): Likewise.
32385
32386 2014-02-27  Marek Polacek  <polacek@redhat.com>
32387
32388         PR middle-end/59223
32389         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
32390         -Wmaybe-uninitialized.
32391
32392 2014-02-27  Alan Modra  <amodra@gmail.com>
32393
32394         PR target/57936
32395         * reload1.c (emit_input_reload_insns): When reload_override_in,
32396         set old to rl->in_reg when rl->in_reg is a subreg.
32397
32398 2014-02-26  Richard Biener  <rguenther@suse.de>
32399
32400         PR bootstrap/60343
32401         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
32402
32403 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
32404
32405         * common/config/i386/predicates.md (const1256_operand): Remove.
32406         (const2356_operand): New.
32407         (const_1_to_2_operand): Remove.
32408         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
32409         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
32410         (*avx512pf_gatherpf<mode>sf): Ditto.
32411         (avx512pf_gatherpf<mode>df): Ditto.
32412         (*avx512pf_gatherpf<mode>df_mask): Ditto.
32413         (*avx512pf_gatherpf<mode>df): Ditto.
32414         (avx512pf_scatterpf<mode>sf): Ditto.
32415         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
32416         (*avx512pf_scatterpf<mode>sf): Ditto.
32417         (avx512pf_scatterpf<mode>df): Ditto.
32418         (*avx512pf_scatterpf<mode>df_mask): Ditto.
32419         (*avx512pf_scatterpf<mode>df): Ditto.
32420         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
32421
32422 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
32423
32424         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
32425         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
32426         (_mm512_mask_testn_epi64_mask): Move to ...
32427         * config/i386/avx512cdintrin.h: Here.
32428         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
32429         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
32430         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
32431         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
32432         TARGET_AVX512F from TARGET_AVX512CD.
32433
32434 2014-02-26  Richard Biener  <rguenther@suse.de>
32435
32436         PR ipa/60327
32437         * ipa.c (walk_polymorphic_call_targets): Properly guard
32438         call to inline_update_overall_summary.
32439
32440 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
32441
32442         PR target/60280
32443         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
32444         and latches only if requested.  Fix latch if it is removed.
32445         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
32446         LOOPS_HAVE_PREHEADERS.
32447
32448 2014-02-25  Andrew Pinski  <apinski@cavium.com>
32449
32450         * builtins.c (expand_builtin_thread_pointer): Create a new target
32451         when the target is NULL.
32452
32453 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
32454
32455         PR rtl-optimization/60317
32456         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
32457         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
32458         * lra-assigns.c: Include params.h.
32459         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
32460         other reload pseudos considerations.
32461
32462 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32463
32464         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
32465         to use canonical form for nor<mode>3.
32466
32467 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32468
32469         PR target/55426
32470         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
32471         conversions.
32472
32473 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
32474
32475         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
32476         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
32477         (ix86_handle_option): Handle OPT_mprefetchwt1.
32478         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
32479         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
32480         PREFETCHWT1 CPUID.
32481         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
32482         OPTION_MASK_ISA_PREFETCHWT1.
32483         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
32484         (PTA_PREFETCHWT1): New.
32485         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
32486         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
32487         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
32488         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
32489         (*prefetch_avx512pf_<mode>_: Change into ...
32490         (*prefetch_prefetchwt1_<mode>: This.
32491         * config/i386/i386.opt (mprefetchwt1): New.
32492         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
32493         (_mm_prefetch): Handle intent to write.
32494         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
32495
32496 2014-02-25  Richard Biener  <rguenther@suse.de>
32497
32498         PR middle-end/60291
32499         * emit-rtl.c (mem_attrs_htab): Remove.
32500         (mem_attrs_htab_hash): Likewise.
32501         (mem_attrs_htab_eq): Likewise.
32502         (set_mem_attrs): Always allocate new mem-attrs when something changed.
32503         (init_emit_once): Do not allocate mem_attrs_htab.
32504
32505 2014-02-25  Richard Biener  <rguenther@suse.de>
32506
32507         PR lto/60319
32508         * lto-opts.c (lto_write_options): Output non-explicit conservative
32509         -fwrapv, -fno-trapv and -fno-strict-overflow.
32510         * lto-wrapper.c (merge_and_complain): Handle merging those options.
32511         (run_gcc): And pass them through.
32512
32513 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
32514
32515         * sel-sched.c (calculate_new_fences): New parameter ptime.
32516         Calculate it as a maximum over all fence cycles.
32517         (sel_sched_region_2): Adjust the call to calculate_new_fences.
32518         Print the final schedule timing when sched_verbose.
32519
32520 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
32521
32522         PR rtl-optimization/60292
32523         * sel-sched.c (fill_vec_av_set): Do not reset target availability
32524         bit fot the fence instruction.
32525
32526 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
32527
32528         * calls.h: Fix typo in comment.
32529
32530 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
32531
32532         * config/pa/pa.c (pa_output_move_double): Don't valididate when
32533         adjusting offsetable addresses.
32534
32535 2014-02-24  Guozhi Wei  <carrot@google.com>
32536
32537         * sparseset.h (sparseset_pop): Fix the wrong index.
32538
32539 2014-02-24  Walter Lee  <walt@tilera.com>
32540
32541         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
32542         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
32543         triplet.
32544         * common/config/tilegx/tilegx-common.c
32545         (TARGET_DEFAULT_TARGET_FLAGS): Define.
32546         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
32547         (LINK_SPEC): Ditto.
32548         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
32549         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
32550         (tilegx_gimplify_va_arg_expr): Handle big endian.
32551         (tilegx_expand_unaligned_load): Ditto.
32552         (tilegx_expand_unaligned_store): Ditto.
32553         (TARGET_RETURN_IN_MSB): New.
32554         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
32555         (TARGET_ENDIAN_DEFAULT): New.
32556         (TARGET_BIG_ENDIAN): Handle big endian.
32557         (BYTES_BIG_ENDIAN): Ditto.
32558         (WORDS_BIG_ENDIAN): Ditto.
32559         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
32560         (ENDIAN_SPEC): New.
32561         (EXTRA_SPECS): New.
32562         * config/tilegx/tilegx.md (extv): Handle big endian.
32563         (extzv): Ditto.
32564         (insn_st<n>): Ditto.
32565         (insn_st<n>_add<bitsuffix>): Ditto.
32566         (insn_stnt<n>): Ditto.
32567         (insn_stnt<n>_add<bitsuffix>):Ditto.
32568         (vec_interleave_highv8qi): Handle big endian.
32569         (vec_interleave_highv8qi_be): New.
32570         (vec_interleave_highv8qi_le): New.
32571         (insn_v1int_h): Handle big endian.
32572         (vec_interleave_lowv8qi): Handle big endian.
32573         (vec_interleave_lowv8qi_be): New.
32574         (vec_interleave_lowv8qi_le): New.
32575         (insn_v1int_l): Handle big endian.
32576         (vec_interleave_highv4hi): Handle big endian.
32577         (vec_interleave_highv4hi_be): New.
32578         (vec_interleave_highv4hi_le): New.
32579         (insn_v2int_h): Handle big endian.
32580         (vec_interleave_lowv4hi): Handle big endian.
32581         (vec_interleave_lowv4hi_be): New.
32582         (vec_interleave_lowv4hi_le): New.
32583         (insn_v2int_l): Handle big endian.
32584         (vec_interleave_highv2si): Handle big endian.
32585         (vec_interleave_highv2si_be): New.
32586         (vec_interleave_highv2si_le): New.
32587         (insn_v4int_h): Handle big endian.
32588         (vec_interleave_lowv2si): Handle big endian.
32589         (vec_interleave_lowv2si_be): New.
32590         (vec_interleave_lowv2si_le): New.
32591         (insn_v4int_l): Handle big endian.
32592         * config/tilegx/tilegx.opt (mbig-endian): New option.
32593         (mlittle-endian): New option.
32594         * doc/install.texi: Document tilegxbe-linux.
32595         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
32596
32597 2014-02-24  Martin Jambor  <mjambor@suse.cz>
32598
32599         PR ipa/60266
32600         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
32601         there are no parameter descriptors.
32602
32603 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
32604
32605         PR rtl-optimization/60268
32606         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
32607         initialization to ...
32608         (sched_rgn_init): ... here.
32609         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
32610
32611 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
32612
32613         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
32614         names.
32615
32616 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
32617
32618         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
32619         definition.
32620
32621 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
32622
32623         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
32624         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
32625
32626 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
32627
32628         * config/microblaze/predicates.md: Add cmp_op predicate.
32629         * config/microblaze/microblaze.md: Add branch_compare instruction
32630         which uses cmp_op predicate and emits cmp insn before branch.
32631         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
32632         to microblaze_expand_conditional_branch and consolidate logic.
32633         (microblaze_expand_conditional_branch): emit branch_compare
32634         insn instead of handling cmp op separate from branch insn.
32635
32636 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32637
32638         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
32639         to permit subregs.
32640
32641 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32642
32643         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
32644         define_insn with define_expand and new define_insn
32645         *altivec_lve<VI_char>x_internal.
32646         (altivec_stve<VI_char>x): Replace define_insn with define_expand
32647         and new define_insn *altivec_stve<VI_char>x_internal.
32648         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
32649         prototype.
32650         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
32651         lve*x built-ins.
32652         (altivec_expand_stvex_be): New function.
32653
32654 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
32655
32656         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
32657         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
32658         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
32659         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
32660
32661 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
32662
32663         PR target/60298
32664         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
32665         instead of emit_move_insn.
32666
32667 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32668
32669         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
32670         vspltw with vsldoi.
32671         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
32672         gen_altivec_vsumsws.
32673
32674 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32675
32676         * config/rs6000/altivec.md (altivec_lvxl): Rename as
32677         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
32678         (altivec_lvxl_<mode>): New define_expand incorporating
32679         -maltivec=be semantics where needed.
32680         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
32681         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
32682         semantics where needed.
32683         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
32684         (altivec_stvx_<mode>): New define_expand incorporating
32685         -maltivec=be semantics where needed.
32686         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
32687         VM2 iterator instead of V4SI.
32688         (altivec_stvxl_<mode>): New define_expand incorporating
32689         -maltivec=be semantics where needed.
32690         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
32691         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
32692         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
32693         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
32694         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
32695         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
32696         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
32697         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
32698         ALTIVEC_BUILTIN_STVXL.
32699         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
32700         (altivec_expand_stvx_be): Likewise.
32701         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
32702         (altivec_expand_lvx_be): Likewise.
32703         (altivec_expand_stvx_be): Likewise.
32704         (altivec_expand_builtin): Add cases for
32705         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
32706         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
32707         (altivec_init_builtins): Add definitions for
32708         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
32709         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
32710
32711 2014-02-21  Catherine Moore  <clm@codesourcery.com>
32712
32713         * doc/invoke.texi (mvirt, mno-virt): Document.
32714         * config/mips/mips.opt (mvirt): New option.
32715         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
32716
32717 2014-02-21  Richard Biener  <rguenther@suse.de>
32718
32719         PR tree-optimization/60276
32720         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
32721         (STMT_VINFO_MIN_NEG_DIST): New macro.
32722         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
32723         STMT_VINFO_MIN_NEG_DIST.
32724         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
32725         made for negative dependence distances still hold.
32726
32727 2014-02-21  Richard Biener  <rguenther@suse.de>
32728
32729         PR middle-end/60291
32730         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
32731         DECL_INITIAL for globals not in the current function context.
32732
32733 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
32734
32735         PR tree-optimization/56490
32736         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
32737         * tree-ssa-uninit.c: Include params.h.
32738         (compute_control_dep_chain): Add num_calls argument, return false
32739         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
32740         num_calls to recursive call.
32741         (find_predicates): Change dep_chain into normal array,
32742         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
32743         variable and adjust compute_control_dep_chain caller.
32744         (find_def_preds): Likewise.
32745
32746 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
32747
32748         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
32749         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
32750
32751 2014-02-21  Nick Clifton  <nickc@redhat.com>
32752
32753         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
32754         (pushhi1): Likewise.
32755         (popqi1): Add mode to pre_dec.
32756         (pophi1): Likewise.
32757
32758 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
32759
32760         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
32761         mode for mask of V8SFmode permutation.
32762
32763 2014-02-20  Richard Henderson  <rth@redhat.com>
32764
32765         PR c++/60272
32766         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
32767         a new pseudo for OLDVAL.
32768
32769 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
32770
32771         PR target/57896
32772         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
32773         gen_reg_rtx if d->testing_p.
32774         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
32775         if d->testing_p and we will certainly return true.
32776         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
32777         if d->testing_p.
32778
32779 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
32780
32781         * emit-rtl.c (gen_reg_rtx): Assert that
32782         crtl->emit.regno_pointer_align_length is non-zero.
32783
32784 2014-02-20  Richard Henderson  <rth@redhat.com>
32785
32786         PR c++/60272
32787         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
32788         on failure the store back into EXPECT.
32789
32790 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
32791             Sandra Loosemore  <sandra@codesourcery.com>
32792
32793         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
32794         * config/nios2/nios2.c (nios2_function_profiler): Add
32795         -fPIC (flag_pic == 2) support.
32796         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
32797         (nios2_large_offset_p): New function.
32798         (nios2_unspec_reloc_p): Move up position, update to use
32799         nios2_large_offset_p.
32800         (nios2_unspec_address): Remove function.
32801         (nios2_unspec_offset): New function.
32802         (nios2_large_got_address): New function.
32803         (nios2_got_address): Add large offset support.
32804         (nios2_legitimize_tls_address): Update usage of removed and new
32805         functions.
32806         (nios2_symbol_binds_local_p): New function.
32807         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
32808         (nios2_legitimize_address): Update to use nios2_large_offset_p.
32809         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
32810         (nios2_print_operand): Merge H/L processing, add hiadj/lo
32811         processing for (const (unspec ...)).
32812         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
32813
32814 2014-02-20  Richard Biener  <rguenther@suse.de>
32815
32816         * tree-cfg.c (replace_uses_by): Mark altered BBs before
32817         doing the substitution.
32818         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
32819
32820 2014-02-20  Martin Jambor  <mjambor@suse.cz>
32821
32822         PR ipa/55260
32823         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
32824         info when checking whether lattices are bottom.
32825
32826 2014-02-20  Richard Biener  <rguenther@suse.de>
32827
32828         PR middle-end/60221
32829         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
32830         regions at -O0.
32831
32832 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
32833
32834         PR ipa/58555
32835         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
32836         parameter specifying the scaling.
32837         (inline_call): Update.
32838         (want_inline_recursively): Guard division by zero.
32839         (recursive_inlining): Update.
32840         * ipa-inline.h (clone_inlined_nodes): Update.
32841
32842 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
32843
32844         PR target/60204
32845         * config/i386/i386.c (classify_argument): Pass structures of size
32846         64 bytes or less in register.
32847
32848 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
32849             Kirill Yukhin  <kirill.yukhin@intel.com>
32850
32851         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
32852         (_mm_rcp28_round_ss): Ditto.
32853         (_mm_rsqrt28_round_sd): Ditto.
32854         (_mm_rsqrt28_round_ss): Ditto.
32855         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
32856         (_mm_rcp14_round_ss): Ditto.
32857         (_mm_rsqrt14_round_sd): Ditto.
32858         (_mm_rsqrt14_round_ss): Ditto.
32859         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
32860         the first input operand, get rid of match_dup.
32861         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
32862         attribute to sse.
32863         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
32864         Ditto.
32865         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
32866         operand as the first input operand, set type attribute.
32867         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
32868         Set type attribute.
32869         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
32870         operand as the first input operand, set type attribute.
32871
32872 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32873
32874         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
32875         bit of zero.
32876
32877 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
32878
32879         PR target/60207
32880         * config/i386/i386.c (construct_container): Remove TFmode check
32881         for X86_64_INTEGER_CLASS.
32882
32883 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
32884
32885         PR target/59794
32886         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
32887         only when -Wpsabi is enabled.
32888
32889 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
32890
32891         PR target/59799
32892         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
32893         passing arrays in registers are the same as for structs, so remove the
32894         special case for them.
32895
32896 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
32897
32898         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
32899         destination type, extract only the valid bits if the source type is not
32900         integral and has a different mode.
32901
32902 2014-02-19  Richard Biener  <rguenther@suse.de>
32903
32904         PR ipa/60243
32905         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
32906         for all calls.
32907
32908 2014-02-19  Richard Biener  <rguenther@suse.de>
32909
32910         PR ipa/60243
32911         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
32912         (ipa_modify_call_arguments): Emit an argument load explicitely and
32913         preserve virtual SSA form there and for the replacement call.
32914         Do not update SSA form nor free dominance info.
32915
32916 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
32917
32918         * ipa.c (function_and_variable_visibility): Also clear WEAK
32919         flag when disolving COMDAT_GROUP.
32920
32921 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
32922
32923         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
32924         * ipa-prop.c (ipa_set_jf_known_type): Return early when
32925         not devirtualizing.
32926         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
32927         do more sanity checks.
32928         (detect_type_change): Return true when giving up early.
32929         (compute_complex_assign_jump_func): Fix type parameter of
32930         ipa_set_ancestor_jf.
32931         (compute_complex_ancestor_jump_func): Likewise.
32932         (update_jump_functions_after_inlining): Fix updating of
32933         ancestor function.
32934         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
32935
32936 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
32937
32938         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
32939         inline clones when edge disappears.
32940
32941 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
32942
32943         PR target/60203
32944         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
32945         Split 64-bit moves into 2 patterns.  Do not allow the use of
32946         direct move for TDmode in little endian, since the decimal value
32947         has little endian bytes within a word, but the 64-bit pieces are
32948         ordered in a big endian fashion, and normal subreg's of TDmode are
32949         not allowed.
32950         (mov<mode>_64bit_dm): Likewise.
32951         (movtd_64bit_nodm): Likewise.
32952
32953 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
32954
32955         PR tree-optimization/60174
32956         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
32957         statement of an SSA_NAME that occurs in an abnormal PHI node.
32958
32959 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
32960
32961         PR sanitizer/60142
32962         * final.c (SEEN_BB): Remove.
32963         (SEEN_NOTE, SEEN_EMITTED): Renumber.
32964         (final_scan_insn): Don't force_source_line on second
32965         NOTE_INSN_BASIC_BLOCK.
32966
32967 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
32968
32969         PR target/60205
32970         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
32971         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
32972         (type_natural_mode): Warn ABI change when %zmm register is not
32973         available for AVX512F vector value passing.
32974
32975 2014-02-18  Kai Tietz  <ktietz@redhat.com>
32976
32977         PR target/60193
32978         * config/i386/i386.c (ix86_expand_prologue): Use value in
32979         rax register as displacement when restoring %r10 or %rax.
32980         Fix wrong offset when restoring both registers.
32981
32982 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
32983
32984         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
32985         assertion with conditional return.
32986
32987 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
32988             Uros Bizjak  <ubizjak@gmail.com>
32989
32990         PR driver/60233
32991         * config/i386/driver-i386.c (host_detect_local_cpu): If
32992         YMM state is not saved by the OS, also clear has_f16c.  Move
32993         CPUID 0x80000001 handling before YMM state saving checking.
32994
32995 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
32996
32997         PR rtl-optimization/58960
32998         * haifa-sched.c (alloc_global_sched_pressure_data): New,
32999         factored out from ...
33000         (sched_init): ... here.
33001         (free_global_sched_pressure_data): New, factored out from ...
33002         (sched_finish): ... here.
33003         * sched-int.h (free_global_sched_pressure_data): Declare.
33004         * sched-rgn.c (nr_regions_initial): New static global.
33005         (haifa_find_rgns): Initialize it.
33006         (schedule_region): Disable sched-pressure for the newly
33007         generated regions.
33008
33009 2014-02-17  Richard Biener  <rguenther@suse.de>
33010
33011         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
33012         release SSA defs of pattern stmts.
33013
33014 2014-02-17  Richard Biener  <rguenther@suse.de>
33015
33016         * tree-inline.c (expand_call_inline): Release the virtual
33017         operand defined by the call we are about to inline.
33018
33019 2014-02-17  Richard Biener  <rguenther@suse.de>
33020
33021         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
33022
33023 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
33024             Ilya Tocar  <ilya.tocar@intel.com>
33025
33026         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
33027         arguments order in builtin.
33028         (_mm512_permutexvar_epi64): Ditto.
33029         (_mm512_mask_permutexvar_epi64): Ditto
33030         (_mm512_maskz_permutexvar_epi32): Ditto
33031         (_mm512_permutexvar_epi32): Ditto
33032         (_mm512_mask_permutexvar_epi32): Ditto
33033
33034 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33035
33036         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
33037         (p8_vmrgow): Likewise.
33038
33039 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33040
33041         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
33042         endian targets.
33043
33044 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
33045
33046         PR target/60203
33047         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
33048         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
33049         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
33050         using direct move instructions on ISA 2.07.  Also adjust
33051         instruction length for 64-bit.
33052         (mov<mode>_64bit, TFmode/TDmode): Likewise.
33053         (mov<mode>_32bit, TFmode/TDmode): Likewise.
33054
33055 2014-02-15  Alan Modra  <amodra@gmail.com>
33056
33057         PR target/58675
33058         PR target/57935
33059         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
33060         find_replacement on parts of insn rtl that might be reloaded.
33061
33062 2014-02-15  Richard Biener  <rguenther@suse.de>
33063
33064         PR tree-optimization/60183
33065         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
33066         (tree_ssa_phiprop): Calculate and free post-dominators.
33067
33068 2014-02-14  Jeff Law  <law@redhat.com>
33069
33070         PR rtl-optimization/60131
33071         * ree.c (get_extended_src_reg): New function.
33072         (combine_reaching_defs): Use it rather than assuming location of REG.
33073         (find_and_remove_re): Verify first operand of extension is
33074         a REG before adding the insns to the copy list.
33075
33076 2014-02-14  Roland McGrath  <mcgrathr@google.com>
33077
33078         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
33079         * configure: Regenerated.
33080         * config.in: Regenerated.
33081         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
33082         instead of ASM_SHORT.
33083
33084 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
33085             Richard Earnshaw  <rearnsha@arm.com>
33086
33087         PR rtl-optimization/59535
33088         * lra-constraints.c (process_alt_operands): Encourage alternative
33089         when unassigned pseudo class is superset of the alternative class.
33090         (inherit_reload_reg): Don't inherit when optimizing for code size.
33091         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
33092         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
33093         modes not less than 4 for Thumb1.
33094
33095 2014-02-14  Kyle McMartin  <kyle@redhat.com>
33096
33097         PR pch/60010
33098         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
33099
33100 2014-02-14  Richard Biener  <rguenther@suse.de>
33101
33102         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
33103         (get_frame_arg): Drop the assert with langhook types_compatible_p.
33104         Do not strip INDIRECT_REFs.
33105
33106 2014-02-14  Richard Biener  <rguenther@suse.de>
33107
33108         PR lto/60179
33109         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
33110         DECL_FUNCTION_SPECIFIC_TARGET.
33111         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
33112         * tree-streamer-out.c (pack_ts_target_option): Remove.
33113         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
33114         (write_ts_function_decl_tree_pointers): Do not stream
33115         DECL_FUNCTION_SPECIFIC_TARGET.
33116         * tree-streamer-in.c (unpack_ts_target_option): Remove.
33117         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
33118         (lto_input_ts_function_decl_tree_pointers): Do not stream
33119         DECL_FUNCTION_SPECIFIC_TARGET.
33120
33121 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
33122
33123         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
33124         (get_initial_def_for_induction, vectorizable_induction): Ignore
33125         debug stmts when looking for exit_phi.
33126         (vectorizable_live_operation): Fix up condition.
33127
33128 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
33129
33130         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
33131         nreverse() because it changes the content of original tree list.
33132
33133 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
33134
33135         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
33136         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
33137
33138 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
33139
33140         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
33141         GNU coding standards.
33142
33143 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
33144
33145         PR debug/60152
33146         * dwarf2out.c (gen_subprogram_die): Don't call
33147         add_calling_convention_attribute if subr_die is old_die.
33148
33149 2014-02-13  Sharad Singhai  <singhai@google.com>
33150
33151         * doc/optinfo.texi: Fix order of nodes.
33152
33153 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
33154
33155         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
33156         operands[2], not operands[3].
33157
33158 2014-02-13  Richard Biener  <rguenther@suse.de>
33159
33160         PR bootstrap/59878
33161         * doc/install.texi (ISL): Update recommended version to 0.12.2,
33162         mention the possibility of an in-tree build.
33163         (CLooG): Update recommended version to 0.18.1, mention the
33164         possibility of an in-tree build and clarify that the ISL
33165         bundled with CLooG does not work.
33166
33167 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
33168
33169         PR target/43546
33170         * expr.c (compress_float_constant): If x is a hard register,
33171         extend into a pseudo and then move to x.
33172
33173 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33174
33175         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
33176         caused by bad second argument to warning_at() with -mhotpatch and
33177         nested functions (e.g. with gfortran).
33178
33179 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
33180
33181         * opts.c (option_name): Remove "enabled by default" rider.
33182
33183 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
33184
33185         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
33186
33187 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
33188             Uros Bizjak  <ubizjak@gmail.com>
33189
33190         PR target/60151
33191         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
33192         * configure: Regenerated.
33193
33194 2014-02-12  Richard Biener  <rguenther@suse.de>
33195
33196         * vec.c (vec_prefix::calculate_allocation): Move as
33197         inline variant to vec.h.
33198         (vec_prefix::calculate_allocation_1): New out-of-line version.
33199         * vec.h (vec_prefix::calculate_allocation_1): Declare.
33200         (vec_prefix::m_has_auto_buf): Rename to ...
33201         (vec_prefix::m_using_auto_storage): ... this.
33202         (vec_prefix::calculate_allocation): Inline the easy cases
33203         and dispatch to calculate_allocation_1 which doesn't need the
33204         prefix address.
33205         (va_heap::reserve): Use gcc_checking_assert.
33206         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
33207         m_using_auto_storage.
33208         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
33209         member and adjust.
33210         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
33211         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
33212         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
33213
33214 2014-02-12  Richard Biener  <rguenther@suse.de>
33215
33216         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
33217         when we found a dependence.
33218
33219 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
33220
33221         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
33222         common code...
33223         (maybe_fold_stmt): ... into this new function.
33224         * omp-low.c (lower_omp): Update comment.
33225
33226         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
33227         last use.
33228
33229         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
33230         dereference.
33231
33232 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
33233
33234         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
33235         identifiers in comments.
33236         (cortexa53_extra_costs): Likewise.
33237         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
33238         (cortexa7_extra_costs): Likewise.
33239         (cortexa12_extra_costs): Likewise.
33240         (cortexa15_extra_costs): Likewise.
33241         (v7m_extra_costs): Likewise.
33242
33243 2014-02-12  Richard Biener  <rguenther@suse.de>
33244
33245         PR middle-end/60092
33246         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
33247         of posix_memalign being successful.
33248         (lower_stmt): Restrict lowering of posix_memalign to when
33249         -ftree-bit-ccp is enabled.
33250
33251 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
33252
33253         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
33254         arg_loc.
33255         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
33256
33257 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
33258
33259         PR rtl-optimization/60116
33260         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
33261         other_insn once the combination has been validated.
33262
33263 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
33264
33265         PR lto/59468
33266         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
33267         and wrapper.
33268         * ipa-devirt.c: Include demangle.h
33269         (odr_violation_reported): New static variable.
33270         (add_type_duplicate): Update odr_violations.
33271         (maybe_record_node): Add completep parameter; update it.
33272         (record_target_from_binfo): Add COMPLETEP parameter;
33273         update it as needed.
33274         (possible_polymorphic_call_targets_1): Likewise.
33275         (struct polymorphic_call_target_d): Add nonconstruction_targets;
33276         rename FINAL to COMPLETE.
33277         (record_targets_from_bases): Sanity check we found the binfo;
33278         fix COMPLETEP updating.
33279         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
33280         parameter, fix computing of COMPLETEP.
33281         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
33282         at LTO time do demangling.
33283         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
33284         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
33285         parameter.
33286         (gimple_get_virt_method_for_binfo): Likewise.
33287         * gimple-fold.h (gimple_get_virt_method_for_binfo,
33288         gimple_get_virt_method_for_vtable): Update prototypes.
33289
33290 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
33291
33292         PR target/49008
33293         * genautomata.c (add_presence_absence): Fix typo with
33294         {final_}presence_list.
33295
33296 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
33297
33298         PR target/60137
33299         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
33300         for VSX/Altivec vectors that land in GPR registers.
33301
33302 2014-02-11  Richard Henderson  <rth@redhat.com>
33303             Jakub Jelinek  <jakub@redhat.com>
33304
33305         PR debug/59776
33306         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
33307         around drhs if type conversion to lacc->type is not useless.
33308
33309 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33310
33311         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
33312         tuning struct.
33313         (cortex-a57.cortex-a53): Likewise.
33314         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
33315
33316 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33317
33318         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
33319         arm_restrict_it.
33320
33321 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
33322
33323         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
33324         add_options_for_arm_vfp3.
33325
33326 2014-02-11  Jeff Law  <law@redhat.com>
33327
33328         PR middle-end/54041
33329         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
33330         object with an undesirable mode.
33331
33332 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33333
33334         PR libgomp/60107
33335         * config/i386/sol2-9.h: New file.
33336         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
33337         *-*-solaris2.9*): Use it.
33338
33339 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
33340
33341         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
33342         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
33343
33344 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
33345
33346         * config/microblaze/microblaze.c: Extend mcpu version format
33347
33348 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
33349
33350         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
33351
33352 2014-02-10  Richard Henderson  <rth@redhat.com>
33353
33354         PR target/59927
33355         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
33356         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
33357         ms-abi vs -mno-accumulate-outgoing-args.
33358         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
33359         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
33360         respect to ms-abi.
33361
33362 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33363
33364         PR middle-end/60080
33365         * cfgexpand.c (expand_asm_operands): Attach source location to
33366         ASM_INPUT rtx objects.
33367         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
33368
33369 2014-02-10  Nick Clifton  <nickc@redhat.com>
33370
33371         * config/mn10300/mn10300.c (popcount): New function.
33372         (mn10300_expand_prologue): Include saved registers in stack usage
33373         count.
33374
33375 2014-02-10  Jeff Law  <law@redhat.com>
33376
33377         PR middle-end/52306
33378         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
33379         when changing the SET_DEST of a prior insn to avoid an input reload.
33380
33381 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
33382
33383         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
33384         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
33385         -mcall-openbsd, or -mcall-linux.
33386         (CC1_ENDIAN_BIG_SPEC): Remove.
33387         (CC1_ENDIAN_LITTLE_SPEC): Remove.
33388         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
33389         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
33390         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
33391         and %cc1_endian_default.
33392         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
33393
33394 2014-02-10  Richard Biener  <rguenther@suse.de>
33395
33396         PR tree-optimization/60115
33397         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
33398         MEM_REF handling.  Properly verify that the accesses are not
33399         out of the objects bound.
33400
33401 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33402
33403         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
33404         coretex to cortex.
33405
33406 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
33407
33408         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
33409         proper constants and fix formatting.
33410         (possible_polymorphic_call_targets): Fix formatting.
33411
33412 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
33413             Ilya Tocar  <ilya.tocar@intel.com>
33414
33415         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
33416         (_mm512_loadu_epi32): Renamed into...
33417         (_mm512_loadu_si512): This.
33418         (_mm512_storeu_epi32): Renamed into...
33419         (_mm512_storeu_si512): This.
33420         (_mm512_maskz_ceil_ps): Removed.
33421         (_mm512_maskz_ceil_pd): Ditto.
33422         (_mm512_maskz_floor_ps): Ditto.
33423         (_mm512_maskz_floor_pd): Ditto.
33424         (_mm512_floor_round_ps): Ditto.
33425         (_mm512_floor_round_pd): Ditto.
33426         (_mm512_ceil_round_ps): Ditto.
33427         (_mm512_ceil_round_pd): Ditto.
33428         (_mm512_mask_floor_round_ps): Ditto.
33429         (_mm512_mask_floor_round_pd): Ditto.
33430         (_mm512_mask_ceil_round_ps): Ditto.
33431         (_mm512_mask_ceil_round_pd): Ditto.
33432         (_mm512_maskz_floor_round_ps): Ditto.
33433         (_mm512_maskz_floor_round_pd): Ditto.
33434         (_mm512_maskz_ceil_round_ps): Ditto.
33435         (_mm512_maskz_ceil_round_pd): Ditto.
33436         (_mm512_expand_pd): Ditto.
33437         (_mm512_expand_ps): Ditto.
33438         * config/i386/i386.c (ix86_builtins): Remove
33439         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
33440         (bdesc_args): Ditto.
33441         * config/i386/predicates.md (const1256_operand): New.
33442         (const_1_to_2_operand): Ditto.
33443         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
33444         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
33445         (*avx512pf_gatherpf<mode>sf): Ditto.
33446         (avx512pf_gatherpf<mode>df): Ditto.
33447         (*avx512pf_gatherpf<mode>df_mask): Ditto.
33448         (*avx512pf_gatherpf<mode>df): Ditto.
33449         (avx512pf_scatterpf<mode>sf): Ditto.
33450         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
33451         (*avx512pf_scatterpf<mode>sf): Ditto.
33452         (avx512pf_scatterpf<mode>df): Ditto.
33453         (*avx512pf_scatterpf<mode>df_mask): Ditto.
33454         (*avx512pf_scatterpf<mode>df): Ditto.
33455         (avx512f_expand<mode>): Removed.
33456         (<shift_insn><mode>3<mask_name>): Change predicate type.
33457
33458 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
33459
33460         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
33461         not at the end of datarefs vector use ordered_remove to avoid
33462         reordering datarefs vector.
33463
33464         PR c/59984
33465         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
33466         mark local addressable non-static vars as GOVD_PRIVATE
33467         instead of GOVD_LOCAL.
33468         * omp-low.c (lower_omp_for): Move gimple_bind_vars
33469         and BLOCK_VARS of gimple_bind_block to new_stmt rather
33470         than copying them.
33471
33472         PR middle-end/60092
33473         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
33474         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
33475         assume_aligned or alloc_align attributes.
33476         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
33477         arguments.  Handle also assume_aligned and alloc_align attributes.
33478         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
33479         calls to functions with assume_aligned or alloc_align attributes.
33480         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
33481
33482 2014-02-08  Terry Guo  <terry.guo@arm.com>
33483
33484         * doc/invoke.texi: Document ARM -march=armv7e-m.
33485
33486 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
33487
33488         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
33489         flag on __cilkrts_rethrow builtin.
33490
33491         PR ipa/60026
33492         * ipa-cp.c (determine_versionability): Fail at -O0
33493         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
33494         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
33495
33496         Revert:
33497         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
33498
33499         PR ipa/60026
33500         * tree-inline.c (copy_forbidden): Fail for
33501         __attribute__((optimize (0))) functions.
33502
33503 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
33504
33505         * varpool.c: Include pointer-set.h.
33506         (varpool_remove_unreferenced_decls): Variables in other partitions
33507         will not be output; be however careful to not lose information
33508         about partitioning.
33509
33510 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
33511
33512         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
33513         lookup in the vtable constructor.
33514
33515 2014-02-07  Jeff Law  <law@redhat.com>
33516
33517         PR target/40977
33518         * config/m68k/m68k.md (ashldi_extsi): Turn into a
33519         define_insn_and_split.
33520
33521         * ipa-inline.c (inline_small_functions): Fix typos.
33522
33523 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
33524
33525         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
33526         (s390_can_use_return_insn): Declare.
33527         * config/s390/s390.h (EPILOGUE_USES): Define.
33528         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
33529         instructions.
33530         (s390_chunkify_start): Handle return JUMP_LABELs.
33531         (s390_early_mach): Emit a main_pool instruction on the entry edge.
33532         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
33533         (s390_can_use_return_insn): New functions.
33534         (s390_fix_long_loop_prediction): Handle conditional returns.
33535         (TARGET_SET_UP_BY_PROLOGUE): Define.
33536         * config/s390/s390.md (ANY_RETURN): New code iterator.
33537         (*creturn, *csimple_return, return, simple_return): New patterns.
33538
33539 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
33540
33541         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
33542         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
33543         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
33544         REG_CFA_RESTORE list when deciding not to restore a register.
33545
33546 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
33547
33548         * config/s390/s390.c: Include tree-pass.h and context.h.
33549         (s390_early_mach): New function, split out from...
33550         (s390_emit_prologue): ...here.
33551         (pass_data_s390_early_mach): New pass structure.
33552         (pass_s390_early_mach): New class.
33553         (s390_option_override): Create and register early_mach pass.
33554         Move to end of file.
33555
33556 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
33557
33558         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
33559         to match for the exit block.
33560
33561 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33562
33563         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
33564         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
33565         Reject misaligned operands.
33566
33567 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33568
33569         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
33570
33571 2014-02-07  Richard Biener  <rguenther@suse.de>
33572
33573         PR middle-end/60092
33574         * gimple-low.c (lower_builtin_posix_memalign): New function.
33575         (lower_stmt): Call it to lower posix_memalign in a way
33576         to make alignment info accessible.
33577
33578 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
33579
33580         PR c++/60082
33581         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
33582         __builtin_setjmp_receiver.
33583
33584 2014-02-07  Richard Biener  <rguenther@suse.de>
33585
33586         PR middle-end/60092
33587         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
33588         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
33589         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
33590         Handle BUILT_IN_POSIX_MEMALIGN.
33591         (find_func_clobbers): Likewise.
33592         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
33593         (call_may_clobber_ref_p_1): Likewise.
33594
33595 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
33596
33597         PR ipa/59918
33598         * ipa-devirt.c (record_target_from_binfo): Remove overactive
33599         sanity check.
33600
33601 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
33602
33603         PR ipa/59469
33604         * lto-cgraph.c (lto_output_node): Use
33605         symtab_get_symbol_partitioning_class.
33606         (lto_output_varpool_node): likewise.
33607         (symtab_get_symbol_partitioning_class): Move here from
33608         lto/lto-partition.c
33609         * cgraph.h (symbol_partitioning_class): Likewise.
33610         (symtab_get_symbol_partitioning_class): Declare.
33611
33612 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
33613
33614         * ggc.h (ggc_internal_cleared_alloc): New macro.
33615         * vec.h (vec_safe_copy): Handle memory stats.
33616         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
33617         * target-globals.c (save_target_globals): Likewise.
33618
33619 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
33620
33621         PR target/60077
33622         * expr.c (emit_move_resolve_push): Export; be bit more selective
33623         on when to clear alias set.
33624         * expr.h (emit_move_resolve_push): Declare.
33625         * function.h (struct function): Add tail_call_marked.
33626         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
33627         * config/i386/i386-protos.h (ix86_expand_push): Remove.
33628         * config/i386/i386.md (TImode move expander): De not call
33629         ix86_expand_push.
33630         (FP push expanders): Preserve memory attributes.
33631         * config/i386/sse.md (push<mode>1): Remove.
33632         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
33633         (ix86_expand_push): Remove.
33634         * config/i386/mmx.md (push<mode>1): Remove.
33635
33636 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
33637
33638         PR rtl-optimization/60030
33639         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
33640         lopart with paradoxical subreg before shifting it up by hprec.
33641
33642 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33643
33644         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
33645         Remove extra newline at end of file.
33646         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
33647         (arm_issue_rate): Handle cortexa57.
33648         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
33649         (cortex-a57.cortex-a53): Likewise.
33650
33651 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
33652
33653         PR target/59575
33654         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
33655         don't record in REG_FRAME_RELATED_EXPR registers not set in that
33656         bitmask.
33657         (arm_expand_prologue): Adjust all callers.
33658         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
33659         info, registers also at the lowest numbered registers side.  Use
33660         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
33661         XEXP.
33662
33663         PR debug/59992
33664         * var-tracking.c (adjust_mems): Before adding a SET to
33665         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
33666
33667 2014-02-06  Alan Modra  <amodra@gmail.com>
33668
33669         PR target/60032
33670         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
33671         change SDmode to DDmode when lra_in_progress.
33672
33673 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
33674
33675         PR middle-end/59150
33676         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
33677         free_data_ref on the dr first, and before goto again also set dr
33678         to the next dr.  For simd_lane_access, free old datarefs[i] before
33679         overwriting it.  For get_vectype_for_scalar_type failure, don't
33680         free_data_ref if simd_lane_access.
33681
33682         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
33683
33684         PR target/60062
33685         * tree.h (opts_for_fn): New inline function.
33686         (opt_for_fn): Define.
33687         * config/i386/i386.c (ix86_function_regparm): Use
33688         opt_for_fn (decl, optimize) instead of optimize.
33689
33690 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
33691
33692         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
33693         for SYMBOL_REF in large memory model.
33694
33695 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33696
33697         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
33698         and crypto support.
33699         (cortex-a57): Likewise.
33700         (cortex-a57.cortex-a53): Likewise.
33701
33702 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
33703             Kugan Vivekanandarajah  <kuganv@linaro.org>
33704
33705         * config/arm/arm.c (arm_vector_alignment_reachable): Check
33706         unaligned_access.
33707         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
33708
33709 2014-02-06  Richard Biener  <rguenther@suse.de>
33710
33711         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
33712         set_loop_copy and initialize_original_copy_tables.
33713
33714 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
33715
33716         * config/aarch64/aarch64-simd.md
33717         (aarch64_ashr_simddi): Change QI to SI.
33718
33719 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
33720             Jakub Jelinek  <jakub@redhat.com>
33721
33722         PR middle-end/60013
33723         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
33724         of the dataflow.
33725
33726 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33727
33728         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
33729         CODE_FOR_altivec_vpku[hw]um to
33730         CODE_FOR_altivec_vpku[hw]um_direct.
33731         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
33732         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
33733         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
33734         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
33735
33736 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33737
33738         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
33739         generation for -maltivec=be.
33740         (altivec_vsumsws): Simplify redundant test.
33741
33742 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33743
33744         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
33745         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
33746         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
33747         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
33748         gen_altivec_vpkuwum.
33749         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
33750         BYTES_BIG_ENDIAN.
33751         (altivec_vpks<VI_char>ss): Likewise.
33752         (altivec_vpks<VI_char>us): Likewise.
33753         (altivec_vpku<VI_char>us): Likewise.
33754         (altivec_vpku<VI_char>um): Likewise.
33755         (altivec_vpku<VI_char>um_direct): New (copy of
33756         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
33757         internal use).
33758         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
33759         target is little endian and -maltivec=be is not specified.
33760         (*altivec_vupkhs<VU_char>_direct): New (copy of
33761         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
33762         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
33763         target is little endian and -maltivec=be is not specified.
33764         (*altivec_vupkls<VU_char>_direct): New (copy of
33765         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
33766         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
33767         little endian and -maltivec=be is not specified.
33768         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
33769         little endian and -maltivec=be is not specified.
33770
33771 2014-02-05  Richard Henderson  <rth@redhat.com>
33772
33773         PR debug/52727
33774         * combine-stack-adj.c: Revert r206943.
33775         * sched-int.h (struct deps_desc): Add last_args_size.
33776         * sched-deps.c (init_deps): Initialize it.
33777         (sched_analyze_insn): Add OUTPUT dependencies between insns that
33778         contain REG_ARGS_SIZE notes.
33779
33780 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
33781
33782         * lto-cgraph.c (asm_nodes_output): Make global.
33783         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
33784         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
33785         (driver_handle_option): Handle OPT_fwpa.
33786
33787 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
33788
33789         PR ipa/59947
33790         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
33791         a comment typo and formatting issue.  If odr_hash hasn't been
33792         created, return vNULL and set *completep to false.
33793
33794         PR middle-end/57499
33795         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
33796         bb with no successors.
33797
33798 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
33799
33800         PR target/59718
33801         * doc/invoke.texi (-march): Clarify documentation for ARM.
33802         (-mtune): Likewise.
33803         (-mcpu): Likewise.
33804
33805 2014-02-05  Richard Biener  <rguenther@suse.de>
33806
33807         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
33808         when not vectorizing because of too many alias checks.
33809         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
33810         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
33811
33812 2014-02-05  Nick Clifton  <nickc@redhat.com>
33813
33814         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
33815         accept extended registers in any mode when compiling for the MN10300.
33816
33817 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
33818
33819         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
33820         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
33821         sanitization attributes.
33822         (can_inline_edge_p): Likewise.
33823         (sanitize_attrs_match_for_inline_p): New function.
33824
33825 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
33826
33827         * ipa-prop.c (detect_type_change): Shor circuit testing of
33828         type changes on THIS pointer.
33829
33830 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
33831
33832         PR target/59777
33833         * config/pa/pa.c (legitimize_tls_address): Return original address
33834         if not passed a SYMBOL_REF rtx.
33835         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
33836         addresses.
33837         (pa_emit_move_sequence): Simplify TLS source operands.
33838         (pa_legitimate_constant_p): Reject all TLS constants.
33839         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
33840         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
33841
33842 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
33843
33844         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
33845         groups when we know they are controlled by LTO.
33846         * varasm.c (default_binds_local_p_1): If object is in other partition,
33847         it will be resolved locally.
33848
33849 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33850
33851         * config/host-linux.c (linux_gt_pch_use_address): Don't
33852         use SSIZE_MAX because it is not always defined.
33853
33854 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
33855
33856         PR bootstrap/59913
33857         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
33858         threshold for pseudo splitting.
33859         (update_ebb_live_info): Process call argument hard registers and
33860         hard registers from insn definition too.
33861         (max_small_class_regs_num): New constant.
33862         (inherit_in_ebb): Update live hard regs through EBBs.  Update
33863         reloads_num only for small register classes.  Don't split for
33864         outputs of jumps.
33865
33866 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
33867
33868         PR ipa/60058
33869         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
33870         is non-null.
33871
33872 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
33873
33874         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
33875         visibility is safe.
33876
33877 2014-02-04  Marek Polacek  <polacek@redhat.com>
33878
33879         * gdbinit.in (pel): Define.
33880
33881 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33882
33883         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
33884         behavior.
33885
33886 2014-02-04  Richard Biener  <rguenther@suse.de>
33887
33888         PR lto/59723
33889         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
33890         in function context local.
33891         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
33892         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
33893         similar to LTO_imported_decl_ref.
33894
33895 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
33896
33897         PR tree-optimization/60002
33898         * cgraphclones.c (build_function_decl_skip_args): Clear
33899         DECL_LANG_SPECIFIC.
33900
33901         PR tree-optimization/60023
33902         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
33903         false to gsi_replace.
33904         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
33905         has been in some EH region and vec_stmt could throw, add
33906         vec_stmt into the same EH region.
33907         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
33908         has no lhs, ignore it.
33909         * internal-fn.c (expand_MASK_LOAD): Likewise.
33910
33911         PR ipa/60026
33912         * tree-inline.c (copy_forbidden): Fail for
33913         __attribute__((optimize (0))) functions.
33914
33915         PR other/58712
33916         * omp-low.c (simd_clone_struct_copy): If from->inbranch
33917         is set, copy one less argument.
33918         (expand_simd_clones): Don't subtract clone_info->inbranch
33919         from simd_clone_struct_alloc argument.
33920
33921         PR rtl-optimization/57915
33922         * recog.c (simplify_while_replacing): If all unary/binary/relational
33923         operation arguments are constant, attempt to simplify those.
33924
33925         PR middle-end/59261
33926         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
33927         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
33928
33929 2014-02-04  Richard Biener  <rguenther@suse.de>
33930
33931         PR tree-optimization/60012
33932         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
33933         TBAA disambiguation to all DDRs.
33934
33935 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33936
33937         PR target/59788
33938         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
33939         (LINK_SPEC): Use it for -shared, -shared-libgcc.
33940
33941 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33942
33943         PR ipa/59882
33944         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
33945
33946 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33947
33948         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
33949         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
33950
33951 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33952
33953         PR ipa/59831
33954         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
33955         to figure out targets of polymorphic calls with known decl.
33956         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33957         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
33958         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
33959         (get_polymorphic_call_info): ... here.
33960         (get_polymorphic_call_info_from_invariant): New function.
33961
33962 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33963
33964         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
33965         lookup via vtable pointer; check for type consistency
33966         and turn inconsitent facts into UNREACHABLE.
33967         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33968         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
33969         type inconsistent querries; return UNREACHABLE instead.
33970
33971 2014-02-03  Richard Henderson  <rth@twiddle.net>
33972
33973         PR tree-opt/59924
33974         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
33975         already processed this node.
33976         (normalize_one_pred_1): Pass along mark_set.
33977         (normalize_one_pred): Create and destroy a pointer_set_t.
33978         (normalize_one_pred_chain): Likewise.
33979
33980 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
33981
33982         PR gcov-profile/58602
33983         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
33984
33985 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33986
33987         PR ipa/59831
33988         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
33989         -fno-devirtualize; try to devirtualize by the knowledge of
33990         virtual table pointer given by aggregate propagation.
33991         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33992         (ipa_print_node_jump_functions): Dump also offset that
33993         is relevant for polymorphic calls.
33994         (determine_known_aggregate_parts): Add arg_type parameter; use it
33995         instead of determining the type from pointer type.
33996         (ipa_compute_jump_functions_for_edge): Update call of
33997         determine_known_aggregate_parts.
33998         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
33999         (gimple_get_virt_method_for_binfo): ... here; simplify using
34000         vtable_pointer_value_to_vtable.
34001         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
34002         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
34003         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
34004         (vtable_pointer_value_to_vtable): Break out from ...; handle also
34005         POINTER_PLUS_EXPR.
34006         (vtable_pointer_value_to_binfo): ... here.
34007         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
34008
34009 2014-02-03  Teresa Johnson  <tejohnson@google.com>
34010
34011         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
34012         redef of outer loop index variable.
34013
34014 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
34015
34016         PR c++/53017
34017         PR c++/59211
34018         * doc/extend.texi (Function Attributes): Typo.
34019
34020 2014-02-03  Cong Hou  <congh@google.com>
34021
34022         PR tree-optimization/60000
34023         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
34024         if the vectorized statement is a store.  A store statement can only
34025         appear at the end of pattern statements.
34026
34027 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
34028
34029         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
34030         (ix86_option_override_internal): Default long double to 64-bit for
34031         32-bit Bionic and to 128-bit for 64-bit Bionic.
34032
34033         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
34034         TARGET_LONG_DOUBLE_128 is true.
34035         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
34036
34037         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
34038         (mlong-double-64): Negate -mlong-double-128.
34039         (mlong-double-128): New option.
34040
34041         * config/i386/i386-c.c (ix86_target_macros): Define
34042         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
34043
34044         * doc/invoke.texi: Document -mlong-double-128.
34045
34046 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
34047
34048         PR rtl-optimization/60024
34049         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
34050
34051 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
34052
34053         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
34054
34055 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
34056
34057         PR rtl-optimization/57662
34058         * sel-sched.c (code_motion_path_driver): Do not mark already not
34059         existing blocks in the visiting bitmap.
34060
34061 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
34062
34063         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
34064         on the insn being emitted.
34065
34066 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
34067             Will Deacon  <will.deacon@arm.com>
34068
34069         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
34070
34071 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34072
34073         * config/arm/arm-tables.opt: Regenerate.
34074
34075 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34076
34077         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
34078         for vector types other than V16QImode.
34079         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
34080         define_expand, and call altivec_expand_vec_perm_le when producing
34081         code with little endian element order.
34082         (*altivec_vperm_<mode>_internal): New insn having previous
34083         behavior of altivec_vperm_<mode>.
34084         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
34085         altivec_expand_vec_perm_le when producing code with little endian
34086         element order.
34087         (*altivec_vperm_<mode>_uns_internal): New insn having previous
34088         behavior of altivec_vperm_<mode>_uns.
34089
34090 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34091
34092         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
34093         (altivec_vsumsws): Add handling for -maltivec=be with a little
34094         endian target.
34095         (altivec_vsumsws_direct): New.
34096         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
34097         gen_altivec_vsumsws.
34098
34099 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
34100
34101         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
34102         vtable_pointer_value_to_binfo): New functions.
34103         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
34104         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
34105
34106 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
34107
34108         * config/nios2/nios2.md (load_got_register): Initialize GOT
34109         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
34110         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
34111
34112 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
34113
34114         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
34115         preserverd by passthrough, do not propagate the type.
34116
34117 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
34118
34119         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
34120         (mips_atomic_assign_expand_fenv): New function.
34121         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
34122
34123 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
34124
34125         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
34126         (__builtin_mips_set_fcsr): Likewise.
34127         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
34128         MIPS_USI_FTYPE_VOID.
34129         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
34130         (mips16_expand_set_fcsr): Likewise.
34131         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
34132         (mips16_set_fcsr_stub): Likewise.
34133         (mips16_get_fcsr_one_only_stub): New class.
34134         (mips16_set_fcsr_one_only_stub): Likewise.
34135         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
34136         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
34137         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
34138         (hard_float): New availability predicate.
34139         (mips_builtins): Add get_fcsr and set_fcsr.
34140         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
34141         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
34142         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
34143         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
34144         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
34145         patterns.
34146
34147 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
34148
34149         * config/mips/mips.c (mips_one_only_stub): New class.
34150         (mips_need_mips16_rdhwr_p): Replace with...
34151         (mips16_rdhwr_stub): ...this new variable.
34152         (mips16_stub_call_address): New function.
34153         (mips16_rdhwr_one_only_stub): New class.
34154         (mips_expand_thread_pointer): Use mips16_stub_call_address.
34155         (mips_output_mips16_rdhwr): Delete.
34156         (mips_finish_stub): New function.
34157         (mips_code_end): Use it to handle rdhwr stubs.
34158
34159 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
34160
34161         PR target/60017
34162         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
34163         when calculating size of integer atomic types.
34164
34165 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
34166
34167         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
34168
34169 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
34170
34171         PR tree-optimization/60003
34172         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
34173         * profile.c (branch_prob): Use gimple_call_builtin_p
34174         to check for BUILT_IN_SETJMP_RECEIVER.
34175         * tree-inline.c (copy_bb): Call notice_special_calls.
34176
34177 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
34178
34179         PR bootstrap/59985
34180         * lra-constraints.c (process_alt_operands): Update reload_sum only
34181         on the first pass.
34182
34183 2014-01-31  Richard Henderson  <rth@redhat.com>
34184
34185         PR middle-end/60004
34186         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
34187         until after else_eh is processed.
34188
34189 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
34190
34191         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
34192         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
34193         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
34194         in smmintrin.h, remove them.
34195         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
34196         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
34197         * config/i386/i386.md (ROUND_SAE): Fix value.
34198         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
34199         (const48_operand): New.
34200         * config/i386/subst.md (round), (round_expand): Use
34201         const_4_or_8_to_11_operand.
34202         (round_saeonly), (round_saeonly_expand): Use const48_operand.
34203
34204 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
34205
34206         * config/i386/constraints.md (Yk): Swap meaning with k.
34207         * config/i386/i386.md (movhi_internal): Change Yk to k.
34208         (movqi_internal): Ditto.
34209         (*k<logic><mode>): Ditto.
34210         (*andhi_1): Ditto.
34211         (*andqi_1): Ditto.
34212         (kandn<mode>): Ditto.
34213         (*<code>hi_1): Ditto.
34214         (*<code>qi_1): Ditto.
34215         (kxnor<mode>): Ditto.
34216         (kortestzhi): Ditto.
34217         (kortestchi): Ditto.
34218         (kunpckhi): Ditto.
34219         (*one_cmplhi2_1): Ditto.
34220         (*one_cmplqi2_1): Ditto.
34221         * config/i386/sse.md (): Change k to Yk.
34222         (avx512f_load<mode>_mask): Ditto.
34223         (avx512f_blendm<mode>): Ditto.
34224         (avx512f_store<mode>_mask): Ditto.
34225         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
34226         (avx512f_storedqu<mode>_mask): Ditto.
34227         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
34228         Ditto.
34229         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
34230         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
34231         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
34232         (avx512f_maskcmp<mode>3): Ditto.
34233         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
34234         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
34235         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
34236         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
34237         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
34238         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
34239         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
34240         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
34241         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
34242         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
34243         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
34244         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
34245         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
34246         (vec_extract_lo_<mode>_maskm): Ditto.
34247         (vec_extract_hi_<mode>_maskm): Ditto.
34248         (avx512f_vternlog<mode>_mask): Ditto.
34249         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
34250         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
34251         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
34252         (avx512f_<code>v8div16qi2_mask): Ditto.
34253         (avx512f_<code>v8div16qi2_mask_store): Ditto.
34254         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
34255         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
34256         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
34257         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
34258         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
34259         (*avx512pf_gatherpf<mode>df_mask): Ditto.
34260         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
34261         (*avx512pf_scatterpf<mode>df_mask): Ditto.
34262         (avx512cd_maskb_vec_dupv8di): Ditto.
34263         (avx512cd_maskw_vec_dupv16si): Ditto.
34264         (avx512f_vpermi2var<mode>3_maskz): Ditto.
34265         (avx512f_vpermi2var<mode>3_mask): Ditto.
34266         (avx512f_vpermi2var<mode>3_mask): Ditto.
34267         (avx512f_vpermt2var<mode>3_maskz): Ditto.
34268         (*avx512f_gathersi<mode>): Ditto.
34269         (*avx512f_gathersi<mode>_2): Ditto.
34270         (*avx512f_gatherdi<mode>): Ditto.
34271         (*avx512f_gatherdi<mode>_2): Ditto.
34272         (*avx512f_scattersi<mode>): Ditto.
34273         (*avx512f_scatterdi<mode>): Ditto.
34274         (avx512f_compress<mode>_mask): Ditto.
34275         (avx512f_compressstore<mode>_mask): Ditto.
34276         (avx512f_expand<mode>_mask): Ditto.
34277         * config/i386/subst.md (mask): Change k to Yk.
34278         (mask_scalar_merge): Ditto.
34279         (sd): Ditto.
34280
34281 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
34282
34283         * doc/extend.texi (Vector Extensions): Document ?: in C++.
34284
34285 2014-01-31  Richard Biener  <rguenther@suse.de>
34286
34287         PR middle-end/59990
34288         * builtins.c (fold_builtin_memory_op): Make sure to not
34289         use a floating-point mode or a boolean or enumeral type for
34290         the copy operation.
34291
34292 2014-01-30  DJ Delorie  <dj@redhat.com>
34293
34294         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
34295         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
34296         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
34297         whenever main() has an epilogue.
34298
34299 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34300
34301         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
34302         unused variable "field".
34303         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
34304         (vsx_mergeh_<mode>): Likewise.
34305         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
34306         (altivec_vmrghh): Likewise.
34307         (altivec_vmrghw): Likewise.
34308         (altivec_vmrglb): Likewise.
34309         (altivec_vmrglh): Likewise.
34310         (altivec_vmrglw): Likewise.
34311         (altivec_vspltb): Add missing uses.
34312         (altivec_vsplth): Likewise.
34313         (altivec_vspltw): Likewise.
34314         (altivec_vspltsf): Likewise.
34315
34316 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
34317
34318         PR target/59923
34319         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
34320         frame related instructions.
34321
34322 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
34323
34324         PR rtl-optimization/59959
34325         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
34326         any reload of register whose subreg is invalid.
34327
34328 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
34329
34330         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
34331         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
34332         Add missing return type - void.
34333
34334 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34335
34336         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
34337         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
34338         remove element index adjustment for endian (now handled in vsx.md
34339         and altivec.md).
34340         (altivec_expand_vec_perm_const): Use
34341         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
34342         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
34343         (vsx_xxspltw_<mode>): Adjust element index for little endian.
34344         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
34345         define_expand and a new define_insn *altivec_vspltb_internal;
34346         adjust for -maltivec=be on a little endian target.
34347         (altivec_vspltb_direct): New.
34348         (altivec_vsplth): Divide into a define_expand and a new
34349         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
34350         little endian target.
34351         (altivec_vsplth_direct): New.
34352         (altivec_vspltw): Divide into a define_expand and a new
34353         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
34354         little endian target.
34355         (altivec_vspltw_direct): New.
34356         (altivec_vspltsf): Divide into a define_expand and a new
34357         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
34358         a little endian target.
34359
34360 2014-01-30  Richard Biener  <rguenther@suse.de>
34361
34362         PR tree-optimization/59993
34363         * tree-ssa-forwprop.c (associate_pointerplus): Check we
34364         can propagate form the earlier stmt and avoid the transform
34365         when the intermediate result is needed.
34366
34367 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
34368
34369         * README.Portability: Fix typo.
34370
34371 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
34372
34373         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
34374         comparison_operator with ordered_comparison_operator.
34375
34376 2014-01-30  Nick Clifton  <nickc@redhat.com>
34377
34378         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
34379         Rename to mn10300_store_multiple_regs.
34380         * config/mn10300/mn10300.c: Likewise.
34381         * config/mn10300/mn10300.md (store_movm): Fix typo: call
34382         store_multiple_regs.
34383         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
34384         Call mn10300_store_multiple_regs.
34385
34386 2014-01-30  Nick Clifton  <nickc@redhat.com>
34387             DJ Delorie  <dj@redhat.com>
34388
34389         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
34390         %fp 2 to keep registers after it properly word-aligned.
34391         (rl78_alloc_physical_registers_umul): Handle the case where both
34392         input operands are the same.
34393
34394 2014-01-30  Richard Biener  <rguenther@suse.de>
34395
34396         PR tree-optimization/59903
34397         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
34398         check properly.
34399
34400 2014-01-30  Jason Merrill  <jason@redhat.com>
34401
34402         PR c++/59633
34403         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
34404
34405         PR c++/59645
34406         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
34407
34408 2014-01-30  Richard Biener  <rguenther@suse.de>
34409
34410         PR tree-optimization/59951
34411         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
34412
34413 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
34414
34415         PR target/59784
34416         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
34417         SFmode to DFmode case.
34418
34419 2014-01-29  DJ Delorie  <dj@redhat.com>
34420
34421         * config/msp430/msp430.opt (-minrt): New.
34422         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
34423         if -minrt given.
34424         (ENDFILE_SPEC): Likewise.
34425
34426 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
34427
34428         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
34429         (estimate_function_body_sizes): Use it.
34430
34431 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
34432
34433         PR c++/58561
34434         * dwarf2out.c (is_cxx_auto): New.
34435         (is_base_type): Use it.
34436         (gen_type_die_with_usage): Likewise.
34437
34438 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34439
34440         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
34441         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
34442         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
34443         -maltivec=be with LE targets.
34444         (vsx_mergeh_<mode>): Likewise.
34445         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
34446         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
34447         (altivec_vmrghb): Replace with define_expand and new
34448         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
34449         (altivec_vmrghb_direct): New define_insn.
34450         (altivec_vmrghh): Replace with define_expand and new
34451         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
34452         (altivec_vmrghh_direct): New define_insn.
34453         (altivec_vmrghw): Replace with define_expand and new
34454         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
34455         (altivec_vmrghw_direct): New define_insn.
34456         (*altivec_vmrghsf): Adjust for endianness.
34457         (altivec_vmrglb): Replace with define_expand and new
34458         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
34459         (altivec_vmrglb_direct): New define_insn.
34460         (altivec_vmrglh): Replace with define_expand and new
34461         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
34462         (altivec_vmrglh_direct): New define_insn.
34463         (altivec_vmrglw): Replace with define_expand and new
34464         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
34465         (altivec_vmrglw_direct): New define_insn.
34466         (*altivec_vmrglsf): Adjust for endianness.
34467         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
34468         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
34469         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
34470         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
34471         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
34472         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
34473         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
34474         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
34475
34476 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34477
34478         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
34479         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
34480         whitespace.
34481
34482 2014-01-29  Richard Biener  <rguenther@suse.de>
34483
34484         PR tree-optimization/58742
34485         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
34486         associate_pointerplus_align.
34487         (associate_pointerplus_diff): New function.
34488         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
34489         and associate_pointerplus_diff.
34490
34491 2014-01-29  Richard Biener  <rguenther@suse.de>
34492
34493         * lto-streamer.h (LTO_major_version): Bump to 3.
34494         (LTO_minor_version): Reset to 0.
34495
34496 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
34497
34498         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
34499         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
34500         (arm_file_start): Generate correct asm header for armv7ve.
34501         * config/arm/bpabi.h: Add multilib support for armv7ve.
34502         * config/arm/driver-arm.c: Change the architectures of cortex-a7
34503         and cortex-a15 to armv7ve.
34504         * config/arm/t-aprofile: Add multilib support for armv7ve.
34505         * doc/invoke.texi: Document -march=armv7ve.
34506
34507 2014-01-29  Richard Biener  <rguenther@suse.de>
34508
34509         PR tree-optimization/58742
34510         * tree-ssa-forwprop.c (associate_plusminus): Return true
34511         if we changed sth, defer EH cleanup to ...
34512         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
34513         (simplify_mult): New function.
34514
34515 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
34516
34517         PR middle-end/59917
34518         PR tree-optimization/59920
34519         * tree.c (build_common_builtin_nodes): Remove
34520         __builtin_setjmp_dispatcher initialization.
34521         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
34522         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
34523         instead of gsi_after_labels + manually skipping debug stmts.
34524         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
34525         ignore bbs with IFN_ABNORMAL_DISPATCHER.
34526         * tree-inline.c (copy_edges_for_bb): Remove
34527         can_make_abnormal_goto argument, instead add abnormal_goto_dest
34528         argument.  Ignore computed_goto_p stmts.  Don't call
34529         make_abnormal_goto_edges.  If a call might need abnormal edges
34530         for non-local gotos, see if it already has an edge to
34531         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
34532         with true argument, don't do anything then, otherwise add
34533         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
34534         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
34535         caller.
34536         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
34537         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
34538         (lower_stmt): Don't set data->calls_builtin_setjmp.
34539         (lower_builtin_setjmp): Adjust comment.
34540         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
34541         * tree-cfg.c (found_computed_goto): Remove.
34542         (factor_computed_gotos): Remove.
34543         (make_goto_expr_edges): Return bool, true for computed gotos.
34544         Don't call make_abnormal_goto_edges.
34545         (build_gimple_cfg): Don't set found_computed_goto, don't call
34546         factor_computed_gotos.
34547         (computed_goto_p): No longer static.
34548         (make_blocks): Don't set found_computed_goto.
34549         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
34550         (make_edges): If make_goto_expr_edges returns true, push bb
34551         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
34552         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
34553         vector.  Record mapping between bbs and OpenMP regions if there
34554         are any, adjust make_gimple_omp_edges caller.  Call
34555         handle_abnormal_edges.
34556         (make_abnormal_goto_edges): Remove.
34557         * tree-cfg.h (make_abnormal_goto_edges): Remove.
34558         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
34559         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
34560         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
34561         * internal-fn.def (ABNORMAL_DISPATCHER): New.
34562         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
34563         filling *region also set *region_idx to (*region)->entry->index.
34564
34565         PR other/58712
34566         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
34567         For REGs set ORIGINAL_REGNO.
34568
34569 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
34570
34571         * doc/md.texi: Mention that a target shouldn't implement
34572         vec_widen_(s|u)mul_even/odd pair if it is less efficient
34573         than hi/lo pair.
34574
34575 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
34576
34577         PR tree-optimization/59594
34578         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
34579         a copy of the datarefs vector rather than the vector itself.
34580
34581 2014-01-28  Jason Merrill  <jason@redhat.com>
34582
34583         PR c++/53756
34584         * dwarf2out.c (auto_die): New static.
34585         (gen_type_die_with_usage): Handle C++1y 'auto'.
34586         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
34587         on definition.
34588
34589 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
34590
34591         PR target/59672
34592         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
34593         (SPEC_X32): Likewise.
34594         (SPEC_64): Likewise.
34595         * config/i386/i386.c (ix86_option_override_internal): Turn off
34596         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
34597         for TARGET_16BIT.
34598         (x86_file_start): Output .code16gcc for TARGET_16BIT.
34599         * config/i386/i386.h (TARGET_16BIT): New macro.
34600         (TARGET_16BIT_P): Likewise.
34601         * config/i386/i386.opt: Add m16.
34602         * doc/invoke.texi: Document -m16.
34603
34604 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
34605
34606         PR preprocessor/59935
34607         * input.c (location_get_source_line): Bail out on when line number
34608         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
34609
34610 2014-01-28  Richard Biener  <rguenther@suse.de>
34611
34612         PR tree-optimization/58742
34613         * tree-ssa-forwprop.c (associate_plusminus): Handle
34614         pointer subtraction of the form (T)(P + A) - (T)P.
34615
34616 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34617
34618         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
34619         at const_int_cost.
34620
34621 2014-01-28  Richard Biener  <rguenther@suse.de>
34622
34623         Revert
34624         2014-01-28  Richard Biener  <rguenther@suse.de>
34625
34626         PR rtl-optimization/45364
34627         PR rtl-optimization/59890
34628         * var-tracking.c (local_get_addr_clear_given_value): Handle
34629         already cleared slot.
34630         (val_reset): Handle not allocated local_get_addr_cache.
34631         (vt_find_locations): Use post-order on the inverted CFG.
34632
34633 2014-01-28  Richard Biener  <rguenther@suse.de>
34634
34635         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
34636
34637 2014-01-28  Richard Biener  <rguenther@suse.de>
34638
34639         PR rtl-optimization/45364
34640         PR rtl-optimization/59890
34641         * var-tracking.c (local_get_addr_clear_given_value): Handle
34642         already cleared slot.
34643         (val_reset): Handle not allocated local_get_addr_cache.
34644         (vt_find_locations): Use post-order on the inverted CFG.
34645
34646 2014-01-28  Alan Modra  <amodra@gmail.com>
34647
34648         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
34649         * configure.ac <recursive call for build != host>: Define
34650         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
34651         and LD_FOR_BUILD too.
34652         * configure: Regenerate.
34653
34654 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
34655
34656         * config/i386/i386.c (get_builtin_code_for_version): Separate
34657         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
34658         Broadwell from Haswell.
34659
34660 2014-01-27  Steve Ellcey  <sellcey@mips.com>
34661
34662         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
34663         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
34664         * config/mips/mips.c (mips_option_override): Change setting
34665         of TARGET_DSP.
34666         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
34667         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
34668         Change from Mask to Var.
34669
34670 2014-01-27  Jeff Law  <law@redhat.com>
34671
34672         * ipa-inline.c (inline_small_functions): Fix typo.
34673
34674 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
34675
34676         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
34677         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
34678         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
34679         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
34680         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
34681         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
34682         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
34683         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
34684         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
34685         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
34686         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
34687         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
34688         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
34689         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
34690         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
34691         (_mm512_storeu_epi64): Ditto.
34692         (_mm512_cmpge_epi32_mask): Ditto.
34693         (_mm512_cmpge_epu32_mask): Ditto.
34694         (_mm512_cmpge_epi64_mask): Ditto.
34695         (_mm512_cmpge_epu64_mask): Ditto.
34696         (_mm512_cmple_epi32_mask): Ditto.
34697         (_mm512_cmple_epu32_mask): Ditto.
34698         (_mm512_cmple_epi64_mask): Ditto.
34699         (_mm512_cmple_epu64_mask): Ditto.
34700         (_mm512_cmplt_epi32_mask): Ditto.
34701         (_mm512_cmplt_epu32_mask): Ditto.
34702         (_mm512_cmplt_epi64_mask): Ditto.
34703         (_mm512_cmplt_epu64_mask): Ditto.
34704         (_mm512_cmpneq_epi32_mask): Ditto.
34705         (_mm512_cmpneq_epu32_mask): Ditto.
34706         (_mm512_cmpneq_epi64_mask): Ditto.
34707         (_mm512_cmpneq_epu64_mask): Ditto.
34708         (_mm512_expand_pd): Ditto.
34709         (_mm512_expand_ps): Ditto.
34710         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
34711         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
34712         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
34713         * config/i386/i386.c (ix86_builtins): Add
34714         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
34715         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
34716         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
34717         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
34718         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
34719         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
34720         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
34721         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
34722         IX86_BUILTIN_PMOVUSQW512_MEM.
34723         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
34724         __builtin_ia32_pmovsqd512mem_mask,
34725         __builtin_ia32_pmovqd512mem_mask,
34726         __builtin_ia32_pmovusqw512mem_mask,
34727         __builtin_ia32_pmovsqw512mem_mask,
34728         __builtin_ia32_pmovqw512mem_mask,
34729         __builtin_ia32_pmovusdw512mem_mask,
34730         __builtin_ia32_pmovsdw512mem_mask,
34731         __builtin_ia32_pmovdw512mem_mask,
34732         __builtin_ia32_pmovqb512mem_mask,
34733         __builtin_ia32_pmovusqb512mem_mask,
34734         __builtin_ia32_pmovsqb512mem_mask,
34735         __builtin_ia32_pmovusdb512mem_mask,
34736         __builtin_ia32_pmovsdb512mem_mask,
34737         __builtin_ia32_pmovdb512mem_mask.
34738         (bdesc_args): Add __builtin_ia32_expanddf512,
34739         __builtin_ia32_expandsf512.
34740         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
34741         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
34742         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
34743         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
34744         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
34745         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
34746         (avx512f_<code>v8div16qi2_mask_store): This.
34747         (avx512f_expand<mode>): New.
34748
34749 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
34750
34751         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
34752         New.
34753         (_mm512_mask_prefetch_i64gather_pd): Ditto.
34754         (_mm512_prefetch_i32scatter_pd): Ditto.
34755         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
34756         (_mm512_prefetch_i64scatter_pd): Ditto.
34757         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
34758         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
34759         (_mm512_mask_prefetch_i64gather_ps): Ditto.
34760         (_mm512_prefetch_i32scatter_ps): Ditto.
34761         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
34762         (_mm512_prefetch_i64scatter_ps): Ditto.
34763         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
34764         * config/i386/i386-builtin-types.def: Define
34765         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
34766         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
34767         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
34768         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
34769         IX86_BUILTIN_SCATTERPFQPD.
34770         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
34771         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
34772         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
34773         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
34774         __builtin_ia32_scatterpfqps.
34775         (ix86_expand_builtin): Expand new built-ins.
34776         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
34777         fix memory access data type.
34778         (*avx512pf_gatherpf<mode>_mask): Ditto.
34779         (*avx512pf_gatherpf<mode>): Ditto.
34780         (avx512pf_scatterpf<mode>): Ditto.
34781         (*avx512pf_scatterpf<mode>_mask): Ditto.
34782         (*avx512pf_scatterpf<mode>): Ditto.
34783         (GATHER_SCATTER_SF_MEM_MODE): New.
34784         (avx512pf_gatherpf<mode>df): Ditto.
34785         (*avx512pf_gatherpf<mode>df_mask): Ditto.
34786         (*avx512pf_scatterpf<mode>df): Ditto.
34787
34788 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
34789
34790         PR bootstrap/59934
34791         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
34792         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
34793         reached.
34794
34795 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
34796
34797         * common/config/arm/arm-common.c
34798         (arm_rewrite_mcpu): Handle multiple names.
34799         * config/arm/arm.h
34800         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
34801
34802 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
34803
34804         * gimple-builder.h (create_gimple_tmp): Delete.
34805
34806 2014-01-27  Christian Bruel  <christian.bruel@st.com>
34807
34808         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
34809         words comparisons.
34810
34811 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
34812
34813         * config/pa/pa.md (call): Generate indirect long calls to non-local
34814         functions when outputing 32-bit code.
34815         (call_value): Likewise except for special call to buggy powf function.
34816
34817         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
34818         portable runtime and PIC indirect calls.
34819         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
34820         and PIC call sequences.  Use ldo instead of blr to set return register
34821         in PIC call sequence.
34822
34823 2014-01-25  Walter Lee  <walt@tilera.com>
34824
34825         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
34826         avoid clobbering a live register.
34827
34828 2014-01-25  Walter Lee  <walt@tilera.com>
34829
34830         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
34831         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
34832         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
34833         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
34834
34835 2014-01-25  Walter Lee  <walt@tilera.com>
34836
34837         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
34838         arguments on even registers.
34839         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
34840         STACK_BOUNDARY.
34841         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
34842         (BIGGEST_ALIGNMENT): Ditto.
34843         (BIGGEST_FIELD_ALIGNMENT): Ditto.
34844
34845 2014-01-25  Walter Lee  <walt@tilera.com>
34846
34847         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
34848         insns before bundling.
34849         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
34850
34851 2014-01-25  Walter Lee  <walt@tilera.com>
34852
34853         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
34854         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
34855         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
34856
34857 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
34858
34859         * config/mips/constraints.md (kl): Delete.
34860         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
34861         define expands, using...
34862         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
34863         instructions for MIPS16.
34864         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
34865         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
34866
34867 2014-01-25  Walter Lee  <walt@tilera.com>
34868
34869         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
34870         (clzdi2): Ditto.
34871         (ffsdi2): Ditto.
34872
34873 2014-01-25  Walter Lee  <walt@tilera.com>
34874
34875         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
34876         (TARGET_EXPAND_TO_RTL_HOOK): Define.
34877
34878 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
34879
34880         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
34881         Handle XOR.
34882
34883 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
34884
34885         * print-rtl.c (in_call_function_usage): New var.
34886         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
34887         EXPR_LIST mode as mode and not as reg note name.
34888
34889         PR middle-end/59561
34890         * cfgloopmanip.c (copy_loop_info): If
34891         loop->warned_aggressive_loop_optimizations, make sure
34892         the flag is set in target loop too.
34893
34894 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
34895
34896         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
34897         flag_cilkplus.
34898         * builtins.def: Likewise.
34899         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
34900         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
34901         * ira.c (ira_setup_eliminable_regset): Likewise.
34902         * omp-low.c (gate_expand_omp): Likewise.
34903         (execute_lower_omp): Likewise.
34904         (diagnose_sb_0): Likewise.
34905         (gate_diagnose_omp_blocks): Likewise.
34906         (simd_clone_clauses_extract): Likewise.
34907         (gate): Likewise.
34908
34909 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34910
34911         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
34912         correction for little endian...
34913         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
34914         here.
34915
34916 2014-01-24  Jeff Law  <law@redhat.com>
34917
34918         PR tree-optimization/59919
34919         * tree-vrp.c (find_assert_locations_1): Do not register asserts
34920         for non-returning calls.
34921
34922 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
34923
34924         * common/config/aarch64/aarch64-common.c
34925         (aarch64_rewrite_mcpu): Handle multiple names.
34926         * config/aarch64/aarch64.h
34927         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
34928
34929 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
34930
34931         * input.c (add_file_to_cache_tab): Handle the case where fopen
34932         returns NULL.
34933
34934 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
34935
34936         PR target/59929
34937         * config/i386/i386.md (pushsf splitter): Get stack adjustment
34938         from push operand if code of push isn't PRE_DEC.
34939
34940 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
34941
34942         PR target/59909
34943         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
34944         -mquad-memory-atomic.  Update -mquad-memory documentation to say
34945         it is only used for non-atomic loads/stores.
34946
34947         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
34948         -mquad-memory or -mquad-memory-atomic switches.
34949
34950         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
34951         -mquad-memory-atomic to ISA 2.07 support.
34952
34953         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
34954         to separate support of normal quad word memory operations (ldq, stq)
34955         from the atomic quad word memory operations.
34956
34957         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
34958         support to separate non-atomic quad word operations from atomic
34959         quad word operations.  Disable non-atomic quad word operations in
34960         little endian mode so that we don't have to swap words after the
34961         load and before the store.
34962         (quad_load_store_p): Add comment about atomic quad word support.
34963         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
34964         options printed with -mdebug=reg.
34965
34966         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
34967         -mquad-memory-atomic as the test for whether we have quad word
34968         atomic instructions.
34969         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
34970         or -mp8-vector are used, allow byte/half-word atomic operations.
34971
34972         * config/rs6000/sync.md (load_lockedti): Insure that the address
34973         is a proper indexed or indirect address for the lqarx instruction.
34974         On little endian systems, swap the hi/lo registers after the lqarx
34975         instruction.
34976         (load_lockedpti): Use indexed_or_indirect_operand predicate to
34977         insure the address is valid for the lqarx instruction.
34978         (store_conditionalti): Insure that the address is a proper indexed
34979         or indirect address for the stqcrx. instruction.  On little endian
34980         systems, swap the hi/lo registers before doing the stqcrx.
34981         instruction.
34982         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
34983         insure the address is valid for the stqcrx. instruction.
34984
34985         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
34986         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
34987         type of quad memory support is available.
34988
34989 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
34990
34991         PR regression/59915
34992         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
34993         there is a danger of looping.
34994
34995 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
34996
34997         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
34998         force flag_ira_loop_pressure if set via command line.
34999
35000 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
35001
35002         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
35003         (ashr_simd): New builtin handling DI mode.
35004         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
35005         (aarch64_sshr_simddi): New match pattern.
35006         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
35007         (vshrd_n_s64): Likewise.
35008         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
35009
35010 2014-01-23  Nick Clifton  <nickc@redhat.com>
35011
35012         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
35013         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
35014         favour of mcu specific scripts.
35015         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
35016         430x multilibs.
35017
35018 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
35019             Alex Velenko  <Alex.Velenko@arm.com>
35020
35021         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
35022         (vaddv_s16): Likewise.
35023         (vaddv_s32): Likewise.
35024         (vaddv_u8): Likewise.
35025         (vaddv_u16): Likewise.
35026         (vaddv_u32): Likewise.
35027         (vaddvq_s8): Likewise.
35028         (vaddvq_s16): Likewise.
35029         (vaddvq_s32): Likewise.
35030         (vaddvq_s64): Likewise.
35031         (vaddvq_u8): Likewise.
35032         (vaddvq_u16): Likewise.
35033         (vaddvq_u32): Likewise.
35034         (vaddvq_u64): Likewise.
35035         (vaddv_f32): Likewise.
35036         (vaddvq_f32): Likewise.
35037         (vaddvq_f64): Likewise.
35038         (vmaxv_f32): Likewise.
35039         (vmaxv_s8): Likewise.
35040         (vmaxv_s16): Likewise.
35041         (vmaxv_s32): Likewise.
35042         (vmaxv_u8): Likewise.
35043         (vmaxv_u16): Likewise.
35044         (vmaxv_u32): Likewise.
35045         (vmaxvq_f32): Likewise.
35046         (vmaxvq_f64): Likewise.
35047         (vmaxvq_s8): Likewise.
35048         (vmaxvq_s16): Likewise.
35049         (vmaxvq_s32): Likewise.
35050         (vmaxvq_u8): Likewise.
35051         (vmaxvq_u16): Likewise.
35052         (vmaxvq_u32): Likewise.
35053         (vmaxnmv_f32): Likewise.
35054         (vmaxnmvq_f32): Likewise.
35055         (vmaxnmvq_f64): Likewise.
35056         (vminv_f32): Likewise.
35057         (vminv_s8): Likewise.
35058         (vminv_s16): Likewise.
35059         (vminv_s32): Likewise.
35060         (vminv_u8): Likewise.
35061         (vminv_u16): Likewise.
35062         (vminv_u32): Likewise.
35063         (vminvq_f32): Likewise.
35064         (vminvq_f64): Likewise.
35065         (vminvq_s8): Likewise.
35066         (vminvq_s16): Likewise.
35067         (vminvq_s32): Likewise.
35068         (vminvq_u8): Likewise.
35069         (vminvq_u16): Likewise.
35070         (vminvq_u32): Likewise.
35071         (vminnmv_f32): Likewise.
35072         (vminnmvq_f32): Likewise.
35073         (vminnmvq_f64): Likewise.
35074
35075 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
35076
35077         * config/aarch64/aarch64-simd.md
35078         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
35079         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
35080         (*aarch64_mul3_elt<mode>): Likewise.
35081         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
35082         (*aarch64_mul3_elt_to_64v2df): Likewise.
35083         (*aarch64_mla_elt<mode>): Likewise.
35084         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
35085         (*aarch64_mls_elt<mode>): Likewise.
35086         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
35087         (*aarch64_fma4_elt<mode>): Likewise.
35088         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
35089         (*aarch64_fma4_elt_to_64v2df): Likewise.
35090         (*aarch64_fnma4_elt<mode>): Likewise.
35091         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
35092         (*aarch64_fnma4_elt_to_64v2df): Likewise.
35093         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
35094         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
35095         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
35096         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
35097         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
35098         (aarch64_sqdmull_lane<mode>_internal): Likewise.
35099         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
35100
35101 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
35102
35103         * config/aarch64/aarch64-simd.md
35104         (aarch64_be_checked_get_lane<mode>): New define_expand.
35105         * config/aarch64/aarch64-simd-builtins.def
35106         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
35107         New builtin definition.
35108         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
35109         Use new safe be builtin.
35110
35111 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
35112
35113         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
35114         New define_insn.
35115         (aarch64_be_st1<mode>): Likewise.
35116         (aarch_ld1<VALL:mode>): Define_expand modified.
35117         (aarch_st1<VALL:mode>): Likewise.
35118         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
35119         (UNSPEC_ST1): Likewise.
35120
35121 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
35122
35123         * config/microblaze/microblaze.md: Add trap insn and attribute
35124
35125 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
35126
35127         PR preprocessor/58580
35128         * input.h (location_get_source_line): Take an additional line_size
35129         parameter.
35130         (void diagnostics_file_cache_fini): Declare new function.
35131         * input.c (struct fcache): New type.
35132         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
35133         New static constants.
35134         (diagnostic_file_cache_init, total_lines_num)
35135         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
35136         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
35137         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
35138         (get_next_line, read_next_line, goto_next_line, read_line_num):
35139         New static function definitions.
35140         (diagnostic_file_cache_fini): New function.
35141         (location_get_source_line): Take an additional output line_len
35142         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
35143         read_line_num.
35144         * diagnostic.c (diagnostic_finish): Call
35145         diagnostic_file_cache_fini.
35146         (adjust_line): Take an additional input parameter for the length
35147         of the line, rather than calculating it with strlen.
35148         (diagnostic_show_locus): Adjust the use of
35149         location_get_source_line and adjust_line with respect to their new
35150         signature.  While displaying a line now, do not stop at the first
35151         null byte.  Rather, display the zero byte as a space and keep
35152         going until we reach the size of the line.
35153         * Makefile.in: Add vec.o to OBJS-libcommon
35154
35155 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
35156             Ilya Tocar  <ilya.tocar@intel.com>
35157
35158         * config/i386/avx512fintrin.h (_mm512_kmov): New.
35159         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
35160         (__builtin_ia32_kmov16): Ditto.
35161         * config/i386/i386.md (UNSPEC_KMOV): New.
35162         (kmovw): Ditto.
35163
35164 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
35165
35166         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
35167         (_mm512_storeu_si512): Ditto.
35168
35169 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
35170
35171         PR target/52125
35172         * rtl.h (get_referenced_operands): Declare.
35173         * recog.c (get_referenced_operands): New function.
35174         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
35175         operands have been referenced when recording LO_SUM references.
35176
35177 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
35178
35179         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
35180
35181 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
35182
35183         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
35184         Enable for generic and recent AMD targets.
35185
35186 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
35187
35188         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
35189         ARG_SIZE note when adjustment was eliminated.
35190
35191 2014-01-22  Jeff Law  <law@redhat.com>
35192
35193         PR tree-optimization/59597
35194         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
35195         in file.  Accept new argument REGISTERING and use it to modify
35196         dump output appropriately.
35197         (register_jump_thread): Corresponding changes.
35198         (mark_threaded_blocks): Reinstate code to cancel unprofitable
35199         thread paths involving joiner blocks.  Add code to dump cancelled
35200         jump threading paths.
35201
35202 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
35203
35204         PR rtl-optimization/59477
35205         * lra-constraints.c (inherit_in_ebb): Process call for living hard
35206         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
35207
35208 2014-01-22  Tom Tromey  <tromey@redhat.com>
35209
35210         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
35211         PARAMS.
35212         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
35213
35214 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
35215
35216         PR rtl-optimization/59896
35217         * lra-constraints.c (process_alt_operands): Check unused note for
35218         matched operands of insn with no output reloads.
35219
35220 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
35221
35222         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
35223         (mips_move_from_gpr_cost): Likewise.
35224
35225 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
35226
35227         PR rtl-optimization/59858
35228         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
35229         ira_class_hard_regs_num.
35230         (process_alt_operands): Increase reject for dying matched operand.
35231
35232 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
35233
35234         PR target/59003
35235         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
35236         smaller than size, perform several stores or loads and stores
35237         at dst + count - size to store or copy all of size bytes, rather
35238         than just last modesize bytes.
35239
35240 2014-01-20  DJ Delorie  <dj@redhat.com>
35241
35242         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
35243         that CLOBBERs are REGs before propogating their values.
35244
35245 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
35246
35247         PR middle-end/59789
35248         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
35249         (cgraph_inline_failed_type): New function.
35250         * cgraph.h (DEFCIFCODE): Add type.
35251         (cgraph_inline_failed_type_t): New enum.
35252         (cgraph_inline_failed_type): New prototype.
35253         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
35254         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
35255         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
35256         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
35257         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
35258         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
35259         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
35260         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
35261         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
35262         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
35263         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
35264         OPTIMIZATION_MISMATCH.
35265         * tree-inline.c (expand_call_inline): Emit errors during
35266         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
35267
35268 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
35269
35270         PR target/59685
35271         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
35272         mode attribute in insn output.
35273
35274 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
35275
35276         * output.h (output_constant): Delete.
35277         * varasm.c (output_constant): Make private.
35278
35279 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
35280
35281         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
35282
35283 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
35284
35285         PR middle-end/59860
35286         * tree.h (fold_builtin_strcat): New prototype.
35287         * builtins.c (fold_builtin_strcat): No longer static.  Add len
35288         argument, if non-NULL, don't call c_strlen.  Optimize
35289         directly into __builtin_memcpy instead of __builtin_strcpy.
35290         (fold_builtin_2): Adjust fold_builtin_strcat caller.
35291         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
35292
35293 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
35294
35295         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
35296         for SImode_address_operand operands, having only a REG argument.
35297
35298 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35299
35300         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
35301         loader name using mbig-endian.
35302         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
35303
35304 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
35305
35306         * doc/invoke.texi (-march): Clarify documentation for AArch64.
35307         (-mtune): Likewise.
35308         (-mcpu): Likewise.
35309
35310 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
35311
35312         * config/aarch64/aarch64-protos.h
35313         (aarch64_cannot_change_mode_class_ptr): Declare.
35314         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
35315         aarch64_cannot_change_mode_class_ptr): New.
35316         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
35317         backend hook aarch64_cannot_change_mode_class.
35318
35319 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
35320
35321         * common/config/aarch64/aarch64-common.c
35322         (aarch64_handle_option): Don't handle any option order logic here.
35323         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
35324         selected_cpu, warn on architecture version mismatch.
35325         (aarch64_override_options): Fix parsing order for option strings.
35326
35327 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
35328             Iain Sandoe  <iain@codesourcery.com>
35329
35330         PR bootstrap/59496
35331         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
35332         warning.  Amend comment to reflect current functionality.
35333
35334 2014-01-20  Richard Biener  <rguenther@suse.de>
35335
35336         PR middle-end/59860
35337         * builtins.c (fold_builtin_strcat): Remove case better handled
35338         by tree-ssa-strlen.c.
35339
35340 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
35341
35342         * config/aarch64/aarch64.opt
35343         (mcpu, march, mtune): Make case-insensitive.
35344
35345 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
35346
35347         PR target/59880
35348         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
35349         if operands[1] is a REG or ZERO_EXTEND of a REG.
35350
35351 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
35352
35353         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
35354
35355 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
35356
35357         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
35358         long non-pic millicode calls.
35359
35360 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
35361
35362         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
35363
35364 2014-01-19  Kito Cheng  <kito@0xlab.org>
35365
35366         * builtins.c (expand_movstr): Check movstr expand done or fail.
35367
35368 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
35369             H.J. Lu  <hongjiu.lu@intel.com>
35370
35371         PR target/59379
35372         * config/i386/i386.md (*lea<mode>): Zero-extend return register
35373         to DImode for zero-extended addresses.
35374
35375 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
35376
35377         PR rtl-optimization/57763
35378         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
35379         on the new indirect jump_insn and increment LABEL_NUSES (label).
35380
35381 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
35382
35383         PR bootstrap/59580
35384         PR bootstrap/59583
35385         * config.gcc (x86_archs): New variable.
35386         (x86_64_archs): Likewise.
35387         (x86_cpus): Likewise.
35388         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
35389         --with-arch/--with-cpu= options.
35390         Support --with-arch=/--with-cpu={nehalem,westmere,
35391         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
35392
35393 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
35394
35395         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
35396         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
35397
35398 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
35399
35400         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
35401
35402 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
35403
35404         PR target/58944
35405         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
35406         clear cpp_get_options (parse_in)->warn_unused_macros for
35407         ix86_target_macros_internal with cpp_define.
35408
35409 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
35410
35411         * jump.c (delete_related_insns): Keep (use (insn))s.
35412         * reorg.c (redundant_insn): Check for barriers too.
35413
35414 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
35415
35416         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
35417
35418 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
35419
35420         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
35421         call to $$dyncall when TARGET_LONG_CALLS is true.
35422
35423 2014-01-17  Jeff Law  <law@redhat.com>
35424
35425         * ree.c (combine_set_extension): Temporarily disable test for
35426         changing number of hard registers.
35427
35428 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
35429
35430         PR middle-end/58125
35431         * ipa-inline-analysis.c (inline_free_summary):
35432         Do not free summary of aliases.
35433
35434 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
35435
35436         PR middle-end/59706
35437         * gimplify.c (gimplify_expr): Use create_tmp_var
35438         instead of create_tmp_var_raw.  If cond doesn't have
35439         integral type, don't add the IFN_ANNOTATE builtin at all.
35440
35441 2014-01-17  Martin Jambor  <mjambor@suse.cz>
35442
35443         PR ipa/59736
35444         * ipa-cp.c (prev_edge_clone): New variable.
35445         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
35446         Also resize prev_edge_clone vector.
35447         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
35448         (ipcp_edge_removal_hook): New function.
35449         (ipcp_driver): Register ipcp_edge_removal_hook.
35450
35451 2014-01-17  Andrew Pinski  <apinski@cavium.com>
35452             Steve Ellcey  <sellcey@mips.com>
35453
35454         PR target/59462
35455         * config/mips/mips.c (mips_print_operand): Check operand mode instead
35456         of operator mode.
35457
35458 2014-01-17  Jeff Law  <law@redhat.com>
35459
35460         PR middle-end/57904
35461         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
35462         so that pass_ccp runs first.
35463
35464 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
35465
35466         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
35467         (ix86_adjust_cost): Use !TARGET_XXX.
35468         (do_reorder_for_imul): Likewise.
35469         (swap_top_of_ready_list): Likewise.
35470         (ix86_sched_reorder): Likewise.
35471
35472 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
35473
35474         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
35475         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
35476         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
35477         (intel_memset): New.  Duplicate slm_memset.
35478         (intel_cost): New.  Duplicate slm_cost.
35479         (m_INTEL): New macro.
35480         (processor_target_table): Add "intel".
35481         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
35482         with PROCESSOR_INTEL for "intel".
35483         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
35484         PROCESSOR_SILVERMONT.
35485         (ix86_issue_rate): Likewise.
35486         (ix86_adjust_cost): Likewise.
35487         (ia32_multipass_dfa_lookahead): Likewise.
35488         (swap_top_of_ready_list): Likewise.
35489         (ix86_sched_reorder): Likewise.
35490         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
35491         instead of TARGET_OPT_AGU.
35492         * config/i386/i386.h (TARGET_INTEL): New.
35493         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
35494         (processor_type): Add PROCESSOR_INTEL.
35495         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
35496         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
35497
35498 2014-01-17  Marek Polacek  <polacek@redhat.com>
35499
35500         PR c/58346
35501         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
35502         size is zero.
35503
35504 2014-01-17  Richard Biener  <rguenther@suse.de>
35505
35506         PR tree-optimization/46590
35507         * opts.c (default_options_table): Add entries for
35508         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
35509         all enabled at -O1 but not for -Og.
35510         * common.opt (fbranch-count-reg): Remove Init(1).
35511         (fmove-loop-invariants): Likewise.
35512         (ftree-pta): Likewise.
35513
35514 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
35515
35516         * config/i386/i386.c (ix86_data_alignment): For compatibility with
35517         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
35518         decls to at least the GCC 4.8 used alignments.
35519
35520         PR fortran/59440
35521         * tree-nested.c (convert_nonlocal_reference_stmt,
35522         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
35523         of GIMPLE_BIND stmts, adjust associated decls.
35524
35525 2014-01-17  Richard Biener  <rguenther@suse.de>
35526
35527         PR tree-optimization/46590
35528         * vec.h (vec<>::bseach): New member function implementing
35529         binary search according to C89 bsearch.
35530         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
35531         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
35532         bitmap pointer again.  Make accesses_in_loop a flat array.
35533         (mem_ref_obstack): New global.
35534         (outermost_indep_loop): Adjust for mem_ref->stored changes.
35535         (mark_ref_stored): Likewise.
35536         (ref_indep_loop_p_2): Likewise.
35537         (set_ref_stored_in_loop): New helper function.
35538         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
35539         (memref_free): Adjust.
35540         (record_mem_ref_loc): Simplify.
35541         (gather_mem_refs_stmt): Adjust.
35542         (sort_locs_in_loop_postorder_cmp): New function.
35543         (analyze_memory_references): Sort accesses_in_loop after
35544         loop postorder number.
35545         (find_ref_loc_in_loop_cmp): New function.
35546         (for_all_locs_in_loop): Find relevant cluster of locs in
35547         accesses_in_loop and iterate without recursion.
35548         (execute_sm): Avoid uninit warning.
35549         (struct ref_always_accessed): Simplify.
35550         (ref_always_accessed::operator ()): Likewise.
35551         (ref_always_accessed_p): Likewise.
35552         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
35553         loop postorder numbers here.
35554         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
35555         numbers.
35556
35557 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
35558
35559         PR c++/57945
35560         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
35561         on decls for which assemble_alias has been called.
35562
35563 2014-01-17  Nick Clifton  <nickc@redhat.com>
35564
35565         * config/msp430/msp430.opt: (mcpu): New option.
35566         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
35567         (msp430_option_override): Parse target_cpu.  If the MCU name
35568         matches a generic string, clear target_mcu.
35569         (msp430_attr): Allow numeric interrupt values up to 63.
35570         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
35571         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
35572         option.
35573         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
35574         Add mcpu matches.
35575         * config/msp430/msp430.md (popm): Use %J rather than %I.
35576         (addsi3): Use msp430_nonimmediate_operand for operand 2.
35577         (addhi_cy_i): Use immediate_operand for operand 2.
35578         * doc/invoke.texi: Document -mcpu option.
35579
35580 2014-01-17  Richard Biener  <rguenther@suse.de>
35581
35582         PR rtl-optimization/38518
35583         * df.h (df_analyze_loop): Declare.
35584         * df-core.c: Include cfgloop.h.
35585         (df_analyze_1): Split out main part of df_analyze.
35586         (df_analyze): Adjust.
35587         (loop_inverted_post_order_compute): New function.
35588         (loop_post_order_compute): Likewise.
35589         (df_analyze_loop): New function avoiding whole-function
35590         postorder computes.
35591         * loop-invariant.c (find_defs): Use df_analyze_loop.
35592         (find_invariants): Adjust.
35593         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
35594
35595 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
35596
35597         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
35598         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
35599
35600 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
35601
35602         * ipa-ref.c (ipa_remove_stmt_references): Fix references
35603         traversal when removing references.
35604
35605 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
35606
35607         PR ipa/59775
35608         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
35609
35610 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
35611
35612         PR middle-end/56791
35613         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
35614         pushing a reload for an autoinc when we had previously reloaded an
35615         inner part of the address.
35616
35617 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
35618
35619         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
35620         field.
35621         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
35622         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
35623         when not giving up or versioning for alias only because of
35624         loop->safelen.
35625         (vect_analyze_data_ref_dependences): Set to true.
35626         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
35627         is a GIMPLE_PHI.
35628         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
35629         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
35630         to the condition.
35631
35632         PR middle-end/58344
35633         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
35634
35635         PR target/59839
35636         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
35637         operand 0 predicate for gathers, use a new pseudo as subtarget.
35638
35639 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
35640
35641         PR middle-end/59609
35642         * lra-constraints.c (process_alt_operands): Add printing debug info.
35643         Check absence of input/output reloads for matched operands too.
35644
35645 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
35646
35647         PR rtl-optimization/59835
35648         * ira.c (ira_init_register_move_cost): Increase cost for
35649         impossible modes.
35650
35651 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
35652
35653         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
35654
35655 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
35656
35657         PR target/59780
35658         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
35659         non-register objects.  Use gen_(high/low)part more consistently.
35660         Fix assertions.
35661
35662 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
35663
35664         PR target/59844
35665         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
35666         endian support, remove tests for WORDS_BIG_ENDIAN.
35667         (p8_mfvsrd_3_<mode>): Likewise.
35668         (reload_gpr_from_vsx<mode>): Likewise.
35669         (reload_gpr_from_vsxsf): Likewise.
35670         (p8_mfvsrd_4_disf): Likewise.
35671
35672 2014-01-16  Richard Biener  <rguenther@suse.de>
35673
35674         PR rtl-optimization/46590
35675         * lcm.c (compute_antinout_edge): Use postorder iteration.
35676         (compute_laterin): Use inverted postorder iteration.
35677
35678 2014-01-16  Nick Clifton  <nickc@redhat.com>
35679
35680         PR middle-end/28865
35681         * varasm.c (output_constant): Return the number of bytes actually
35682         emitted.
35683         (output_constructor_array_range): Update the field size with the
35684         number of bytes emitted by output_constant.
35685         (output_constructor_regular_field): Likewise.  Also do not
35686         complain if the total number of bytes emitted is now greater
35687         than the expected fieldpos.
35688         * output.h (output_constant): Update prototype and descriptive comment.
35689
35690 2014-01-16  Marek Polacek  <polacek@redhat.com>
35691
35692         PR middle-end/59827
35693         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
35694         it is error_mark_node.
35695
35696 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
35697
35698         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
35699         VALID_AVX256_REG_OR_OI_MODE.
35700
35701 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
35702
35703         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
35704         current procedure should be profiled.
35705
35706 2014-01-15  Andrew Pinski  <apinski@cavium.com>
35707
35708         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
35709         of moving from/to the STACK_REG register class.
35710
35711 2014-01-15  Richard Henderson  <rth@redhat.com>
35712
35713         PR debug/54694
35714         * reginfo.c (global_regs_decl): Globalize.
35715         * rtl.h (global_regs_decl): Declare.
35716         * ira.c (do_reload): Diagnose frame_pointer_needed and it
35717         reserved via global_regs.
35718
35719 2014-01-15  Teresa Johnson  <tejohnson@google.com>
35720
35721         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
35722
35723 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
35724
35725         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
35726         and vmulosh rather than call gen_vec_widen_smult_*.
35727         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
35728         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
35729         (vec_widen_smult_even_v16qi): Likewise.
35730         (vec_widen_umult_even_v8hi): Likewise.
35731         (vec_widen_smult_even_v8hi): Likewise.
35732         (vec_widen_umult_odd_v16qi): Likewise.
35733         (vec_widen_smult_odd_v16qi): Likewise.
35734         (vec_widen_umult_odd_v8hi): Likewise.
35735         (vec_widen_smult_odd_v8hi): Likewise.
35736         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
35737         vmuloub rather than call gen_vec_widen_umult_*.
35738         (vec_widen_umult_lo_v16qi): Likewise.
35739         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
35740         vmulosb rather than call gen_vec_widen_smult_*.
35741         (vec_widen_smult_lo_v16qi): Likewise.
35742         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
35743         rather than call gen_vec_widen_umult_*.
35744         (vec_widen_umult_lo_v8hi): Likewise.
35745         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
35746         rather than call gen_vec_widen_smult_*.
35747         (vec_widen_smult_lo_v8hi): Likewise.
35748
35749 2014-01-15  Jeff Law  <law@redhat.com>
35750
35751         PR tree-optimization/59747
35752         * ree.c (find_and_remove_re): Properly handle case where a second
35753         eliminated extension requires widening a copy created for elimination
35754         of a prior extension.
35755         (combine_set_extension): Ensure that the number of hard regs needed
35756         for a destination register does not change when we widen it.
35757
35758 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
35759
35760         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
35761         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
35762         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
35763         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
35764         (avr-*-rtems*): Likewise.
35765         (bfin*-rtems*): Likewise.
35766         (moxie-*-rtems*): Likewise.
35767         (h8300-*-rtems*): Likewise.
35768         (i[34567]86-*-rtems*): Likewise.
35769         (lm32-*-rtems*): Likewise.
35770         (m32r-*-rtems*): Likewise.
35771         (m68k-*-rtems*): Likewise.
35772         (microblaze*-*-rtems*): Likewise.
35773         (mips*-*-rtems*): Likewise.
35774         (powerpc-*-rtems*): Likewise.
35775         (sh-*-rtems*): Likewise.
35776         (sparc-*-rtems*): Likewise.
35777         (sparc64-*-rtems*): Likewise.
35778         (v850-*-rtems*): Likewise.
35779         (m32c-*-rtems*): Likewise.
35780
35781 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
35782
35783         PR rtl-optimization/59511
35784         * ira.c (ira_init_register_move_cost): Use memory costs for some
35785         cases of register move cost calculations.
35786         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
35787         instead of BB frequency.
35788         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
35789         * lra-assigns.c (find_hard_regno_for): Ditto.
35790
35791 2014-01-15  Richard Biener  <rguenther@suse.de>
35792
35793         PR tree-optimization/59822
35794         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
35795         (vectorizable_load): Use it to hoist defs of uses of invariant
35796         loads out of the loop.
35797
35798 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
35799             Kugan Vivekanandarajah  <kuganv@linaro.org>
35800
35801         PR target/59695
35802         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
35803         truncation.
35804
35805 2014-01-15  Richard Biener  <rguenther@suse.de>
35806
35807         PR rtl-optimization/59802
35808         * lcm.c (compute_available): Use inverted postorder to seed
35809         the initial worklist.
35810
35811 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35812
35813         PR target/59803
35814         * config/s390/s390.c (s390_preferred_reload_class): Don't return
35815         ADDR_REGS for invalid symrefs in non-PIC code.
35816
35817 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
35818
35819         PR other/58712
35820         * builtins.c (determine_block_size): Initialize *probable_max_size
35821         even if len_rtx is CONST_INT.
35822
35823 2014-01-14  Andrew Pinski  <apinski@cavium.com>
35824
35825         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
35826         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
35827         (cortexa53_tunings): Likewise.
35828         (aarch64_sched_issue_rate): New function.
35829         (TARGET_SCHED_ISSUE_RATE): Define.
35830
35831 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
35832
35833         * ira-costs.c (find_costs_and_classes): Add missed
35834         ira_init_register_move_cost_if_necessary.
35835
35836 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
35837
35838         PR target/59787
35839         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
35840
35841 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
35842
35843         PR target/59794
35844         * config/i386/i386.c (type_natural_mode): Add a bool parameter
35845         to indicate if type is used for function return value.  Warn ABI
35846         change if the vector mode isn't available for function return value.
35847         (ix86_function_arg_advance): Pass false to type_natural_mode.
35848         (ix86_function_arg): Likewise.
35849         (ix86_gimplify_va_arg): Likewise.
35850         (function_arg_32): Don't warn ABI change.
35851         (ix86_function_value): Pass true to type_natural_mode.
35852         (ix86_return_in_memory): Likewise.
35853         (ix86_struct_value_rtx): Removed.
35854         (TARGET_STRUCT_VALUE_RTX): Likewise.
35855
35856 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
35857
35858         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
35859         converting a conditional jump into a conditional return.
35860
35861 2014-01-14  Richard Biener  <rguenther@suse.de>
35862
35863         PR tree-optimization/58921
35864         PR tree-optimization/59006
35865         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
35866         hoisting invariant stmts.
35867         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
35868         invariant loads on the preheader edge if possible.
35869
35870 2014-01-14  Joey Ye  <joey.ye@arm.com>
35871
35872         * doc/plugin.texi (Building GCC plugins): Update to C++.
35873
35874 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
35875
35876         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
35877         (_mm_rcp28_round_ss): Ditto.
35878         (_mm_rsqrt28_round_sd): Ditto.
35879         (_mm_rsqrt28_round_ss): Ditto.
35880         (_mm_rcp28_sd): Ditto.
35881         (_mm_rcp28_ss): Ditto.
35882         (_mm_rsqrt28_sd): Ditto.
35883         (_mm_rsqrt28_ss): Ditto.
35884         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
35885         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
35886         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
35887         (IX86_BUILTIN_RCP28SD): Ditto.
35888         (IX86_BUILTIN_RCP28SS): Ditto.
35889         (IX86_BUILTIN_RSQRT28SD): Ditto.
35890         (IX86_BUILTIN_RSQRT28SS): Ditto.
35891         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
35892         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
35893         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
35894         (ix86_expand_special_args_builtin): Expand new FTYPE.
35895         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
35896         (srcp14<mode>): Make insn unary.
35897         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
35898         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
35899         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
35900         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
35901         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
35902         Fix rounding: make it SAE only.
35903         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
35904         Ditto.
35905         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
35906         Ditto.
35907         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
35908         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
35909         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
35910         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
35911         (round_saeonly_mask_scalar_operand4): Ditto.
35912         (round_saeonly_mask_scalar_op3): Ditto.
35913         (round_saeonly_mask_scalar_op4): Ditto.
35914
35915 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35916
35917         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
35918         Implement -maltivec=be for vec_insert and vec_extract.
35919
35920 2014-01-10  DJ Delorie  <dj@redhat.com>
35921
35922         * config/msp430/msp430.md (call_internal): Don't allow memory
35923         references with SP as the base register.
35924         (call_value_internal): Likewise.
35925         * config/msp430/constraints.md (Yc): New.  For memory references
35926         that don't use SP as a base register.
35927
35928         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
35929         "an integer without a # prefix"
35930         * config/msp430/msp430.md (epilogue_helper): Use it.
35931
35932 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
35933
35934         PR target/59617
35935         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
35936         AVX512F gather builtins.
35937         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
35938         on gather decls with INTEGER_TYPE masktype.
35939         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
35940         directly into the builtin rather than hoisting it before loop.
35941
35942         PR tree-optimization/59387
35943         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
35944         (scev_const_prop): If folded_casts and type has undefined overflow,
35945         use force_gimple_operand instead of force_gimple_operand_gsi and
35946         for each added stmt if it is assign with
35947         arith_code_with_undefined_signed_overflow, call
35948         rewrite_to_defined_overflow.
35949         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
35950         gimple-fold.h instead.
35951         (arith_code_with_undefined_signed_overflow,
35952         rewrite_to_defined_overflow): Moved to ...
35953         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
35954         rewrite_to_defined_overflow): ... here.  No longer static.
35955         Include gimplify-me.h.
35956         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
35957         rewrite_to_defined_overflow): New prototypes.
35958
35959 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35960
35961         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
35962
35963 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
35964
35965         * builtins.c (get_object_alignment_2): Minor tweak.
35966         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
35967
35968 2014-01-13  Christian Bruel  <christian.bruel@st.com>
35969
35970         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
35971         optimized non constant lengths.
35972
35973 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
35974
35975         PR libgomp/59194
35976         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
35977         load as __atomic_load_N if possible.
35978
35979 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
35980
35981         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
35982         target parameter.
35983         (rs6000_expand_builtin): Adjust call.
35984
35985 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
35986
35987         PR target/58115
35988         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
35989         * config/rs6000/rs6000.c: Include target-globals.h.
35990         (rs6000_set_current_function): Instead of doing target_reinit
35991         unconditionally, use save_target_globals_default_opts and
35992         restore_target_globals.
35993
35994         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
35995         FPSCR.
35996         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
35997         (rs6000_expand_builtin): Handle mffs and mtfsf.
35998         (rs6000_init_builtins): Define mffs and mtfsf.
35999         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
36000         (rs6000_mffs): New pattern.
36001         (rs6000_mtfsf): New pattern.
36002
36003 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
36004
36005         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
36006         Start narrowing with START.  Apply candidate-use pair
36007         and check overall cost in narrowing.
36008         (iv_ca_prune): Pass new argument.
36009
36010 2014-01-10  Jeff Law  <law@redhat.com>
36011
36012         PR middle-end/59743
36013         * ree.c (combine_reaching_defs): Ensure the defining statement
36014         occurs before the extension when optimizing extensions with
36015         different source and destination hard registers.
36016
36017 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
36018
36019         PR ipa/58585
36020         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
36021         vtables into the type inheritance graph.
36022
36023 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
36024
36025         PR rtl-optimization/59754
36026         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
36027         modes in the REGNO != REGNO case.
36028
36029 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36030
36031         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
36032
36033 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
36034
36035         PR tree-optimization/59745
36036         * tree-predcom.c (tree_predictive_commoning_loop): Call
36037         free_affine_expand_cache if giving up because components is NULL.
36038
36039         * target-globals.c (save_target_globals): Allocate < 4KB structs using
36040         GC in payload of target_globals struct instead of allocating them on
36041         the heap and the larger structs separately using GC.
36042         * target-globals.h (struct target_globals): Make regs, hard_regs,
36043         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
36044         of GTY((skip)) and change type to void *.
36045         (reset_target_globals): Cast loads from those fields to corresponding
36046         types.
36047
36048 2014-01-10  Steve Ellcey  <sellcey@mips.com>
36049
36050         PR plugins/59335
36051         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
36052         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
36053         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
36054
36055 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
36056
36057         PR target/59744
36058         * aarch64-modes.def (CC_Zmode): New flags mode.
36059         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
36060         represents an equality.
36061         (aarch64_get_condition_code): Handle CC_Zmode.
36062         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
36063
36064 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36065
36066         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
36067         extraction in good case.
36068
36069 2014-01-10  Richard Biener  <rguenther@suse.de>
36070
36071         PR tree-optimization/59374
36072         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
36073         checking after SLP discovery.  Mark stmts not participating
36074         in any SLP instance properly.
36075
36076 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36077
36078         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
36079         when handling a SET rtx.
36080
36081 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36082
36083         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
36084         (cortex-a57): Likewise.
36085         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
36086
36087 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36088
36089         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
36090         non-iwmmxt builtins.
36091
36092 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
36093
36094         PR ipa/58252
36095         PR ipa/59226
36096         * ipa-devirt.c record_target_from_binfo): Take as argument
36097         stack of binfos and lookup matching one for virtual inheritance.
36098         (possible_polymorphic_call_targets_1): Update.
36099
36100 2014-01-10  Huacai Chen  <chenhc@lemote.com>
36101
36102         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
36103         kernel strings for Loongson-2E/2F/3A.
36104
36105 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
36106
36107         PR middle-end/59670
36108         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
36109         is_gimple_call before calling gimple_call_internal_p.
36110
36111 2014-01-09  Steve Ellcey  <sellcey@mips.com>
36112
36113         * Makefile.in (TREE_FLOW_H): Remove.
36114         (TREE_SSA_H): Add file names from tree-flow.h.
36115         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
36116         * tree.h: Remove tree-flow.h reference.
36117         * hash-table.h: Remove tree-flow.h reference.
36118         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
36119         reference with tree-ssa-loop.h.
36120
36121 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36122
36123         * doc/invoke.texi: Add -maltivec={be,le} options, and document
36124         default element-order behavior for -maltivec.
36125         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
36126         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
36127         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
36128         when targeting big endian, at least for now.
36129         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
36130
36131 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
36132
36133         PR middle-end/47735
36134         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
36135         var satisfies use_register_for_decl, just take into account type
36136         alignment, rather than decl alignment.
36137
36138         PR tree-optimization/59622
36139         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
36140         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
36141         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
36142         Don't devirtualize for inplace at all.  For targets.length () == 1,
36143         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
36144
36145 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
36146
36147         * config/i386/i386.md (cpu): Remove the unused btver1.
36148
36149 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
36150
36151         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
36152
36153 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
36154
36155         PR target/58115
36156         * tree-core.h (struct target_globals): New forward declaration.
36157         (struct tree_target_option): Add globals field.
36158         * tree.h (TREE_TARGET_GLOBALS): Define.
36159         (prepare_target_option_nodes_for_pch): New prototype.
36160         * target-globals.h (struct target_globals): Define even if
36161         !SWITCHABLE_TARGET.
36162         * tree.c (prepare_target_option_node_for_pch,
36163         prepare_target_option_nodes_for_pch): New functions.
36164         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
36165         * config/i386/i386.c: Include target-globals.h.
36166         (ix86_set_current_function): Instead of doing target_reinit
36167         unconditionally, use save_target_globals_default_opts and
36168         restore_target_globals.
36169
36170 2014-01-09  Richard Biener  <rguenther@suse.de>
36171
36172         PR tree-optimization/59715
36173         * tree-cfg.h (split_critical_edges): Declare.
36174         * tree-cfg.c (split_critical_edges): Export.
36175         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
36176
36177 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
36178
36179         * cfgexpand.c (expand_stack_vars): Optionally disable
36180         asan stack protection.
36181         (expand_used_vars): Likewise.
36182         (partition_stack_vars): Likewise.
36183         * asan.c (asan_emit_stack_protection): Optionally disable
36184         after return stack usage.
36185         (instrument_derefs): Optionally disable memory access instrumentation.
36186         (instrument_builtin_call): Likewise.
36187         (instrument_strlen_call): Likewise.
36188         (asan_protect_global): Optionally disable global variables protection.
36189         * doc/invoke.texi: Added doc for new options.
36190         * params.def: Added new options.
36191         * params.h: Likewise.
36192
36193 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
36194
36195         PR rtl-optimization/59724
36196         * ifcvt.c (cond_exec_process_if_block): Don't call
36197         flow_find_head_matching_sequence with 0 longest_match.
36198         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
36199         non-active insns if !stop_after.
36200         (try_head_merge_bb): Revert 2014-01-07 changes.
36201
36202 2014-01-08  Jeff Law  <law@redhat.com>
36203
36204         * ree.c (get_sub_rtx): New function, extracted from...
36205         (merge_def_and_ext): Here.
36206         (combine_reaching_defs): Use get_sub_rtx.
36207
36208 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
36209
36210         * cgraph.h (varpool_variable_node): Do not choke on null node.
36211
36212 2014-01-08  Catherine Moore  <clm@codesourcery.com>
36213
36214         * config/mips/mips.md (simple_return): Attempt to use JRC
36215         for microMIPS.
36216         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
36217
36218 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
36219
36220         PR rtl-optimization/59137
36221         * reorg.c (steal_delay_list_from_target): Call update_block for
36222         elided insns.
36223         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
36224
36225 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36226
36227         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
36228         two duplicate entries.
36229
36230 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
36231
36232         Revert:
36233         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
36234
36235         * config/mips/mips.c (mips_truncated_op_cost): New function.
36236         (mips_rtx_costs): Adjust test for BADDU.
36237         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
36238
36239         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
36240
36241         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
36242         (*baddu_si): ...this new pattern.
36243
36244 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
36245
36246         PR ipa/59722
36247         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
36248
36249 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
36250
36251         PR middle-end/57748
36252         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
36253         inner_reference_p.
36254         (expand_expr, expand_normal): Adjust.
36255         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
36256         inner_reference_p. Use inner_reference_p to expand inner references.
36257         (store_expr): Adjust.
36258         * cfgexpand.c (expand_call_stmt): Adjust.
36259
36260 2014-01-08  Rong Xu  <xur@google.com>
36261
36262         * gcov-io.c (gcov_var): Move from gcov-io.h.
36263         (gcov_position): Ditto.
36264         (gcov_is_error): Ditto.
36265         (gcov_rewrite): Ditto.
36266         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
36267         only part to libgcc/libgcov.h.
36268
36269 2014-01-08  Marek Polacek  <polacek@redhat.com>
36270
36271         PR middle-end/59669
36272         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
36273
36274 2014-01-08  Marek Polacek  <polacek@redhat.com>
36275
36276         PR sanitizer/59667
36277         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
36278
36279 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
36280
36281         PR rtl-optimization/59649
36282         * stor-layout.c (get_mode_bounds): For BImode return
36283         0 and STORE_FLAG_VALUE.
36284
36285 2014-01-08  Richard Biener  <rguenther@suse.de>
36286
36287         PR middle-end/59630
36288         * gimple.h (is_gimple_builtin_call): Remove.
36289         (gimple_builtin_call_types_compatible_p): New.
36290         (gimple_call_builtin_p): New overload.
36291         * gimple.c (is_gimple_builtin_call): Remove.
36292         (validate_call): Rename to ...
36293         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
36294         check return types.
36295         (validate_type): New static function.
36296         (gimple_call_builtin_p): New overload and adjust.
36297         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
36298         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
36299         (gimple_fold_stmt_to_constant_1): Likewise.
36300         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
36301
36302 2014-01-08  Richard Biener  <rguenther@suse.de>
36303
36304         PR middle-end/59471
36305         * gimplify.c (gimplify_expr): Gimplify register-register type
36306         VIEW_CONVERT_EXPRs to separate stmts.
36307
36308 2014-01-07  Jeff Law  <law@redhat.com>
36309
36310         PR middle-end/53623
36311         * ree.c (combine_set_extension): Handle case where source
36312         and destination registers in an extension insn are different.
36313         (combine_reaching_defs): Allow source and destination registers
36314         in extension to be different under limited circumstances.
36315         (add_removable_extension): Remove restriction that the
36316         source and destination registers in the extension are the same.
36317         (find_and_remove_re): Emit a copy from the extension's
36318         destination to its source after the defining insn if
36319         the source and destination registers are different.
36320
36321         PR middle-end/59285
36322         * ifcvt.c (merge_if_block): If we are merging a block with more than
36323         one successor with a block with no successors, remove any BARRIER
36324         after the second block.
36325
36326 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
36327
36328         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
36329
36330 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
36331
36332         PR target/59652
36333         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
36334         for 14-bit register offsets when INT14_OK_STRICT is false.
36335
36336 2014-01-07  Roland Stigge  <stigge@antcom.de>
36337             Michael Meissner  <meissner@linux.vnet.ibm.com>
36338
36339         PR 57386/target
36340         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
36341         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
36342
36343 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
36344
36345         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
36346         -mcpu.
36347
36348 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
36349
36350         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
36351         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
36352         rtx is const0_rtx or not.
36353
36354 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
36355
36356         PR target/58115
36357         * target-globals.c (save_target_globals): Remove this_fn_optab
36358         handling.
36359         * toplev.c: Include optabs.h.
36360         (target_reinit): Temporarily restore the global options if another
36361         set of options are in force.
36362
36363 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
36364
36365         PR rtl-optimization/58668
36366         * cfgcleanup.c (flow_find_cross_jump): Don't count
36367         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
36368         to determine what is counted.
36369         (flow_find_head_matching_sequence): Use active_insn_p to determine
36370         what is counted.
36371         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
36372         counting change.
36373         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
36374         determine what is counted.
36375
36376         PR tree-optimization/59643
36377         * tree-predcom.c (split_data_refs_to_components): If one dr is
36378         read and one write, determine_offset fails and the write isn't
36379         in the bad component, just put the read into the bad component.
36380
36381 2014-01-07  Mike Stump  <mikestump@comcast.net>
36382             Jakub Jelinek  <jakub@redhat.com>
36383
36384         PR pch/59436
36385         * tree-core.h (struct tree_optimization_option): Change optabs
36386         type from unsigned char * to void *.
36387         * optabs.c (init_tree_optimization_optabs): Adjust
36388         TREE_OPTIMIZATION_OPTABS initialization.
36389
36390 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
36391
36392         PR target/59644
36393         * config/i386/i386.h (struct machine_function): Add
36394         no_drap_save_restore field.
36395         * config/i386/i386.c (ix86_save_reg): Use
36396         !cfun->machine->no_drap_save_restore instead of
36397         crtl->stack_realign_needed.
36398         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
36399         this function clears frame_pointer_needed.  Set
36400         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
36401         and DRAP reg is needed.
36402
36403 2014-01-06  Marek Polacek  <polacek@redhat.com>
36404
36405         PR c/57773
36406         * doc/implement-c.texi: Mention that other integer types are
36407         permitted as bit-field types in strictly conforming mode.
36408
36409 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
36410
36411         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
36412         is newly allocated.
36413
36414 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
36415
36416         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
36417
36418 2014-01-06  Martin Jambor  <mjambor@suse.cz>
36419
36420         PR ipa/59008
36421         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
36422         to int.
36423         * ipa-prop.c (ipa_print_node_params): Fix indentation.
36424
36425 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
36426
36427         PR debug/59350
36428         PR debug/59510
36429         * var-tracking.c (add_stores): Preserve the value of the source even if
36430         we don't record the store.
36431
36432 2014-01-06  Terry Guo  <terry.guo@arm.com>
36433
36434         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
36435
36436 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
36437
36438         PR bootstrap/59541
36439         * config/darwin.c (darwin_function_section): Adjust return values to
36440         correspond to optimisation changes made in r206070.
36441
36442 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
36443
36444         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
36445         from prefetch_block tune setting.
36446         (nocona_cost): Correct size of prefetch block to 64.
36447
36448 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
36449
36450         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
36451         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
36452         used to save the static chain register in the computation of the offset
36453         from which the FP registers need to be restored.
36454
36455 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
36456
36457         PR tree-optimization/59519
36458         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
36459         ICE if get_current_def (current_new_name) is already non-NULL, as long
36460         as it is a phi result of some other phi in *new_exit_bb that has
36461         the same argument.
36462
36463         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
36464         or vmovdqu* for misaligned_operand.
36465         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
36466         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
36467         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
36468         aligned_mem for AVX512F masked aligned load and store builtins and for
36469         non-temporal moves.
36470
36471 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
36472
36473         PR tree-optimization/59651
36474         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
36475         Address range for negative step should be added by TYPE_SIZE_UNIT.
36476
36477 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
36478
36479         * config/m68k/m68k.c (handle_move_double): Handle pushes with
36480         overlapping registers also for registers other than the stack pointer.
36481
36482 2014-01-03  Marek Polacek  <polacek@redhat.com>
36483
36484         PR other/59661
36485         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
36486         __builtin_FILE.
36487
36488 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
36489
36490         PR target/59625
36491         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
36492         asm goto as jump.
36493
36494         * config/i386/i386.md (MODE_SIZE): New mode attribute.
36495         (push splitter): Use <P:MODE_SIZE> instead of
36496         GET_MODE_SIZE (<P:MODE>mode).
36497         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
36498         (mov -1, reg peephole2): Likewise.
36499         * config/i386/sse.md (*mov<mode>_internal,
36500         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
36501         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
36502         *<code><mode>3, *andnot<mode>3<mask_name>,
36503         <mask_codefor><code><mode>3<mask_name>): Likewise.
36504         * config/i386/subst.md (mask_mode512bit_condition,
36505         sd_mask_mode512bit_condition): Likewise.
36506
36507 2014-01-02  Xinliang David Li  <davidxl@google.com>
36508
36509         PR tree-optimization/59303
36510         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
36511         (dump_predicates): Better output format.
36512         (pred_equal_p): New function.
36513         (is_neq_relop_p): Ditto.
36514         (is_neq_zero_form_p): Ditto.
36515         (pred_expr_equal_p): Ditto.
36516         (pred_neg_p): Ditto.
36517         (simplify_pred): Ditto.
36518         (simplify_preds_2): Ditto.
36519         (simplify_preds_3): Ditto.
36520         (simplify_preds_4): Ditto.
36521         (simplify_preds): Ditto.
36522         (push_pred): Ditto.
36523         (push_to_worklist): Ditto.
36524         (get_pred_info_from_cmp): Ditto.
36525         (is_degenerated_phi): Ditto.
36526         (normalize_one_pred_1): Ditto.
36527         (normalize_one_pred): Ditto.
36528         (normalize_one_pred_chain): Ditto.
36529         (normalize_preds): Ditto.
36530         (normalize_cond_1): Remove function.
36531         (normalize_cond): Ditto.
36532         (is_gcond_subset_of): Ditto.
36533         (is_subset_of_any): Ditto.
36534         (is_or_set_subset_of): Ditto.
36535         (is_and_set_subset_of): Ditto.
36536         (is_norm_cond_subset_of): Ditto.
36537         (pred_chain_length_cmp): Ditto.
36538         (convert_control_dep_chain_into_preds): Type change.
36539         (find_predicates): Ditto.
36540         (find_def_preds): Ditto.
36541         (destroy_predicates_vecs): Ditto.
36542         (find_matching_predicates_in_rest_chains): Ditto.
36543         (use_pred_not_overlap_with_undef_path_pred): Ditto.
36544         (is_pred_expr_subset): Ditto.
36545         (is_pred_chain_subset_of): Ditto.
36546         (is_included_in): Ditto.
36547         (is_superset_of): Ditto.
36548
36549 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
36550
36551         Update copyright years.
36552
36553 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
36554
36555         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
36556         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
36557         config/arc/arc.md, config/arc/arc.opt,
36558         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
36559         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
36560         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
36561         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
36562         config/linux-protos.h, config/linux.c, config/winnt-c.c,
36563         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
36564         vtable-verify.c, vtable-verify.h: Use the standard form for the
36565         copyright notice.
36566
36567 2014-01-02  Tobias Burnus  <burnus@net-b.de>
36568
36569         * gcc.c (process_command): Update copyright notice dates.
36570         * gcov-dump.c: Ditto.
36571         * gcov.c: Ditto.
36572         * doc/cpp.texi: Bump @copying's copyright year.
36573         * doc/cppinternals.texi: Ditto.
36574         * doc/gcc.texi: Ditto.
36575         * doc/gccint.texi: Ditto.
36576         * doc/gcov.texi: Ditto.
36577         * doc/install.texi: Ditto.
36578         * doc/invoke.texi: Ditto.
36579
36580 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
36581
36582         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
36583
36584 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
36585
36586         * config/i386/sse.md (*mov<mode>_internal): Guard
36587         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
36588
36589         PR rtl-optimization/59647
36590         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
36591         new_rtx into UNSIGNED_FLOAT rtxes.
36592 \f
36593 Copyright (C) 2014 Free Software Foundation, Inc.
36594
36595 Copying and distribution of this file, with or without modification,
36596 are permitted in any medium without royalty provided the copyright
36597 notice and this notice are preserved.