Add new optabs for reducing vectors to scalars
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
2
3         PR tree-optimization/61114
4         * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
5         optabs, and note in reduc_[us](plus|min|max) to prefer the former.
6
7         * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
8         back to old reduc_... + BIT_FIELD_REF only if not.
9
10         * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
11         return the reduce-to-scalar (reduc_..._scal) optab.
12         (scalar_reduc_to_vector): New.
13
14         * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
15         reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
16         New.
17
18         * optabs.h (scalar_reduc_to_vector): Declare.
19
20         * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
21         to either scalar or vector.
22
23 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
24
25         PR tree-optimization/61114
26         * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
27         extract_bit_field around optab result.
28
29         * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
30         scalar not vector.
31
32         * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
33         for REDUC_{MIN,MAX,PLUS}_EXPR.
34
35         * tree-vect-loop.c (vect_analyze_loop): Update comment.
36         (vect_create_epilog_for_reduction): For direct vector reduction, use
37         result of tree code directly without extract_bit_field.
38
39         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
40         comment.
41
42 2014-10-27  Andrew MacLeod  <amacleod@redhat.com>
43
44         * basic-block.h: Remove all includes.
45         (enum profile_status_d, struct control_flow_graph): Move to cfg.h
46         * cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
47         * Makefile.in (GTFILES): Add cfg.h to list.
48         * cgraph.h (symbol_table::create_empty): Move to cgraph.c.
49         * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
50         * genconditions.c (write_header): Add predict.h and basic-block.h to
51         lits of includes.
52         * genemit.c (main): Ditto.
53         * genpreds.c (write_insn_preds_c): Ditto.
54         * genrecog.c (write_header): Ditto.
55         * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
56         to list of includes.
57         * alias.c: Adjust include files.
58         * asan.c: Ditto.
59         * auto-inc-dec.c: Ditto.
60         * auto-profile.c: Ditto.
61         * bb-reorder.c: Ditto.
62         * bt-load.c: Ditto.
63         * builtins.c: Ditto.
64         * caller-save.c: Ditto.
65         * calls.c: Ditto.
66         * cfg.c: Ditto.
67         * cfganal.c: Ditto.
68         * cfgbuild.c: Ditto.
69         * cfgcleanup.c: Ditto.
70         * cfgexpand.c: Ditto.
71         * cfghooks.c: Ditto.
72         * cfgloop.c: Ditto.
73         * cfgloopanal.c: Ditto.
74         * cfgloopmanip.c: Ditto.
75         * cfgrtl.c: Ditto.
76         * cgraphbuild.c: Ditto.
77         * cgraphclones.c: Ditto.
78         * cgraphunit.c: Ditto.
79         * combine-stack-adj.c: Ditto.
80         * combine.c: Ditto.
81         * compare-elim.c: Ditto.
82         * coverage.c: Ditto.
83         * cprop.c: Ditto.
84         * cse.c: Ditto.
85         * cselib.c: Ditto.
86         * data-streamer-in.c: Ditto.
87         * data-streamer-out.c: Ditto.
88         * data-streamer.c: Ditto.
89         * dce.c: Ditto.
90         * ddg.c: Ditto.
91         * ddg.h: Ditto.
92         * df-core.c: Ditto.
93         * df-problems.c: Ditto.
94         * df-scan.c: Ditto.
95         * df.h: Ditto.
96         * dojump.c: Ditto.
97         * dominance.c: Ditto.
98         * domwalk.c: Ditto.
99         * dse.c: Ditto.
100         * dwarf2cfi.c: Ditto.
101         * emit-rtl.c: Ditto.
102         * et-forest.c: Ditto.
103         * except.c: Ditto.
104         * expmed.c: Ditto.
105         * expr.c: Ditto.
106         * final.c: Ditto.
107         * fold-const.c: Ditto.
108         * function.c: Ditto.
109         * fwprop.c: Ditto.
110         * gcc-plugin.h: Ditto.
111         * gcse.c: Ditto.
112         * generic-match-head.c: Ditto.
113         * ggc-page.c: Ditto.
114         * gimple-builder.c: Ditto.
115         * gimple-expr.c: Ditto.
116         * gimple-fold.c: Ditto.
117         * gimple-iterator.c: Ditto.
118         * gimple-low.c: Ditto.
119         * gimple-match-head.c: Ditto.
120         * gimple-pretty-print.c: Ditto.
121         * gimple-ssa-isolate-paths.c: Ditto.
122         * gimple-ssa-strength-reduction.c: Ditto.
123         * gimple-streamer-in.c: Ditto.
124         * gimple-streamer-out.c: Ditto.
125         * gimple-streamer.h: Ditto.
126         * gimple-walk.c: Ditto.
127         * gimple.c: Ditto.
128         * gimplify-me.c: Ditto.
129         * gimplify.c: Ditto.
130         * graph.c: Ditto.
131         * graphite-blocking.c: Ditto.
132         * graphite-clast-to-gimple.c: Ditto.
133         * graphite-dependences.c: Ditto.
134         * graphite-interchange.c: Ditto.
135         * graphite-isl-ast-to-gimple.c: Ditto.
136         * graphite-optimize-isl.c: Ditto.
137         * graphite-poly.c: Ditto.
138         * graphite-scop-detection.c: Ditto.
139         * graphite-sese-to-poly.c: Ditto.
140         * graphite.c: Ditto.
141         * haifa-sched.c: Ditto.
142         * hw-doloop.c: Ditto.
143         * ifcvt.c: Ditto.
144         * init-regs.c: Ditto.
145         * internal-fn.c: Ditto.
146         * ipa-cp.c: Ditto.
147         * ipa-devirt.c: Ditto.
148         * ipa-icf-gimple.c: Ditto.
149         * ipa-icf.c: Ditto.
150         * ipa-inline-analysis.c: Ditto.
151         * ipa-inline.c: Ditto.
152         * ipa-polymorphic-call.c: Ditto.
153         * ipa-profile.c: Ditto.
154         * ipa-prop.c: Ditto.
155         * ipa-pure-const.c: Ditto.
156         * ipa-reference.c: Ditto.
157         * ipa-split.c: Ditto.
158         * ipa-utils.c: Ditto.
159         * ipa.c: Ditto.
160         * ira-build.c: Ditto.
161         * ira-color.c: Ditto.
162         * ira-conflicts.c: Ditto.
163         * ira-costs.c: Ditto.
164         * ira-emit.c: Ditto.
165         * ira-lives.c: Ditto.
166         * ira.c: Ditto.
167         * jump.c: Ditto.
168         * lcm.c: Ditto.
169         * loop-doloop.c: Ditto.
170         * loop-init.c: Ditto.
171         * loop-invariant.c: Ditto.
172         * loop-iv.c: Ditto.
173         * loop-unroll.c: Ditto.
174         * lower-subreg.c: Ditto.
175         * lra-assigns.c: Ditto.
176         * lra-coalesce.c: Ditto.
177         * lra-constraints.c: Ditto.
178         * lra-eliminations.c: Ditto.
179         * lra-lives.c: Ditto.
180         * lra-spills.c: Ditto.
181         * lra.c: Ditto.
182         * lto-cgraph.c: Ditto.
183         * lto-compress.c: Ditto.
184         * lto-opts.c: Ditto.
185         * lto-section-in.c: Ditto.
186         * lto-section-out.c: Ditto.
187         * lto-streamer-in.c: Ditto.
188         * lto-streamer-out.c: Ditto.
189         * lto-streamer.c: Ditto.
190         * mcf.c: Ditto.
191         * mode-switching.c: Ditto.
192         * modulo-sched.c: Ditto.
193         * omp-low.c: Ditto.
194         * optabs.c: Ditto.
195         * opts-global.c: Ditto.
196         * passes.c: Ditto.
197         * postreload-gcse.c: Ditto.
198         * postreload.c: Ditto.
199         * predict.c: Ditto.
200         * print-rtl.c: Ditto.
201         * profile.c: Ditto.
202         * recog.c: Ditto.
203         * ree.c: Ditto.
204         * reg-stack.c: Ditto.
205         * regcprop.c: Ditto.
206         * regcprop.h: Ditto.
207         * reginfo.c: Ditto.
208         * regrename.c: Ditto.
209         * regstat.c: Ditto.
210         * reload.c: Ditto.
211         * reload1.c: Ditto.
212         * reorg.c: Ditto.
213         * resource.c: Ditto.
214         * rtlanal.c: Ditto.
215         * sched-deps.c: Ditto.
216         * sched-ebb.c: Ditto.
217         * sched-int.h: Ditto.
218         * sched-rgn.c: Ditto.
219         * sched-vis.c: Ditto.
220         * sel-sched-dump.c: Ditto.
221         * sel-sched-ir.c: Ditto.
222         * sel-sched-ir.h: Ditto.
223         * sel-sched.c: Ditto.
224         * sese.c: Ditto.
225         * shrink-wrap.c: Ditto.
226         * stack-ptr-mod.c: Ditto.
227         * stmt.c: Ditto.
228         * store-motion.c: Ditto.
229         * symtab.c: Ditto.
230         * toplev.c: Ditto.
231         * tracer.c: Ditto.
232         * trans-mem.c: Ditto.
233         * tree-affine.c: Ditto.
234         * tree-call-cdce.c: Ditto.
235         * tree-cfg.c: Ditto.
236         * tree-cfgcleanup.c: Ditto.
237         * tree-chrec.c: Ditto.
238         * tree-complex.c: Ditto.
239         * tree-data-ref.c: Ditto.
240         * tree-dfa.c: Ditto.
241         * tree-eh.c: Ditto.
242         * tree-emutls.c: Ditto.
243         * tree-if-conv.c: Ditto.
244         * tree-inline.c: Ditto.
245         * tree-into-ssa.c: Ditto.
246         * tree-loop-distribution.c: Ditto.
247         * tree-nested.c: Ditto.
248         * tree-nrv.c: Ditto.
249         * tree-object-size.c: Ditto.
250         * tree-outof-ssa.c: Ditto.
251         * tree-parloops.c: Ditto.
252         * tree-phinodes.c: Ditto.
253         * tree-predcom.c: Ditto.
254         * tree-pretty-print.c: Ditto.
255         * tree-profile.c: Ditto.
256         * tree-scalar-evolution.c: Ditto.
257         * tree-sra.c: Ditto.
258         * tree-ssa-address.c: Ditto.
259         * tree-ssa-alias.c: Ditto.
260         * tree-ssa-ccp.c: Ditto.
261         * tree-ssa-coalesce.c: Ditto.
262         * tree-ssa-copy.c: Ditto.
263         * tree-ssa-copyrename.c: Ditto.
264         * tree-ssa-dce.c: Ditto.
265         * tree-ssa-dom.c: Ditto.
266         * tree-ssa-dse.c: Ditto.
267         * tree-ssa-forwprop.c: Ditto.
268         * tree-ssa-ifcombine.c: Ditto.
269         * tree-ssa-live.c: Ditto.
270         * tree-ssa-loop-ch.c: Ditto.
271         * tree-ssa-loop-im.c: Ditto.
272         * tree-ssa-loop-ivcanon.c: Ditto.
273         * tree-ssa-loop-ivopts.c: Ditto.
274         * tree-ssa-loop-manip.c: Ditto.
275         * tree-ssa-loop-niter.c: Ditto.
276         * tree-ssa-loop-prefetch.c: Ditto.
277         * tree-ssa-loop-unswitch.c: Ditto.
278         * tree-ssa-loop.c: Ditto.
279         * tree-ssa-math-opts.c: Ditto.
280         * tree-ssa-operands.c: Ditto.
281         * tree-ssa-phiopt.c: Ditto.
282         * tree-ssa-phiprop.c: Ditto.
283         * tree-ssa-pre.c: Ditto.
284         * tree-ssa-propagate.c: Ditto.
285         * tree-ssa-reassoc.c: Ditto.
286         * tree-ssa-sccvn.c: Ditto.
287         * tree-ssa-sink.c: Ditto.
288         * tree-ssa-strlen.c: Ditto.
289         * tree-ssa-structalias.c: Ditto.
290         * tree-ssa-tail-merge.c: Ditto.
291         * tree-ssa-ter.c: Ditto.
292         * tree-ssa-threadedge.c: Ditto.
293         * tree-ssa-threadupdate.c: Ditto.
294         * tree-ssa-uncprop.c: Ditto.
295         * tree-ssa-uninit.c: Ditto.
296         * tree-ssa.c: Ditto.
297         * tree-ssanames.c: Ditto.
298         * tree-stdarg.c: Ditto.
299         * tree-streamer-in.c: Ditto.
300         * tree-streamer-out.c: Ditto.
301         * tree-streamer.c: Ditto.
302         * tree-switch-conversion.c: Ditto.
303         * tree-tailcall.c: Ditto.
304         * tree-vect-data-refs.c: Ditto.
305         * tree-vect-generic.c: Ditto.
306         * tree-vect-loop-manip.c: Ditto.
307         * tree-vect-loop.c: Ditto.
308         * tree-vect-patterns.c: Ditto.
309         * tree-vect-slp.c: Ditto.
310         * tree-vect-stmts.c: Ditto.
311         * tree-vectorizer.c: Ditto.
312         * tree-vrp.c: Ditto.
313         * tree.c: Ditto.
314         * tsan.c: Ditto.
315         * ubsan.c: Ditto.
316         * valtrack.c: Ditto.
317         * valtrack.h: Ditto.
318         * value-prof.c: Ditto.
319         * var-tracking.c: Ditto.
320         * varasm.c: Ditto.
321         * varpool.c: Ditto.
322         * vtable-verify.c: Ditto.
323         * web.c: Ditto.
324         * config/aarch64/aarch64-builtins.c: Ditto.
325         * config/aarch64/aarch64.c: Ditto.
326         * config/alpha/alpha.c: Ditto.
327         * config/arc/arc.c: Ditto.
328         * config/arm/arm.c: Ditto.
329         * config/avr/avr.c: Ditto.
330         * config/bfin/bfin.c: Ditto.
331         * config/c6x/c6x.c: Ditto.
332         * config/cr16/cr16.c: Ditto.
333         * config/cris/cris.c: Ditto.
334         * config/darwin-c.c: Ditto.
335         * config/darwin.c: Ditto.
336         * config/epiphany/epiphany.c: Ditto.
337         * config/epiphany/mode-switch-use.c: Ditto.
338         * config/epiphany/resolve-sw-modes.c: Ditto.
339         * config/fr30/fr30.c: Ditto.
340         * config/frv/frv.c: Ditto.
341         * config/h8300/h8300.c: Ditto.
342         * config/i386/i386.c: Ditto.
343         * config/i386/winnt.c: Ditto.
344         * config/ia64/ia64.c: Ditto.
345         * config/iq2000/iq2000.c: Ditto.
346         * config/lm32/lm32.c: Ditto.
347         * config/m32c/m32c.c: Ditto.
348         * config/m32r/m32r.c: Ditto.
349         * config/m68k/m68k.c: Ditto.
350         * config/mcore/mcore.c: Ditto.
351         * config/mep/mep.c: Ditto.
352         * config/microblaze/microblaze.c: Ditto.
353         * config/mips/mips.c: Ditto.
354         * config/mmix/mmix.c: Ditto.
355         * config/mn10300/mn10300.c: Ditto.
356         * config/moxie/moxie.c: Ditto.
357         * config/msp430/msp430.c: Ditto.
358         * config/nds32/nds32-cost.c: Ditto.
359         * config/nds32/nds32-fp-as-gp.c: Ditto.
360         * config/nds32/nds32-intrinsic.c: Ditto.
361         * config/nds32/nds32-isr.c: Ditto.
362         * config/nds32/nds32-md-auxiliary.c: Ditto.
363         * config/nds32/nds32-memory-manipulation.c: Ditto.
364         * config/nds32/nds32-pipelines-auxiliary.c: Ditto.
365         * config/nds32/nds32-predicates.c: Ditto.
366         * config/nds32/nds32.c: Ditto.
367         * config/nios2/nios2.c: Ditto.
368         * config/pa/pa.c: Ditto.
369         * config/pdp11/pdp11.c: Ditto.
370         * config/rl78/rl78.c: Ditto.
371         * config/rs6000/rs6000.c: Ditto.
372         * config/rx/rx.c: Ditto.
373         * config/s390/s390.c: Ditto.
374         * config/sh/sh-mem.cc: Ditto.
375         * config/sh/sh.c: Ditto.
376         * config/sh/sh_optimize_sett_clrt.cc: Ditto.
377         * config/sh/sh_treg_combine.cc: Ditto.
378         * config/sparc/sparc.c: Ditto.
379         * config/spu/spu.c: Ditto.
380         * config/stormy16/stormy16.c: Ditto.
381         * config/tilegx/tilegx.c: Ditto.
382         * config/tilepro/tilepro.c: Ditto.
383         * config/v850/v850.c: Ditto.
384         * config/vax/vax.c: Ditto.
385         * config/xtensa/xtensa.c: Ditto.
386
387 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
388
389         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
390         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
391         Remove using preprocessor directives.
392
393 2014-10-27  Richard Biener  <rguenther@suse.de>
394
395         * match.pd (0 % X): Properly use the iterator iterating over
396         all modulo operators.
397         (X % 1): Likewise.
398
399 2014-10-27  Richard Biener  <rguenther@suse.de>
400
401         * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
402         (lattice): New global.
403         (fwprop_ssa_val): New function.
404         (fold_all_stmts): Likewise.
405         (pass_forwprop::execute): Finally fold all stmts.
406
407 2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
408
409         PR c++/53061
410         * doc/invoke.texi (fmessage-length): Update text to match reality.
411
412 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
413
414         * config/microblaze/microblaze.c: Include rtl-iter.h.
415         (microblaze_tls_referenced_p_1): Delete.
416         (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.
417
418 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
419
420         * config/mips/mips.c (mips_at_reg_p): Delete.
421         (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
422
423 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
424
425         * config/mips/mips.c (mips_record_lo_sum): Replace with...
426         (mips_record_lo_sums): ...this new function.
427         (mips_reorg_process_insns): Update accordingly.
428
429 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
430
431         * config/mips/mips.c (mips_sim_insn): Update comment.
432         (mips_sim_wait_regs_2): Delete.
433         (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
434
435 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
436
437         * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
438         and return a bool.  Iterate over all subrtxes here.
439         (r10k_needs_protection_p): Update accordingly.
440
441 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
442
443         * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
444         rather than an rtx pointer.  Change type of insn from "void *"
445         to its real type.  Return bool rather than int.  Iterate over
446         all subrtxes here.
447         (r10k_needs_protection_p_store): Update accordingly.
448         (r10k_needs_protection_p): Likewise.
449
450 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
451
452         * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
453         (mips16_rewrite_pool_refs): Take the insn and constant pool as
454         parameters.  Iterate over the instruction's pattern and return void.
455         (mips16_lay_out_constants): Update accordingly.
456
457 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
458
459         * config/mips/mips.c (mips_kernel_reg_p): Replace with...
460         (mips_refers_to_kernel_reg_p): ...this new function.
461         (mips_expand_prologue): Update accordingly.
462
463 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
464
465         * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
466         as a parameter instead of the containing MEM.  Iterate over all
467         subrtxes.  Don't return a value.
468         (mips_rewrite_small_data): Update call accordingly.
469
470 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
471
472         * config/mips/mips.c: Include rtl-iter.h.
473         (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
474         Take the context as a parameter instead of the containing MEM.
475         Iterate over all subrtxes.
476         (mips_small_data_pattern_p): Update call accordingly.
477
478 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
479
480         * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
481         (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
482
483 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
484
485         * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
486         return a bool.  Replace "void *" with specific type.  Iterate
487         over all subrtxes.
488         (mep_store_data_bypass_1): Update calls accordingly.
489
490 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
491
492         * config/mep/mep.c: Include rtl-iter.h.
493         (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
494         (xtensa_tls_referenced_p): Return a bool.  Use FOR_EACH_SUBRTX.
495
496 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
497
498         * config/xtensa/xtensa.c: Include rtl-iter.h.
499         (xtensa_tls_referenced_p_1): Delete.
500         (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
501
502 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
503
504         * config/sh/sh.c (sh_contains_memref_p_1): Delete.
505         (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
506
507 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
508
509         * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
510         rtx as argument and return the number of changes.
511         * config/sh/sh.c: Include rtl-iter.h.
512         (shmedia_cleanup_truncate): Take an rtx as argument and iterate
513         over all subrtxes.  Return the number of changes made.
514         * config/sh/sh.md: Update caller accordingly.
515
516 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
517
518         * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
519         (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
520
521 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
522
523         * config/m68k/m68k.c: Include rtl-iter.h.
524         (m68k_final_prescan_insn_1): Delete.
525         (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
526
527 2014-10-25  Jakub Jelinek  <jakub@redhat.com>
528
529         PR tree-optimization/63641
530         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
531         to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
532
533 2014-10-25  Alan Modra  <amodra@gmail.com>
534
535         PR rtl-optimization/63615
536         * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
537         decomposing PLUS or MINUS if operands are not placed adjacent
538         in the "ops" array.
539
540 2014-10-25  Joseph Myers  <joseph@codesourcery.com>
541
542         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
543         not allow e500 double in registers not satisyfing
544         SPE_SIMD_REGNO_P.
545
546 2014-10-24  Aldy Hernandez  <aldyh@redhat.com>
547
548         * dwarf2out.c (declare_in_namespace): Only emit external
549         declarations in the local scope once.
550
551 2014-10-24  Jonathan Wakely  <jwakely@redhat.com>
552
553         * ginclude/stdbool.h: Do not define bool, true or false in C++11.
554
555 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
556
557         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
558         update uses to use new macro arguments.
559         (__LD3_LANE_FUNC): Likewise.
560         (__LD4_LANE_FUNC): Likewise.
561
562 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
563
564         * config/aarch64/aarch64-builtins.c
565         (aarch64_types_loadstruct_lane_qualifiers): Define.
566         * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
567         ld4_lane): New builtins.
568         * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
569         New pattern.
570         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
571         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
572         (aarch64_ld2_lane<mode>): New expand.
573         (aarch64_ld3_lane<mode>): Likewise.
574         (aarch64_ld4_lane<mode>): Likewise.
575         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
576         UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
577
578 2014-10-24  Georg-Johann Lay  <avr@gjlay.de>
579
580         * avr-protos.h (avr_out_sign_extend): New.
581         * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
582         (avr_out_sign_extend): New function.
583         * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
584         (extendhisi2, extendpsisi2): Use it.
585         (adjust_len) [sext]: New.
586
587 2014-10-24  Martin Liska  <mliska@suse.cz>
588
589         * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
590         added.
591
592 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
593
594         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
595         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
596         * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
597         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
598
599 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
600
601         * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
602         do while (0).
603         * config/aarch64/aarch64.c (is_mem_p): Delete.
604         (is_memory_op): Rename to...
605         (has_memory_op): ... This.  Use FOR_EACH_SUBRTX.
606         (dep_between_memop_and_curr): Assert that the input is a SET.
607         (aarch64_madd_needs_nop): Add comment.  Do not call
608         dep_between_memop_and_curr on NULL body.
609         (aarch64_final_prescan_insn): Add comment.
610         Include rtl-iter.h.
611
612 2014-10-24  Richard Biener  <rguenther@suse.de>
613
614         * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
615         to genmatch BUILD_LIBS instead.
616
617 2014-10-24  Richard Biener  <rguenther@suse.de>
618
619         * genmatch.c (expr::gen_transform): Use fold_buildN_loc
620         and build_call_expr_loc.
621         (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
622         non_lvalue_loc to build it for GENERIC.
623         (decision_tree::gen_generic): Add location argument to
624         generic_simplify prototype.
625         (capture_info): New class.
626         (capture_info::capture_info): New constructor.
627         (capture_info::walk_match): New method.
628         (capture_info::walk_result): New method.
629         (capture_info::walk_c_expr): New method.
630         (dt_simplify::gen): Handle preserving side-effects for
631         GENERIC code generation.
632         (decision_tree::gen_generic): Do not reject operands
633         with TREE_SIDE_EFFECTS.
634         * generic-match.h: New file.
635         * generic-match-head.c: Include generic-match.h, not gimple-match.h.
636         * match.pd: Add some constant folding patterns from fold-const.c.
637         * fold-const.c: Include generic-match.h.
638         (fold_unary_loc): Dispatch to generic_simplify.
639         (fold_ternary_loc): Likewise.
640         (fold_binary_loc): Likewise.  Remove patterns now implemented
641         by generic_simplify.
642         * gimple-fold.c (replace_stmt_with_simplification): New function.
643         (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
644         (no_follow_ssa_edges): New function.
645         (fold_stmt): New overload with valueization hook.  Use
646         no_follow_ssa_edges for the overload without hook.
647         (fold_stmt_inplace): Likewise.
648         * gimple-fold.h (no_follow_ssa_edges): Declare.
649
650 2014-10-24  Felix Yang  <felix.yang@huawei.com>
651         Jiji Jiang  <jiangjiji@huawei.com>
652
653         PR target/63173
654         * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
655         (__LD3R_FUNC): Ditto.
656         (__LD4R_FUNC): Ditto.
657         (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
658          vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
659          vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
660          vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
661          vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
662          vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
663         (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
664          vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
665          vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
666          vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
667          vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
668          vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
669         (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
670          vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
671          vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
672          vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
673          vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
674          vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
675         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
676         UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
677         * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
678         builtins.
679         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
680         (aarch64_simd_ld3r<mode>): Likewise.
681         (aarch64_simd_ld4r<mode>): Likewise.
682         (aarch64_ld2r<mode>): New expand.
683         (aarch64_ld3r<mode>): Likewise.
684         (aarch64_ld4r<mode>): Likewise.
685
686 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
687
688         * rtlanal.c (get_base_term): Handle SCRATCH.
689
690 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
691
692         * haifa-sched.c (sched_init): Disable max_issue when scheduling for
693         register pressure.
694
695 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
696
697         * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
698         (cached_issue_rate): Remove.  Use dfa_lookahead and issue_rate instead.
699         (max_issue, choose_ready, sched_init): Update.
700
701 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
702
703         * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
704         * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
705         (rfs_result): Set INSN_LAST_RFS_WIN.  Update signature.
706         (rank_for_schedule): Update calls to rfs_result to pass new parameters.
707         (print_rank_for_schedule_stats): Print out elements of ready list that
708         ended up on their respective places due to each of the sorting
709         heuristics.
710         (ready_sort): Update.
711         (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
712         (schedule_block): Update.
713
714 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
715
716         * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
717         arrays.  Use sched_class_regs_num instead of ira_class_hard_regs_num.
718         (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
719         (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
720         (model_start_schedule): Update.
721         (sched_pressure_start_bb): New static function.  Calculate
722         sched_class_regs_num.
723         (schedule_block): Use it.
724         (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
725
726 2014-10-24  Richard Biener  <rguenther@suse.de>
727
728         * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
729         host library and make sure to pull in the required libintl
730         and libiconv dependencies.
731
732 2014-10-24  Richard Biener  <rguenther@suse.de>
733
734         * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
735
736 2014-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
737
738         PR bootstrap/63632
739         * collect2.c (main): Filter out -fno-lto.
740
741 2014-10-24  Martin Liska  <mliska@suse.cz>
742
743         * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
744         division by zero in dumps.
745         (sem_item_optimizer::merge_classes): Ditto.
746
747 2014-10-23  John David Anglin  <danglin@gcc.gnu.org>
748
749         * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
750
751 2014-10-23  Ian Lance Taylor  <iant@google.com>
752
753         * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
754
755 2014-10-23  Ian Lance Taylor  <iant@google.com>
756
757         * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
758
759 2014-10-23  Jakub Jelinek  <jakub@redhat.com>
760
761         PR debug/63623
762         * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
763         (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
764         instead of only handling autoinc in dest if it is a MEM.
765         (vt_stack_adjustments): Fix up formatting.
766
767 2014-10-23  DJ Delorie  <dj@redhat.com>
768
769         * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
770         independend of -mlarge.
771         * config/msp430/constraints.md (Ys): Update comment.
772
773 2014-10-23  Evgeny Stupachenko  <evstupac@gmail.com>
774
775         PR target/63534
776         PR target/63618
777         * cse.c (delete_trivially_dead_insns): Consider PIC register is used
778         while it is pseudo.
779         * dse.c (deletable_insn_p): Likewise.
780
781 2014-10-23  Georg-Johann Lay  <avr@gjlay.de>
782
783         * config/avr/avr.c: Fix GNU coding rules and typos.
784         * config/avr/avr.h: Dito.
785         * config/avr/avr-c.c: Dito.
786         * config/avr/avr.md: Dito.
787
788 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
789
790         * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
791         New.
792         (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
793         iterator.
794         (define_expand "abs<mode>2"): Ditto.
795
796 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
797
798         * tree-core.h (tree_var_decl): Extend `function_code' field
799         by one bit, move `regdecl_flag' field to ...
800         (tree_decl_with_vis): Here.
801         * tree.h (DECL_STATIC_CHAIN): Update struct name.
802
803 2014-10-23  Richard Biener  <rguenther@suse.de>
804
805         * Makefile.in (BUILD_CPPLIB): Add.
806         (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
807         Drop LIBIBERTY.
808
809 2014-10-23  Richard Biener  <rguenther@suse.de>
810
811         * fold-const.c (fold_binary_loc): Preserve side-effects of
812         X - X when simplifying to 0.
813         * stor-layout.c (finish_bitfield_representative): Strip
814         side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
815
816 2014-10-22  Richard Biener  <rguenther@suse.de>
817             Tobias Burnus <burnus@net-b.de>
818
819         PR lto/63603
820         * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
821
822 2014-10-22  Dehao Chen  <dehao@google.com>
823
824         * auto-profile.c: Change order of header files.
825
826 2014-10-22  Guozhi Wei  <carrot@google.com>
827
828         PR tree-optimization/63530
829         tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
830         pointer alignment according to DR_MISALIGNMENT.
831
832 2014-10-22  David Malcolm  <dmalcolm@redhat.com>
833
834         * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
835
836 2014-10-22  Andrew MacLeod  <amacleod@redhat.com>
837
838         * cfgbuild.h: New.  Add prototypes for cfgbuild.c.
839         * cfgcleanup.h: New.  Add prototypes for cfgcleanup.c.
840         * cfgloopmanip.h: New.  Add prototypes for cfgloopmanip.c.
841         * dominance.h: New.  Add prototypes for dominance.c.
842         * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
843         * cfghooks.h: (struct profile_record) Relocate here.
844         Relocate 2 prototypes from basic-block.h.
845         * basic-block.h: Move prototypes and struct to new header files.
846         Include cfgbuild.h, cfgcleanup.h, and dominance.h.
847         * rtl.h: Move a few prototypes to new header files.
848         * cfgcleanup.c (merge_memattrs): Make static.
849         * genopinit.c (main): Add predict.h to list of includes.
850         * predict.h: Update prototype list to match predict.c.
851         * predict.c (maybe_hot_count_p): Export.
852         (cgraph_edge::maybe_hot_p): Move to cgraph.c.
853         (cgraph_node::optimize_for_size_p): Move to cgraph.h.
854         * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
855         * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
856         * profile.h: Adjust prototypes.
857         * ifcvt.h: New.  Relocate struct ce_if_block here.
858         * ifcvt.c: Include ifcvt.h.
859         * config/frv/frv.c: Include ifcvt.h.
860         * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
861
862 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
863
864         * lra.c (lra): Remove call to recog_init.
865         * config/i386/i386.md (preferred_for_speed): New attribute
866         (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
867         "enabled".  Remove check for sched1.
868
869 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
870
871         * recog.h (recog_data_d): Remove enabled_alternatives.
872         * recog.c (extract_insn): Don't set it.
873         * reload.c (find_reloads): Call get_enabled_alternatives.
874
875 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
876
877         * recog.h (constrain_operands): Add an alternative_mask parameter.
878         (constrain_operands_cached): Likewise.
879         (get_preferred_alternatives): Declare new form.
880         * recog.c (get_preferred_alternatives): New bb-taking instance.
881         (constrain_operands): Take the set of available alternatives as
882         a parameter.
883         (check_asm_operands, insn_invalid_p, extract_constrain_insn)
884         (extract_constrain_insn_cached): Update calls to constrain_operands.
885         * caller-save.c (reg_save_code): Likewise.
886         * ira.c (setup_prohibited_mode_move_regs): Likewise.
887         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
888         * ree.c (combine_reaching_defs): Likewise.
889         * reload.c (can_reload_into): Likewise.
890         * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
891         (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
892         (emit_insn_if_valid_for_reload): Likewise.
893         * reorg.c (fill_slots_from_thread): Likewise.
894         * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
895         * config/pa/pa.c (pa_can_combine_p): Likewise.
896         * config/rl78/rl78.c (insn_ok_now): Likewise.
897         * config/sh/sh.md (define_peephole2): Likewise.
898         * final.c (final_scan_insn): Update call to constrain_operands_cached.
899
900 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
901
902         * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
903         attributes.
904         * genattr.c (main): Handle "preferred_for_size" and
905         "preferred_for_speed" in the same way as "enabled".
906         * recog.h (bool_attr): New enum.
907         (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
908         (get_preferred_alternatives, check_bool_attrs): Declare.
909         * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
910         (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
911         New functions.
912         (get_enabled_alternatives): Use get_bool_attr_mask.
913         * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
914         instead of recog_data.enabled_alternatives.
915         * ira.c (ira_setup_alts): Likewise.
916         * postreload.c (reload_cse_simplify_operands): Likewise.
917         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
918         * ira-lives.c (preferred_alternatives): New variable.
919         (process_bb_node_lives): Set it.
920         (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
921         (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
922         of recog_data.enabled_alternatives.
923         * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
924         to preferred_alternatives.
925         * lra-constraints.c (process_alt_operands): Update accordingly.
926         * lra.c (lra_set_insn_recog_data): Likewise.
927         (lra_update_insn_recog_data): Assert check_bool_attrs.
928
929 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
930
931         * recog.h (extract_constrain_insn): Declare.
932         * recog.c (extract_constrain_insn): New function.
933         * lra.c (check_rtl): Use it.
934         * postreload.c (reload_cse_simplify_operands): Likewise.
935         * reg-stack.c (check_asm_stack_operands): Likewise.
936         (subst_asm_stack_regs): Likewise.
937         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
938         * regrename.c (build_def_use): Likewise.
939         * sel-sched.c (get_reg_class): Likewise.
940         * config/arm/arm.c (note_invalid_constants): Likewise.
941         * config/s390/predicates.md (execute_operation): Likewise.
942
943 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
944             Yury Gribov  <y.gribov@samsung.com>
945
946         * common.opt (flag_sanitize_recover): New variable.
947         (fsanitize-recover): Remove Var/Init, deprecate.
948         (fsanitize-recover=): New option.
949         * doc/invoke.texi (fsanitize-recover): Update docs.
950         * opts.c (finish_options): Use opts->x_flag_sanitize
951         instead of flag_sanitize.  Prohibit -fsanitize-recover
952         for anything besides UBSan.  Formatting.
953         (common_handle_option): Handle OPT_fsanitize_recover_
954         and OPT_fsanitize_recover.  Use opts->x_flag_sanitize
955         instead of flag_sanitize.
956         * asan.c (pass_sanopt::execute): Fix up formatting.
957         * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
958         ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
959         instrument_bool_enum_load, ubsan_instrument_float_cast,
960         instrument_nonnull_arg, instrument_nonnull_return): Check
961         bits in flag_sanitize_recover bitmask instead of
962         flag_sanitize_recover as bool flag.
963
964 2014-10-22  Jiong Wang <jiong.wang@arm.com>
965
966         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
967
968 2014-10-22  Renlin Li <renlin.li@arm.com>
969
970         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
971         __ARM_FEATURE_IDIV__.
972
973 2014-10-22  Richard Biener  <rguenther@suse.de>
974
975         * Makefile.in (s-match): Adjust dependencies to only catch
976         match.pd.
977
978 2014-10-22  Richard Biener  <rguenther@suse.de>
979         Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
980
981         * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
982         (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
983         (gimple-match.c): Generate by triggering s-match.
984         (generic-match.c): Likewise.
985         (s-match): Rule to build gimple-match.c and generic-match.c
986         by running the genmatch generator program.
987         (build/hash-table.o): Dependencies to build hash-table.c for the host.
988         (build/genmatch.o): Dependencies to build genmatch.
989         (genprog): Add match.
990         (build/genmatch): Likewise.
991         (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
992         * generic-match-head.c: New file.
993         * gimple-match-head.c: Likewise.
994         * gimple-match.h: Likewise.
995         * genmatch.c: Likewise.
996         * match.pd: Likewise.
997         * builtins.h (fold_builtin_n): Export.
998         * builtins.c (fold_builtin_n): Likewise.
999         * gimple-fold.h (gimple_build): Declare various overloads.
1000         (gimple_simplify): Likewise.
1001         (gimple_convert): Re-implement in terms of gimple_build.
1002         * gimple-fold.c (gimple_convert): Remove.
1003         (gimple_build): New functions.
1004         * doc/match-and-simplify.texi: New file.
1005         * doc/gccint.texi: Add menu item Match and Simplify and include
1006         match-and-simplify.texi.
1007
1008 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
1009
1010         PR target/63594
1011         * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
1012         V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
1013         even for just TARGET_AVX2, not only for
1014         TARGET_AVX512VL && TARGET_AVX512BW.  For V{32HI,64QI}mode,
1015         call ix86_vector_duplicate_value only if TARGET_AVX512BW,
1016         otherwise build it using concatenation of 256-bit
1017         broadcast.
1018         * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
1019         avx512 broadcast patterns.
1020         (vec_dup<mode>): Likewise.  For avx2 use
1021         v<sseintprefix>broadcast<bcstscalarsuff> instead of
1022         vbroadcast<ssescalarmodesuffix>.
1023         (AVX2_VEC_DUP_MODE): New mode iterator.
1024         (*vec_dup<mode>): New TARGET_AVX2 define_insn with
1025         AVX2_VEC_DUP_MODE iterator, add a splitter for that.
1026
1027         PR target/63542
1028         * config/i386/i386.c (ix86_pic_register_p): Also return
1029         true if x is a hard register with ORIGINAL_REGNO equal to
1030         pic_offset_table_rtx pseudo REGNO.
1031         (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
1032         after reload, subtract GOT_SYMBOL_NAME symbol if possible.
1033
1034 2014-10-22  Alan Modra  <amodra@gmail.com>
1035
1036         * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
1037         * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
1038         (gcc_obstack_init): Use obstack_specify_allocation in place of
1039         _obstack_begin.
1040         * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
1041         (regexp_representation): Likewise.
1042         * godump.c (go_output_type): Likewise.
1043
1044 2014-10-21  John David Anglin  <danglin@gcc.gnu.org>
1045
1046         * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
1047         * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
1048         * config/pa/pa.opt (mjump-in-delay): Ignore option.  Update comment.
1049
1050 2014-10-21 Manuel López-Ibáñez  <manu@gcc.gnu.org>
1051
1052         * doc/invoke.texi (pedantic-errors): Explain better.
1053
1054 2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
1055             Vidya Praveen <vidya.praveen@atmel.com>
1056             Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
1057             Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
1058             Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
1059
1060         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
1061         __MEMX for avrtiny.
1062         * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
1063         (avr_nonconst_pointer_addrspace): Likewise.
1064         * config/avr/avr.h (AVR_HAVE_LPM): Define.
1065
1066         Added AVRTINY architecture to avr target.
1067         * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
1068         (base_arch_s): member added for AVRTINY architecture.
1069         * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
1070         alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
1071         AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
1072         and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
1073         respectively. LAST_CALLEE_SAVED_REG macro added for the last register
1074         in callee saved register list.
1075         (avr_option_override): CCP address updated for AVRTINY.
1076         (avr_init_expanders): tmp and zero rtx initialized as per arch.
1077         Reset avr_have_dimode if AVRTINY.
1078         (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
1079         (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
1080         (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
1081         Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
1082         (expand_epilogue): Likewise.
1083         (avr_print_operand): Print CCP address in case of AVRTINY also.
1084         <TBD>bad address
1085         (function_arg_regno_p): Check different register list for arguments
1086         if AVRTINY.
1087         (init_cumulative_args): Check for AVRTINY to update number of argument
1088         registers.
1089         (tiny_valid_direct_memory_access_range): New function. Return false if
1090         direct memory access range is not in accepted range for AVRTINY.
1091         (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
1092         indirect load (with displacement) for AVRTINY.
1093         (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
1094         avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
1095         (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
1096         indirect load (no displacement) for AVRTINY.
1097         (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
1098         indirect load (with displacement) for AVRTINY.
1099         (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
1100         indirect load for pre-decrement address.
1101         (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
1102         functions. Update instruction length for AVRTINY.
1103         (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
1104         SImode.
1105         (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
1106         (out_movsi_r_mr): Likewise, for SImode.
1107         (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
1108         indirect store (no displacement) for AVRTINY.
1109         (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
1110         indirect store (with displacement) for AVRTINY.
1111         (out_movsi_mr_r): Emit out insn for IO address store. Update store
1112         instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
1113         store functions.
1114         (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
1115         indirect load (no displacement) for PSImode in AVRTINY.
1116         (avr_out_load_psi_reg_disp_tiny): New function to handle register
1117         indirect load (with displacement) for PSImode in AVRTINY.
1118         (avr_out_load_psi): Call PSImode register indirect load functions for
1119         AVRTINY. Update instruction length for AVRTINY.
1120         (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
1121         indirect store (no displacement) for PSImode in AVRTINY.
1122         (avr_out_store_psi_reg_disp_tiny): New function to handle register
1123         indirect store (with displacement) for PSImode in AVRTINY.
1124         (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
1125         register indirect store functions for AVRTINY.
1126         (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
1127         register indirect store (with displacement) for AVRTINY.
1128         (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
1129         register indirect store function for QImode in AVRTINY.
1130         (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
1131         (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
1132         indirect store (no displacement) for HImode in AVRTINY.
1133         (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
1134         indirect store (with displacement) for HImode in AVRTINY.
1135         (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
1136         indirect store for post-increment address in HImode.
1137         (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
1138         register indirect store function for HImode in AVRTINY.
1139         (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
1140         in case of AVRTINY.
1141         (order_regs_for_local_alloc): Updated register allocation order for
1142         AVRTINY.
1143         (avr_conditional_register_usage): New function. It is a target hook
1144         (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
1145         used registers list and register allocation order for AVRTINY.
1146         (avr_return_in_memory): Update return value size for AVRTINY.
1147         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
1148         for AVRTINY arch and tiny program memory base address.
1149         * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
1150         (avr_texinfo): Added description for AVRTINY arch.
1151         * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
1152         STATIC_CHAIN_REGNUM for AVRTINY.
1153         * config/avr/avr-mcus.def: Added AVRTINY arch devices.
1154         * config/avr/avr.md: Added constants for tmp/ zero registers in
1155         AVRTINY. Attributes for AVRTINY added.
1156         (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
1157         memory access range.
1158         (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
1159         in AVRTINY memory access range.
1160         (*mov<mode>): Likewise for HImode and SImode.
1161         (*movsf): Likewise for SFmode.
1162         (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
1163         not have sbiw.
1164         * config/avr/avr-protos.h: Added function prototype for
1165         tiny_valid_direct_memory_access_range.
1166         * config/avr/avr-tables.opt: Regenerate.
1167         * gcc/config/avr/t-multilib: Regenerate.
1168         * doc/avr-mmcu.texi: Regenerate.
1169
1170 2014-10-21  Andrew Pinski  <apinski@cavium.com>
1171
1172         * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
1173         available option also.
1174         * config/aarch64/aarch64-cost-tables.h: New file.
1175         * config/aarch64/aarch64-cores.def (thunderx): New core.
1176         * config/aarch64/aarch64-tune.md: Regenerate.
1177         * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
1178         of config/arm/aarch-cost-tables.h.
1179         (thunderx_regmove_cost): New variable.
1180         (thunderx_tunings): New variable.
1181
1182 2014-10-21  Dehao Chen  <dehao@google.com>
1183
1184         * auto-profile.c: New file.
1185         * auto-profile.h: New file.
1186         * basic-block.h (maybe_hot_count_p): New export func.
1187         (add_working_set): New export func.
1188         * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
1189         (GCOV_TAG_AFDO_FUNCTION): Likewise.
1190         (GCOV_TAG_AFDO_WORKING_SET): Likewise.
1191         * opts.c (enable_fdo_optimizations): New func.
1192         (common_handle_option): Handle -fauto-profile flag.
1193         * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
1194         (class pass_early_inline): Export early_inliner.
1195         (early_inliner): Likewise.
1196         (pass_early_inline::execute): Likewise.
1197         * ipa-inline.h (early_inliner): Likewise.
1198         * predict.c (maybe_hot_count_p): New export func.
1199         (counts_to_freqs): AutoFDO logic.
1200         (rebuild_frequencies): Likewise.
1201         * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
1202         * profile.c (add_working_set): New func.
1203         * Makefile.in (auto-profile.o): New object file.
1204         * passes.def (pass_ipa_auto_profile): New pass.
1205         * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
1206         * tree-pass.h (make_pass_ipa_auto_profile): New pass.
1207         * toplev.c (compile_file): AutoFDO logic.
1208         * doc/invoke.texi (-fauto-profile): New doc.
1209         * coverage.c (coverage_init): AutoFDO logic.
1210         * common.opt (-fauto-profile): New flag.
1211         * timevar.def (TV_IPA_AUTOFDO): New tag.
1212         * value-prof.c (gimple_alloc_histogram_value): New export func.
1213         (check_ic_target): Likewise.
1214         * value-prof.h (gimple_alloc_histogram_value): Likewise.
1215         (check_ic_target): Likewise.
1216
1217 2014-10-21  David Malcolm  <dmalcolm@redhat.com>
1218
1219         * cgraph.c (cgraph_c_finalize): New function.
1220         * cgraph.h (cgraph_c_finalize): New prototype.
1221         (cgraphunit_c_finalize): New prototype.
1222         * cgraphunit.c (first_analyzed): Move from analyze_functions
1223         to file-scope.
1224         (first_analyzed_var): Likewise.
1225         (analyze_functions): Move static variables into file-scope.
1226         (cgraphunit_c_finalize): New function.
1227         * diagnostic.c (diagnostic_finish): Free the memory for
1228         context->classify_diagnostic and context->printer, running the
1229         destructor for the latter.
1230         (bt_stop): Use toplev::main.
1231         * dwarf2out.c (dwarf2out_finalize): New function.
1232         * dwarf2out.h (dwarf2out_c_finalize): New prototype.
1233         * gcse.c (gcse_c_finalize): New function.
1234         * gcse.h (gcse_c_finalize): New prototype.
1235         * ggc-page.c (init_ggc): Make idempotent.
1236         * input.c (input_location): Initialize to UNKNOWN_LOCATION.
1237         * ipa-cp.c (ipa_cp_c_finalize): New function.
1238         * ipa-prop.h (ipa_cp_c_finalize): New prototype.
1239         * ipa-pure-const.c (function_insertion_hook_holder): Move to be
1240         a field of class pass_ipa_pure_const.
1241         (node_duplication_hook_holder): Likewise.
1242         (node_removal_hook_holder): Likewise.
1243         (register_hooks): Convert to method...
1244         (pass_ipa_pure_const::register_hooks): ...here, converting
1245         static variable init_p into...
1246         (pass_ipa_pure_const::init_p): ...new field.
1247         (pure_const_generate_summary): Update invocation of
1248         register_hooks to invoke as a method of current_pass.
1249         (pure_const_read_summary): Likewise.
1250         (propagate): Convert to...
1251         (pass_ipa_pure_const::execute): ...method.
1252         * ipa-reference.c (ipa_init): Move static bool init_p from here
1253         to...
1254         (ipa_init_p): New file-scope variable, so that it can be reset
1255         when repeatedly invoking the compiler within one process by...
1256         (ipa_reference_c_finalize): New function.
1257         * ipa-reference.h (ipa_reference_c_finalize): New.
1258         * main.c (main): Replace invocation of toplev_main with
1259         construction of a toplev instance, and call its "main" method.
1260         * params.c (global_init_params): Add an assert that
1261         params_finished is false.
1262         (params_c_finalize): New.
1263         * params.h (params_c_finalize): New.
1264         * passes.c (execute_ipa_summary_passes): Set "current_pass" before
1265         invoking generate_summary, for the benefit of pass_ipa_pure_const.
1266         (ipa_write_summaries_2): Assign "pass" to "current_pass" global
1267         before calling write_summary hook.
1268         (ipa_write_optimization_summaries_1): Likewise when calling
1269         write_optimization_summary hook.
1270         (ipa_read_summaries_1): Likewise for read_summary hook.
1271         (ipa_read_optimization_summaries_1): Likewise for
1272         read_optimization_summary hook.
1273         (execute_ipa_stmt_fixups): Likewise.
1274         * stringpool.c (init_stringpool): Clean up if we're called more
1275         than once.
1276         * timevar.c (timevar_init): Ignore repeated calls.
1277         * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
1278         "ipa-prop.h".
1279         (general_init): Reset "input_location" to UNKNOWN_LOCATION.
1280         (initialize_rtl): Move static local "initialized_once"
1281         into file scope, and rename to...
1282         (rtl_initialized): New variable.
1283         (do_compile): Move timevar initialization from here to
1284         toplev::start_timevars.
1285         (toplev::toplev, toplev::~toplev, toplev::start_timevars,
1286         toplev::finalize): New functions.
1287         (toplev_main): Rename to...
1288         (toplev::main): ...this.
1289         * toplev.h (class toplev): New class.
1290
1291 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
1292
1293         * loop-doloop.c: Include loop-unroll.h.
1294
1295 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
1296
1297         * cfg.h: New.  Header file for cfg.c.
1298         * cfganal.h: New.  Header file for cfganal.c.
1299         * lcm.h: New.  Header file for lcm.c.
1300         * loop-unroll.h: New.  Header file for loop-unroll.h.
1301         * cfgloop.h: (unroll_loops): Remove prototype.
1302         * basic-block.h: Move prototypes and structs to new header files.
1303         Include cfg.h, cfganal.h, and lcm.h.
1304         * loop-init.c: Include loop-unroll.h.
1305         * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
1306         * modulo-sched.c: Include loop-unroll.h.
1307
1308 2014-10-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1309
1310         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
1311         MARKER_BYTE_UNKNOWN markers when handling casts.
1312
1313 2014-10-21  Richard Biener  <rguenther@suse.de>
1314
1315         * tree-ssa-phiopt.c (value_replacement): Properly verify we
1316         are the non-singleton PHI.
1317
1318 2014-10-21  Jakub Jelinek  <jakub@redhat.com>
1319
1320         PR tree-optimization/63563
1321         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
1322         if either dra or drb stmts are not normal loads/stores.
1323
1324 2014-10-21  Ilya Tocar  <ilya.tocar@intel.com>
1325
1326         * config/i386/i386.c (expand_vec_perm_1): Fix
1327         expand_vec_perm_palignr case.
1328         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
1329         VI1_AVX512.
1330
1331 2014-10-21  Zhenqiang Chen  <zhenqiang.chen@arm.com>
1332
1333         * cfgloopanal.c (seq_cost): Delete.
1334         * rtl.h (seq_cost): New prototype.
1335         * rtlanal.c (seq_cost): New function.
1336         * tree-ssa-loop-ivopts.c (seq_cost): Delete.
1337
1338 2014-10-20  Andrew MacLeod  <amacleod@redhat.com>
1339
1340         * cfgrtl.h: New.  Add prototypes for cfgrtl.c.
1341         * basic-block.h: Remove prototypes for cfgrtl.c.
1342         * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
1343         prototypes to cfgrtl.h.
1344         * profile.h (profile_info): Add extern export declaration.
1345         * rtl.h: Remove prototypes for cfgrtl.h.
1346         * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
1347         * ipa-inline.c: Include profile.h.
1348         * loop-unroll.c: Ditto.
1349         * modulo-sched.c: Ditto.
1350         * postreload-gcse.c: Ditto.
1351         * predict.c: Ditto.
1352         * sched-ebb.c: Ditto.
1353         * sched-rgn.c: Ditto.
1354         * tracer.c: Ditto.
1355         * tree-ssa-loop-ivcanon.c: Ditto.
1356
1357 2014-10-20  Richard Biener  <rguenther@suse.de>
1358
1359         * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
1360         operands to get a def operand kind match.  Signal mismatches
1361         to the parent so we can try swapping its operands.
1362         (vect_build_slp_tree): Try swapping operands if they have
1363         a mismatched operand kind.
1364
1365 2014-10-20  Alan Modra  <amodra@gmail.com>
1366
1367         PR debug/60655
1368         * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
1369         Increase "ops" array size.  Correct array size tests.  Init
1370         n_constants in loop.  Break out of innermost loop when finding
1371         a trivial CONST expression.
1372
1373 2014-10-20  Martin Liska  <mliska@suse.cz>
1374
1375         PR ipa/63583
1376         * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
1377         Gimple tempate string is compared.
1378
1379 2014-10-20  Uros Bizjak  <ubizjak@gmail.com>
1380
1381         * varasm.c (const_alias_set): Remove.
1382         (init_varasm_once): Remove initialization of const_alias_set.
1383         (build_constant_desc): Do not set alias set to const_alias_set.
1384
1385 2014-10-19  Ilya Verbin  <ilya.verbin@intel.com>
1386
1387         * configure: Regenerate.
1388         * configure.ac: Move the test for section attribute specifier "e" in GAS
1389         out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
1390         * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
1391         * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
1392         ifdef HAVE_GAS_SECTION_EXCLUDE.
1393
1394 2014-10-19  Andreas Schwab  <schwab@linux-m68k.org>
1395
1396         * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
1397         match_operand expression.
1398
1399 2014-10-19  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
1400             David Edelsohn  <dje.gcc@gmail.com>
1401
1402         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
1403         function.
1404         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
1405
1406 2014-10-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1407
1408         * doc/invoke.texi (Options to Request or Suppress Warnings):
1409         Explain options precedence.
1410         (Wtrampolines): Do not indent paragraph.
1411
1412 2014-10-18  John David Anglin  <danglin@gcc.gnu.org>
1413
1414         * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
1415         * config/pa/pa-protos.h (pa_following_call): Delete declaration.
1416         (pa_jump_in_call_delay): Likewise.
1417         * config/pa/pa.c (pa_option_override): Remove jump in call delay
1418         override.
1419         (pa_output_millicode_call): Remove support for jump in call delay.
1420         (pa_output_call): Likewise.
1421         (pa_jump_in_call_delay): Delete.
1422         (pa_following_call): Likewise.
1423         * config/pa/pa.md (in_call_delay): Remove jump in delay check.
1424         (uncond_branch): Remove following call check from attribute length.
1425
1426 2014-10-18  Oleg Endo  <olegendo@gcc.gnu.org>
1427
1428         PR target/53513
1429         * config/sh/sh-modes.def (PSI): Remove.
1430         * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
1431         * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
1432         (sh_reorg): Remove commented out FPSCR code.
1433         (fpscr_set_from_mem): Use SImode instead of PSImode.  Emit lds_fpscr
1434         insn instead of move insn.
1435         (sh_hard_regno_mode_ok): Return SImode for FPSCR.
1436         (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
1437         handling.
1438         (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
1439         (sh1_builtin_p): Uncomment.
1440         (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
1441         (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
1442         * config/sh/sh/predicates.md (fpscr_operand): Simplify.
1443         (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
1444         (general_movsrc_operand, general_movdst_operand): Disallow
1445         fpscr_operand.
1446         * config/sh/sh.md (FPSCR_FR): New constant.
1447         (push_fpscr): Emit sts_fpscr insn.
1448         (pop_fpscr): Emit lds_fpscr_insn.
1449         (movsi_ie): Disallow FPSCR operands.
1450         (fpu_switch, unnamed related split, extend_psi_si,
1451         truncate_si_psi): Remove insns.
1452         (lds_fpscr, sts_fpscr): New insns.
1453         (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
1454
1455 2014-10-17  Eric Botcazou  <ebotcazou@adacore.com>
1456
1457         * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
1458         (clone_inlined_nodes): Do not overwrite the clone if above predicate
1459         returns true.
1460
1461 2014-10-17  Ilya Tocar  <ilya.tocar@intel.com>
1462
1463         * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
1464         (expand_vec_perm_d): Ditto.
1465         (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
1466         V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
1467         V4DFmode.
1468         (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
1469         (ix86_expand_sse_unpack): Handle V64QImode.
1470         (expand_vec_perm_blend): Update conditions for TARGET, handle
1471         V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
1472         (expand_vec_perm_pshufb): Handle V64QImode.
1473         (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
1474         V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
1475         (ix86_expand_vec_perm_const_1): Call  ix86_expand_vec_perm_vpermi2.
1476         (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
1477         (ix86_expand_vecop_qihi): Handle V64QImode.
1478         * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
1479         (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
1480         (define_mode_iterator VEC_PERM_CONST): Add V32HI.
1481         (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
1482         (mul<mode>3): Use VI1_AVX512.
1483         (<sse2_avx2>_packsswb): Ditto.
1484         (<sse2_avx2>_packuswb): Ditto.
1485         (<ssse3_avx2>_pshufb<mode>3): Ditto.
1486         (<shift_insn><mode>3): Ditto.
1487
1488 2014-10-17  Kirill Yukhin  <kirill.yukhin@intel.com>
1489
1490         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
1491         conditions to fix bootstrap.
1492
1493 2014-10-17  Andrew MacLeod  <amacleod@redhat.com>
1494
1495         gcc-plugin.h:  Add tm.h and flattened includes from function.h.
1496
1497 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1498             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1499             Anna Tikhonova  <anna.tikhonova@intel.com>
1500             Ilya Tocar  <ilya.tocar@intel.com>
1501             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1502             Ilya Verbin  <ilya.verbin@intel.com>
1503             Kirill Yukhin  <kirill.yukhin@intel.com>
1504             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1505
1506         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
1507         and V32HI modes, update V8HI, V16QI, V32QI modes handling.
1508         (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
1509         * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
1510         (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
1511         (define_expand "vec_init<mode>"): Use VF48_I1248.
1512
1513 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1514             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1515             Anna Tikhonova  <anna.tikhonova@intel.com>
1516             Ilya Tocar  <ilya.tocar@intel.com>
1517             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1518             Ilya Verbin  <ilya.verbin@intel.com>
1519             Kirill Yukhin  <kirill.yukhin@intel.com>
1520             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1521
1522         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
1523         expand_sse2_mulvxdi3.
1524
1525 2014-10-17  Richard Biener  <rguenther@suse.de>
1526
1527         * fold-const.c (fold_comparison): Remove redundant constant
1528         folding and operand swapping.
1529         (fold_binary_loc): Do comparison operand swapping here.
1530         (fold_ternary_loc): Canonicalize operand order for
1531         commutative ternary operations.
1532         * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
1533         and FMA_EXPR.
1534
1535 2014-10-17  Jakub Jelinek  <jakub@redhat.com>
1536
1537         PR tree-optimization/63464
1538         * gimple.h (gimple_seq_discard): New prototype.
1539         * gimple.c: Include stringpool.h and tree-ssanames.h.
1540         (gimple_seq_discard): New function.
1541         * optabs.h (lshift_cheap_p): New prototype.
1542         * optabs.c (lshift_cheap_p): New function, moved from...
1543         * tree-switch-conversion.c (lshift_cheap_p): ... here.
1544         * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
1545         (reassoc_branch_fixups): New variable.
1546         (update_range_test): Add otherrangep and seq arguments.
1547         Unshare exp.  If otherrange is NULL, use for other ranges
1548         array of pointers pointed by otherrangep instead.
1549         Emit seq before gimplified statements for tem.
1550         (optimize_range_tests_diff): Adjust update_range_test
1551         caller.
1552         (optimize_range_tests_xor): Likewise.  Fix up comment.
1553         (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
1554         functions.
1555         (optimize_range_tests): Adjust update_range_test caller.
1556         Call optimize_range_tests_to_bit_test.
1557         (branch_fixup): New function.
1558         (execute_reassoc): Call branch_fixup.
1559
1560         PR tree-optimization/63302
1561         * tree-ssa-reassoc.c (optimize_range_tests_xor,
1562         optimize_range_tests_diff): Use !integer_pow2p () instead of
1563         tree_log2 () < 0.
1564
1565 2014-10-17  Martin Liska  <mliska@suse.cz>
1566
1567         * ipa-icf.c (sem_function::merge): Local flags are set to false
1568         to enforce equal calling convention to be used.
1569         * opts.c (common_handle_option): Indentation fix.
1570
1571 2014-10-17  Marc Glisse  <marc.glisse@inria.fr>
1572
1573         * tree-into-ssa.c (is_old_name): Replace "new" with "old".
1574
1575 2014-10-17  Tom de Vries  <tom@codesourcery.com>
1576
1577         PR rtl-optimization/61605
1578         * regcprop.c (copyprop_hardreg_forward_1): Use
1579         regs_invalidated_by_this_call instead of regs_invalidated_by_call.
1580
1581 2014-10-17  Tom de Vries  <tom@codesourcery.com>
1582
1583         PR rtl-optimization/61605
1584         * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p.  Don't
1585         notice stores for noops.  Don't regard noops as copies.
1586
1587 2014-10-17  Uros Bizjak  <ubizjak@gmail.com>
1588
1589         * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
1590         register in a special way.
1591         (__cpuid_count): Ditto.
1592         * config/i386/driver-i386.h: Protect with
1593         "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
1594         (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
1595         is required to compile the function.
1596
1597 2014-10-16  DJ Delorie  <dj@redhat.com>
1598
1599         * flag-types.h (sanitize_code): Don't assume targets have 32-bit
1600         integers.
1601
1602         * config/rs6000/rs6000-c.c (rid_int128): New.
1603         (rs6000_macro_to_expand): Use instead of RID_INT128.
1604
1605 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
1606
1607         * function.h: Flatten file.  Remove includes, adjust prototypes to
1608         reflect only what is in function.h.
1609         (enum direction, struct args_size, struct locate_and_pad_arg_data,
1610         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
1611         from expr.h.
1612         (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
1613         (optimize_function_for_size_p, optimize_function_for_speed_p): Move
1614         prototypes to predict.h.
1615         (init_varasm_status): Move prototype to varasm.h.
1616         * expr.h: Adjust include files.
1617         (enum direction, struct args_size, struct locate_and_pad_arg_data,
1618         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
1619         to function.h.
1620         (locate_and_pad_parm): Move prototype to function.h.
1621         * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
1622         assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
1623         assign_temp, reposition_prologue_and_epilogue_notes,
1624         prologue_epilogue_contains, sibcall_epilogue_contains,
1625         update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
1626         set_return_jump_label): Move prototypes to function.h.
1627         * predict.h (optimize_function_for_size_p,
1628         optimize_function_for_speed_p): Relocate prototypes from function.h.
1629         * shrink-wrap.h (emit_return_into_block, active_insn_between,
1630         convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
1631         function.h.
1632         * varasm.h (init_varasm_status): Relocate prototype from function.h.
1633         * genattrtab.c (write_header): Add predict.h to include list.
1634         * genconditions.c (write_header): Add predict.h to include list.
1635         * genemit.c (main): Adjust header file includes.
1636         * gengtype.c (ifiles): Add flattened function.h header files.
1637         * genoutput.c (output_prologue): Add predict.h to include list.
1638         * genpreds.c (write_insn_preds_c): Adjust header file includes.
1639         * genrecog.c (write_header): Add flattened function.h header files.
1640         * alias.c: Adjust include files.
1641         * auto-inc-dec.c: Likewise.
1642         * basic-block.h: Likewise.
1643         * bb-reorder.c: Likewise.
1644         * bt-load.c: Likewise.
1645         * builtins.c: Likewise.
1646         * caller-save.c: Likewise.
1647         * calls.c: Likewise.
1648         * cfgbuild.c: Likewise.
1649         * cfgcleanup.c: Likewise.
1650         * cfgexpand.c: Likewise.
1651         * cfgloop.c: Likewise.
1652         * cfgloop.h: Likewise.
1653         * cfgrtl.c: Likewise.
1654         * cgraph.h: Likewise.
1655         * cgraphclones.c: Likewise.
1656         * cgraphunit.c: Likewise.
1657         * combine-stack-adj.c: Likewise.
1658         * combine.c: Likewise.
1659         * coverage.c: Likewise.
1660         * cprop.c: Likewise.
1661         * cse.c: Likewise.
1662         * cselib.c: Likewise.
1663         * dbxout.c: Likewise.
1664         * ddg.c: Likewise.
1665         * df-core.c: Likewise.
1666         * df-problems.c: Likewise.
1667         * df-scan.c: Likewise.
1668         * dojump.c: Likewise.
1669         * dwarf2cfi.c: Likewise.
1670         * dwarf2out.c: Likewise.
1671         * emit-rtl.c: Likewise.
1672         * except.c: Likewise.
1673         * explow.c: Likewise.
1674         * expr.c: Likewise.
1675         * final.c: Likewise.
1676         * function.c: Likewise.
1677         * gcse.c: Likewise.
1678         * gimple-fold.c: Likewise.
1679         * gimple-low.c: Likewise.
1680         * gimple-streamer.h: Likewise.
1681         * haifa-sched.c: Likewise.
1682         * ifcvt.c: Likewise.
1683         * ira.c: Likewise.
1684         * jump.c: Likewise.
1685         * lcm.c: Likewise.
1686         * loop-invariant.c: Likewise.
1687         * lra-assigns.c: Likewise.
1688         * lra-coalesce.c: Likewise.
1689         * lra-constraints.c: Likewise.
1690         * lra-eliminations.c: Likewise.
1691         * lra-lives.c: Likewise.
1692         * lra-spills.c: Likewise.
1693         * lra.c: Likewise.
1694         * lto-cgraph.c: Likewise.
1695         * lto-section-in.c: Likewise.
1696         * lto-section-out.c: Likewise.
1697         * lto-streamer-in.c: Likewise.
1698         * lto-streamer-out.c: Likewise.
1699         * mode-switching.c: Likewise.
1700         * modulo-sched.c: Likewise.
1701         * omp-low.c: Likewise.
1702         * optabs.c: Likewise.
1703         * passes.c: Likewise.
1704         * postreload-gcse.c: Likewise.
1705         * postreload.c: Likewise.
1706         * predict.c: Likewise.
1707         * profile.c: Likewise.
1708         * recog.c: Likewise.
1709         * ree.c: Likewise.
1710         * reg-stack.c: Likewise.
1711         * regcprop.c: Likewise.
1712         * reginfo.c: Likewise.
1713         * regrename.c: Likewise.
1714         * reload.c: Likewise.
1715         * reload1.c: Likewise.
1716         * reorg.c: Likewise.
1717         * resource.c: Likewise.
1718         * rtlanal.c: Likewise.
1719         * sched-deps.c: Likewise.
1720         * sched-ebb.c: Likewise.
1721         * sched-rgn.c: Likewise.
1722         * sel-sched-dump.c: Likewise.
1723         * sel-sched-ir.c: Likewise.
1724         * sel-sched.c: Likewise.
1725         * shrink-wrap.c: Likewise.
1726         * simplify-rtx.c: Likewise.
1727         * statistics.c: Likewise.
1728         * stmt.c: Likewise.
1729         * stor-layout.c: Likewise.
1730         * store-motion.c: Likewise.
1731         * symtab.c: Likewise.
1732         * targhooks.c: Likewise.
1733         * toplev.c: Likewise.
1734         * trans-mem.c: Likewise.
1735         * tree-cfg.c: Likewise.
1736         * tree-cfgcleanup.c: Likewise.
1737         * tree-dfa.c: Likewise.
1738         * tree-eh.c: Likewise.
1739         * tree-inline.c: Likewise.
1740         * tree-into-ssa.c: Likewise.
1741         * tree-nested.c: Likewise.
1742         * tree-nrv.c: Likewise.
1743         * tree-profile.c: Likewise.
1744         * tree-ssa-alias.c: Likewise.
1745         * tree-ssa-ccp.c: Likewise.
1746         * tree-ssa-copy.c: Likewise.
1747         * tree-ssa-copyrename.c: Likewise.
1748         * tree-ssa-dom.c: Likewise.
1749         * tree-ssa-operands.c: Likewise.
1750         * tree-ssa-propagate.c: Likewise.
1751         * tree-ssa-structalias.c: Likewise.
1752         * tree-ssa-tail-merge.c: Likewise.
1753         * tree-ssa-threadedge.c: Likewise.
1754         * tree-ssa-threadupdate.c: Likewise.
1755         * tree-ssa-uncprop.c: Likewise.
1756         * tree-ssa-uninit.c: Likewise.
1757         * tree-ssa.c: Likewise.
1758         * tree-stdarg.c: Likewise.
1759         * tree-tailcall.c: Likewise.
1760         * tree.c: Likewise.
1761         * tsan.c: Likewise.
1762         * valtrack.c: Likewise.
1763         * varasm.c: Likewise.
1764         * vmsdbgout.c: Likewise.
1765         * web.c: Likewise.
1766         * config/aarch64/aarch64.c: Add flattened includes from function.h.
1767         * config/alpha/alpha.c: Likewise.
1768         * config/arc/arc.c: Likewise.
1769         * config/arm/arm.c: Likewise.
1770         * config/avr/avr-log.c: Likewise.
1771         * config/avr/avr.c: Likewise.
1772         * config/bfin/bfin.c: Likewise.
1773         * config/c6x/c6x.c: Likewise.
1774         * config/cr16/cr16.c: Likewise.
1775         * config/cris/cris.c: Likewise.
1776         * config/darwin.c: Likewise.
1777         * config/epiphany/epiphany.c: Likewise.
1778         * config/epiphany/mode-switch-use.c: Likewise.
1779         * config/epiphany/resolve-sw-modes.c: Likewise.
1780         * config/fr30/fr30.c: Likewise.
1781         * config/frv/frv.c: Likewise.
1782         * config/h8300/h8300.c: Likewise.
1783         * config/i386/i386.c: Likewise.
1784         * config/ia64/ia64.c: Likewise.
1785         * config/iq2000/iq2000.c: Likewise.
1786         * config/lm32/lm32.c: Likewise.
1787         * config/m32c/m32c.c: Likewise.
1788         * config/m32r/m32r.c: Likewise.
1789         * config/m68k/m68k.c: Likewise.
1790         * config/mcore/mcore.c: Likewise.
1791         * config/mep/mep-pragma.c: Likewise.
1792         * config/mep/mep.c: Likewise.
1793         * config/microblaze/microblaze.c: Likewise.
1794         * config/mips/mips.c: Likewise.
1795         * config/mmix/mmix.c: Likewise.
1796         * config/mn10300/mn10300.c: Likewise.
1797         * config/moxie/moxie.c: Likewise.
1798         * config/msp430/msp430.c: Likewise.
1799         * config/nds32/nds32-cost.c: Likewise.
1800         * config/nds32/nds32-fp-as-gp.c: Likewise.
1801         * config/nds32/nds32-intrinsic.c: Likewise.
1802         * config/nds32/nds32-isr.c: Likewise.
1803         * config/nds32/nds32-md-auxiliary.c: Likewise.
1804         * config/nds32/nds32-memory-manipulation.c: Likewise.
1805         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1806         * config/nds32/nds32-predicates.c: Likewise.
1807         * config/nds32/nds32.c: Likewise.
1808         * config/nios2/nios2.c: Likewise.
1809         * config/pa/pa.c: Likewise.
1810         * config/pdp11/pdp11.c: Likewise.
1811         * config/rl78/rl78.c: Likewise.
1812         * config/rs6000/rs6000.c: Likewise.
1813         * config/rx/rx.c: Likewise.
1814         * config/s390/s390.c: Likewise.
1815         * config/score/score.c: Likewise.
1816         * config/sh/sh.c: Likewise.
1817         * config/sparc/sparc.c: Likewise.
1818         * config/spu/spu.c: Likewise.
1819         * config/stormy16/stormy16.c: Likewise.
1820         * config/tilegx/tilegx.c: Likewise.
1821         * config/tilepro/tilepro.c: Likewise.
1822         * config/v850/v850.c: Likewise.
1823         * config/vax/vax.c: Likewise.
1824         * config/xtensa/xtensa.c: Likewise.
1825
1826 2014-10-16  Richard Earnshaw  <rearnsha@arm.com>
1827
1828         * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
1829         (TARGET_LEGITIMIZE_ADDRESS): Redefine.
1830
1831 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
1832
1833         * config/sh/sh-protos.h (fldi_ok): Remove.
1834         * config/sh/sh.c (fldi_ok): Likewise.
1835         (sh_secondary_reload): Don't use fldi_ok.
1836         * config/sh/constraints.md (G constraint, H constraint): Don't use
1837         fldi_ok.
1838
1839 2014-10-16  Martin Liska  <mliska@suse.cz>
1840
1841         * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
1842         Cast to unsigned long.
1843         (sem_item_optimizer::dump_cong_classes): Likewise.
1844
1845 2014-10-16  Tom de Vries  <tom@codesourcery.com>
1846
1847         * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
1848         with SSA_NAME_IN_FREELIST.
1849
1850 2014-10-16  Richard Biener  <rguenther@suse.de>
1851
1852         PR middle-end/63554
1853         * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
1854         (fold_builtin_strncat_chk): Move ...
1855         * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
1856         (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
1857
1858 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
1859
1860         PR target/59401
1861         * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
1862         GBR to 0.
1863
1864 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1865             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1866             Anna Tikhonova  <anna.tikhonova@intel.com>
1867             Ilya Tocar  <ilya.tocar@intel.com>
1868             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1869             Ilya Verbin  <ilya.verbin@intel.com>
1870             Kirill Yukhin  <kirill.yukhin@intel.com>
1871             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1872
1873         * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
1874         V64QI modes.
1875
1876 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1877             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1878             Anna Tikhonova  <anna.tikhonova@intel.com>
1879             Ilya Tocar  <ilya.tocar@intel.com>
1880             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1881             Ilya Verbin  <ilya.verbin@intel.com>
1882             Kirill Yukhin  <kirill.yukhin@intel.com>
1883             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
1884
1885         * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
1886         V16SI, V32HI, V64QI modes.
1887
1888 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
1889
1890         PR target/53513
1891         * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
1892         expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
1893
1894         * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
1895         to match fp insn patterns.
1896         (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
1897         list.
1898         (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
1899         expand_df_unop, expand_df_binop): Remove.
1900         (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
1901         FPSCR_STAT_REG as not call clobbered.
1902         (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
1903         invoking fpscr_set_from_mem.
1904
1905         * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
1906         (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
1907         FPSCR_STAT_REG.
1908         (REGISTER_NAMES): Adjust.
1909         (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
1910         (FIRST_PSEUDO_REGISTER): Increase to 156.
1911         (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
1912         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
1913         FPSCR_STAT_REG.
1914         (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
1915         FPSCR_MODES_REG and FPSCR_STAT_REG.
1916         (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
1917
1918         * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
1919         FPSCR_SZ): Add new constants.
1920         (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
1921
1922         (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
1923         (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
1924         Use TARGET_FPU_ANY condition.
1925         (fpu_switch peephole2): Remove.
1926         (fpu_switch split): Use simple_mem_operand to capture the mem and
1927         adjust split implementation.
1928         (extend_psi_si, truncate_si_psi): New insns.
1929         (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants.  Add
1930         set of FPSCR_MODES_REG.
1931
1932         (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
1933         reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
1934         calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
1935         call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
1936         call_value_compact, call_value_compact_rettramp, call,
1937         call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
1938         sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
1939         sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
1940         sibcall_value_compact, sibcall_value, call_value_pop_compact,
1941         call_value_pop_compact_rettramp, various unnamed splits):
1942         Replace use of FPSCR_REG with use of FPSCR_MODES_REG.  Adjust gen_*
1943         function uses.
1944
1945         (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
1946         (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
1947         (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
1948         (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
1949         (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
1950
1951         (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
1952         *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
1953         cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
1954         subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
1955         cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
1956         truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
1957         and use of FPSCR_MODES_REG.  Adjust gen_* function uses.
1958
1959 2014-10-16  Martin Liska  <mliska@suse.cz>
1960             Jan Hubicka  <hubicka@ucw.cz>
1961
1962         * Makefile.in: New object files included.
1963         * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
1964         is printed.
1965         (verify_edge_corresponds_to_fndecl): More sensitive verification
1966         of nodes that are merged by IPA ICF.
1967         * cgraph.h (cgraph_node::num_references): New function.
1968         * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
1969         * common.opt: New options ipa-icf, ipa-icf-functions and
1970         ipa-icf-variables introduced.
1971         * doc/invoke.texi: Documentation of new options introduced.
1972         * ipa-icf-gimple.c: New file.
1973         * ipa-icf-gimple.h: New file.
1974         * ipa-icf.c: New file.
1975         * ipa-icf.h: New file.
1976         * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
1977         (input_overwrite_node): Likewise.
1978         * lto-section-in.c: New icf section added.
1979         * lto-streamer.h (enum lto_section_type): Likewise.
1980         * opts.c (common_handle_option): New option added.
1981         * passes.def: New pass included.
1982         * timevar.def: Time variable for IPA ICF added.
1983         * tree-pass.h: New IPA ICF pass entry point added.
1984
1985 2014-10-16  Richard Biener  <rguenther@suse.de>
1986
1987         PR tree-optimization/63168
1988         * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
1989         latches if after merging they are no longer simple.
1990         * cfghooks.c (merge_blocks): Handle merging a latch block
1991         into another block.
1992
1993 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
1994             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
1995             Anna Tikhonova  <anna.tikhonova@intel.com>
1996             Ilya Tocar  <ilya.tocar@intel.com>
1997             Andrey Turetskiy  <andrey.turetskiy@intel.com>
1998             Ilya Verbin  <ilya.verbin@intel.com>
1999             Kirill Yukhin  <kirill.yukhin@intel.com>
2000             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2001
2002         * config/i386/sse.md
2003         (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
2004         support AVX-512VL instructions.
2005
2006 2014-10-16  DJ Delorie  <dj@redhat.com>
2007
2008         * tree-core.h: Fix comment to not assume pointers are multiples of
2009         bytes.
2010
2011 2014-10-15  Tom Tromey  <tromey@redhat.com>
2012
2013         * timevar.h (class auto_timevar): New class.
2014
2015 2014-10-15  Uros Bizjak  <ubizjak@gmail.com>
2016
2017         PR go/59432
2018         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
2019         Remove the second alternative.
2020         (regprefix): Remove mode attribute.
2021         (atomic_compare_and_swap<mode>): Do not fixup operand 2.
2022         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
2023
2024         Revert:
2025         2013-11-05  Ian Lance Taylor  <iant@google.com>
2026
2027         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
2028         If possible, add .cfi directives to record change to bx.
2029         * config/i386/i386.c (ix86_emit_cfi): New function.
2030         * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
2031
2032 2014-10-15  Jan Hubicka  <hubicka@ucw.cz>
2033
2034         PR lto/62026
2035         * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
2036         to duplicate.
2037         * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
2038         at WPA time.
2039
2040 2014-10-15  Vladimir Makarov  <vmakarov@redhat.com>
2041
2042         PR rtl-optimization/63448
2043         * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
2044         (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
2045         (LRA_MAX_INHERITANCE_PASSES): Use it.
2046         (lra_constraint_iter_after_spill): Remove.
2047         (lra_assignment_iter): New.
2048         (lra_assignment_iter_after_spill): New.
2049         * lra-assigns.c (lra_assignment_iter): New.
2050         (lra_assignment_iter_after_spill): New.
2051         (former_reload_pseudo_spill_p): New.
2052         (spill_for): Set up former_reload_pseudo_spill_p.
2053         (setup_live_pseudos_and_spill_after_risky): Ditto.
2054         (assign_by_spills): Ditto.
2055         (lra_assign): Increment lra_assignment_iter.  Print the iteration
2056         number.  Reset former_reload_pseudo_spill_p.  Check
2057         lra_assignment_iter_after_spill.
2058         * lra.c (lra): Remove lra_constraint_iter_after_spill.  Initialize
2059         lra_assignment_iter and lra_assignment_iter_after_spill.
2060         * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
2061         (lra_constraints): Remove code with
2062         lra_assignment_iter_after_spill.
2063
2064 2014-10-15  Teresa Johnson  <tejohnson@google.com>
2065
2066         PR bootstrap/63432
2067         * tree-ssa-threadupdate.c (recompute_probabilities): Better
2068         overflow checking.
2069
2070 2014-10-15  Renlin Li <renlin.li@arm.com>
2071
2072         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
2073         __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
2074         __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
2075         __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
2076
2077 2014-10-15  Richard Biener  <rguenther@suse.de>
2078
2079         * gimple-fold.c (gimple_fold_call): Properly keep virtual
2080         SSA form up-to-date when devirtualizing a call to
2081         __builtin_unreachable and avoid fixing up EH info here.
2082
2083 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2084             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2085             Anna Tikhonova  <anna.tikhonova@intel.com>
2086             Ilya Tocar  <ilya.tocar@intel.com>
2087             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2088             Ilya Verbin  <ilya.verbin@intel.com>
2089             Kirill Yukhin  <kirill.yukhin@intel.com>
2090             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2091
2092         * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
2093         to support AVX-512BW.
2094         (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
2095         (define_expand "<plusminus_insn><mode>3"): Remove masking support.
2096         (define_insn "*<plusminus_insn><mode>3"): Ditto.
2097         (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
2098         (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
2099         (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
2100         (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
2101         (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
2102         (define_insn "*andnot<mode>3"): Ditto.
2103         (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
2104         (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
2105         (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
2106         (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
2107         (define_insn "*abs<mode>2"): Remove masking support.
2108         (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
2109         (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
2110         (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
2111
2112 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2113             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2114             Anna Tikhonova  <anna.tikhonova@intel.com>
2115             Ilya Tocar  <ilya.tocar@intel.com>
2116             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2117             Ilya Verbin  <ilya.verbin@intel.com>
2118             Kirill Yukhin  <kirill.yukhin@intel.com>
2119             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2120
2121         * config/i386/predicates.md (define_predicate "constm1_operand"): New.
2122         * config/i386/sse.md
2123         (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
2124         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
2125         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
2126         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
2127         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
2128         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
2129         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
2130
2131 2014-10-15  Renlin Li <renlin.li@arm.com>
2132
2133         * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
2134
2135 2014-10-15  Jakub Jelinek  <jakub@redhat.com>
2136
2137         * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
2138         MINUS_EXPR in unsigned type to avoid undefined behavior.
2139
2140 2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>
2141
2142         * stor-layout.c (self_referential_size): Do not promote arguments.
2143
2144 2014-10-15  Marek Polacek  <polacek@redhat.com>
2145
2146         * doc/invoke.texi: Update to reflect that GNU11 is the default
2147         mode for C.
2148         * c-common.h (c_language_kind): Update comment.
2149
2150 2014-10-15  Richard Biener  <rguenther@suse.de>
2151
2152         * hash-table.c: Include bconfig.h if building for the host.
2153         * hash-table.h: Do not include ggc.h on the host but just declare
2154         a few ggc allocation templates.
2155
2156 2014-10-15  Joern Rennecke  <joern.rennecke@embecosm.com>
2157             Jeff Law  <law@redhat.com>
2158
2159         * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
2160         multiple hard registers, use smaller mode derived from MODE.
2161
2162 2014-10-15  Andreas Schwab  <schwab@suse.de>
2163
2164         * explow.c (convert_memory_address_addr_space_1): Mark in_const
2165         as ATTRIBUTE_UNUSED.
2166
2167 2014-10-14  Jan Hubicka  <hubicka@ucw.cz>
2168
2169         * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
2170         (decide_unrolling): ... this one.
2171         (peel_loops_completely): Remove.
2172         (decide_peel_simple): Remove.
2173         (decide_peel_once_rolling): Remove.
2174         (decide_peel_completely): Remove.
2175         (peel_loop_simple): Remove.
2176         (peel_loop_completely): Remove.
2177         (unroll_and_peel_loops): Rename to ...
2178         (unroll_loops): ... this one; handle only unrolling.
2179         * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
2180         LPT_PEEL_SIMPLE.
2181         (UAP_PEEL): Remove.
2182         (unroll_and_peel_loops): Remove.
2183         (unroll_loops): New.
2184         * passes.def: Replace
2185         pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
2186         * loop-init.c (gate_rtl_unroll_and_peel_loops,
2187         rtl_unroll_and_peel_loops): Rename to ...
2188         (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
2189         (pass_rtl_unroll_and_peel_loops): Rename to ...
2190         (pass_rtl_unroll_loops): ... this one.
2191         * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
2192         (make_pass_rtl_unroll_loops): New.
2193         * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
2194         (canonicalize_loop_induction_variables): Update.
2195
2196 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
2197
2198         * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
2199         * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
2200         !TARGET_HARD_FLOAT_POSTINC.
2201         (*lsip, *ssip): new instructions.
2202
2203 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
2204
2205         * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
2206         remove.
2207
2208 2014-10-14  Andrew Pinski  <apinski@cavium.com>
2209
2210         * explow.c (convert_memory_address_addr_space): Rename to ...
2211         (convert_memory_address_addr_space_1): This.  Add in_const argument.
2212         Inside a CONST RTL, permute the conversion and addition of constant
2213         for zero and sign extended pointers.
2214         (convert_memory_address_addr_space): New function.
2215
2216 2014-10-14  Andrew Pinski  <apinski@cavium.com>
2217
2218         Revert:
2219         2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
2220
2221         PR middle-end/49721
2222         * explow.c (convert_memory_address_addr_space): Also permute the
2223         conversion and addition of constant for zero-extend.
2224
2225 2014-10-14  DJ Delorie  <dj@redhat.com>
2226
2227         * config/msp430/msp430-modes.def (PSI): Add.
2228
2229         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
2230         (msp430_hard_regno_nregs_with_padding): New.
2231         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
2232         (msp430_hard_regno_nregs_has_padding): New.
2233         (msp430_hard_regno_nregs_with_padding): New.
2234         (msp430_unwind_word_mode): Use PSImode instead of SImode.
2235         (msp430_addr_space_legitimate_address_p): New.
2236         (msp430_asm_integer): New.
2237         (msp430_init_dwarf_reg_sizes_extra): New.
2238         (msp430_print_operand): Use X suffix for PSImode even in small model.
2239         * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
2240         (PTR_SIZE): ...but 4 bytes for EH.
2241         (SIZE_TYPE): Use __int20.
2242         (PTRDIFF_TYPE): Likewise.
2243         (INCOMING_FRAME_SP_OFFSET): Adjust.
2244         * config/msp430/msp430.md (movqi_topbyte): New.
2245         (movpsi): Use fixed suffixes.
2246         (movsipsi2): Enable for 430X, not large model.
2247         (extendhipsi2): Likewise.
2248         (zero_extendhisi2): Likewise.
2249         (zero_extendhisipsi2): Likewise.
2250         (extend_and_shift1_hipsi2): Likewise.
2251         (extendpsisi2): Likewise.
2252         (*bitbranch<mode>4_z): Fix suffix logic.
2253
2254 2014-10-14  Eric Botcazou  <ebotcazou@adacore.com>
2255
2256         PR ada/62019
2257         * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
2258         do not choke on null node.
2259         <VAR_DECL>: Likewise.
2260
2261 2014-10-14  DJ Delorie  <dj@redhat.com>
2262
2263         * machmode.h (int_n_data_t): New.
2264         (int_n_enabled_p): New.
2265         (int_n_data): New.
2266         * tree.c (int_n_enabled_p): New.
2267         (int_n_trees): New.
2268         (make_or_reuse_type): Check for all __intN types, not just
2269         __int128.
2270         (build_common_tree_nodes): Likewise.  Also fill in integer_typs[]
2271         entries.
2272         * tree.h (int128_integer_type_node): Remove.
2273         (int128_unsigned_type_node): Remove.
2274         (int_n_trees_t): New.
2275         (int_n_enabled_p): New.
2276         (int_n_trees): New.
2277         * toplev.c (standard_type_bitsize): New.
2278         (do_compile): Check which __intN types are enabled for the current
2279         run.
2280         * builtin-types.def (BT_INT128): Remove.
2281         (BT_UINT128): Remove.
2282         * machmode.def: Add macro to create __int128 for all targets.
2283         * stor-layout.c (mode_for_size): Support __intN types.
2284         (smallest_mode_for_size): Likewise.
2285         (initialize_sizetypes): Support __intN types.
2286         * genmodes.c (struct mode_data): Add int_n field.
2287         (blank_mode): Likewise.
2288         (INT_N): New.
2289         (make_int_n): New.
2290         (emit_insn_modes_h): Count __intN entries and define
2291         NUM_INT_N_ENTS.
2292         (emit_mode_int_n): New.
2293         (emit_insn_modes_c): Call it.
2294         * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
2295         types, not just __int128.
2296         * tree-core.h (integer_type_kind): Remove __int128-specific
2297         entries, reserve spots for __intN entries.
2298
2299         * config/msp430/msp430-modes.def (PSI): Add.
2300
2301 2014-10-14  Kito Cheng  <kito@0xlab.org>
2302
2303         * ira.c: Fix typo in comment.
2304         * ira.h: Ditto.
2305         * ira-build.c: Ditto.
2306         * ira-color.c: Ditto.
2307         * ira-emit.c: Ditto.
2308         * ira-int.h: Ditto.
2309         * ira-lives.c: Ditto.
2310
2311 2014-10-14  Uros Bizjak  <ubizjak@gmail.com>
2312
2313         PR rtl-optimization/63475
2314         * alias.c (true_dependence_1): Always use get_addr to extract
2315         true address operands from x_addr and mem_addr.  Use extracted
2316         address operands to check for references with alignment ANDs.
2317         Use extracted address operands with find_base_term and
2318         base_alias_check. For noncanonicalized operands call canon_rtx with
2319         extracted address operand.
2320         (write_dependence_1): Ditto.
2321         (may_alias_p): Ditto.  Remove unused calls to canon_rtx.
2322
2323 2014-10-14  Evgeny Stupachenko  <evstupac@gmail.com>
2324
2325         PR target/63534
2326         * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
2327         __morestack local.
2328
2329 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2330             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2331             Anna Tikhonova  <anna.tikhonova@intel.com>
2332             Ilya Tocar  <ilya.tocar@intel.com>
2333             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2334             Ilya Verbin  <ilya.verbin@intel.com>
2335             Kirill Yukhin  <kirill.yukhin@intel.com>
2336             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2337
2338         * config/i386/i386.c
2339         (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
2340         (ix86_expand_int_vcond): Ditto.
2341
2342 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2343             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2344             Anna Tikhonova  <anna.tikhonova@intel.com>
2345             Ilya Tocar  <ilya.tocar@intel.com>
2346             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2347             Ilya Verbin  <ilya.verbin@intel.com>
2348             Kirill Yukhin  <kirill.yukhin@intel.com>
2349             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2350
2351         * config/i386/i386.c
2352         (emit_reduc_half): Handle V64QI and V32HI mode.
2353         * config/i386/sse.md
2354         (define_mode_iterator VI_AVX512BW): New.
2355         (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
2356
2357 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2358             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2359             Anna Tikhonova  <anna.tikhonova@intel.com>
2360             Ilya Tocar  <ilya.tocar@intel.com>
2361             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2362             Ilya Verbin  <ilya.verbin@intel.com>
2363             Kirill Yukhin  <kirill.yukhin@intel.com>
2364             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2365
2366         * config/i386/sse.md
2367         (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
2368
2369 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2370             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2371             Anna Tikhonova  <anna.tikhonova@intel.com>
2372             Ilya Tocar  <ilya.tocar@intel.com>
2373             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2374             Ilya Verbin  <ilya.verbin@intel.com>
2375             Kirill Yukhin  <kirill.yukhin@intel.com>
2376             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2377
2378         * config/i386/i386.c
2379         (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
2380         * config/i386/sse.md
2381         (define_mode_iterator VI): Add V64QI and V32HI modes.
2382
2383 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2384             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2385             Anna Tikhonova  <anna.tikhonova@intel.com>
2386             Ilya Tocar  <ilya.tocar@intel.com>
2387             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2388             Ilya Verbin  <ilya.verbin@intel.com>
2389             Kirill Yukhin  <kirill.yukhin@intel.com>
2390             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2391
2392         * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
2393
2394 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2395             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2396             Anna Tikhonova  <anna.tikhonova@intel.com>
2397             Ilya Tocar  <ilya.tocar@intel.com>
2398             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2399             Ilya Verbin  <ilya.verbin@intel.com>
2400             Kirill Yukhin  <kirill.yukhin@intel.com>
2401             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2402
2403         * config/i386/sse.md
2404         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
2405         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
2406
2407 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2408             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2409             Anna Tikhonova  <anna.tikhonova@intel.com>
2410             Ilya Tocar  <ilya.tocar@intel.com>
2411             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2412             Ilya Verbin  <ilya.verbin@intel.com>
2413             Kirill Yukhin  <kirill.yukhin@intel.com>
2414             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2415
2416         * config/i386/sse.md
2417         (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
2418         (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
2419
2420 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2421             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2422             Anna Tikhonova  <anna.tikhonova@intel.com>
2423             Ilya Tocar  <ilya.tocar@intel.com>
2424             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2425             Ilya Verbin  <ilya.verbin@intel.com>
2426             Kirill Yukhin  <kirill.yukhin@intel.com>
2427             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2428
2429         * config/i386/sse.md
2430         (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
2431         (define_mode_iterator VI2_AVX2): Add V32HI mode.
2432         (define_expand "mul<mode>3<mask_name>"): Add masking.
2433         (define_insn "*mul<mode>3<mask_name>"): Ditto.
2434         (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
2435         (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
2436         (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
2437         (define_mode_attr SDOT_PMADD_SUF): Ditto.
2438         (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
2439         (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
2440         (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
2441         (define_insn "avx2_packusdw"): Delete.
2442         (define_insn "sse4_1_packusdw"): Ditto.
2443         (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
2444
2445 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2446             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2447             Anna Tikhonova  <anna.tikhonova@intel.com>
2448             Ilya Tocar  <ilya.tocar@intel.com>
2449             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2450             Ilya Verbin  <ilya.verbin@intel.com>
2451             Kirill Yukhin  <kirill.yukhin@intel.com>
2452             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2453
2454         * config/i386/sse.md
2455         (define_insn "vec_dup<mode>"): Update constraints.
2456
2457 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2458             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2459             Anna Tikhonova  <anna.tikhonova@intel.com>
2460             Ilya Tocar  <ilya.tocar@intel.com>
2461             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2462             Ilya Verbin  <ilya.verbin@intel.com>
2463             Kirill Yukhin  <kirill.yukhin@intel.com>
2464             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2465
2466         * config/i386/sse.md
2467         (define_mode_iterator SSESCALARMODE): Add V4TI mode.
2468         (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
2469         (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
2470
2471 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2472             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2473             Anna Tikhonova  <anna.tikhonova@intel.com>
2474             Ilya Tocar  <ilya.tocar@intel.com>
2475             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2476             Ilya Verbin  <ilya.verbin@intel.com>
2477             Kirill Yukhin  <kirill.yukhin@intel.com>
2478             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2479
2480         * config/i386/sse.md
2481         (define_expand "mul<mode>3<mask_name>"): Add masking.
2482
2483 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2484             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2485             Anna Tikhonova  <anna.tikhonova@intel.com>
2486             Ilya Tocar  <ilya.tocar@intel.com>
2487             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2488             Ilya Verbin  <ilya.verbin@intel.com>
2489             Kirill Yukhin  <kirill.yukhin@intel.com>
2490             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2491
2492         * config/i386/sse.md
2493         (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
2494         (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
2495
2496 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2497             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2498             Anna Tikhonova  <anna.tikhonova@intel.com>
2499             Ilya Tocar  <ilya.tocar@intel.com>
2500             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2501             Ilya Verbin  <ilya.verbin@intel.com>
2502             Kirill Yukhin  <kirill.yukhin@intel.com>
2503             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2504
2505         * config/i386/sse.md
2506         (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
2507         (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
2508         (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
2509         Ditto.
2510
2511 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2512             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2513             Anna Tikhonova  <anna.tikhonova@intel.com>
2514             Ilya Tocar  <ilya.tocar@intel.com>
2515             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2516             Ilya Verbin  <ilya.verbin@intel.com>
2517             Kirill Yukhin  <kirill.yukhin@intel.com>
2518             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2519
2520         * config/i386/sse.md
2521         (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
2522         use VF_128_256 mode iterator and update assembler emit code.
2523         (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
2524         (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
2525         Add masking, use VF_128_256 mode iterator.
2526         (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
2527         (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
2528         Add masking, use VF_128_256 mode iterator and update assembler emit
2529         code.
2530         (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
2531         (define_mode_attr avx512flogicsuff): Delete.
2532         (define_insn "avx512f_<logic><mode>"): Ditto.
2533         (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
2534         MODE_TI.
2535         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
2536
2537 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2538             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2539             Anna Tikhonova  <anna.tikhonova@intel.com>
2540             Ilya Tocar  <ilya.tocar@intel.com>
2541             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2542             Ilya Verbin  <ilya.verbin@intel.com>
2543             Kirill Yukhin  <kirill.yukhin@intel.com>
2544             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2545
2546         * config/i386/sse.md
2547         (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
2548         (define_expand "vashr<mode>3<mask_name>"): Add masking,
2549         use VI12_128 mode iterator.
2550         (define_expand "ashrv2di3<mask_name>"): New.
2551
2552 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2553             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2554             Anna Tikhonova  <anna.tikhonova@intel.com>
2555             Ilya Tocar  <ilya.tocar@intel.com>
2556             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2557             Ilya Verbin  <ilya.verbin@intel.com>
2558             Kirill Yukhin  <kirill.yukhin@intel.com>
2559             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2560
2561         * config/i386/i386.c
2562         (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
2563         CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
2564         CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
2565         CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
2566         CODE_FOR_avx512vl_ucmpv4si3_mask.
2567         * config/i386/sse.md
2568         (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
2569         "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
2570         (define_insn
2571         "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
2572         (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
2573         (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
2574         (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
2575         (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
2576         (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
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_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
2589         (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
2590         (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
2591         (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
2592         (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
2593         (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
2594         (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
2595         (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
2596         (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
2597
2598 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2599             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
2600             Anna Tikhonova  <anna.tikhonova@intel.com>
2601             Ilya Tocar  <ilya.tocar@intel.com>
2602             Andrey Turetskiy  <andrey.turetskiy@intel.com>
2603             Ilya Verbin  <ilya.verbin@intel.com>
2604             Kirill Yukhin  <kirill.yukhin@intel.com>
2605             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
2606
2607         * config/i386/sse.md
2608         (define_insn "avx512f_blendm<mode>"): Delete.
2609         (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
2610         (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
2611         (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
2612         V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
2613         (define_insn
2614         "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2615         Remove.
2616         (define_insn
2617         "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2618         New.
2619         (define_insn
2620         "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
2621         Ditto.
2622         (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
2623         (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
2624         (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
2625         (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
2626         Delete.
2627         (define_insn
2628         "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
2629         New.
2630         (define_insn
2631         "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
2632         Ditto.
2633         (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
2634         Delete.
2635         (define_insn
2636         "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
2637         New.
2638         (define_insn
2639         "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
2640         Ditto.
2641
2642 2014-10-14  Richard Biener  <rguenther@suse.de>
2643
2644         PR tree-optimization/63512
2645         * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
2646         modified.
2647
2648 2014-10-14  Oleg Endo  <olegendo@gcc.gnu.org>
2649
2650         PR target/63260
2651         * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
2652         abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute.  Remove use
2653         of FPSCR.
2654         (negsf2_i): Rename to *negsf2_i.
2655         (abssf2_i): Rename to *abssf2_i.
2656         (negdf2_i): Rename to *negdf2_i.
2657         (absdf2_i): Rename to *absdf2_i.
2658
2659 2014-10-14  Felix Yang  <felix.yang@huawei.com>
2660             Jeff Law  <law@redhat.com>
2661
2662         * ira.c (struct equivalence): Change member "is_arg_equivalence" and
2663         "replace" into boolean bitfields; turn member "loop_depth" into a short
2664         integer; add new member "no_equiv" and "reserved".
2665         (no_equiv): Set no_equiv of struct equivalence if register is marked
2666         as having no known equivalence.
2667         (update_equiv_regs): Check all definitions for a multiple-set
2668         register to make sure that the RHS have the same value.
2669
2670 2014-10-13  Richard Henderson  <rth@redhat.com>
2671
2672         * combine-stack-adj.c (no_unhandled_cfa): New.
2673         (maybe_merge_cfa_adjust): New.
2674         (combine_stack_adjustments_for_block): Use them.
2675
2676 2014-10-13  Aldy Hernandez  <aldyh@redhat.com>
2677
2678         * Makefile.in (TAGS): Tag ../include files.
2679
2680 2014-10-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2681
2682         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
2683         to rs6000_dbx_register_number.
2684         (DWARF_FRAME_REGNUM): Redefine as identity map.
2685         (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
2686         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
2687         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
2688         argument to handle .debug_frame and .eh_frame directly.  Always
2689         translate SPE high register numbers.  Add special treatment for CR,
2690         but only in .debug_frame.  Respect RS6000_USE_DWARF_NUMBERING.
2691
2692         * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
2693         * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
2694         (RS6000_USE_DWARF_NUMBERING): Define.
2695         * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
2696         (RS6000_USE_DWARF_NUMBERING): Define.
2697         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
2698         (RS6000_USE_DWARF_NUMBERING): Define.
2699         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
2700         (RS6000_USE_DWARF_NUMBERING): Define.
2701         * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
2702         * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
2703
2704 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
2705
2706         * config/i386/i386.c (ix86_address_cost): Lower cost for
2707         when address contains GOT register.
2708
2709 2014-10-13  Ilya Enkovich  <ilya.enkovich@intel.com>
2710             Vladimir Makarov  <vmakarov@redhat.com>
2711
2712         PR target/8340
2713         PR middle-end/47602
2714         PR rtl-optimization/55458
2715         * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
2716         (ix86_init_pic_reg): New.
2717         (ix86_select_alt_pic_regnum): Add check on pseudo register.
2718         (ix86_save_reg): Likewise.
2719         (ix86_expand_prologue): Remove PIC register initialization
2720         now performed in ix86_init_pic_reg.
2721         (ix86_output_function_epilogue): Add check on pseudo register.
2722         (set_pic_reg_ever_alive): New.
2723         (legitimize_pic_address): Replace df_set_regs_ever_live with new
2724         set_pic_reg_ever_alive.
2725         (legitimize_tls_address): Likewise.
2726         (ix86_pic_register_p): New check.
2727         (ix86_delegitimize_address): Add check on pseudo register.
2728         (ix86_expand_call): Insert move from pseudo PIC register to ABI
2729         defined REAL_PIC_OFFSET_TABLE_REGNUM.
2730         (TARGET_INIT_PIC_REG): New.
2731         (TARGET_USE_PSEUDO_PIC_REG): New.
2732         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
2733         if pic_offset_table_rtx exists.
2734         * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
2735         Document.
2736         * doc/tm.texi: Regenerate.
2737         * function.c (assign_parms): Generate pseudo register for PIC.
2738         * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
2739         register.
2740         * ira-color.c (color_pass): Add check on pseudo register.
2741         * ira-emit.c (change_loop): Don't create copies for PIC pseudo
2742         register.
2743         * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
2744         register.
2745         (ira): Add target specific PIC register initialization.
2746         (do_reload): Keep PIC pseudo register.
2747         * lra-assigns.c (spill_for): Add checks on pseudo register.
2748         * lra-constraints.c (contains_symbol_ref_p): New.
2749         (lra_constraints): Enable lra risky transformations when PIC is pseudo
2750         register.
2751         * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
2752         * target.def (use_pseudo_pic_reg): New.
2753         (init_pic_reg): New.
2754
2755 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
2756
2757         * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
2758         Remove m_SILVERMONT and m_INTEL from the tune.
2759
2760 2014-10-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2761
2762         PR libfortran/63471
2763         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
2764         when _HPUX_SOURCE is defined.
2765
2766 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
2767
2768         PR tree-optimization/62127
2769         * tree.c (remap_type_1): When remapping array, remap
2770         also its type.
2771
2772 2014-10-13  Christophe Lyon  <christophe.lyon@linaro.org>
2773
2774         * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
2775         longer impact parallelization.
2776
2777 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
2778
2779         PR bootstrap/63496
2780         * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
2781
2782 2014-10-13  Marat Zakirov  <m.zakirov@samsung.com>
2783
2784         * asan.c (instrument_derefs): BIT_FIELD_REF added.
2785
2786 2014-10-13  Richard Biener  <rguenther@suse.de>
2787
2788         PR tree-optimization/63419
2789         * gimple-fold.h (gimple_convert): New function.
2790         * gimple-fold.c (gimple_convert): Likewise.
2791         * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
2792         to split out required conversions early.
2793
2794 2014-10-13  Richard Sandiford  <richard.sandiford@arm.com>
2795
2796         * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
2797         Add the parts of an insn in reverse order, with the pattern at
2798         the top of the queue.  Detect when we're iterating over a SEQUENCE
2799         pattern and in that case just consider patterns of subinstructions.
2800
2801 2014-10-12  Oleg Endo  <olegendo@gcc.gnu.org>
2802
2803         PR target/59401
2804         * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
2805         of rtx.
2806         * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
2807         insn walking.
2808         (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
2809         address.  Use def chains to handle GBR clobbering call insns.
2810
2811 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
2812
2813         * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
2814         config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
2815         config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
2816         function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
2817         output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
2818         tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
2819         * doc/gty.texi (for_user): Document new option.
2820         * gengtype.c (create_user_defined_type): Don't try to get a struct for
2821         char.
2822         (walk_type): Don't error out on for_user option.
2823         (write_func_for_structure): Emit user marking routines if requested by
2824         for_user option.
2825         (write_local_func_for_structure): Likewise.
2826         (main): Mark types with for_user option as used.
2827         * ggc.h (gt_pch_nx): Add overload for unsigned int.
2828         * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
2829         * hash-table.h (ggc_hasher): New struct.
2830         (hash_table::create_ggc): New function.
2831         (gt_pch_nx): New overload for hash_table.
2832
2833 2014-10-11  Oleg Endo  <olegendo@gcc.gnu.org>
2834
2835         * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
2836         * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
2837         * config/sh/sh.c: Likewise.
2838         * config/sh/sh-mem.cc: Likewise.
2839         * config/sh/sh.md: Likewise.
2840         * config/sh/predicates.md: Likewise.
2841         * config/sh/sync.md: Likewise.
2842
2843 2014-10-11  Martin Liska  <mliska@suse.cz>
2844
2845         PR middle-end/63376
2846         * cgraphunit.c (symbol_table::process_new_functions): Missing call
2847         for call_cgraph_insertion_hooks added.
2848
2849 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
2850
2851         PR c/63495
2852         * stor-layout.c (min_align_of_type): Don't decrease alignment
2853         through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
2854         TYPE_USER_ALIGN is set.
2855
2856 2014-10-10  Uros Bizjak  <ubizjak@gmail.com>
2857
2858         PR rtl-optimization/63483
2859         * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
2860         references when alignment ANDs are involved.
2861         (write_dependence_p): Ditto.
2862         (may_alias_p): Ditto.
2863
2864 2014-10-10  Marek Polacek  <polacek@redhat.com>
2865
2866         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
2867         * doc/invoke.texi: Document -fsanitize=object-size.
2868         * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
2869         or it into SANITIZE_UNDEFINED.
2870         * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
2871         * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
2872         * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
2873         * opts.c (common_handle_option): Handle -fsanitize=object-size.
2874         * ubsan.c: Include tree-object-size.h.
2875         (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
2876         (ubsan_expand_bounds_ifn): Use false instead of 0.
2877         (ubsan_expand_objsize_ifn): New function.
2878         (instrument_object_size): New function.
2879         (pass_ubsan::execute): Add object size instrumentation.
2880         * ubsan.h (ubsan_expand_objsize_ifn): Declare.
2881
2882 2014-10-10  Richard Henderson  <rth@redhat.com>
2883
2884         PR target/63404
2885         * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
2886         Restrict the set of expressions we're willing to move.
2887
2888 2014-10-10  Jeff Law  <law@redhat.com>
2889
2890         * ira.c (struct equivalence): Promote INIT_INSNs field to
2891         an rtx_insn_list.  Add comments.
2892         (no_equiv): Promote LIST to an rtx_insn_list.  Update
2893         testing for and creating the special marker.  Use methods
2894         to extract the insn and next pointers.  Promote INSN to an
2895         rtx_insn.
2896         (update_equiv_regs): Update test for special marker in the
2897         INIT_INSNs list.
2898
2899 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2900
2901         * configure.ac: Add --enable-fix-cortex-a53-835769 option.
2902         * configure: Regenerate.
2903         * config/aarch64/aarch64.c (aarch64_override_options): Handle
2904         TARGET_FIX_ERR_A53_835769_DEFAULT.
2905         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
2906         value to 2.
2907         * doc/install.texi (aarch64*-*-*): Document
2908         new --enable-fix-cortex-a53-835769 option.
2909
2910 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2911             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2912
2913         * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
2914         (ADJUST_INSN_LENGTH): Define.
2915         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
2916         * config/aarch64/aarch64.c (is_mem_p): New function.
2917         (is_memory_op): Likewise.
2918         (aarch64_prev_real_insn): Likewise.
2919         (is_madd_op): Likewise.
2920         (dep_between_memop_and_curr): Likewise.
2921         (aarch64_madd_needs_nop): Likewise.
2922         (aarch64_final_prescan_insn): Likewise.
2923         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
2924         and -mno-fix-cortex-a53-835769 options.
2925
2926 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
2927
2928         PR tree-optimization/63464
2929         * tree-switch-conversion.c (struct case_bit_test): Remove
2930         hi and lo fields, add wide_int mask field.
2931         (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
2932         hi/lo fields into wide_int mask operations, optimize by pretending
2933         minval to be 0 if maxval is small enough.
2934         (process_switch): Adjust caller.
2935
2936 2014-10-10  Richard Biener  <rguenther@suse.de>
2937
2938         PR tree-optimization/63379
2939         * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
2940         a neutral operand for min/max when it is not a reduction chain.
2941
2942 2014-10-10  Richard Biener  <rguenther@suse.de>
2943
2944         PR tree-optimization/63476
2945         * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
2946         (BB_LIVE_VOP_ON_EXIT): New define.
2947         (create_expression_by_pieces): Assign VUSEs to stmts.
2948         (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
2949         (pass_pre::execute): Assert virtual SSA form is up-to-date
2950         after insertion.
2951
2952 2014-10-10  Eric Botcazou  <ebotcazou@adacore.com>
2953
2954         * lra-assigns.c (assign_by_spills): Error out on spill failure.
2955
2956 2014-10-09  Markus Trippelsdorf  <markus@trippelsdorf.de>
2957
2958         * pa-polymorphic-call.c (check_stmt_for_type_change): Move
2959         assertion.
2960
2961 2014-10-09  Richard Biener  <rguenther@suse.de>
2962
2963         PR tree-optimization/63380
2964         * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
2965         may trap.
2966
2967 2014-10-09  Joern Rennecke  <joern.rennecke@embecosm.com>
2968
2969         * config/avr/avr.opt (mmcu=): Change to have a string value.
2970         (mn-flash=, mskip-bug, march=, mrmw): New options.
2971         (HeaderInclude): New.
2972         (mmcu=): Remove Var / Init clauses.
2973         * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
2974         -specs option.
2975         (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
2976         (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
2977         (SYMBOL_FLAG_IO_LOW): Define.
2978         (avr_device_to_as, avr_device_to_ld): Don't declare.
2979         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
2980         (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
2981         (EXTRA_SPEC_FUNCTIONS): Don't define.
2982         (ASM_SPEC): Translate -arch= option to -mmcu= option.
2983         (LINK_SPEC): Translate -arch= option to -m= option.
2984         Don't use device_to_ld / device_to_data_start.
2985         (STARTFILE_SPEC): Now empty.
2986         (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
2987         * config/avr/gen-avr-mmcu-specs.c: New file.
2988         * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
2989         (s-device-specs): Likewise.
2990         (GCC_PASSES): Add s-device-specs.
2991         (install-driver): Depend on install-device-specs.
2992         (install-device-specs): New rule.
2993         * config/avr/avr.c (avr_option_override): Look up mcu arch by
2994         avr_arch_index and provide fallback initialization for avr_n_flash.
2995         (varasm.h): #include.
2996         (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
2997         (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
2998         (avr_attribute_table): Add "io", "address" and "io_low".
2999         (avr_asm_output_aligned_decl_common): Change type of decl to tree.
3000         Add special handling for symbols with "io" and/or "address" attributes.
3001         (avr_asm_asm_output_aligned_bss): New function.
3002         (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
3003         as appropriate.  Handle io_low attribute.
3004         (avr_out_sbxx_branch): Handle symbolic io addresses.
3005         (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
3006         avr_n_flash instead of avr_current_device->n_flash.
3007         (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
3008         (avr_emit_movmemhi): Likewise.
3009         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
3010         Use TARGET_RMW instead of avr_current_device->dev_attributes.
3011         Don't define avr_current_device->macro (that's the specfile's job).
3012         Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
3013         * config/avr/avr.c (avr_2word_insn_p): Likewise.
3014         * config/avr/avr.md (*cpse.ne): Likewise.
3015         (mov<mode>): Use avr_eval_addr_attrib.
3016         (cbi): Change constraint for low_io_address_operand operand to "i".
3017         (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
3018         * config/avr/predicates.md (io_address_operand):
3019         Allow SYMBOL_REF with SYMBOL_FLAG_IO.
3020         (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
3021         * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
3022         Update prototype.
3023         (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
3024         * config/avr/genmultilib.awk: Use -march=.
3025         Remove Multilib matches processing.
3026         * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
3027         * config/avr/avr-arch.h: Add double include guard.
3028         (avr_mcu_t) <library_name>: Update comment.
3029         * config/avr/driver-avr.c (avr_device_to_as): Delete.
3030         (avr_device_to_ld, avr_device_to_data_start): Likewise.
3031         (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
3032         (avr_device_to_sp8): Likewise.
3033         * config/avr/genopt.sh:  Instead avr_mcu, emit an Enum for avr_arch.
3034
3035         * doc/extend.texi (io, address): Document new AVR variable attributes.
3036         (io_low): Likewise.
3037
3038 2014-10-09  Marek Polacek  <polacek@redhat.com>
3039
3040         * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
3041
3042 2014-10-08  Richard Biener  <rguenther@suse.de>
3043
3044         PR tree-optimization/61969
3045         * tree-nrv.c (pass_nrv::execute): Properly test for automatic
3046         variables.
3047
3048 2014-10-09  Richard Biener  <rguenther@suse.de>
3049
3050         PR tree-optimization/63445
3051         * tree-vrp.c (simplify_cond_using_ranges): Only warn about
3052         overflow for non-equality compares.
3053
3054 2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
3055
3056         PR rtl-optimization/57003
3057         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
3058         also check CALL_INSN_FUNCTION_USAGE for clobbers again after
3059         killing regs_invalidated_by_call.
3060
3061 2014-10-08  Teresa Johnson  <tejohnson@google.com>
3062
3063         PR bootstrap/63432.
3064         * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
3065         (ssa_fix_duplicate_block_edges): Invoke it.
3066         (mark_threaded_blocks): Make two passes to avoid ordering dependences.
3067
3068 2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
3069
3070         PR target/52941
3071         * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
3072         atomic_fetch_<fetchop_name>si_hard,
3073         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
3074         atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
3075         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
3076         atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
3077
3078 2014-10-08  Rong Xu  <xur@google.com>
3079
3080         * gcov-tool.c (profile_overlap): New driver function
3081         to compute profile overlap.
3082         (print_overlap_usage_message): New.
3083         (overlap_usage): New.
3084         (do_overlap): New.
3085         (print_usage): Add calls to overlap function.
3086         (main): Ditto.
3087         * doc/gcov-tool.texi: Add documentation.
3088
3089 2014-10-08  Steve Ellcey  <sellcey@mips.com>
3090
3091         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
3092         LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
3093
3094 2014-10-08  Jan Hubicka  <hubicka@ucw.cz>
3095
3096         * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
3097         pattern matching of MEM_REF.
3098         (check_stmt_for_type_change): Update.
3099
3100 2014-10-08  Steve Ellcey  <sellcey@mips.com>
3101
3102         * config/mips/linux64.h: Remove.
3103         * config/mips/gnu-user64.h: Remove.
3104         * gcc.config (mips*-*-*): Remove references to linux64.h and
3105         gnu-user64.h
3106         * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
3107         with modified version from gnu-user64.h.
3108         (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
3109         (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
3110         * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
3111         linux64.h.
3112         (GNU_USER_LINK_EMULATION64): Ditto.
3113         (GNU_USER_LINK_EMULATIONN32): Ditto.
3114         (GLIBC_DYNAMIC_LINKER32): Ditto.
3115         (GLIBC_DYNAMIC_LINKER64): Ditto.
3116         (GLIBC_DYNAMIC_LINKERN32): Ditto.
3117         (UCLIBC_DYNAMIC_LINKER32): Ditto.
3118         (UCLIBC_DYNAMIC_LINKER64): Ditto.
3119         (UCLIBC_DYNAMIC_LINKERN32): Ditto.
3120         (BIONIC_DYNAMIC_LINKERN32): Ditto.
3121         (GNU_USER_DYNAMIC_LINKERN32): Ditto.
3122         (GLIBC_DYNAMIC_LINKER): Delete.
3123         (UCLIBC_DYNAMIC_LINKER): Delete.
3124
3125 2014-10-08  Joern Rennecke  <joern.rennecke@embecosm.com>
3126             Richard Biener  <rguenther@suse.de>
3127
3128         * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
3129         Get address space from operand 0 (BASE).
3130
3131 2014-10-07  Iain Sandoe  <iain@codesourcery.com>
3132
3133         PR target/61387
3134         * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
3135
3136 2014-10-07  Aldy Hernandez  <aldyh@redhat.com>
3137
3138         * dwarf2out.c: Remove current_function_has_inlines.
3139         (gen_subprogram_die): Same.
3140         (gen_inlined_subroutine_die): Same.
3141
3142 2014-10-07  Ilya Tocar  <ilya.tocar@intel.com>
3143
3144         * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
3145         type.
3146         (_addcarry_u64): Ditto.
3147         (_addcarryx_u64): Ditto.
3148
3149 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
3150
3151         * cgraph.h (cgraph_node::get_fun): Declare.
3152         * cgraph.c (cgraph_node::get_fun): New method.
3153         * ipa-inline.c (can_inline_edge_p): Use it.
3154
3155 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
3156
3157         * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
3158         and -ftrapping-math.
3159         * lto-wrapper.c (merge_and_complain): Likewise.
3160         (run_gcc): Likewise.
3161
3162 2014-10-06  Rong Xu  <xur@google.com>
3163
3164         * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
3165         * tree-profile.c: (params.h): New include.
3166         (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
3167         and __gcov_indirect_call_topn_counters for
3168         indirect_call_topn_profile.
3169         (gimple_init_edge_profiler): New decls for
3170         __gcov_indirect_call_topn_profiler.
3171         (gimple_gen_ic_profiler): Generate the correct profiler call.
3172         (gimple_gen_ic_func_profiler): Fix format.
3173         * value-prof.c (params.h): New include.
3174         (dump_histogram_value): Hanlde indirect_call_topn counters.
3175         (stream_in_histogram_value): Ditto.
3176         (gimple_indirect_call_to_profile): Use indirect_call_topn
3177         profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
3178         (gimple_find_values_to_profile): Hanlde indirect_call_topn
3179         counters.
3180         * value-prof.h (enum hist_type): Histrogram type for
3181         indirect_call_topn counters.
3182         * profile.c (instrument_values): Instrument
3183         indirect_call_topn counters.
3184
3185 2014-10-06  Rong Xu  <xur@google.com>
3186
3187         * Makefile.in: Fix dependence.
3188         * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
3189         indirect call topn profiler.
3190         * gcov-io.h: Ditto.
3191
3192 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
3193
3194         * calls.c (expand_call): Do not use the target as the return slot if
3195         it is not sufficiently aligned.
3196
3197 2014-10-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3198
3199         * config/rs6000/rs6000.c (analyze_swaps commentary): Add
3200         discussion of permutes and why we don't handle them.
3201
3202 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
3203
3204         * config/sparc/predicates.md (int_register_operand): Delete.
3205
3206 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
3207
3208         * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
3209
3210 2014-10-06  Jakub Jelinek  <jakub@redhat.com>
3211
3212         * ubsan.h (ubsan_get_source_location): New prototype.
3213         * ubsan.c (ubsan_source_location_type): New variable.
3214         Function renamed to ...
3215         (ubsan_get_source_location_type): ... this.  Cache
3216         return value in ubsan_source_location_type variable.
3217         (ubsan_source_location, ubsan_create_data): Use
3218         ubsan_get_source_location_type instead of
3219         ubsan_source_location_type.
3220         * asan.c (asan_protect_global): Don't protect globals
3221         with ubsan_get_source_location_type () type.
3222         (asan_add_global): Provide global decl location info
3223         if possible.
3224
3225 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
3226
3227         * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
3228         sanity check.
3229
3230 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
3231
3232         * ipa-polymorphic-call.c (possible_placement_new): Fix condition
3233         on size.
3234         (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
3235         into vptr pointer.
3236         (ipa_polymorphic_call_context::dump): Fix formating.
3237         (walk_ssa_copies): Add logic avoiding loops; update uses.
3238         * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
3239
3240 2014-10-02  Mark Wielaard  <mjw@redhat.com>
3241
3242         PR debug/63239
3243         * dwarf2out.c (gen_subprogram_die): When a member function is
3244         explicitly deleted then add a DW_AT_GNU_deleted attribute.
3245         * langhooks.h (struct lang_hooks_for_decls): Add
3246         function_decl_deleted_p langhook.
3247         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
3248         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
3249
3250 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
3251
3252         * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
3253         NULL pointer checks.
3254         (ipa_polymorphic_call_context::get_dynamic_type): Return true
3255         if type doesn't change.
3256         * cgraph.h (cgraph_indirect_call_info): New flag.
3257         * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
3258         (cgraph_node::dump): Dump it.
3259         * ipa-prop.c (ipa_analyze_call_uses):  Ignore return valud
3260         of context.get_dynamic_type.
3261         (ipa_make_edge_direct_to_target): Do not speculate
3262         edge that is already speuclative.
3263         (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
3264         speculate to __builtin_unreachable
3265         (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
3266         vptr_changed.
3267         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
3268
3269 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
3270
3271         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
3272         get_dynamic_type; drop TODO.
3273         * ipa-polymorphic-call.c
3274         (ipa_polymorphic_call_context::get_dynamic_type): Be ready
3275         for otr_type to be unknown.
3276
3277 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
3278
3279         * common/config/score/score-common.c: Remove.
3280         * config.gcc: Remove support for score-*.
3281         * config/score/constraints.md: Remove.
3282         * config/score/elf.h: Remove.
3283         * config/score/predicates.md: Remove.
3284         * config/score/score-conv.h: Remove.
3285         * config/score/score-generic.md: Remove.
3286         * config/score/score-modes.def: Remove.
3287         * config/score/score-protos.h: Remove.
3288         * config/score/score.c: Remove.
3289         * config/score/score.h: Remove.
3290         * config/score/score.md: Remove.
3291         * config/score/score.opt: Remove.
3292         * doc/md.texi: Don't document score-*.
3293
3294 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
3295
3296         PR pch/63429
3297         * genconditions.c: Directly include ggc.h before rtl.h.
3298
3299 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
3300
3301         * ipa-polymorphic-call.c
3302         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
3303         code determining speculative type.
3304         (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
3305
3306 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3307
3308         * altivec.md (altivec_lvsl): New define_expand.
3309         (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
3310         (altivec_lvsr): New define_expand.
3311         (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
3312         * rs6000.c (rs6000_expand_builtin): Change to use
3313         altivec_lvs[lr]_direct; remove commented-out code.
3314
3315 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3316
3317         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3318         Issue a warning message when vec_lvsl or vec_lvsr is used with a
3319         little endian target.
3320
3321 2014-10-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3322
3323         * tree-pretty-print.c (dump_location): Make it extern. Dump also
3324         the column.
3325         * tree-pretty-print.h (dump_location): Declare.
3326         * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
3327         (pp_gimple_stmt_1): Likewise.
3328         (dump_implicit_edges): Likewise.
3329         * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
3330         LOCATION_LINE.
3331
3332
3333 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
3334
3335         * gcc.c (driver::global_initializations): Remove "const" so
3336         that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
3337         and decoded_options_count.
3338
3339 2014-10-03  Maciej W. Rozycki  <macro@codesourcery.com>
3340
3341         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
3342         macro.
3343         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
3344         TARGET_E500_DOUBLE case here.
3345
3346 2014-10-03  Marc Glisse  <marc.glisse@inria.fr>
3347
3348         PR c++/54427
3349         PR c++/57198
3350         PR c++/58845
3351         * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
3352
3353 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
3354
3355         * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
3356         * lto-cgraph.c (lto_output_edge, input_edge): Stream
3357         in_polymorphic_cdtor
3358         * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
3359         (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
3360         * cgraphclones.c (cgraph_edge::clone): Likewise.
3361         * ipa-prop.c (update_jump_functions_after_inlining,
3362         try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
3363         to possible_dynamic_type_change.
3364         (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
3365         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
3366         IN_POLY_CDOTR argument.
3367
3368         * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
3369         for BASE and OUTER_TYPE being NULL.
3370         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
3371         in_poly_cdtor parameter.
3372
3373 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
3374
3375         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
3376         (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
3377         TARGET_AVX512F.
3378         (expand_vec_perm_1): Likewise.
3379
3380 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
3381             Uros Bizjak  <ubizjak@gmail.com>
3382
3383         PR tree-optimization/61403
3384         * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
3385         error in comment.  Also optimize 256-bit vectors for AVX2
3386         or AVX (floating vectors only), provided the first permutation
3387         can be performed in one insn.
3388
3389 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
3390
3391         * gcc.c (class driver): New class.
3392         (main): Reimplement in terms of driver::main, moving most of the
3393         locals to be locals within individual methods of class driver.
3394         The remaining locals "explicit_link_files", "decoded_options" and
3395         "decoded_options_count" are used by multiple driver:: methods, and
3396         so become member data.  Doing so isolates the argc/argv reads and
3397         writes.  Replace "goto out" with a special exit code from
3398         new method driver::prepare_infiles.  Split out the old
3399         implementation of main into the following...
3400         (driver::main): New function, corresponding to the old "main"
3401         implementation.
3402         (driver::set_progname): New function, taken from the old
3403         "main" implementation.
3404         (driver::expand_at_files): Likewise.
3405         (driver::decode_argv): Likewise.
3406         (driver::global_initializations): Likewise.
3407         (driver::build_multilib_strings): Likewise.
3408         (driver::set_up_specs): Likewise.
3409         (driver::putenv_COLLECT_GCC): Likewise.
3410         (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
3411         (driver::handle_unrecognized_options): Likewise.
3412         (driver::maybe_print_and_exit): Likewise.
3413         (driver::prepare_infiles): Likewise.
3414         (driver::do_spec_on_infiles): Likewise.
3415         (driver::maybe_run_linker): Likewise.
3416         (driver::final_actions): Likewise.
3417         (driver::get_exit_code): Likewise.
3418
3419 2014-10-03  Yury Gribov  <y.gribov@samsung.com>
3420
3421         * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
3422         don't emit empty ctors.
3423
3424 2014-10-03  Eric Botcazou  <ebotcazou@adacore.com>
3425
3426         * convert.c (convert_to_integer): Do not introduce useless conversions
3427         between integral types.
3428
3429 2014-10-03  David Sherwood  <david.sherwood@arm.com>
3430
3431         * ira-int.h (ira_allocno): Mark hard_regno as signed.
3432
3433 2014-10-03  Ilya Enkovich  <ilya.enkovich@intel.com>
3434
3435         * lra-constraints.c (inherit_in_ebb): Handle calls with
3436         multiple return values.
3437         * caller-save.c (save_call_clobbered_regs): Likewise.
3438
3439 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
3440
3441         * tree-vect-data-refs.c (vect_permute_load_chain,
3442         vect_shift_permute_load_chain): Fix a typo in temporary var names,
3443         suffle3 to shuffle3.
3444
3445         PR libgomp/61200
3446         * omp-low.c (taskreg_contexts): New variable.
3447         (scan_omp_parallel): Push newly created context into taskreg_contexts
3448         vector and move record layout code to finish_taskreg_scan.
3449         (scan_omp_task): Likewise.
3450         (finish_taskreg_scan): New function.
3451         (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
3452         vector elements and release it.
3453
3454         PR target/62128
3455         * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
3456         of palignr arguments can't be used due to min 0 or max - min
3457         too high, try also op0, op1 order of palignr arguments.
3458
3459 2014-10-02  Jan Hubicka  <hubicka@ucw.cz>
3460
3461         * cgraph.h (ipa_polymorphic_call_context):
3462         Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
3463         private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
3464         * ipa-polymorphic-call.c
3465         (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
3466         past end of dynamic types.
3467         (ipa_polymorphic_call_context::stream_out,
3468         speculative_outer_type): Stream dynamic flag.
3469         (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
3470         (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
3471         Clear DYNAMIC.
3472         (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
3473         set it.
3474         (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
3475         * ipa-prop.c (update_jump_functions_after_inlining,
3476         try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
3477
3478 2014-10-02  Teresa Johnson  <tejohnson@google.com>
3479
3480         * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
3481         up when synthesizing counts to avoid rounding errors.
3482
3483 2014-10-02  Teresa Johnson  <tejohnson@google.com>
3484
3485         PR middle-end/63422
3486         * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
3487         asserts to handle incoming insanities.
3488
3489 2014-10-02  Martin Jambor  <mjambor@suse.cz>
3490
3491         PR tree-optimization/63375
3492         * tree-sra.c (build_access_from_expr_1): Disqualify volatile
3493         references.
3494
3495 2014-10-02  Olivier Hainque  <hainque@adacore.com>
3496
3497         * Makefile.in (CROSS): Define, to @CROSS.
3498
3499 2014-10-02  Jakub Jelinek  <jakub@redhat.com>
3500
3501         PR target/62128
3502         * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
3503         if it expands to a single insn only.
3504         (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument.  If true,
3505         fail unless in_order is true.  Add forward declaration.
3506         (expand_vec_perm_vperm2f128): Fix up comment about which permutation
3507         is useful for one_operand_p.
3508         (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
3509
3510 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3511
3512         * cgraphclones.c (build_function_type_skip_args): Do not make new
3513         type variant of old.
3514
3515 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3516
3517         * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
3518         when speculation is added.
3519         (ipa_edge_args): Add polymorphic_call_contexts.
3520         (ipa_get_ith_polymorhic_call_context): New accesor.
3521         (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
3522         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
3523         (ipa_compute_jump_functions_for_edge): Compute contexts.
3524         (update_jump_functions_after_inlining): Update contexts.
3525         (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
3526         update dumping; add speculative edge creation.
3527         (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
3528         context updating.
3529         (update_indirect_edges_after_inlining): Pass down context.
3530         (ipa_edge_duplication_hook): Duplicate contexts.
3531         (ipa_write_node_info): Stream out contexts.
3532         (ipa_read_node_info): Stream in contexts.
3533         * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
3534         types.
3535         (try_speculative_devirtualization): New function.
3536         * ipa-utils.h (try_speculative_devirtualization): Declare.
3537
3538 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3539
3540         * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
3541         dumping during WPA.
3542
3543 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3544
3545         * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
3546         type variants.
3547
3548 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
3549
3550         * ipa-polymorphic-call.c
3551         (ipa_polymorphic_call_context::restrict_to_inner_class):
3552         Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
3553         use speculation_consistent_p to do so; Add CONSDER_BASES
3554         and CONSIDER_PLACEMENT_NEW parameters.
3555         (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
3556         short circuit obvious cases.
3557         (ipa_polymorphic_call_context::dump): Improve formatting.
3558         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
3559         combine_speculation_with to record speculations; Do not ICE when
3560         object is located in pointer type decl; do not ICE for methods
3561         of UNION_TYPE; do not record nonpolymorphic types.
3562         (ipa_polymorphic_call_context::speculation_consistent_p): New method.
3563         (ipa_polymorphic_call_context::combine_speculation_with): New method.
3564         (ipa_polymorphic_call_context::combine_with): New method.
3565         (ipa_polymorphic_call_context::make_speculative): Move here; use
3566         combine speculation.
3567         * cgraph.h (ipa_polymorphic_call_context): Update
3568         restrict_to_inner_class prototype; add offset_by, make_speculative,
3569         combine_with, useless_p, combine_speculation_with and
3570         speculation_consistent_p methods.
3571         (ipa_polymorphic_call_context::offset_by): New method.
3572         (ipa_polymorphic_call_context::useless_p): New method.
3573
3574 2014-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3575
3576         PR rtl-optimization/62151
3577         * combine.c (can_combine_p): Allow the destination register of INSN
3578         to be clobbered in I3.
3579         (subst): Do not substitute into clobbers of registers.
3580
3581 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
3582
3583         PR debug/63342
3584         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
3585         offset, TARGET_MEM_REF and SSA_NAME.
3586
3587         * config/i386/i386.c (expand_vec_perm_palignr): Handle
3588         256-bit vectors for TARGET_AVX2.
3589
3590         * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
3591         dfirst permutation.
3592
3593         PR target/63428
3594         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
3595         argument to avx2_permv2ti.
3596
3597 2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3598
3599         * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
3600
3601 2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
3602
3603         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
3604         (fmod<mode>3): Ditto.
3605         (fpremxf4_i387): Ditto.
3606         (reminderxf3): Ditto.
3607         (reminder<mode>3): Ditto.
3608         (fprem1xf4_i387): Ditto.
3609
3610 2014-09-30  Teresa Johnson  <tejohnson@google.com>
3611
3612         * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
3613         duplicate_blocks bitmap.
3614         (remove_ctrl_stmt_and_useless_edges): Ditto.
3615         (create_block_for_threading): Ditto.
3616         (compute_path_counts): New function.
3617         (update_profile): Ditto.
3618         (recompute_probabilities): Ditto.
3619         (update_joiner_offpath_counts): Ditto.
3620         (freqs_to_counts_path): Ditto.
3621         (clear_counts_path): Ditto.
3622         (ssa_fix_duplicate_block_edges): Update profile info.
3623         (ssa_create_duplicates): Pass new parameter.
3624         (ssa_redirect_edges): Remove old profile update.
3625         (thread_block_1): New duplicate_blocks bitmap,
3626         remove old profile update.
3627         (thread_single_edge): Pass new parameter.
3628
3629 2014-09-30  Ilya Tocar  <ilya.tocar@intel.com>
3630
3631         PR middle-end/62120
3632         * varasm.c (decode_reg_name_and_count): Check availability for
3633         registers from ADDITIONAL_REGISTER_NAMES.
3634
3635 2014-09-30  David Malcolm  <dmalcolm@redhat.com>
3636
3637         PR plugins/63410
3638         * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
3639         (PLUGIN_HEADERS): Add pass-instances.def.
3640
3641 2014-09-30  James Greenhalgh  <james.greenhalgh@arm.com>
3642
3643         * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
3644         iterator.
3645         * config/aarch64/aarch64-simd.md
3646         (aarch64_sqdmull_laneq<mode>): Expand iterator.
3647         * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
3648         (vqdmulls_lane_s32): Fix return type.
3649         (vqdmulls_laneq_s32): New.
3650
3651 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
3652
3653         PR inline-asm/63282
3654         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
3655         or invert_jump_1 if jump isn't any_condjump_p.
3656
3657 2014-09-30  Terry Guo  <terry.guo@arm.com>
3658
3659         * config/arm/arm-cores.def (cortex-m7): New core name.
3660         * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
3661         (fpv5-d16): Ditto.
3662         * config/arm/arm-tables.opt: Regenerated.
3663         * config/arm/arm-tune.md: Regenerated.
3664         * config/arm/arm.h (TARGET_VFP5): New macro.
3665         * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
3666         * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
3667         smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
3668         * doc/invoke.texi: Document new cpu and fpu names.
3669
3670 2014-09-30  Jiong Wang  <jiong.wang@arm.com>
3671
3672         * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
3673         before sinking insn.
3674
3675 2014-09-30  David Sherwood  <david.sherwood@arm.com>
3676
3677         * ira-int.h (ira_allocno): Add "wmode" field.
3678         * ira-build.c (create_insn_allocnos): Add new "parent" function
3679         parameter.
3680         * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
3681         that cannot be accessed in wmode.
3682
3683 2014-09-30  Markus Trippelsdorf  <markus@trippelsdorf.de>
3684
3685         * data-streamer.c (bp_unpack_var_len_int): Avoid signed
3686         integer overflow.
3687
3688 2014-09-29  Andi Kleen  <ak@linux.intel.com>
3689
3690         * opts.c (print_filtered_help): Print --param min/max/default
3691         with -Q.
3692
3693 2014-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3694
3695         * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
3696
3697 2014-09-29  Eric Botcazou  <ebotcazou@adacore.com>
3698
3699         * tree-vrp.c (get_single_symbol): New function.
3700         (build_symbolic_expr): Likewise.
3701         (symbolic_range_based_on_p): New predicate.
3702         (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
3703         for PLUS and MINUS.  Do not drop symbolic ranges at the end.
3704         (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
3705         operand is symbolic and based on the other operand.
3706
3707 2014-09-29  Chen Gang  <gang.chen.5i5j@gmail.com>
3708
3709         * config/microblaze/microblaze.md (call_internal1): Use VOID
3710         instead of SI to fix "((void (*)(void)) 0)()" issue
3711
3712 2014-09-29  Nick Clifton  <nickc@redhat.com>
3713
3714         * config/msp430/msp430.c (msp430_expand_prologue): Return a
3715         CLOBBER rtx for naked functions.
3716         (msp430_expand_epilogue): Likewise.
3717         (msp430_use_f5_series_hwmult): Cache result.
3718         (use_32bit_hwmult): Cache result.
3719         (msp430_no_hwmult): New function.
3720         (msp430_output_labelref): Use it.
3721
3722 2014-09-29  Jakub Jelinek  <jakub@redhat.com>
3723
3724         PR middle-end/63247
3725         * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
3726         of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
3727         use the alignment of avar rather than ovar.
3728
3729 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
3730
3731         * config/pa/pa.c (pa_output_function_epilogue): Only update
3732         last_address when a nonnote insn is found.
3733
3734 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
3735
3736         PR ipa/60665
3737         * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
3738
3739 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
3740
3741         PR ipa/62121
3742         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
3743         fix pasto in checking array size.
3744
3745 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
3746
3747         PR middle-end/35545
3748         * passes.def (pass_tracer): Move before last dominator pass.
3749
3750 2014-09-26  Thomas Schwinge  <thomas@codesourcery.com>
3751
3752         * gcc.c (try_generate_repro): Remove argument "prog".  Change all
3753         users.
3754         (run_attempt): Handle errors of "pex_run" invocation.
3755
3756 2014-09-26  Christophe Lyon  <christophe.lyon@linaro.org>
3757
3758         * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
3759         (CC1_SPEC): Define.
3760         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
3761         (TARGET_ASAN_SHADOW_OFFSET): Define.
3762
3763 2014-09-26  Martin Liska  <mliska@suse.cz>
3764
3765         * cgraph.c (cgraph_node::release_body): New argument keep_arguments
3766         introduced.
3767         * cgraph.h: Likewise.
3768         * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
3769         * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
3770         * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
3771         * tree-ssa-alias.h: Likewise.
3772
3773 2014-09-26  Jakub Jelinek  <jakub@redhat.com>
3774             Max Ostapenko  <m.ostapenko@partner.samsung.com>
3775
3776         * common.opt: New option.
3777         * doc/invoke.texi: Describe new option.
3778         * gcc.c (execute): Don't free first string early, but at the end
3779         of the function.  Call retry_ice if compiler exited with
3780         ICE_EXIT_CODE.
3781         (main): Factor out common code.
3782         (print_configuration): New function.
3783         (files_equal_p): Likewise.
3784         (check_repro): Likewise.
3785         (run_attempt): Likewise.
3786         (do_report_bug): Likewise.
3787         (append_text): Likewise.
3788         (try_generate_repro): Likewise
3789
3790 2014-09-25  Andi Kleen  <ak@linux.intel.com>
3791
3792         * config/i386/i386.c (x86_print_call_or_nop): New function.
3793         (x86_function_profiler): Support -mnop-mcount and
3794         -mrecord-mcount.
3795         * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
3796         * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
3797
3798 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
3799
3800         * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
3801         * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
3802         * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
3803         Remove.
3804
3805 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
3806
3807         * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
3808         type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
3809         types_odr_comparable): Declare.
3810         (polymorphic_type_binfo_p): Move here from ipa-devirt.c
3811         * ipa-polymorphic-call.c: New file.
3812         (contains_polymorphic_type_p, possible_placement_new,
3813         ipa_polymorphic_call_context::restrict_to_inner_class,
3814         contains_type_p, decl_maybe_in_construction_p,
3815         ipa_polymorphic_call_context::stream_out,
3816         ipa_polymorphic_call_context::debug,
3817         ipa_polymorphic_call_context::stream_in,
3818         ipa_polymorphic_call_context::set_by_decl,
3819         ipa_polymorphic_call_context::set_by_invariant,
3820         walk_ssa_copies,
3821         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3822         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
3823         extr_type_from_vtbl_ptr_store, record_known_type
3824         check_stmt_for_type_change,
3825         ipa_polymorphic_call_context::get_dynamic_type): Move here from
3826         ipa-devirt.c
3827         * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
3828         and streamer-hooks.h
3829         (contains_polymorphic_type_p, possible_placement_new,
3830         ipa_polymorphic_call_context::restrict_to_inner_class,
3831         contains_type_p, decl_maybe_in_construction_p,
3832         ipa_polymorphic_call_context::stream_out,
3833         ipa_polymorphic_call_context::debug,
3834         ipa_polymorphic_call_context::stream_in,
3835         ipa_polymorphic_call_context::set_by_decl,
3836         ipa_polymorphic_call_context::set_by_invariant,
3837         walk_ssa_copies,
3838         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
3839         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
3840         extr_type_from_vtbl_ptr_store, record_known_type
3841         check_stmt_for_type_change,
3842         ipa_polymorphic_call_context::get_dynamic_type): Move to
3843         ipa-polymorphic-call.c
3844         (type_all_derivations_known_p, types_odr_comparable,
3845         types_must_be_same_for_odr): Export.
3846         (type_known_to_have_no_deriavations_p): New function.
3847         * Makefile.in: Add ipa-polymorphic-call.c
3848
3849 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
3850
3851         * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
3852         for better storage.
3853         (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
3854         (possible_polymorphic_call_targets): Instead of computing both
3855         speculative and non-speculative answers, do just one at a time.
3856         Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
3857         (dump_targets): Break out from ...
3858         (dump_possible_polymorphic_call_targets): ... here; dump both speculative
3859         and non-speculative lists.
3860         (ipa_devirt): Update for new possible_polymorphic_call_targets API.
3861         * ipa-utils.h (possible_polymorphic_call_targets): Update.
3862
3863 2014-09-25  Uros Bizjak  <ubizjak@gmail.com>
3864
3865         PR rtl-optimization/63348
3866         * emit-rtl.c (try_split): Do not emit extra barrier.
3867
3868 2014-09-25  James Greenhalgh  <james.greenhalgh@arm.com>
3869
3870         * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
3871         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
3872         new predicates.
3873         (aarch64_<sur>shll2_n<mode>): Likewise.
3874         (aarch64_<sur>shr_n<mode>): Likewise.
3875         (aarch64_<sur>sra_n<mode>: Likewise.
3876         (aarch64_<sur>s<lr>i_n<mode>): Likewise.
3877         (aarch64_<sur>qshl<u>_n<mode>): Likewise.
3878         * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
3879         * config/aarch64/iterators.md (ve_mode): New.
3880         (offsetlr): Remap to infix text for use in new predicates.
3881         * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
3882         (aarch64_simd_shift_imm_hi): Likewise.
3883         (aarch64_simd_shift_imm_si): Likewise.
3884         (aarch64_simd_shift_imm_di): Likewise.
3885         (aarch64_simd_shift_imm_offset_qi): Likewise.
3886         (aarch64_simd_shift_imm_offset_hi): Likewise.
3887         (aarch64_simd_shift_imm_offset_si): Likewise.
3888         (aarch64_simd_shift_imm_offset_di): Likewise.
3889         (aarch64_simd_shift_imm_bitsize_qi): Likewise.
3890         (aarch64_simd_shift_imm_bitsize_hi): Likewise.
3891         (aarch64_simd_shift_imm_bitsize_si): Likewise.
3892         (aarch64_simd_shift_imm_bitsize_di): Likewise.
3893
3894 2014-09-25  Jiong Wang  <jiong.wang@arm.com>
3895
3896         * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
3897         new created BB as the intersection of live-in from "old_dest" and
3898         live-out from "bb".
3899
3900 2014-09-25  Felix Yang  <felix.yang@huawei.com>
3901
3902         * lra.c (lra_set_insn_recog_data): Fix typo in comment.
3903         * genautomata.c (merge_states): Ditto.
3904
3905 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
3906
3907         PR target/62218
3908         * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
3909         in instruction sequence.
3910
3911 2014-09-25  Nick Clifton  <nickc@redhat.com>
3912
3913         PR target/62218
3914         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
3915         in instruction sequence.
3916
3917 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3918
3919         PR target/63335
3920         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
3921         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
3922
3923 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3924             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3925             Anna Tikhonova  <anna.tikhonova@intel.com>
3926             Ilya Tocar  <ilya.tocar@intel.com>
3927             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3928             Ilya Verbin  <ilya.verbin@intel.com>
3929             Kirill Yukhin  <kirill.yukhin@intel.com>
3930             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3931
3932         * config/i386/sse.md
3933         (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
3934         (define_expand "<avx2_avx512>_perm<mode>"): ... this.
3935         (define_expand "avx512f_perm<mode>_mask"): Rename to ...
3936         (define_expand "<avx512>_perm<mode>_mask"): ... this.
3937         Use VI8F_256_512 mode iterator.
3938         (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
3939         (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
3940
3941 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3942             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3943             Anna Tikhonova  <anna.tikhonova@intel.com>
3944             Ilya Tocar  <ilya.tocar@intel.com>
3945             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3946             Ilya Verbin  <ilya.verbin@intel.com>
3947             Kirill Yukhin  <kirill.yukhin@intel.com>
3948             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3949
3950         * config/i386/sse.md
3951         (define_insn "avx_movshdup256<mask_name>"): Add masking.
3952         (define_insn "sse3_movshdup<mask_name>"): Ditto.
3953         (define_insn "avx_movsldup256<mask_name>"): Ditto.
3954         (define_insn "sse3_movsldup<mask_name>"): Ditto.
3955         (define_insn "vec_dupv2df<mask_name>"): Ditto.
3956         (define_insn "*vec_concatv2df"): Add EVEX version.
3957
3958 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3959             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3960             Anna Tikhonova  <anna.tikhonova@intel.com>
3961             Ilya Tocar  <ilya.tocar@intel.com>
3962             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3963             Ilya Verbin  <ilya.verbin@intel.com>
3964             Kirill Yukhin  <kirill.yukhin@intel.com>
3965             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3966
3967         * config/i386/sse.md
3968         (define_insn "vec_set<mode>_0"): Add EVEX version.
3969
3970 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3971             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3972             Anna Tikhonova  <anna.tikhonova@intel.com>
3973             Ilya Tocar  <ilya.tocar@intel.com>
3974             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3975             Ilya Verbin  <ilya.verbin@intel.com>
3976             Kirill Yukhin  <kirill.yukhin@intel.com>
3977             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
3978
3979         * config/i386/sse.md
3980         (define_insn
3981         "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
3982         New.
3983         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
3984         (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
3985         (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
3986         "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
3987         (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
3988         (define_expand "sse2_cvtpd2ps_mask): New.
3989         (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
3990         (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
3991
3992 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
3993             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
3994             Anna Tikhonova  <anna.tikhonova@intel.com>
3995             Ilya Tocar  <ilya.tocar@intel.com>
3996             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3997             Ilya Verbin  <ilya.verbin@intel.com>
3998             Kirill Yukhin  <kirill.yukhin@intel.com>
3999             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4000
4001         * config/i386/i386.c
4002         (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
4003         (ufix_notruncv8dfv8si2_mask_round): ... this.
4004         * config/i386/sse.md
4005         (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
4006         (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
4007         (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
4008         (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
4009         (define_expand "sse2_cvtpd2dq"): Delete.
4010         (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
4011         make 2nd operand const0 vector.
4012         (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
4013         Delete.
4014         (define_mode_attr pd2udqsuff): New.
4015         (define_insn
4016         "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
4017         (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
4018         (define_insn "*avx_cvttpd2dq256_2"): Delete.
4019         (define_expand "sse2_cvttpd2dq"): Ditto.
4020         (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
4021         make 2nd operand const0 vector.
4022
4023 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
4024
4025         PR tree-optimization/63341
4026         * tree-vectorizer.h (vect_create_data_ref_ptr,
4027         vect_create_addr_base_for_vector_ref): Add another tree argument
4028         defaulting to NULL_TREE.
4029         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
4030         argument, pass it down to vect_create_addr_base_for_vector_ref.
4031         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
4032         add that to base_offset too if non-NULL.
4033         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
4034         for dr_explicit_realign_optimized set it to vector byte size
4035         - 1 instead of setting offset, pass byte_offset down to
4036         vect_create_data_ref_ptr.
4037
4038 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
4039
4040         * ipa-devirt.c (possible_polymorphic_call_targets): Remove
4041         forgotten debug output; canonicalize querries more wtih LTO.
4042
4043 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
4044
4045         * cgraph.h (class ipa_polymorphic_call_context): Move here from
4046         ipa-utils.h; add stream_int and stream_out methods.
4047         (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
4048         OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
4049         MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
4050         add CONTEXT.
4051         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4052         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4053         ipa_polymorphic_call_context::clear_speculation,
4054         ipa_polymorphic_call_context::clear_outer_type): Move here from
4055         ipa-utils.h
4056         * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
4057         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4058         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
4059         ipa_polymorphic_call_context::clear_speculation,
4060         ipa_polymorphic_call_context::clear_outer_type): Likewise.
4061         * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
4062         streamer-hooks.h
4063         (ipa_polymorphic_call_context::stream_out): New method.
4064         (ipa_polymorphic_call_context::stream_in): New method.
4065         (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
4066         * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
4067         OUTER_TYPE.
4068         (ipa_analyze_call_uses): Simplify.
4069         (update_indirect_edges_after_inlining): Do not care about outer_type.
4070         (ipa_write_indirect_edge_info): Update.
4071         (ipa_write_indirect_edge_info): Likewise.
4072         * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
4073         (dump_edge_flags): Break out from ...
4074         (cgraph_node::dump): ... here; dump indirect edges.
4075
4076 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
4077
4078         * ipa-utils.h (polymorphic_call_context): Add
4079         metdhos dump, debug and clear_outer_type.
4080         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
4081         (ipa_polymorphic_call_context::clear_outer_type): New method.
4082         * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
4083         * ipa-devirt.c (types_odr_comparable): New function.
4084         (types_must_be_same_for_odr): New function.
4085         (odr_subtypes_equivalent_p): Simplify.
4086         (possible_placement_new): Break out from ...
4087         (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
4088         be more cuatious about returning false in cases the context may be
4089         valid in derived type or via placement new.
4090         (contains_type_p): Clear maybe_derived_type
4091         (ipa_polymorphic_call_context::dump): New method.
4092         (ipa_polymorphic_call_context::debug): New method.
4093         (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
4094         (ipa_polymorphic_call_context::set_by_invariant): Simplify.
4095         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
4096         (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
4097         to suceed on all valid cases; remove confused sanity check.
4098         (dump_possible_polymorphic_call_targets): Simplify.
4099
4100 2014-09-24  Aldy Hernandez  <aldyh@redhat.com>
4101
4102         * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
4103         lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
4104         tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
4105         varpool.c: Rename all instances of DECL_ABSTRACT to
4106         DECL_ABSTRACT_P.
4107
4108 2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4109
4110         * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
4111         special handling for stores whose SET_SRC is an UNSPEC (such as
4112         UNSPEC_STVE).
4113
4114 2014-09-24  Jiong Wang  <jiong.wang@arm.com>
4115
4116         * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
4117         !REG_P (src) to release more instruction sink opportunities.
4118
4119 2014-09-24  Wilco Dijkstra  <wilco.dijkstra@arm.com>
4120
4121         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
4122         move costs for 128-bit types.
4123
4124 2014-09-24  Martin Jambor  <mjambor@suse.cz>
4125
4126         * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
4127         when duplicating a PASS_THROUGH jump function when creating a
4128         speculative edge.
4129
4130 2014-09-24  Marek Polacek  <polacek@redhat.com>
4131
4132         PR c/61405
4133         PR c/53874
4134         * asan.c (maybe_instrument_call): Add default case.
4135         * ipa-pure-const.c (special_builtin_state): Likewise.
4136         * predict.c (expr_expected_value_1): Likewise.
4137         * lto-streamer-out.c (write_symbol): Initialize variable.
4138
4139 2014-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4140
4141         * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
4142         the lane.
4143         (vmuld_laneq_f64): Likewise.
4144         (vmuls_lane_f32): Likewise.
4145         (vmuls_laneq_f32): Likewise.
4146
4147 2014-09-24  Kirill Yukhin  <kirill.yukhin@intel.com>
4148
4149         PR bootstrap/63235
4150         * varpool.c (varpool_node::add): Pass decl attributes
4151         to lookup_attribute.
4152
4153 2014-09-24  Jakub Jelinek  <jakub@redhat.com>
4154
4155         PR sanitizer/63316
4156         * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
4157
4158 2014-09-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4159
4160         PR tree-optimization/63266
4161         * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
4162         marker for unknown byte value.
4163         (MARKER_MASK): New macro.
4164         (MARKER_BYTE_UNKNOWN): New macro.
4165         (HEAD_MARKER): New macro.
4166         (do_shift_rotate): Mark bytes with unknown values due to sign
4167         extension when doing an arithmetic right shift. Replace hardcoded
4168         mask for marker by new MARKER_MASK macro.
4169         (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
4170         numbers accordingly.
4171
4172 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4173             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4174             Anna Tikhonova  <anna.tikhonova@intel.com>
4175             Ilya Tocar  <ilya.tocar@intel.com>
4176             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4177             Ilya Verbin  <ilya.verbin@intel.com>
4178             Kirill Yukhin  <kirill.yukhin@intel.com>
4179             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4180
4181         * config/i386/sse.md
4182         (define_insn
4183         "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
4184         Add masking.
4185         (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
4186         (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
4187
4188 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4189             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4190             Anna Tikhonova  <anna.tikhonova@intel.com>
4191             Ilya Tocar  <ilya.tocar@intel.com>
4192             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4193             Ilya Verbin  <ilya.verbin@intel.com>
4194             Kirill Yukhin  <kirill.yukhin@intel.com>
4195             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4196
4197         * config/i386/sse.md
4198         (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
4199         (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
4200         (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
4201         (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
4202         (define_expand "avx512vl_pshuflw_mask"): New.
4203         (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
4204         (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
4205         (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
4206         (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
4207         (define_expand "avx512vl_pshufhw_mask"): New.
4208         (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
4209
4210 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4211             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4212             Anna Tikhonova  <anna.tikhonova@intel.com>
4213             Ilya Tocar  <ilya.tocar@intel.com>
4214             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4215             Ilya Verbin  <ilya.verbin@intel.com>
4216             Kirill Yukhin  <kirill.yukhin@intel.com>
4217             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4218
4219         * config/i386/i386.c
4220         (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
4221         CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
4222         CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
4223         CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
4224         CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
4225         * config/i386/sse.md
4226         (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
4227         (define_insn
4228         "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
4229         (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
4230         (define_insn
4231         "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
4232         (define_expand "avx512vl_pshufdv3_mask"): Ditto.
4233         (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
4234         (define_expand "avx512vl_pshufd_mask"): New.
4235         (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
4236
4237 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4238             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4239             Anna Tikhonova  <anna.tikhonova@intel.com>
4240             Ilya Tocar  <ilya.tocar@intel.com>
4241             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4242             Ilya Verbin  <ilya.verbin@intel.com>
4243             Kirill Yukhin  <kirill.yukhin@intel.com>
4244             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4245
4246         * config/i386/i386.c
4247         (CODE_FOR_avx2_extracti128): Rename to ...
4248         (CODE_FOR_avx_vextractf128v4di): this.
4249         (CODE_FOR_avx2_inserti128): Rename to ...
4250         (CODE_FOR_avx_vinsertf128v4di): this.
4251         (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
4252         CODE_FOR_avx_vextractf128v4di.
4253         (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
4254         CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
4255         CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
4256         CODE_FOR_avx512vl_vinsertv8si.
4257         * config/i386/sse.md
4258         (define_expand
4259         "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
4260         AVX512_VEC mode iterator.
4261         (define_insn
4262         "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
4263         Ditto.
4264         (define_expand
4265         "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
4266         AVX512_VEC_2 mode iterator.
4267         (define_insn "vec_set_lo_<mode><mask_name>"): New.
4268         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4269         (define_expand "avx512vl_vinsert<mode>"): Ditto.
4270         (define_insn "avx2_vec_set_lo_v4di"): Delete.
4271         (define_insn "avx2_vec_set_hi_v4di"): Ditto.
4272         (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
4273         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4274         (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
4275         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4276         (define_expand "avx2_extracti128"): Delete.
4277         (define_expand "avx2_inserti128"): Ditto.
4278
4279 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4280             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4281             Anna Tikhonova  <anna.tikhonova@intel.com>
4282             Ilya Tocar  <ilya.tocar@intel.com>
4283             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4284             Ilya Verbin  <ilya.verbin@intel.com>
4285             Kirill Yukhin  <kirill.yukhin@intel.com>
4286             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4287
4288         * config/i386/sse.md
4289         (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
4290         (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
4291         (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
4292         (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
4293         (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
4294         (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
4295         (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
4296         (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
4297         (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
4298         (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
4299         (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
4300         (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
4301         (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
4302
4303 2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>
4304
4305         PR rtl-optimization/63210
4306         * ira-color.c (assign_hard_reg): Ignore conflict cost if the
4307         HARD_REGNO is not available for CONFLICT_A.
4308
4309 2014-09-23  Andi Kleen  <ak@linux.intel.com>
4310
4311         * cgraph.h (symtab_node): Add no_reorder attribute.
4312         (symbol_table::output_asm_statements): Remove.
4313         * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
4314         (cgraph_node::create_version_clone): Dito.
4315         (symbol_table::output_asm_statements): Remove.
4316         * trans-mem.c (ipa_tm_create_version_alias): Dito.
4317         * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
4318         (output_in_order): Add no_reorder flag. Only handle no_reorder
4319         nodes when set.
4320         (symbol_table::compile): Add separate pass for no_reorder nodes.
4321         (process_common_attributes): Set no_reorder flag in symtab node.
4322         Add node argument.
4323         (process_function_and_variable_attributes): Pass symtab nodes to
4324         process_common_attributes.
4325         * doc/extend.texi (no_reorder): Document no_reorder attribute.
4326         * lto-cgraph.c (lto_output_node): Serialize no_reorder.
4327         (lto_output_varpool_node): Dito.
4328         (input_overwrite_node): Dito.
4329         (input_varpool_node): Dito.
4330         * varpool.c (varpool_node::add): Set no_reorder attribute.
4331         (symbol_table::remove_unreferenced_decls): Handle no_reorder.
4332         (symbol_table::output_variables): Dito.
4333         * symtab.c (symtab_node::dump_base): Print no_reorder.
4334
4335 2014-09-23  Jiong Wang  <jiong.wang@arm.com>
4336
4337         * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
4338         be INVALID_REGNUM.
4339
4340 2014-09-23  Thomas Schwinge  <thomas@codesourcery.com>
4341
4342         * configure: Regenerate.
4343
4344 2014-09-23  Alan Lawrence  <alan.lawrence@arm.com>
4345
4346         * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
4347         when result_mode == shift_mode.
4348
4349 2014-09-23  Kostya Serebryany  <kcc@google.com>
4350
4351         Update to match the changed asan API.
4352         * asan.c (asan_global_struct): Update the __asan_global definition
4353         to match the new API.
4354         (asan_add_global): Ditto.
4355         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
4356         to __asan_init_v4.
4357
4358 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
4359
4360         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
4361         refine the constraints used on 32/64-bit floating point moves.
4362         (f32_av): Likewise.
4363         (f64_vsx): Likewise.
4364         (f64_dm): Likewise.
4365         (f64_av): Likewise.
4366         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
4367         (BOOL_REGS_OP1): Likewise.
4368         (BOOL_REGS_OP2): Likewise.
4369         (BOOL_REGS_UNARY): Likewise.
4370         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
4371         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
4372         for moves involving VSX registers.  Do not use constraints that
4373         target VSX registers for decimal types.
4374         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
4375         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
4376
4377 2014-09-23  Jan Hubicka  <hubicka@ucw.cz>
4378
4379         * tree.h (int_bit_position): Turn into inline function;
4380         implement using wide int.
4381         * tree.c (int_bit_position): Remove.
4382
4383 2014-09-23  Richard Sandiford  <richard.sandiford@arm.com>
4384
4385         PR bootstrap/63280
4386         * target-globals.c (target_globals::~target_globals): Fix location
4387         of ira_int destruction.
4388
4389 2014-09-23  Renlin Li  <renlin.li@arm.com>
4390
4391         * config/aarch64/aarch64.md (return): New.
4392         (simple_return): Likewise.
4393         * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
4394         * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
4395
4396 2014-09-23  Wilco Dijkstra  <wdijkstr@arm.com>
4397
4398         * common/config/aarch64/aarch64-common.c:
4399         (default_options aarch_option_optimization_table):
4400         Default to -fsched-pressure.
4401
4402 2014-09-23  Ilya Enkovich  <ilya.enkovich@intel.com>
4403
4404         * cfgcleanup.c (try_optimize_cfg): Do not remove label
4405         with LABEL_PRESERVE_P flag set.
4406
4407 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4408             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4409             Anna Tikhonova  <anna.tikhonova@intel.com>
4410             Ilya Tocar  <ilya.tocar@intel.com>
4411             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4412             Ilya Verbin  <ilya.verbin@intel.com>
4413             Kirill Yukhin  <kirill.yukhin@intel.com>
4414             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4415
4416         * config/i386/sse.md
4417         (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
4418         (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
4419         (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
4420         (define_insn "sse2_shufpd_v2df_mask"): New.
4421
4422 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4423             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4424             Anna Tikhonova  <anna.tikhonova@intel.com>
4425             Ilya Tocar  <ilya.tocar@intel.com>
4426             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4427             Ilya Verbin  <ilya.verbin@intel.com>
4428             Kirill Yukhin  <kirill.yukhin@intel.com>
4429             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4430
4431         * config/i386/sse.md
4432         (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
4433         (define_insn "avx_shufps256_1<mask_name>"): Ditto.
4434         (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
4435         (define_insn "sse_shufps_v4sf_mask"): New.
4436
4437 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4438             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4439             Anna Tikhonova  <anna.tikhonova@intel.com>
4440             Ilya Tocar  <ilya.tocar@intel.com>
4441             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4442             Ilya Verbin  <ilya.verbin@intel.com>
4443             Kirill Yukhin  <kirill.yukhin@intel.com>
4444             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4445
4446         * config/i386/sse.md
4447         (define_insn "avx_unpckhps256<mask_name>"): Add masking.
4448         (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
4449         (define_insn "avx_unpcklps256<mask_name>"): Ditto.
4450         (define_insn "unpcklps128_mask"): New.
4451
4452 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4453             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4454             Anna Tikhonova  <anna.tikhonova@intel.com>
4455             Ilya Tocar  <ilya.tocar@intel.com>
4456             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4457             Ilya Verbin  <ilya.verbin@intel.com>
4458             Kirill Yukhin  <kirill.yukhin@intel.com>
4459             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4460
4461         * config/i386/sse.md
4462         (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
4463         (define_insn "avx512vl_unpckhpd128_mask"): New.
4464         (define_expand "avx_movddup256<mask_name>"): Add masking.
4465         (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
4466         (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
4467         (define_insn "avx512vl_unpcklpd128_mask"): New.
4468
4469 2014-09-22  Joseph Myers  <joseph@codesourcery.com>
4470
4471         * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4472         * doc/tm.texi: Regenerate.
4473         * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
4474         * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4475         * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
4476         Remove.
4477         * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4478         * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4479         * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4480         * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4481         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
4482         Remove.
4483         * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4484         * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4485         * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4486         * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4487         * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4488         * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4489         * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4490         * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4491         * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4492         * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
4493         * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
4494         Remove.
4495
4496 2014-09-22  Jan Hubicka  <hubicka@ucw.cz>
4497
4498         * tree-ssa-ccp.c (prop_value_d): Rename to ...
4499         (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
4500         * ipa-prop.c (struct type_change_info): Rename to ...
4501         (prop_type_change_info): ... this; update uses.
4502         * ggc-page.c (globals): Rename to ...
4503         (static struct ggc_globals): ... this; update uses.
4504         * tree-ssa-loop-im.c (mem_ref): Rename to ...
4505         (im_mem_ref): ... this; update uses.
4506         * ggc-common.c (loc_descriptor): Rename to ...
4507         (ggc_loc_descriptor): ... this; update uses.
4508         * lra-eliminations.c (elim_table): Rename to ...
4509         (lra_elim_table): ... this; update uses.
4510         * bitmap.c (output_info): Rename to ...
4511         (bitmap_output_info): ... this; update uses.
4512         * gcse.c (expr): Rename to ...
4513         (gcse_expr) ... this; update uses.
4514         (occr): Rename to ...
4515         (gcse_occr): .. this; update uses.
4516         * tree-ssa-copy.c (prop_value_d): Rename to ...
4517         (prop_value_t): ... this.
4518         * predict.c (block_info_def): Rename to ...
4519         (block_info): ... this; update uses.
4520         (edge_info_def): Rename to ...
4521         (edge_info): ... this; update uses.
4522         * profile.c (bb_info): Rename to ...
4523         (bb_profile_info): ... this; update uses.
4524         * alloc-pool.c (output_info): Rename to ...
4525         (pool_output_info): ... this; update uses.
4526         * ipa-cp.c (topo_info): Rename to ..
4527         (ipa_topo_info): ... this; update uses.
4528         * tree-nrv.c (nrv_data): Rename to ...
4529         (nrv_data_t): ... this; update uses.
4530         * ipa-split.c (bb_info): Rename to ...
4531         (split_bb_info): ... this one.
4532         * profile.h (edge_info): Rename to ...
4533         (edge_profile_info): ... this one; update uses.
4534         * dse.c (bb_info): Rename to ...
4535         (dse_bb_info): ... this one; update uses.
4536         * cprop.c (occr): Rename to ...
4537         (cprop_occr): ... this one; update uses.
4538         (expr): Rename to ...
4539         (cprop_expr): ... this one; update uses.
4540
4541 2014-09-22  Jason Merrill  <jason@redhat.com>
4542
4543         * Makefile.in (check-parallel-%): Add @.
4544
4545 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
4546
4547         * config/aarch64/geniterators.sh: New.
4548         * config/aarch64/iterators.md (VDQF_DF): New.
4549         * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
4550         * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
4551
4552 2014-09-22  Peter A. Bigot  <pab@pabigot.com>
4553
4554         * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
4555         -lnosys when -msim absent.
4556
4557 2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
4558
4559         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
4560
4561 2014-09-22  Richard Biener  <rguenther@suse.de>
4562
4563         * gimplify.c (gimplify_init_constructor): Do not leave
4564         non-GIMPLE vector constructors around.
4565         * tree-cfg.c (verify_gimple_assign_single): Verify that
4566         CONSTRUCTORs have gimple elements.
4567
4568 2014-09-22  Jakub Jelinek  <jakub@redhat.com>
4569
4570         PR debug/63328
4571         * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
4572         insert a debug source bind stmt setting DEBUG_EXPR_DECL
4573         instead of a normal gimple assignment stmt.
4574
4575 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
4576
4577         * config/bfin/bfin.md: Fix use of constraints in define_split.
4578
4579 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4580
4581         * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
4582         GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
4583
4584 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4585
4586         * hard-reg-set.h: Include hash-table.h.
4587         (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
4588         field.
4589         * target-globals.c (target_globals::~target_globals): Call
4590         hard_regs->finalize.
4591         * rtl.h (subreg_shape): New structure.
4592         (shape_of_subreg): New function.
4593         (simplifiable_subregs): Declare.
4594         * reginfo.c (simplifiable_subreg): New structure.
4595         (simplifiable_subregs_hasher): Likewise.
4596         (simplifiable_subregs): New function.
4597         (invalid_mode_changes): Delete.
4598         (alid_mode_changes, valid_mode_changes_obstack): New variables.
4599         (record_subregs_of_mode): Remove subregs_of_mode parameter.
4600         Record valid mode changes in valid_mode_changes.
4601         (find_subregs_of_mode): Remove subregs_of_mode parameter.
4602         Update calls to record_subregs_of_mode.
4603         (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
4604         handling.  Initialize new variables.  Update call to
4605         find_subregs_of_mode.
4606         (invalid_mode_change_p): Check new variables instead of
4607         invalid_mode_changes.
4608         (finish_subregs_of_mode): Finalize new variables instead of
4609         invalid_mode_changes.
4610         (target_hard_regs::finalize): New function.
4611         * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
4612         even when CLASS_CANNOT_CHANGE_MODE is undefined.
4613
4614 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4615
4616         * combine.c (subst): Use simplify_subreg_regno rather than
4617         REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
4618
4619 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4620
4621         * rtl.h (subreg_info): Expand commentary
4622         * rtlanal.c (subreg_get_info): Likewise.
4623
4624 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
4625
4626         * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
4627         (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
4628         (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
4629
4630 2014-09-22  Zhenqiang Chen  <zhenqiang.chen@arm.com>
4631
4632         * config/arm/arm.c: #include "tm-constrs.h"
4633         (thumb1_size_rtx_costs): Adjust rtx costs.
4634
4635 2014-09-22  Hans-Peter Nilsson  <hp@axis.com>
4636
4637         * configure.ac (target_header_dir): Move block defining
4638         this to before the block setting inhibit_libc.
4639         (inhibit_libc): When considering $with_headers, just
4640         check it it's explicitly "no".  If not, also check if
4641         $target_header_dir/stdio.h is present.  If not, set
4642         inhibit_libc=true.
4643         * configure: Regenerate.
4644
4645 2014-09-21  Patrick Oppenlander  <pattyo.lists@gmail.com>
4646
4647         * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
4648
4649 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4650
4651         * config/rs6000/rs6000.md (div<mode>3): Fix comment.  Use a different
4652         insn for divides by integer powers of two.
4653         (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
4654         (mod<mode>3): Fix formatting.
4655         (three anonymous define_insn and two define_split): Delete.
4656
4657 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4658
4659         * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
4660         *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
4661         (floatdisf2_internal2): Ditto.
4662         (ashrdi3_no_power): Ditto.  Fix formatting.
4663
4664 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4665
4666         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
4667         popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
4668         Tidy.
4669
4670 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4671
4672         * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
4673         constant, use addsi3 directly.
4674         (three anonymous define_insn, two define_split): Delete.
4675         (sub<mode>3): Move.  Do not allow constant second operand.
4676         Generate different insn for constant first operand.
4677         (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
4678         (subf<mode>3_imm): New.
4679         (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
4680         (*plus_ltu<mode>): Only handle registers.
4681         (*plus_ltu<mode>_1): New.  Handle integer third operand.
4682         (*plus_gtu<mode>): Only handle registers.
4683         (*plus_gtu<mode>_1): New.  Handle integer third operand.
4684
4685 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4686
4687         * config/rs6000/rs6000.md (iorxor): New code_iterator.
4688         (iorxor): New code_attr.
4689         (IORXOR): New code_attr.
4690         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
4691         (ior<mode>3, xor<mode>3): Delete.
4692         (<iorxor><mode>3): New.
4693         (splitter for "big" integer ior, xor): New.
4694         (*bool<mode>3): Move.  Also handle AND.
4695         (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
4696         (splitter for "big" integer ior, xor): Delete.
4697
4698 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4699
4700         * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
4701         (two anonymous define_insn and two define_split): Delete.
4702         (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
4703
4704 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4705
4706         * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
4707         (two anonymous define_insn and two define_split): Delete.
4708         (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
4709
4710 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4711
4712         * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
4713
4714 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
4715
4716         * config/rs6000/predicates.md (ca_operand): Allow subregs.
4717         (input_operand): Do not allow ca_operand.
4718         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
4719         carry bit, allow SImode and Pmode.
4720         (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
4721
4722 2014-09-21  Uros Bizjak  <ubizjak@gmail.com>
4723
4724         * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
4725         clobbered registers using clobber_reg.  Remove UNSPEC decoration.
4726         * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
4727         (*call_rex64_ms_sysv): Remove.
4728         (*call_value_rex64_ms_sysv): Ditto.
4729         * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
4730
4731 2014-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>
4732
4733         * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
4734         operand 3 to "CnL".
4735
4736 2014-09-20  Andreas Schwab  <schwab@suse.de>
4737
4738         * config/ia64/ia64.md: Remove constraints from define_split
4739         patterns.
4740
4741 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4742
4743         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
4744         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
4745         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
4746         (get_dynamic_type): Remove.
4747         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
4748         (clear_speculation): Bring to ipa-deivrt.h
4749         (get_class_context): Rename to ...
4750         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
4751         (contains_type_p): Update.
4752         (get_dynamic_type): Rename to ...
4753         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
4754         (possible_polymorphic_call_targets): UPdate.
4755         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
4756         * ipa-prop.c (ipa_analyze_call_uses): Update.
4757
4758 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4759
4760         * ipa-visibility.c (varpool_node::externally_visible_p): Do not
4761         privatize dynamic TLS variables.
4762
4763 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4764
4765         * diagnostic.c (warning_n): New function.
4766         * diagnostic-core.h (warning_n): Declare.
4767         * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
4768         output dynamic counts when available.
4769
4770 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4771
4772         PR tree-optimization/63255
4773         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
4774         issue in setting body_removed flag.
4775
4776 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4777
4778         PR c++/61825
4779         * c-family/c-common.c (handle_alias_ifunc_attribute): Check
4780         that visibility change is possible
4781         (handle_weakref_attribute): Likewise.
4782         * cgraph.h (symtab_node): Add method get_create and
4783         field refuse_visibility_changes.
4784         (symtab_node::get_create): New method.
4785         * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
4786         * varasm.c (mark_weak): Verify that visibility change is
4787         possible.
4788
4789 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
4790
4791         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
4792         for base_reg_operand to be common between LO_SUM and PLUS.
4793         (fusion_gpr_mem_combo): New predicate to match a fused address
4794         that combines the addis and memory offset address.
4795
4796         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
4797         calling signature.
4798         (emit_fusion_gpr_load): Likewise.
4799
4800         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
4801         signature to pass each argument separately, rather than
4802         using an operands array.  Rewrite the insns found by peephole2 to
4803         be a single insn, rather than hoping the insns will still be
4804         together when the peephole pass is done.  Drop being called via a
4805         normal peephole.
4806         (emit_fusion_gpr_load): Change calling signature to be called from
4807         the fusion_gpr_load_<mode> insns with a combined memory address
4808         instead of the peephole pass passing the addis and offset
4809         separately.
4810
4811         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
4812         fusion.
4813         (power8 fusion peephole): Drop support for doing power8 via a
4814         normal peephole that was created by the peephole2 pass.
4815         (power8 fusion peephole2): Create a new insn with the fused
4816         address, so that the fused operation is kept together after
4817         register allocation is done.
4818         (fusion_gpr_load_<mode>): Likewise.
4819
4820 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
4821
4822         PR lto/63286
4823         * tree.c (need_assembler_name_p): Do not mangle variadic types.
4824
4825 2014-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
4826
4827         * recog.c (scratch_operand): Do not simply allow all hard registers:
4828         only allow those that are allocatable.
4829
4830 2014-09-19  Felix Yang  <felix.yang@huawei.com>
4831
4832         * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
4833         comments and fix spacing to conform to coding style.
4834
4835 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4836
4837         * genrecog.c (validate_pattern): Allow empty constraints in
4838         a match_scratch.
4839
4840 2014-09-19  Aldy Hernandez  <aldyh@redhat.com>
4841
4842         * dwarf2out.c (decl_ultimate_origin): Update comment.
4843         * tree.c (block_ultimate_origin): Same.
4844
4845 2014-09-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4846
4847         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
4848         Update GCC version name to GCC 5.
4849         (rs6000_function_arg_boundary): Likewise.
4850         (rs6000_function_arg): Likewise.
4851
4852 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4853
4854         * config/sh/sh.md: Fix use of constraints in define_split.
4855
4856 2014-09-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
4857
4858         PR ipa/61998
4859         * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
4860
4861 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4862
4863         * doc/md.texi (Modifiers): Consistently use "read/write"
4864         nomenclature rather than "input/output".
4865         * genrecog.c (constraints_supported_in_insn_p): New.
4866         (validate_pattern): If needed, also check constraints on
4867         MATCH_SCRATCH operands.
4868         * genoutput.c (validate_insn_alternatives): Catch earlyclobber
4869         operands with no '=' or '+' modifier.
4870
4871 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
4872
4873         * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
4874         scratch register as written.
4875
4876 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4877
4878         * config/s390/s390.c (s390_emit_epilogue): Remove bogus
4879         assignment.
4880
4881 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4882
4883         * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
4884         expanders.
4885
4886 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4887
4888         PR target/62662
4889         * config/s390/s390.c (s390_emit_epilogue): When doing the return
4890         address load optimization force s390_optimize_prologue to leave it
4891         that way.  Only do the optimization if we already decided to push
4892         r14 into a stack slot.
4893
4894 2014-09-19  Marat Zakirov  <m.zakirov@samsung.com>
4895
4896         * asan.c (build_check_stmt): Alignment arg was added.
4897         (asan_expand_check_ifn): Optimization for alignment >= 8.
4898
4899 2014-09-19  Olivier Hainque  <hainque@adacore.com>
4900
4901         * config/i386/vxworksae.h: Remove obsolete definitions.
4902         (STACK_CHECK_PROTECT): Define.
4903         * config/i386/vx-common.h: Remove.  Merge contents within
4904         config/i386/vxworks.h.
4905         * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
4906         i386/vx-common.h.
4907
4908 2014-09-19  Olivier Hainque  <hainque@adacore.com>
4909
4910         * config.gcc (powerpc-wrs-vxworksmils): New configuration.
4911         * config/rs6000/t-vxworksmils: New file.
4912         * config/rs6000/vxworksmils.h: New file.
4913
4914 2014-09-19  Olivier Hainque  <hainque@adacore.com>
4915
4916         * varasm.c (default_section_type_flags): Flag .persistent.bss
4917         sections as SECTION_BSS.
4918
4919 2014-09-19  Nick Clifton  <nickc@redhat.com>
4920
4921         * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
4922         pop'ed registers so that DCE does not eliminate them.
4923
4924 2014-09-18  Jan Hubicka  <hubicka@ucw.cz>
4925
4926         PR lto/63298
4927         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
4928
4929 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
4930
4931         * system.h (LIBGCC2_TF_CEXT): Poison.
4932         * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
4933         * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
4934         * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
4935         * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
4936         * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
4937         * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
4938         * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
4939         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
4940         * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
4941
4942 2014-09-19  Kito Cheng  <kito@0xlab.org>
4943
4944         * except.h: Fix header guard.
4945         * addresses.h: Add missing header guard.
4946         * cfghooks.h: Likewise.
4947         * collect-utils.h: Likewise.
4948         * collect2-aix.h: Likewise.
4949         * conditions.h: Likewise.
4950         * cselib.h: Likewise.
4951         * dwarf2asm.h: Likewise.
4952         * graphds.h: Likewise.
4953         * graphite-scop-detection.h: Likewise.
4954         * gsyms.h: Likewise.
4955         * hw-doloop.h: Likewise.
4956         * incpath.h: Likewise.
4957         * ipa-inline.h: Likewise.
4958         * ipa-ref.h: Likewise.
4959         * ira-int.h: Likewise.
4960         * ira.h: Likewise.
4961         * lra-int.h: Likewise.
4962         * lra.h: Likewise.
4963         * lto-section-names.h: Likewise.
4964         * read-md.h: Likewise.
4965         * reload.h: Likewise.
4966         * rtl-error.h: Likewise.
4967         * sdbout.h: Likewise.
4968         * targhooks.h: Likewise.
4969         * tree-affine.h: Likewise.
4970         * xcoff.h: Likewise.
4971         * xcoffout.h: Likewise.
4972
4973 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
4974
4975         PR debug/63285
4976         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
4977         if advance != 0.
4978
4979 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
4980
4981         PR target/61360
4982         * lra.c (lra): Call recog_init.
4983
4984 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
4985
4986         PR c++/62017
4987         * asan.c (transform_statements): Don't instrument clobber statements.
4988
4989 2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4990
4991         * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
4992         to neon_load1_1reg<q>.
4993
4994 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
4995
4996         PR debug/63284
4997         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
4998         if there are only debug stmts after the noreturn call, instead
4999         remove the debug stmts.
5000
5001 2014-09-17  Jan Hubicka  <hubicka@ucw.cz>
5002
5003         * ipa-devirt.c (type_pair, default_hashset_traits): New types.
5004         (odr_types_equivalent_p): Use pair hash.
5005         (odr_subtypes_equivalent_p): Likewise, do structural compare
5006         on ODR types that may be mismatched.
5007         (warn_odr): Support warning when only one field is given.
5008         (odr_types_equivalent_p): Strenghten comparsions made;
5009         support VOIDtype.
5010         (add_type_duplicate): Update VISITED hash set.
5011
5012 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5013
5014         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
5015         Enable selection of 'posix' or no thread model.
5016
5017 2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
5018
5019         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
5020         when architecture is older than ARMv7.
5021
5022 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
5023
5024         PR target/61853
5025         * config/pa/pa.c (pa_function_value): Directly handle aggregates
5026         that fit exactly in a word or double word.
5027
5028 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
5029
5030         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
5031         zmm/k regs support.
5032
5033 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5034             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5035             Anna Tikhonova  <anna.tikhonova@intel.com>
5036             Ilya Tocar  <ilya.tocar@intel.com>
5037             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5038             Ilya Verbin  <ilya.verbin@intel.com>
5039             Kirill Yukhin  <kirill.yukhin@intel.com>
5040             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5041
5042         * config/i386/i386.c
5043         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
5044         * config/i386/sse.md
5045         (define_mode_iterator VI48F_256): New.
5046         (define_mode_attr extract_type): Ditto.
5047         (define_mode_attr extract_suf): Ditto.
5048         (define_mode_iterator AVX512_VEC): Ditto.
5049         (define_expand
5050         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
5051         AVX512_VEC.
5052         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
5053         (define_insn
5054         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
5055         Ditto.
5056         (define_mode_attr extract_type_2): Ditto.
5057         (define_mode_attr extract_suf_2): Ditto.
5058         (define_mode_iterator AVX512_VEC_2): Ditto.
5059         (define_expand
5060         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
5061         AVX512_VEC_2 mode iterator.
5062         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
5063         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
5064         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
5065         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
5066         (define_split for V16FI mode): Ditto.
5067         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
5068         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
5069         (define_split for VI8F_256 mode): Ditto.
5070         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
5071         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
5072         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
5073         (define_split for VI4F_256 mode): Ditto.
5074         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
5075         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
5076         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
5077         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
5078         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
5079         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
5080         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
5081         Update `type' attribute, remove explicit `memory' attribute calculation.
5082
5083 2014-09-16  Kito Cheng  <kito@0xlab.org>
5084
5085         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
5086         ira_spilled_reg_stack_slots_num if using lra.
5087         (do_reload): Remove release ira_spilled_reg_stack_slots part.
5088         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
5089         make sure not using lra.
5090         (ira_reuse_stack_slot): Likewise.
5091         (ira_mark_new_stack_slot): Likewise.
5092
5093 2014-09-15  Andi Kleen  <ak@linux.intel.com>
5094
5095         * function.c (allocate_struct_function): Force
5096         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
5097         profiling is disabled.
5098
5099 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
5100
5101         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
5102         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
5103         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
5104         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
5105         macro with statically checked member functions.
5106         * rtl.h (rtx_insn::deleted): New method.
5107         (rtx_insn::set_deleted): Likewise.
5108         (rtx_insn::set_undeleted): Likewise.
5109         (INSN_DELETED_P): Remove.
5110
5111 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
5112
5113         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
5114         result of emit_jump_insn_before to a new variable.
5115         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
5116         (mark_jump_label_1): Likewise.
5117         (mark_jump_label_asm): Likewise.
5118         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
5119         * rtl.h (mark_jump_label): Adjust.
5120
5121 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
5122
5123         * Makefile.in (dg_target_exps): Remove.
5124         (check_gcc_parallelize): Change to just an upper bound number.
5125         (check-%-subtargets): Always print the non-parallelized goals.
5126         (check_p_vars, check_p_comma, check_p_subwork): Remove.
5127         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
5128         check_p_numbers3, check_p_numbers4, check_p_numbers5,
5129         check_p_numbers6): New variables.
5130         (check_p_numbers): Set to sequence from 1 to 9999.
5131         (check_p_subdirs): Set to sequence from 1 to minimum of
5132         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
5133         or 128.
5134         (check-%, check-parallel-%): Rewritten so that for parallelized
5135         testing each job runs all the *.exp files, with
5136         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
5137
5138 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
5139
5140         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
5141         rtx to rtx_insn *.
5142         (arc_sets_cc_p): Likewise.
5143         * config/arc/arc.c (arc_print_operand): Use methods of
5144         "final_sequence" for clarity, and to enable strengthening of
5145         locals "jump" and "delay" from rtx to rtx_insn *.
5146         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
5147         rtx_insn *; use method of rtx_sequence for typesafety.
5148         (arc_get_insn_variants): Use insn method of rtx_sequence for
5149         typesafety.
5150         (arc_pad_return): Likewise.
5151         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
5152         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
5153         dyn_cast to rtx_sequence *, using insn method for typesafety.
5154         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
5155         rtx_sequence * and use insn method when invoking get_attr_length.
5156         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
5157         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
5158         rtx_sequence *, introducing a local "seq", using its insn method
5159         from typesafety and clarity.
5160         (add_sched_insns_for_speculation): Strengthen local "next" from
5161         rtx to rtx_insn *.
5162         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
5163         (predicate_insn): Likewise.
5164         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
5165         second param.
5166         * config/cris/cris.c (cris_notice_update_cc): Likewise.
5167         * config/epiphany/epiphany-protos.h
5168         (extern void epiphany_insert_mode_switch_use): Likewise for param
5169         "insn".
5170         (get_attr_sched_use_fpu): Likewise for param.
5171         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
5172         Likewise for param "insn".
5173         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
5174         param "insn" of "target_insert_mode_switch_use" callback.
5175         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
5176         (frv_issues_to_branch_unit_p): Likewise.
5177         (frv_pack_insn_p): Likewise.
5178         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
5179         const rtx * (i.e. mutable rtx_def * const *) to
5180         rtx_insn * const *.
5181         * config/i386/i386-protos.h (standard_sse_constant_opcode):
5182         Strengthen first param from rtx to rtx_insn *.
5183         (output_fix_trunc): Likewise.
5184         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
5185         (output_fix_trunc): Likewise.
5186         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
5187         local "insn".
5188         (min_insn_size): Likewise for param "insn".
5189         (get_mem_group): Likewise.
5190         (is_cmp): Likewise.
5191         (get_insn_path): Likewise.
5192         (get_insn_group): Likewise.
5193         (count_num_restricted): Likewise.
5194         (fits_dispatch_window): Likewise.
5195         (add_insn_window): Likewise.
5196         (add_to_dispatch_window): Likewise.
5197         (debug_insn_dispatch_info_file): Likewise.
5198         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
5199         first param.
5200         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
5201         "cmp" and local "prev".
5202         (m32c_output_compare): Likewise for param "insn".
5203         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
5204         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
5205         (define_predicate "large_insn_p"): Likewise.
5206         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
5207         param from rtx to rtx_insn *.
5208         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
5209         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
5210         (m68k_sched_attr_size): Likewise.
5211         (sched_get_opxy_mem_type): Likewise for param "insn".
5212         (m68k_sched_attr_op_mem): Likewise.
5213         (sched_mem_operand_p): Likewise.
5214         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
5215         * config/mep/mep.c (mep_multi_slot): Likewise.
5216         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
5217         first param.
5218         (mips_sync_loop_insns): Likewise.
5219         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
5220         method of "final_sequence" for typesafety.
5221         (mips_process_sync_loop): Strengthen param "insn" from rtx to
5222         rtx_insn *.
5223         (mips_output_sync_loop): Likewise.
5224         (mips_sync_loop_insns): Likewise.
5225         (mips_74k_agen_init): Likewise.
5226         (mips_sched_init): Use NULL rather than NULL_RTX when working with
5227         insns.
5228         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
5229         Strengthen param "insn" from rtx to rtx_insn *.
5230         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
5231         local "insn".
5232         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
5233         param.
5234         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
5235         "insn".  Use method of rtx_sequence for typesafety.
5236         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
5237         rtx_insn *.
5238         (branch_needs_nop_p): Likewise.
5239         (use_skip_p): Likewise.
5240         (pa_insn_refs_are_delayed): Likewise.
5241         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
5242         for locals "insn", "ninsn".
5243         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
5244         "insn".
5245         (is_cracked_insn): Likewise.
5246         (is_branch_slot_insn): Likewise.
5247         (is_nonpipeline_insn): Likewise.
5248         (insn_terminates_group_p): Likewise.
5249         (insn_must_be_first_in_group): Likewise.
5250         (insn_must_be_last_in_group): Likewise.
5251         (force_new_group): Likewise for param "next_insn".
5252         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
5253         "insn".
5254         (s390_sched_score): Likewise.
5255         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
5256         (rtx sfunc_uses_reg): Likewise for sole param.
5257         * config/sh/sh.c (sh_print_operand): Use insn method of
5258         final_sequence for typesafety.
5259         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
5260         Use insn method of final_sequence for typesafety.
5261         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
5262         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
5263         for param.
5264         (eligible_for_return_delay): Likewise.
5265         (eligible_for_sibcall_delay): Likewise.
5266         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
5267         (eligible_for_return_delay): Likewise.
5268         (eligible_for_sibcall_delay): Likewise.
5269         * config/stormy16/stormy16-protos.h
5270         (xstormy16_output_cbranch_hi): Likewise for final param.
5271         (xstormy16_output_cbranch_si): Likewise.
5272         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
5273         (xstormy16_output_cbranch_si): Likewise.
5274         * config/v850/v850-protos.h (notice_update_cc): Likewise.
5275         * config/v850/v850.c (notice_update_cc): Likewise.
5276
5277         * final.c (get_attr_length_1): Strengthen param "insn" and param
5278         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
5279         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
5280         (get_attr_min_length): Likewise.
5281         (shorten_branches): Likewise for signature of locals "length_fun"
5282         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
5283         from a checked cast and use its methods for clarity and to enable
5284         strengthening local "inner_insn" from rtx to rtx_insn *.
5285         * genattr.c (gen_attr): When writing out the prototypes of the
5286         various generated "get_attr_" functions, strengthen the params of
5287         the non-const functions from rtx to rtx_insn *.
5288         Similarly, strengthen the params of insn_default_length,
5289         insn_min_length, insn_variable_length_p, insn_current_length.
5290         (main): Similarly, strengthen the param of num_delay_slots,
5291         internal_dfa_insn_code, insn_default_latency, bypass_p,
5292         insn_latency, min_issue_delay, print_reservation,
5293         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
5294         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
5295         to hook_int_rtx_insn_unreachable.
5296         * genattrtab.c (write_attr_get): When writing out the generated
5297         "get_attr_" functions, strengthen the param "insn" from rtx to
5298         rtx_insn *, eliminating a checked cast.
5299         (make_automaton_attrs): When writing out prototypes of
5300         "internal_dfa_insn_code_", "insn_default_latency_" functions
5301         and the "internal_dfa_insn_code" and "insn_default_latency"
5302         callbacks, strengthen their params from rtx to rtx_insn *
5303         * genautomata.c (output_internal_insn_code_evaluation): When
5304         writing out code, add a checked cast from rtx to rtx_insn * when
5305         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
5306         (output_dfa_insn_code_func): Strengthen param of generated
5307         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
5308         (output_trans_func): Likewise for generated function
5309         "state_transition".
5310         (output_internal_insn_latency_func): When writing out generated
5311         function "internal_insn_latency", rename params from "insn" and
5312         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
5313         locals "insn" and "insn2" as rtx_insn * with checked casts once
5314         we've proven that we're not dealing with const0_rtx.
5315         (output_insn_latency_func):  Strengthen param of generated
5316         function "insn_latency" from rtx to rtx_insn *.
5317         (output_print_reservation_func): Likewise for generated function
5318         "print_reservation".
5319         (output_insn_has_dfa_reservation_p): Likewise for generated
5320         function "insn_has_dfa_reservation_p".
5321         * hooks.c (hook_int_rtx_unreachable): Rename to...
5322         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
5323         from rtx to rtx_insn *.
5324         * hooks.h (hook_int_rtx_unreachable): Likewise.
5325         (extern int hook_int_rtx_insn_unreachable): Likewise.
5326         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
5327         (get_attr_min_length): Likewise.
5328         * recog.c (get_enabled_alternatives): Likewise.
5329         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
5330         * reorg.c (find_end_label): Introduce local rtx "pat" and
5331         strengthen local "insn" from rtx to rtx_insn *.
5332         (redundant_insn): Use insn method of "seq" rather than element for
5333         typesafety; strengthen local "control" from rtx to rtx_insn *.
5334         * resource.c (mark_referenced_resources): Add checked cast to
5335         rtx_insn * within INSN/JUMP_INSN case.
5336         (mark_set_resources): Likewise.
5337         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
5338         rtx to rtx_insn *.
5339
5340 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
5341
5342         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
5343         param "label" from rtx to rtx_insn *.
5344         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
5345         and local "op".
5346         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
5347         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
5348         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
5349         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
5350         * final.c (default_label_align_after_barrier_max_skip): Strengthen
5351         param from rtx to rtx_insn *.
5352         (default_loop_align_max_skip): Likewise.
5353         (default_label_align_max_skip): Likewise.
5354         (default_jump_align_max_skip): Likewise.
5355         * target.def (label_align_after_barrier_max_skip): Likewise.
5356         (loop_align_max_skip): Likewise.
5357         (label_align_max_skip): Likewise.
5358         (jump_align_max_skip): Likewise.
5359         * targhooks.h (default_label_align_after_barrier_max_skip):
5360         Likewise.
5361         (default_loop_align_max_skip): Likewise.
5362         (default_label_align_max_skip): Likewise.
5363         (default_jump_align_max_skip): Likewise.
5364
5365 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
5366
5367         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
5368         from const_rtx to const rtx_insn *.  Update union members from rtx
5369         to rtx_insn *.
5370         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
5371         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
5372         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
5373         strengthen both params from const_rtx to const rtx_insn *.
5374         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
5375         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
5376         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
5377         rtx_insn *.
5378         * target.def (can_follow_jump): Strengthen both params from
5379         const_rtx to const rtx_insn *, and update default implementation
5380         from hook_bool_const_rtx_const_rtx_true to
5381         hook_bool_const_rtx_insn_const_rtx_insn_true.
5382
5383 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
5384
5385         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
5386         "insn" from rtx to rtx_insn *.
5387         * sched-int.h (deps_start_bb): Likewise for 2nd param.
5388
5389 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5390             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5391             Anna Tikhonova  <anna.tikhonova@intel.com>
5392             Ilya Tocar  <ilya.tocar@intel.com>
5393             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5394             Ilya Verbin  <ilya.verbin@intel.com>
5395             Kirill Yukhin  <kirill.yukhin@intel.com>
5396             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5397
5398         * config/i386/sse.md
5399         (define_insn "vcvtph2ps<mask_name>"): Add masking.
5400         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
5401         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
5402         (define_expand "vcvtps2ph_mask"): New.
5403         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
5404         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
5405         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
5406
5407 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5408             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5409             Anna Tikhonova  <anna.tikhonova@intel.com>
5410             Ilya Tocar  <ilya.tocar@intel.com>
5411             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5412             Ilya Verbin  <ilya.verbin@intel.com>
5413             Kirill Yukhin  <kirill.yukhin@intel.com>
5414             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5415
5416         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
5417         New.
5418         (define_mode_iterator VI24_AVX512BW_1): Ditto.
5419         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
5420         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
5421         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
5422         also for TARGET_AVX512VL.
5423         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
5424
5425 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
5426
5427         * doc/install.texi (Options specification): add
5428         --disable-libsanitizer item.
5429
5430 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
5431             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5432
5433         PR target/61407
5434         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
5435         and above.
5436         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
5437         kernel version check to avoid incrementing it after every major OS X
5438         release.
5439         (darwin_default_min_version): Avoid static memory buffer.
5440
5441 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
5442
5443         * tree.c (need_assembler_name_p): Store C++ type mangling only
5444         for aggregates.
5445
5446 2014-09-13  Marek Polacek  <polacek@redhat.com>
5447
5448         * tree.c (protected_set_expr_location): Don't check whether T is
5449         non-null here.
5450
5451 2014-09-12  DJ Delorie  <dj@redhat.com>
5452
5453         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
5454         (extend_and_shift1_hipsi2): Likewise.
5455         (extend_and_shift2_hipsi2): Likewise.
5456
5457 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
5458
5459         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
5460         with NULL when dealing with an insn.
5461         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
5462         from rtx to rtx_insn *.
5463         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
5464         const_rtx to const rtx_insn *.
5465         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
5466
5467 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
5468
5469         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
5470         assert.
5471
5472 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
5473
5474         * target.def (libgcc_floating_mode_supported_p): New hook.
5475         * targhooks.c (default_libgcc_floating_mode_supported_p): New
5476         function.
5477         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
5478         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
5479         (LIBGCC2_HAS_TF_MODE): Remove.
5480         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
5481         * doc/tm.texi: Regenerate.
5482         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
5483         machine mode.
5484         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
5485         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
5486         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
5487         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
5488         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5489         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
5490         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
5491         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
5492         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
5493         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
5494         function.
5495         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
5496         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5497         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5498         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5499         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5500         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5501         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5502         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
5503         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
5504         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
5505         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
5506         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
5507         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
5508         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
5509         Remove.
5510         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
5511         New macro.
5512         (ia64_libgcc_floating_mode_supported_p): New function.
5513         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
5514         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
5515         (IA64_NO_LIBGCC_TFMODE): Define.
5516         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
5517         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
5518         macro.
5519         (pdp11_scalar_mode_supported_p): New function.
5520         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
5521         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
5522
5523 2014-09-12  Richard Biener  <rguenther@suse.de>
5524
5525         PR middle-end/63237
5526         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
5527
5528 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
5529
5530         * tree.c (integer_each_onep): New function.
5531         * tree.h (integer_each_onep): Declare it.
5532         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
5533         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
5534         (X & 1) == 0 for vector and complex.
5535
5536 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5537
5538         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
5539         for A57.
5540         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
5541         cost to spilling from integer to FP registers.
5542
5543 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5544
5545         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
5546         move handling.
5547         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
5548         are now handled correctly.
5549
5550 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5551
5552         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
5553         handling of CALLER_SAVE_REGS and POINTER_REGS.
5554
5555 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
5556
5557         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
5558         the number of hard registers.
5559
5560 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5561             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5562             Anna Tikhonova  <anna.tikhonova@intel.com>
5563             Ilya Tocar  <ilya.tocar@intel.com>
5564             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5565             Ilya Verbin  <ilya.verbin@intel.com>
5566             Kirill Yukhin  <kirill.yukhin@intel.com>
5567             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5568
5569         * config/i386/sse.md
5570         (define_mode_iterator VI48_AVX512VL): New.
5571         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
5572         "avx512f_vternlog<mode>_maskz" and update mode iterator.
5573         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
5574         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
5575         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
5576         "avx512f_vternlog<mode>_mask" and update mode iterator.
5577         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
5578         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
5579         iterator.
5580         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
5581         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
5582         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
5583         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
5584         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
5585         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
5586
5587 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5588             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5589             Anna Tikhonova  <anna.tikhonova@intel.com>
5590             Ilya Tocar  <ilya.tocar@intel.com>
5591             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5592             Ilya Verbin  <ilya.verbin@intel.com>
5593             Kirill Yukhin  <kirill.yukhin@intel.com>
5594             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5595
5596         * config/i386/sse.md (VI128_256): Delete.
5597         (define_mode_iterator VI124_256): New.
5598         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
5599         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
5600         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
5601         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
5602         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
5603         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
5604         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
5605         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
5606         iterator.
5607         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
5608         in presence of AVX-512.
5609
5610 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5611             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5612             Anna Tikhonova  <anna.tikhonova@intel.com>
5613             Ilya Tocar  <ilya.tocar@intel.com>
5614             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5615             Ilya Verbin  <ilya.verbin@intel.com>
5616             Kirill Yukhin  <kirill.yukhin@intel.com>
5617             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5618
5619         * config/i386/sse.md
5620         (define_expand "<avx512>_gathersi<mode>"): Rename from
5621         "avx512f_gathersi<mode>".
5622         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
5623         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
5624         (define_expand "<avx512>_gatherdi<mode>"): Rename from
5625         "avx512f_gatherdi<mode>".
5626         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
5627         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
5628         wide versions.
5629         (define_expand "<avx512>_scattersi<mode>"): Rename from
5630         "avx512f_scattersi<mode>".
5631         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
5632         (define_expand "<avx512>_scatterdi<mode>"): Rename from
5633         "avx512f_scatterdi<mode>".
5634         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
5635
5636 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
5637
5638         * ira.h (ira_finish_once): Delete.
5639         * ira-int.h (target_ira_int::~target_ira_int): Declare.
5640         (target_ira_int::free_ira_costs): Likewise.
5641         (target_ira_int::free_register_move_costs): Likewise.
5642         (ira_finish_costs_once): Delete.
5643         * ira.c (free_register_move_costs): Replace with...
5644         (target_ira_int::free_register_move_costs): ...this new function.
5645         (target_ira_int::~target_ira_int): Define.
5646         (ira_init): Call free_register_move_costs as a member function rather
5647         than a global function.
5648         (ira_finish_once): Delete.
5649         * ira-costs.c (free_ira_costs): Replace with...
5650         (target_ira_int::free_ira_costs): ...this new function.
5651         (ira_init_costs): Call free_ira_costs as a member function rather
5652         than a global function.
5653         (ira_finish_costs_once): Delete.
5654         * target-globals.c (target_globals::~target_globals): Call the
5655         target_ira_int destructor.
5656         * toplev.c: Include lra.h.
5657         (finalize): Call lra_finish_once rather than ira_finish_once.
5658
5659 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
5660
5661         * common.opt (flto-odr-type-merging): New flag.
5662         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
5663         (types_same_for_odr): Likewise.
5664         (odr_subtypes_equivalent_p): Likewise.
5665         (add_type_duplicate): Do not walk type variants.
5666         (register_odr_type): New function.
5667         * ipa-utils.h (register_odr_type): Declare.
5668         (odr_type_p): New function.
5669         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
5670         TYPE_DECLs
5671         * doc/invoke.texi (-flto-odr-type-merging): Document.
5672         * tree.c (need_assembler_name_p): Compute ODR names when asked
5673         for it.
5674         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
5675
5676 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
5677
5678         PR target/63228
5679         * config/i386/i386.c (ix86_option_override_internal): Also turn
5680         off OPTION_MASK_ABI_X32 for -m16.
5681
5682 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
5683
5684         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
5685         GPR instead of P.
5686
5687 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
5688
5689         PR target/58757
5690         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
5691         Directly forward to __*_DENORM_MIN__.
5692
5693 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
5694
5695         * rtl.h (LABEL_REF_LABEL): New macro.
5696
5697         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
5698         of XEXP (, 0), where we know that we have a LABEL_REF.
5699         * cfgbuild.c (make_edges): Likewise.
5700         (purge_dead_tablejump_edges): Likewise.
5701         * cfgexpand.c (convert_debug_memory_address): Likewise.
5702         * cfgrtl.c (patch_jump_insn): Likewise.
5703         * combine.c (distribute_notes): Likewise.
5704         * cse.c (hash_rtx_cb): Likewise.
5705         (exp_equiv_p): Likewise.
5706         (fold_rtx): Likewise.
5707         (check_for_label_ref): Likewise.
5708         * cselib.c (rtx_equal_for_cselib_1): Likewise.
5709         (cselib_hash_rtx): Likewise.
5710         * emit-rtl.c (mark_label_nuses): Likewise.
5711         * explow.c (convert_memory_address_addr_space): Likewise.
5712         * final.c (output_asm_label): Likewise.
5713         (output_addr_const): Likewise.
5714         * gcse.c (add_label_notes): Likewise.
5715         * genconfig.c (walk_insn_part): Likewise.
5716         * genrecog.c (validate_pattern): Likewise.
5717         * ifcvt.c (cond_exec_get_condition): Likewise.
5718         (noce_emit_store_flag): Likewise.
5719         (noce_get_alt_condition): Likewise.
5720         (noce_get_condition): Likewise.
5721         * jump.c (maybe_propagate_label_ref): Likewise.
5722         (mark_jump_label_1): Likewise.
5723         (redirect_exp_1): Likewise.
5724         (rtx_renumbered_equal_p): Likewise.
5725         * lra-constraints.c (operands_match_p): Likewise.
5726         * reload.c (operands_match_p): Likewise.
5727         (find_reloads): Likewise.
5728         * reload1.c (set_label_offsets): Likewise.
5729         * reorg.c (get_branch_condition): Likewise.
5730         * rtl.c (rtx_equal_p_cb): Likewise.
5731         (rtx_equal_p): Likewise.
5732         * rtlanal.c (reg_mentioned_p): Likewise.
5733         (rtx_referenced_p): Likewise.
5734         (get_condition): Likewise.
5735         * sched-vis.c (print_value): Likewise.
5736         * varasm.c (const_hash_1): Likewise.
5737         (compare_constant): Likewise.
5738         (const_rtx_hash_1): Likewise.
5739         (output_constant_pool_1): Likewise.
5740
5741 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
5742
5743         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
5744         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
5745         instead of minus.
5746         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
5747         cr6_test_for_lt_reverse): Ditto.
5748
5749 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
5750
5751         PR c++/61489
5752         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
5753
5754 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
5755
5756         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
5757         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
5758         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
5759         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
5760         Delete.
5761
5762         (aarch64_fold_builtin): Remove all reinterpret cases.
5763
5764         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
5765
5766         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
5767
5768         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
5769         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
5770         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
5771         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
5772         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
5773         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
5774         aarch64_reinterpretv2df<mode>): Delete.
5775
5776         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
5777
5778         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
5779         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
5780         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
5781         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
5782         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
5783         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
5784         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
5785         vreinterpret_u32_f64): Use cast.
5786
5787         * config/aarch64/iterators.md (VD_RE): Delete.
5788
5789 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
5790
5791         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
5792         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
5793         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
5794         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
5795         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
5796         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
5797         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
5798         Replace inline assembler with __aarch64_vset_lane_any.
5799
5800 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
5801
5802         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
5803         types.
5804         (vmull_high_lane_s32): Likewise.
5805         (vmull_high_lane_u16): Likewise.
5806         (vmull_high_lane_u32): Likewise.
5807
5808 2014-09-11  Jason Merrill  <jason@redhat.com>
5809
5810         PR c++/58678
5811         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
5812
5813 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
5814
5815         PR target/63223
5816         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
5817         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
5818         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
5819
5820 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5821             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5822             Anna Tikhonova  <anna.tikhonova@intel.com>
5823             Ilya Tocar  <ilya.tocar@intel.com>
5824             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5825             Ilya Verbin  <ilya.verbin@intel.com>
5826             Kirill Yukhin  <kirill.yukhin@intel.com>
5827             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5828
5829         * config/i386/sse.md
5830         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
5831         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
5832         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
5833         New.
5834         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
5835         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
5836         iterator.
5837         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
5838         New.
5839         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
5840         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
5841         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
5842         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
5843         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
5844         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
5845         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
5846         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
5847         iterator.
5848         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
5849         New.
5850         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
5851         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
5852         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
5853
5854 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
5855
5856         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
5857         to access removed nodes.
5858
5859 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
5860
5861         PR tree-optimization/63186
5862         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
5863         (mark_nonssa_use): Likewise.
5864         (verify_non_ssa_vars): Verify all header blocks for label
5865         definitions.
5866
5867 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5868             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5869             Anna Tikhonova  <anna.tikhonova@intel.com>
5870             Ilya Tocar  <ilya.tocar@intel.com>
5871             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5872             Ilya Verbin  <ilya.verbin@intel.com>
5873             Kirill Yukhin  <kirill.yukhin@intel.com>
5874             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5875
5876         * config/i386/sse.md
5877         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
5878         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
5879         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
5880         "<avx2_avx512f>_permvar<mode><mask_name>".
5881         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
5882         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
5883         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
5884         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
5885         Ditto.
5886         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
5887         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
5888         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
5889         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
5890
5891 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
5892
5893         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
5894         V2DF, V4SF, DF, and DI modes.
5895         (vsx_fmav2df2): Likewise.
5896         (vsx_float_fix_<mode>2): Likewise.
5897         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
5898
5899 2014-09-10  Xinliang David Li  <davidxl@google.com>
5900
5901         PR target/63209
5902         * config/arm/arm.md (movcond_addsi): Handle case where source
5903         and target operands are the same.
5904
5905 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
5906
5907         * final.c (this_is_asm_operands): Strengthen this variable from
5908         rtx to const rtx_insn *.
5909         * output.h (this_is_asm_operands): Likewise.
5910         * rtl-error.c (location_for_asm): Strengthen param "insn" from
5911         const_rtx to const rtx_insn *.
5912         (diagnostic_for_asm): Likewise.
5913         * rtl-error.h (error_for_asm): Likewise.
5914         (warning_for_asm): Likewise.
5915
5916 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
5917
5918         * genextract.c (print_header): When writing out insn_extract to
5919         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
5920         * recog.h (insn_extract): Strengthen the param from rtx to
5921         rtx_insn *.
5922
5923 2014-09-10  Mike Stump  <mikestump@comcast.net>
5924
5925         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
5926         8.6.1.
5927
5928 2014-09-10  Martin Jambor  <mjambor@suse.cz>
5929
5930         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
5931         (analyze): Do not set analyze flag if expand_thunk returns false;.
5932         (create_wrapper): Likewise.
5933         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
5934
5935 2014-09-10  Martin Jambor  <mjambor@suse.cz>
5936
5937         PR ipa/61654
5938         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
5939         new decl properly.  Analyze the new thunk if it is expanded.
5940
5941 2014-09-10  Andreas Schwab  <schwab@suse.de>
5942
5943         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
5944         [USED_FOR_TARGET]: Define.
5945
5946 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
5947
5948         * config/mips/mips.c (mips_secondary_reload_class): Handle
5949         regno < 0 case.
5950
5951 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
5952
5953         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
5954         assignment.
5955
5956 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
5957
5958         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
5959         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
5960         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
5961         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
5962         flag_delete_null_pointer_checks for them.
5963         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
5964         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
5965         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
5966         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
5967         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
5968         stmt's iterator.
5969         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
5970         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
5971         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
5972         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
5973         * doc/invoke.texi (-fsanitize=nonnull-attribute,
5974         -fsanitize=returns-nonnull-attribute): Document.
5975
5976         * ubsan.h (struct ubsan_mismatch_data): Removed.
5977         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
5978         * ubsan.c (ubsan_source_location): For unknown locations,
5979         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
5980         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
5981         Allow more than one location and arbitrary extra arguments passed
5982         in ... instead of through MISMATCH pointer.
5983         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
5984         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
5985         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
5986         callers.
5987
5988 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
5989             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
5990             Anna Tikhonova  <anna.tikhonova@intel.com>
5991             Ilya Tocar  <ilya.tocar@intel.com>
5992             Andrey Turetskiy  <andrey.turetskiy@intel.com>
5993             Ilya Verbin  <ilya.verbin@intel.com>
5994             Kirill Yukhin  <kirill.yukhin@intel.com>
5995             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
5996
5997         * config/i386/sse.md
5998         (define_mode_iterator VI48F): New.
5999         (define_insn "<avx512>_compress<mode>_mask"): Rename from
6000         "avx512f_compress<mode>_mask" and update mode iterator.
6001         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
6002         "avx512f_compressstore<mode>_mask" and update mode iterator.
6003         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
6004         "avx512f_expand<mode>_maskz" and update mode iterator.
6005         (define_insn "<avx512>_expand<mode>_mask"): Rename from
6006         "avx512f_expand<mode>_mask" and update mode iterator.
6007
6008 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
6009             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
6010             Anna Tikhonova  <anna.tikhonova@intel.com>
6011             Ilya Tocar  <ilya.tocar@intel.com>
6012             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6013             Ilya Verbin  <ilya.verbin@intel.com>
6014             Kirill Yukhin  <kirill.yukhin@intel.com>
6015             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6016
6017         * config/i386/i386.c
6018         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
6019         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
6020         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
6021         avx512dq_rangepv4sf_mask.
6022         * config/i386/sse.md
6023         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
6024         UNSPEC_RANGE.
6025         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
6026         (define_insn "reduces<mode>"): Ditto.
6027         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
6028         Ditto.
6029         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
6030         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
6031         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
6032
6033 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
6034             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
6035             Anna Tikhonova  <anna.tikhonova@intel.com>
6036             Ilya Tocar  <ilya.tocar@intel.com>
6037             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6038             Ilya Verbin  <ilya.verbin@intel.com>
6039             Kirill Yukhin  <kirill.yukhin@intel.com>
6040             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6041
6042         * config/i386/i386.c
6043         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
6044         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
6045         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
6046         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
6047         avx512vl_getmantv2df_mask.
6048         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
6049         avx512f_vgetmantv4sf_round.
6050         * config/i386/sse.md
6051         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
6052         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
6053         mode iterator.
6054         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
6055         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
6056         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
6057         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
6058         iterator..
6059         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
6060         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
6061         update mode iterator.
6062         (define_expand
6063         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
6064         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
6065         mode iterator.
6066         (define_insn
6067         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
6068         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
6069         update mode iterator.
6070         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
6071         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
6072         iterator..
6073         (define_insn
6074         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
6075         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
6076         mode iterator..
6077         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
6078         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
6079         update mode iterator.
6080         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
6081         "avx512f_getmant<mode><round_saeonly_name>".
6082
6083 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
6084
6085         PR ipa/63166
6086         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
6087
6088 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
6089             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
6090             Anna Tikhonova  <anna.tikhonova@intel.com>
6091             Ilya Tocar  <ilya.tocar@intel.com>
6092             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6093             Ilya Verbin  <ilya.verbin@intel.com>
6094             Kirill Yukhin  <kirill.yukhin@intel.com>
6095             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
6096
6097         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
6098         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
6099         (define_mode_iterator FMAMODE_AVX512): New.
6100         (define_mode_iterator FMAMODE): Remove conditions.
6101         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
6102         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
6103         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
6104         mode iterator.
6105         (define_mode_iterator FMAMODE_NOVF512): Remove.
6106         (define_insn "*fma_fmadd_<mode>"): Rename from
6107         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
6108         FMAMODE mode iterator.
6109         (define_mode_iterator VF_SF_AVX512VL): New.
6110         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
6111         Use VF_SF_AVX512VL mode iterator.
6112         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
6113         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
6114         iterator.
6115         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
6116         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6117         iterator.
6118         (define_insn "*fma_fmsub_<mode>"): Rename from
6119         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
6120         FMAMODE mode iterator.
6121         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
6122         Use VF_SF_AVX512VL mode iterator.
6123         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
6124         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
6125         iterator.
6126         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
6127         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6128         iterator.
6129         (define_insn "*fma_fnmadd_<mode>"): Rename from
6130         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
6131         use FMAMODE mode iterator.
6132         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
6133         Use VF_SF_AVX512VL mode iterator.
6134         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
6135         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
6136         iterator.
6137         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
6138         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6139         iterator.
6140         (define_insn "*fma_fnmsub_<mode>"): Rename from
6141         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
6142         FMAMODE mode iterator.
6143         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
6144         Use VF_SF_AVX512VL mode iterator.
6145         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
6146         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
6147         iterator.
6148         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
6149         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6150         iterator.
6151         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
6152         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
6153         use VF_AVX512VL mode iterator.
6154         (define_insn "*fma_fmaddsub_<mode>"): Rename from
6155         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
6156         remove subst usage.
6157         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
6158         Use VF_SF_AVX512VL mode iterator.
6159         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
6160         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
6161         iterator.
6162         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
6163         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6164         iterator.
6165         (define_insn "*fma_fmsubadd_<mode>"): Rename from
6166         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
6167         remove usage of subst.
6168         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
6169         Use VF_SF_AVX512VL mode iterator.
6170         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
6171         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
6172         iterator.
6173         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
6174         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
6175         iterator.
6176
6177 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
6178
6179         Revert r213751:
6180         * calls.c (precompute_arguments): Check
6181          promoted_for_signed_and_unsigned_p and set the promoted mode.
6182         (promoted_for_signed_and_unsigned_p): New function.
6183         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
6184         and set the promoted mode.
6185         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
6186         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
6187         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
6188
6189 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6190
6191         * opth-gen.awk: Generate mapping from cpp message reasons to the
6192         options that enable them.
6193         * doc/options.texi (CppReason): Document.
6194
6195 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6196
6197         * doc/invoke.texi (Wnormalized=): Update.
6198
6199 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
6200
6201         PR target/63195
6202         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
6203         operands.  Split off the constant operand alternative to ...
6204         (*bool<mode>3_imm): New.
6205
6206 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6207
6208         * rtl.h (single_set_2): Strengthen first param from const_rtx to
6209         const rtx_insn *, and move prototype to above...
6210         (single_set): ...this.  Convert this from a macro to an inline
6211         function, enforcing the requirement that the param is a const
6212         rtx_insn *.
6213         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
6214
6215         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
6216         Strengthen both params from rtx to rtx_insn *.
6217         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
6218         Likewise; introduce locals "producer_set", "consumer_set", using
6219         them in place of "producer" and "consumer" when dealing with SET
6220         rather than insn.
6221         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
6222         when invoking single_set in region guarded by INSN_P.
6223         (avr_out_bitop): Likewise.
6224         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
6225         region guarded by GET_CODE check, using methods to strengthen
6226         local "this_insn" from rtx to rtx_insn *, and for clarity.
6227         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
6228         Strengthen local "insn" from rtx to rtx_insn *.
6229         (define_insn_and_split "xload<mode>_A"): Likewise.
6230         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
6231         "insn".
6232         (find_load): Likewise for return type.
6233         (workaround_speculation): Likewise for both locals named
6234         "load_insn".
6235         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
6236         local "cc0_user".
6237         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
6238         for local "prev".
6239         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
6240         param 2.
6241         * config/h8300/h8300.c (notice_update_cc): Likewise.
6242         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
6243         "insn" and "dep_insn".
6244         (exact_store_load_dependency): Likewise for both params.
6245         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
6246         since this now clashes with inline function.  Instead, delay
6247         calling single_set until the point where its needed, and then
6248         assign the result to "compare_set" and rework the conditional that
6249         follows.
6250         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
6251         local "last" from rtx to rtx_insn *.
6252         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
6253         second param.
6254         (mips_store_data_bypass_p): Likewise for both params.
6255         * config/mips/mips.c (mips_load_store_insns): Likewise for second
6256         param.
6257         (mips_store_data_bypass_p): Likewise for both params.
6258         (mips_orphaned_high_part_p): Likewise for param "insn".
6259         * config/mn10300/mn10300.c (extract_bundle): Likewise.
6260         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
6261         Introduce local rtx "insn2_pat".
6262         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
6263         "ninsn".
6264         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
6265         Introduce local rtx "set", using it in place of "insn" for the
6266         result of single_set.  This appears to fix a bug, since the call
6267         to find_regno_note on a SET does nothing.
6268         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
6269         params from rtx to rtx_insn *.
6270         (set_to_load_agen): Likewise.
6271         * config/s390/s390.c (s390_label_align): Likewise for local
6272         "prev_insn".  Introduce new rtx locals "set" and "src", using
6273         them in place of "prev_insn" for the results of single_set
6274         and SET_SRC respectively.
6275         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
6276         Introduce new rtx local "set" using in place of "jump" for the
6277         result of single_set.  Use SET_SRC (set) rather than plain
6278         XEXP (set, 1).
6279         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
6280         rtx to rtx_insn *.
6281         (noncall_uses_reg): Likewise.
6282         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
6283         guarded by GET_CODE check, using its methods for clarity, and to
6284         enable strengthening local "this_insn" from rtx to rtx_insn *.
6285         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
6286         "insn" from rtx to rtx_insn *.
6287         (define_expand "umulhisi3"): Likewise.
6288         (define_expand "smulsi3_highpart"): Likewise.
6289         (define_expand "umulsi3_highpart"): Likewise.
6290         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
6291         local "after".  Replace GET_CODE check with a dyn_cast,
6292         introducing new local rtx_sequence * "seq", using insn method for
6293         typesafety.
6294
6295         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
6296         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
6297         place of "insn" once we're dealing with patterns rather than the
6298         input insn.
6299         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
6300         (scan_trace): Likewise for local "elt", updating lookups within
6301         sequence to use insn method rather than element method.
6302         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
6303         to rtx_insn *.
6304         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
6305         * ifcvt.c (noce_try_abs): Likewise for local "insn".
6306         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
6307         invoking single_set.
6308         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
6309         "insn" from rtx to rtx_insn *.
6310         (skip_usage_debug_insns): Likewise for return type, adding a
6311         checked cast.
6312         (check_secondary_memory_needed_p): Likewise for local "insn".
6313         (inherit_reload_reg): Likewise.
6314         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
6315         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
6316         checked casts.
6317         (store_data_bypass_p): Likewise for both params.
6318         (if_test_bypass_p): Likewise.
6319         * recog.h (store_data_bypass_p): Likewise for both params.
6320         (if_test_bypass_p): Likewise.
6321         * reload.c (find_equiv_reg): Likewise for local "where".
6322         * reorg.c (delete_jump): Likewise for param "insn".
6323         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
6324         to const rtx_insn *.
6325         * store-motion.c (replace_store_insn): Likewise for param "del".
6326         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
6327         and use its methods for clarity, and to strengthen local "del"
6328         from rtx to rtx_insn *.
6329         (build_store_vectors): Use insn method of "st" when calling
6330         replace_store_insn for typesafety and clarity.
6331
6332 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6333
6334         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
6335         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
6336         on how to make it legal in future.
6337
6338 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6339
6340         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
6341         to rtx_insn *.
6342         (restinsn): Likewise.
6343         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
6344         Likewise for param.
6345         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
6346         Likewise.
6347         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
6348         first param.
6349         (arc_hazard): Likewise for both params.
6350         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
6351         checked casts to rtx_sequence * and uses of the insn method for
6352         type-safety.
6353         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
6354         (arc_adjust_insn_length): Likewise for param "insn".
6355         (struct insn_length_parameters_s): Likewise for first param of
6356         "get_variants" callback field.
6357         (arc_get_insn_variants): Likewise for first param and local
6358         "inner".  Replace a check of GET_CODE with a dyn_cast to
6359         rtx_sequence *, using methods for type-safety and clarity.
6360         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
6361         rtx_sequence * and uses of the insn method for type-safety when
6362         invoking arc_adjust_insn_length.
6363         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
6364         for param.
6365         (arm_address_offset_is_imm): Likewise.
6366         (struct tune_params): Likewise for params 1 and 3 of the
6367         "sched_adjust_cost" callback field.
6368         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
6369         params 1 and 3 ("insn" and "dep").
6370         (xscale_sched_adjust_cost): Likewise.
6371         (fa726te_sched_adjust_cost): Likewise.
6372         (cortexa7_older_only): Likewise for param "insn".
6373         (cortexa7_younger): Likewise.
6374         (arm_attr_length_move_neon): Likewise.
6375         (arm_address_offset_is_imm): Likewise.
6376         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
6377         * config/avr/avr.c (avr_notice_update_cc): Likewise.
6378         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
6379         (workaround_speculation): Likewise for local "last_condjump".
6380         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
6381         (shadow_or_blockage_p): Likewise.
6382         (get_unit_reqs): Likewise.
6383         (get_unit_operand_masks): Likewise.
6384         (c6x_registers_update): Likewise.
6385         (returning_call_p): Likewise.
6386         (can_use_callp): Likewise.
6387         (convert_to_callp): Likewise.
6388         (find_last_same_clock): Likwise for local "t".
6389         (reorg_split_calls): Likewise for local "shadow".
6390         (hwloop_pattern_reg): Likewise for param "insn".
6391         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
6392         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
6393         (frv_extract_membar): Likewise.
6394         (frv_optimize_membar_local): Strengthen param "last_membar" from
6395         rtx * to rtx_insn **.
6396         (frv_optimize_membar_global): Strengthen param "membar" from rtx
6397         to rtx_insn *.
6398         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
6399         to rtx_insn **.
6400         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
6401         both params from rtx to rtx_insn *.
6402         (ia64_ld_address_bypass_p): Likewise.
6403         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
6404         "insn".
6405         (ia64_safe_type): Likewise.
6406         (group_barrier_needed): Likewise.
6407         (safe_group_barrier_needed): Likewise.
6408         (ia64_single_set): Likewise.
6409         (is_load_p): Likewise.
6410         (record_memory_reference): Likewise.
6411         (get_mode_no_for_insn): Likewise.
6412         (important_for_bundling_p): Likewise.
6413         (unknown_for_bundling_p): Likewise.
6414         (ia64_st_address_bypass_p): Likewise for both params.
6415         (ia64_ld_address_bypass_p): Likewise.
6416         (expand_vselect): Introduce new local rtx_insn * "insn", using it
6417         in place of rtx "x" after the emit_insn call.
6418         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
6419         Strengthen param from rtx to rtx_insn *.
6420         (ix86_agi_dependent): Likewise for both params.
6421         (ix86_attr_length_immediate_default): Likewise for param 1.
6422         (ix86_attr_length_address_default): Likewise for param.
6423         (ix86_attr_length_vex_default): Likewise for param 1.
6424         * config/i386/i386.c (ix86_attr_length_immediate_default):
6425         Likewise for param "insn".
6426         (ix86_attr_length_address_default): Likewise.
6427         (ix86_attr_length_vex_default): Likewise.
6428         (ix86_agi_dependent): Likewise for both params.
6429         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
6430         (vselect_insn): Likewise for this variable.
6431         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
6432         for param 1.
6433         (m68k_sched_attr_opy_type): Likewise.
6434         * config/m68k/m68k.c (sched_get_operand): Likewise.
6435         (sched_attr_op_type): Likewise.
6436         (m68k_sched_attr_opx_type): Likewise.
6437         (m68k_sched_attr_opy_type): Likewise.
6438         (sched_get_reg_operand): Likewise.
6439         (sched_get_mem_operand): Likewise.
6440         (m68k_sched_address_bypass_p): Likewise for both params.
6441         (sched_get_indexed_address_scale): Likewise.
6442         (m68k_sched_indexed_address_bypass_p): Likewise.
6443         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
6444         (m68k_sched_indexed_address_bypass_p): Likewise.
6445         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
6446         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
6447         removing another.
6448         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
6449         params from rtx to rtx_insn *.
6450         (mips_fmadd_bypass): Likewise.
6451         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
6452         (mips_linked_madd_p): Likewise.
6453         (mips_macc_chains_last_hilo): Likewise for this variable.
6454         (mips_macc_chains_record): Likewise for param.
6455         (vr4130_last_insn): Likewise for this variable.
6456         (vr4130_swap_insns_p): Likewise for both params.
6457         (mips_ls2_variable_issue): Likewise for param.
6458         (mips_need_noat_wrapper_p): Likewise for param "insn".
6459         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
6460         in place of "x" after the emit_insn.
6461         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
6462         params from rtx to rtx_insn *.
6463         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
6464         (pa_combine_instructions): Introduce local "par" for result of
6465         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
6466         to make_insn_raw.
6467         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
6468         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
6469         (rl78_alloc_physical_registers_op1): Likewise.
6470         (rl78_alloc_physical_registers_op2): Likewise.
6471         (rl78_alloc_physical_registers_ro1): Likewise.
6472         (rl78_alloc_physical_registers_cmp): Likewise.
6473         (rl78_alloc_physical_registers_umul): Likewise.
6474         (rl78_alloc_address_registers_macax): Likewise.
6475         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
6476         * config/s390/predicates.md (execute_operation): Likewise for
6477         local "insn".
6478         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
6479         params.
6480         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
6481         (addr_generation_dependency_p): Likewise for param "insn".
6482         (s390_agen_dep_p): Likewise for both params.
6483         (s390_fpload_toreg): Likewise for param "insn".
6484         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
6485         * config/sh/sh.c (sh_loop_align): Likewise for param and local
6486         "next".
6487         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
6488         * config/sh/sh_treg_combine.cc
6489         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
6490         and local "i".
6491         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
6492         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
6493         "and_insn", "load", "shift".
6494         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
6495         "insn".
6496         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
6497         for XEXP (note, 0) of the REG_CC_SETTER note.
6498         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
6499         rtx_insn *, eliminating a checked cast made redundant by this.
6500         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
6501         to rtx_insn *.
6502         * genattr.c (main): When writing out the prototype to
6503         const_num_delay_slots, strengthen the param from rtx to
6504         rtx_insn *.
6505         * genattrtab.c (write_const_num_delay_slots): Likewise when
6506         writing out the implementation of const_num_delay_slots.
6507         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
6508         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
6509         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
6510         favor of new rtx locals "src" and "set" and new local rtx_insn *
6511         "insn" and "seq".
6512         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
6513         to rtx_insn *.
6514         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
6515         locals "cond", "if_then_else", "set" and new rtx_insn * locals
6516         "insn" and "seq".
6517         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
6518         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
6519         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
6520         the top-level scope, replacing with new more tightly-scoped rtx
6521         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
6522         "new_insn", "copy_of_insn_b", and make local rtx "set" more
6523         tightly-scoped.
6524         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
6525         rtx_insn *.
6526         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
6527         "move_insn".
6528         (ira_setup_alts): Likewise for param "insn".
6529         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
6530         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
6531         and an rtx_insn *.
6532         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
6533         new more-tightly scoped rtx locals "add3_insn", "insn",
6534         "add2_insn" and rtx_insn * "move_insn".
6535         * postreload-gcse.c (eliminate_partially_redundant_load): Add
6536         checked cast on result of gen_move_insn when invoking
6537         extract_insn.
6538         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
6539         rtx_insn *.
6540         (verify_changes): Add a checked cast on "object" when invoking
6541         insn_invalid_p.
6542         (extract_insn_cached): Strengthen param "insn" from rtx to
6543         rtx_insn *.
6544         (extract_constrain_insn_cached): Likewise.
6545         (extract_insn): Likewise.
6546         * recog.h (insn_invalid_p): Likewise for param 1.
6547         (recog_memoized): Likewise for param.
6548         (extract_insn): Likewise.
6549         (extract_constrain_insn_cached): Likewise.
6550         (extract_insn_cached): Likewise.
6551         * reload.c (can_reload_into): Likewise for local "test_insn".
6552         * reload.h (cleanup_subreg_operands): Likewise for param.
6553         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
6554         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
6555         result of emit_insn.  Remove a checked cast made redundant by this
6556         change.
6557         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
6558         rtx to rtx_insn *.
6559         * sel-sched.c (get_reg_class): Likewise.
6560
6561 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
6562             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6563
6564         * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
6565         * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
6566         Define.
6567         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
6568
6569 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6570
6571         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
6572         const rtx_insn *, and from rtx to rtx_insn * for the other
6573         overloaded variant.
6574         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
6575         INSN_LOCATION, since we know INSN_P holds.
6576         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
6577         (insn_file): Likewise.
6578         (insn_scope): Likewise.
6579         (insn_location): Likewise.
6580
6581         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
6582         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
6583         for the result of gen_load_const_gp.
6584         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
6585         param from rtx to rtx_insn *.
6586         * config/rs6000/rs6000.c (output_call): Likewise.
6587         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
6588         introducing a checked cast to rtx_sequence * and use of the insn
6589         method.
6590         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
6591         from rtx to rtx_insn *.
6592         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
6593         (insn_line): Likewise.
6594         (insn_file): Likewise.
6595         (insn_location): Likewise.
6596         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
6597         from rtx to rtx_insn *.
6598         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
6599         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
6600         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
6601         via a checked cast.
6602         * reorg.c (relax_delay_slots): Strengthen locals named "after"
6603         from rtx to rtx_insn *; use methods of "pat" for type-safety.
6604
6605 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6606
6607         * combine.c (try_combine): Eliminate checked cast on result of
6608         gen_rtx_INSN.
6609         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
6610         autogenerated one by strengthening the return type and params 2 and 3
6611         from rtx to rtx_insn *, and by naming the params.
6612         * gengenrtl.c (special_rtx): Add INSN to those that are
6613         special-cased.
6614         * rtl.h (gen_rtx_INSN): New prototype.
6615
6616 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
6617
6618         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
6619         than NULL_RTX.
6620         (no_equiv): Likewise.
6621         (update_equiv_regs): Likewise.
6622         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
6623         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
6624         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
6625         clarity.
6626         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
6627         from rtx to rtx_insn_list *.
6628         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
6629         rtx_insn_list * and use methods for clarity and typesafety.
6630         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
6631         "list".
6632         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
6633         redundant check on INSN_P (insns): this cannot hold, as "insns" is
6634         an INSN_LIST, not an insn.
6635         (reverse_equiv_p): Strengthen local "insns" from rtx to
6636         rtx_insn_list * and use methods for clarity and typesafety.
6637         (contains_reloaded_insn_p): Likewise for local "list".
6638
6639 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
6640
6641         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
6642         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
6643         (arm_builtin_vectorized_function): Likewise.
6644         * config/arm/arm_neon_builtins.def: New macro for copysignf.
6645         * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
6646
6647 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
6648
6649         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
6650         * builtins.h (default_target_builtins): Likewise.
6651         * gcse.h (default_target_gcse): Likewise.
6652         * target-globals.h (target_globals): Add a destructor.  Convert
6653         void-pointer fields back to their real type and change from
6654         GTY((atomic)) to GTY((skip)).
6655         (restore_target_globals): Remove casts accordingly.
6656         * target-globals.c (save_target_globals): Use XCNEW rather than
6657         ggc_internal_cleared_alloc to allocate non-GC structures.
6658         Use ggc_cleared_alloc to allocate the target_globals structure
6659         itself.
6660         (target_globals::~target_globals): Define.
6661
6662 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6663
6664         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
6665         mnemonic instead of fldmfdd.
6666         * config/arm/arm.c (vfp_output_fstmd): Rename to...
6667         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
6668         Output vpush when address register is SP.
6669         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
6670         (vfp_output_vstmd): ... This.
6671         * config/arm/vfp.md (push_multi_vfp): Update call to
6672         vfp_output_vstmd.
6673
6674 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6675
6676         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
6677
6678 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6679
6680         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
6681         (*sqrtdf2_vfp): Likewise.
6682         (*cmpsf_vfp): Likewise.
6683         (*cmpsf_trap_vfp): Likewise.
6684         (*cmpdf_vfp): Likewise.
6685         (*cmpdf_trap_vfp): Likewise.
6686
6687 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6688
6689         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
6690         (*truncdfsf2_vfp): Likewise.
6691         (*truncsisf2_vfp): Likewise.
6692         (*truncsidf2_vfp): Likewise.
6693         (fixuns_truncsfsi2): Likewise.
6694         (fixuns_truncdfsi2): Likewise.
6695         (*floatsisf2_vfp): Likewise.
6696         (*floatsidf2_vfp): Likewise.
6697         (floatunssisf2): Likewise.
6698         (floatunssidf2): Likewise.
6699
6700 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6701
6702         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
6703         (*muldf3_vfp): Likewise.
6704         (*mulsf3negsf_vfp): Likewise.
6705         (*muldf3negdf_vfp): Likewise.
6706         (*mulsf3addsf_vfp): Likewise.
6707         (*muldf3adddf_vfp): Likewise.
6708         (*mulsf3subsf_vfp): Likewise.
6709         (*muldf3subdf_vfp): Likewise.
6710         (*mulsf3negsfaddsf_vfp): Likewise.
6711         (*fmuldf3negdfadddf_vfp): Likewise.
6712         (*mulsf3negsfsubsf_vfp): Likewise.
6713         (*muldf3negdfsubdf_vfp): Likewise.
6714
6715 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6716
6717         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
6718         (*absdf2_vfp): Likewise.
6719         (*negsf2_vfp): Likewise.
6720         (*negdf2_vfp): Likewise.
6721         (*addsf3_vfp): Likewise.
6722         (*adddf3_vfp): Likewise.
6723         (*subsf3_vfp): Likewise.
6724         (*subdf3_vfp): Likewise.
6725         (*divsf3_vfp): Likewise.
6726         (*divdf3_vfp): Likewise.
6727
6728 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6729
6730         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
6731         multiple.
6732         (arm_print_operand): Don't convert real values to decimal
6733         representation in default case.
6734         (fp_immediate_constant): Delete.
6735         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
6736         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
6737         syntax.
6738         (*thumb2_movsi_vfp): Likewise.
6739         (*movdi_vfp): Likewise.
6740         (*movdi_vfp_cortexa8): Likewise.
6741         (*movhf_vfp_neon): Likewise.
6742         (*movhf_vfp): Likewise.
6743         (*movsf_vfp): Likewise.
6744         (*thumb2_movsf_vfp): Likewise.
6745         (*movdf_vfp): Likewise.
6746         (*thumb2_movdf_vfp): Likewise.
6747         (*movsfcc_vfp): Likewise.
6748         (*thumb2_movsfcc_vfp): Likewise.
6749         (*movdfcc_vfp): Likewise.
6750         (*thumb2_movdfcc_vfp): Likewise.
6751
6752 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
6753
6754         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
6755         (-mtune): Likewise.
6756         (-mcpu): Likewise.
6757
6758 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6759
6760         PR target/61749
6761         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
6762         Use qualifier_immediate for last operand.  Rename to...
6763         (aarch64_types_ternop_lane_qualifiers): ... This.
6764         (TYPES_QUADOP): Rename to...
6765         (TYPES_TERNOP_LANE): ... This.
6766         (aarch64_simd_expand_args): Return const0_rtx when encountering user
6767         error.  Change return of 0 to return of NULL_RTX.
6768         (aarch64_crc32_expand_builtin): Likewise.
6769         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
6770         ICE when expanding unknown builtin.
6771         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
6772         TERNOP_LANE qualifiers.
6773         (sqdmlsl_lane): Likewise.
6774         (sqdmlal_laneq): Likewise.
6775         (sqdmlsl_laneq): Likewise.
6776         (sqdmlal2_lane): Likewise.
6777         (sqdmlsl2_lane): Likewise.
6778         (sqdmlal2_laneq): Likewise.
6779         (sqdmlsl2_laneq): Likewise.
6780
6781 2014-09-09  Nick Clifton  <nickc@redhat.com>
6782
6783         * doc/invoke.texi (Optimization Options): Add missing @gol to the
6784         end of a line.
6785         (S/390 and zSeries Options): Remove superfluous word from the
6786         description of the -mhotpatch option.
6787
6788 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
6789
6790         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
6791         * ira.c: #include "shrink-wrap.h"
6792         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
6793         * ifcvt.c: #include "shrink-wrap.h"
6794         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
6795
6796 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
6797
6798         * common/config/picochip/picochip-common.c: Remove.
6799         * config.gcc: Remove support for picochip.
6800         * config/picochip/constraints.md: Remove.
6801         * config/picochip/dfa_space.md: Remove.
6802         * config/picochip/dfa_speed.md: Remove.
6803         * config/picochip/picochip-protos.h: Remove.
6804         * config/picochip/picochip.c: Remove.
6805         * config/picochip/picochip.h: Remove.
6806         * config/picochip/picochip.md: Remove.
6807         * config/picochip/picochip.opt: Remove.
6808         * config/picochip/predicates.md: Remove.
6809         * config/picochip/t-picochip: Remove.
6810         * doc/md.texi: Don't document picochi.
6811
6812 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
6813
6814         * basic-block.h (control_flow_insn_p): Strengthen param from
6815         const_rtx to const rtx_insn *.
6816         * cfgbuild.c (control_flow_insn_p): Likewise.
6817
6818 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
6819
6820         * gcse.c (modify_mem_list): Strengthen this variable from
6821         vec<rtx> * to vec<rtx_insn *> *.
6822         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
6823         vec<rtx_insn *>.
6824         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
6825         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
6826         (record_last_mem_set_info): Strengthen param "insn" from rtx to
6827         rtx_insn *.
6828         (record_last_set_info): Likewise for local "last_set_insn".
6829
6830 2014-09-08  DJ Delorie  <dj@redhat.com>
6831
6832         * doc/invoke.texi (MSP430 Options): Add -minrt.
6833
6834 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6835
6836         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
6837         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
6838         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
6839         handling SH_SPLAT.
6840         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
6841         of extracted lane.
6842         (adjust_splat): New function.
6843         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
6844         (dump_swap_insn_table): Add case for SH_SPLAT.
6845
6846 2014-09-08  Richard Biener  <rguenther@suse.de>
6847
6848         PR ipa/63196
6849         * tree-inline.c (copy_loops): The source loop header should
6850         always be non-NULL.
6851         (tree_function_versioning): If loops need fixup after removing
6852         unreachable blocks fix them.
6853         * omp-low.c (simd_clone_adjust): Do not add incr block to
6854         loop under construction.
6855
6856 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6857
6858         * config/aarch64/aarch64-builtins.c
6859         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
6860
6861 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
6862
6863         * config/i386/cygming.h (TF_SIZE): Remove.
6864         * config/i386/darwin.h (TF_SIZE): Remove.
6865         * config/i386/dragonfly.h (TF_SIZE): Remove.
6866         * config/i386/freebsd.h (TF_SIZE): Remove.
6867         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
6868         * config/i386/openbsdelf.h (TF_SIZE): Remove.
6869         * config/i386/sol2.h (TF_SIZE): Remove.
6870         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
6871         * config/ia64/linux.h (TF_SIZE): Remove.
6872         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
6873         * doc/tm.texi: Regenerate.
6874         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
6875
6876 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
6877
6878         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
6879         Remove.
6880         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
6881         Remove.
6882         * doc/tm.texi: Regenerate.
6883         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
6884         Poison.
6885         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
6886         * config/cris/cris.h (__make_dp): Remove.
6887
6888 2014-09-08  Richard Biener  <rguenther@suse.de>
6889
6890         PR bootstrap/63204
6891         * cfgloop.c (mark_loop_for_removal): Track former header
6892         unconditionally.
6893         * cfgloop.h (struct loop): Add former_header member unconditionally.
6894         * loop-init.c (fix_loop_structure): Enable bogus loop removal
6895         diagnostic unconditionally.
6896
6897 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
6898
6899         PR target/63190
6900         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
6901         constraint for operand0 and remove write only modifier from operand3.
6902
6903 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
6904
6905         PR rtl-optimization/62208
6906         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
6907         rather than const0_rtx in eq/ne-xor simplifications.
6908
6909 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
6910
6911         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
6912         (arc_output_mi_thunk): Likewise.
6913
6914         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
6915         arguments to silence bogus warning.
6916
6917 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
6918
6919         PR middle-end/63171
6920         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
6921
6922 2014-09-06  Tom de Vries  <tom@codesourcery.com>
6923
6924         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
6925         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
6926         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
6927
6928 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
6929
6930         PR target/63188
6931         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
6932         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
6933
6934 2014-09-05  Easwaran Raman  <eraman@google.com>
6935
6936         PR rtl-optimization/62146
6937         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
6938         hoisted instruction unconditional.
6939
6940 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
6941
6942         PR target/63187
6943         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
6944         Do not allow any_mask_operand for operands[2].
6945         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
6946
6947 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
6948
6949         * config/arc/arc.c (arc_print_operand): Use insn method of
6950         final_sequence for type-safety.
6951         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
6952         "insn" from rtx to rtx_insn *.
6953         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
6954         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
6955         Likewise for locals "branch", "label".
6956         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
6957         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
6958         (same_cmp_following_p): Likewise for locals "i2", "i3".
6959         * config/sh/sh_optimize_sett_clrt.cc
6960         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
6961         param "cbranch_insn".
6962         * function.c (convert_jumps_to_returns): Likewis for local "jump".
6963         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
6964         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
6965         const rtx_insn *.
6966         (condjump_p): Likewise.
6967         (condjump_in_parallel_p): Likewise.
6968         (pc_set): Likewise.
6969         (any_uncondjump_p): Likewise.
6970         (any_condjump_p): Likewise.
6971         (condjump_label): Likewise.
6972         (returnjump_p): Strengthen param "insn" from rtx to
6973         const rtx_insn *.
6974         (onlyjump_p): Strengthen param "insn" from const_rtx to
6975         const rtx_insn *.
6976         (jump_to_label_p): Likewise.
6977         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
6978         (invert_jump): Likewise.
6979         * reorg.c (simplejump_or_return_p): Add checked cast when calling
6980         simplejump_p.
6981         (get_jump_flags): Strengthen param "insn" from rtx to
6982         const rtx_insn *.
6983         (get_branch_condition): Likewise.
6984         (condition_dominates_p): Likewise.
6985         (make_return_insns): Move declaration of local "pat" earlier, to
6986         after we've handled NONJUMP_INSN_P and non-sequences, using its
6987         methods to simplify the code and for type-safety.
6988         * rtl.h (find_constant_src): Strengthen param from const_rtx to
6989         const rtx_insn *.
6990         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
6991         (condjump_p): Strengthen param from const_rtx to
6992         const rtx_insn *.
6993         (any_condjump_p): Likewise.
6994         (any_uncondjump_p): Likewise.
6995         (pc_set): Likewise.
6996         (condjump_label): Likewise.
6997         (simplejump_p): Likewise.
6998         (returnjump_p): Likewise.
6999         (onlyjump_p): Likewise.
7000         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
7001         (invert_jump): Likewise.
7002         (condjump_in_parallel_p): Strengthen param from const_rtx to
7003         const rtx_insn *.
7004         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
7005         to const rtx_insn *.
7006         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
7007         to const rtx_insn *.
7008         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
7009
7010 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7011
7012         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
7013         above the conditional, and convert the check on GET_CODE to a
7014         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
7015         the conditional.  Simplify the conditional by using methods of
7016         "trial_seq".
7017
7018 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7019
7020         * haifa-sched.c (check_clobbered_conditions): Strengthen local
7021         "link" from rtx to rtx_insn_list *, and use its methods for
7022         clarity and type-safety.
7023         (toggle_cancelled_flags): Likewise.
7024         (restore_last_backtrack_point): Likewise.
7025         (queue_to_ready): Use insn method of "link" in one place.
7026         (schedule_block): Strengthen local "link" from rtx to
7027         rtx_insn_list *, and use its methods for clarity and type-safety.
7028
7029 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7030
7031         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
7032         param "insn" from const_rtx to const rtx_insn *.
7033         (sched_get_reverse_condition_uncached): Likewise.
7034         (sched_get_condition_with_rev): Likewise.
7035         (sched_has_condition_p): Likewise.
7036         (sched_insns_conditions_mutex_p): Likewise for both params.
7037         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
7038         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
7039         (setup_insn_reg_uses): Move local "list" to be more tightly
7040         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
7041         its methods for clarity and type-safety.
7042         (sched_analyze_1): Strengthen local "pending" from rtx to
7043         rtx_insn_list *, and local "pending_mem" from rtx to
7044         rtx_expr_list *.  Use methods of each for clarity and type-safety.
7045         (sched_analyze_2): Likewise.
7046         (sched_analyze_insn): Likewise.
7047
7048         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
7049         param from const_rtx to const rtx_insn *.
7050         (sched_insns_conditions_mutex_p): Likewise for both params.
7051         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
7052         param.
7053
7054         * system.h (CONST_CAST_RTX_INSN): New macro.
7055
7056 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7057
7058         * recog.c (peep2_attempt): Strengthen return type from rtx to
7059         rtx_insn *.
7060         (peep2_update_life): Likewise for params "last", "prev", removing
7061         a checked cast made redundant by this.
7062         (peephole2_optimize): Likewise for local "last".
7063
7064 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7065
7066         * basic-block.h (set_block_for_insn): Eliminate this macro in
7067         favor of...
7068         * rtl.h (set_block_for_insn): New inline function, imposing the
7069         requirement that the "insn" param is an rtx_insn *.
7070
7071 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7072
7073         * caller-save.c (setup_save_areas): Strengthen local "insn" from
7074         rtx to rtx_insn *.
7075         * final.c (get_call_reg_set_usage): Likewise for first param,
7076         eliminating a checked cast.
7077         * regs.h (get_call_reg_set_usage): Likewise for first param.
7078         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
7079         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
7080         cast, replacing references to "x" with "call_insn" where
7081         appropriate.
7082         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
7083         rtx_insn *, adding a checked cast.
7084
7085 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7086
7087         * output.h (final_scan_insn): Strengthen first param from rtx to
7088         rtx_insn *.
7089
7090         * final.c (final_scan_insn): Likewise, renaming it back from
7091         "uncast_insn" to "insn", eliminating the checked cast.
7092
7093         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
7094         "vec" with an rtx_sequence * "seq", taking a copy of
7095         "final_sequence", and using methods of "seq" for clarity, and for
7096         type-safety in the calls to final_scan_insn.
7097         * config/mips/mips.c (mips_output_conditional_branch): Use methods
7098         of "final_sequence" for clarity, and for type-safety in the call to
7099         final_scan_insn.
7100         * config/sh/sh.c (print_slot): Strengthen param from rtx to
7101         rtx_sequence * and rename from "insn" to "seq".
7102
7103 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7104
7105         * jump.c (delete_related_insns): Introduce a new local "table" by
7106         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
7107         get_labels method of "table" to simplify access to the labels in
7108         the jump table.
7109
7110 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7111
7112         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
7113         f_minmaxs, f_minmaxd types.
7114
7115 2014-09-05  Richard Biener  <rguenther@suse.de>
7116
7117         * cfgloop.c (mark_loop_for_removal): Record former header
7118         when ENABLE_CHECKING.
7119         * cfgloop.h (strut loop): Add former_header member when
7120         ENABLE_CHECKING.
7121         * loop-init.c (fix_loop_structure): Sanity check loops
7122         marked for removal if they re-appeared.
7123
7124 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7125
7126         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
7127         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
7128
7129         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
7130         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
7131         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
7132         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
7133         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
7134         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
7135         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
7136         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
7137         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
7138         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
7139         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
7140         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
7141         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
7142         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
7143         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
7144         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
7145         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
7146         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
7147         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
7148         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
7149         with int{32,16,8}_t.
7150
7151 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7152
7153         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
7154         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
7155         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
7156         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
7157         Remove temporary __asm__ and reimplement.
7158
7159 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7160
7161         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
7162         handling cmge, cmgt, cmeq, cmtst.
7163
7164         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
7165         cmlt, cmgeu, cmgtu, cmtst): Remove.
7166
7167         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
7168         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
7169         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
7170         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
7171
7172 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7173
7174         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
7175         TYPES_TST): Define.
7176         (aarch64_fold_builtin): Update pattern for cmtst.
7177
7178         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
7179         Declare.
7180
7181         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
7182
7183         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
7184         Switch operands, separate out more cases, refactor.
7185
7186         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
7187
7188         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
7189         argument; rename old version to...
7190         (aarch64_const_vec_all_same_in_range_p): ...this.
7191         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
7192
7193         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
7194
7195 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7196
7197         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
7198         Remove qualifier_const_pointer, update comment.
7199
7200 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7201
7202         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
7203
7204 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7205
7206         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
7207         varargs with pointer parameter.
7208         (aarch64_simd_expand_builtin): pass pointer into previous.
7209
7210 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7211
7212         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
7213         alus_ext.
7214
7215 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
7216
7217         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
7218         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
7219         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
7220         Replace temporary asm with call to builtin.
7221         (vrbit_p8, vrbitq_p8): New functions.
7222
7223 2014-09-05  Richard Biener  <rguenther@suse.de>
7224
7225         * cfgloop.c (mark_loop_for_removal): New function.
7226         * cfgloop.h (mark_loop_for_removal): Declare.
7227         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
7228         (merge_blocks): Likewise.
7229         (duplicate_block): Likewise.
7230         * except.c (sjlj_emit_dispatch_table): Likewise.
7231         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
7232         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
7233         (thread_through_loop_header): Likewise.
7234
7235 2014-09-05  Richard Biener  <rguenther@suse.de>
7236
7237         PR middle-end/63148
7238         * fold-const.c (try_move_mult_to_index): Remove.
7239         (fold_binary_loc): Do not call it.
7240         * tree-data-ref.c (dr_analyze_indices): Strip conversions
7241         from the base object again.
7242
7243 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
7244
7245         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
7246         DImode.
7247
7248 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
7249
7250         PR target/55701
7251         * config/arm/arm.md (setmem): New pattern.
7252         * config/arm/arm-protos.h (struct tune_params): New fields.
7253         (arm_gen_setmem): New prototype.
7254         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
7255         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
7256         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
7257         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
7258         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
7259         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
7260         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
7261         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
7262         (arm_const_inline_cost): New function.
7263         (arm_block_set_max_insns): New function.
7264         (arm_block_set_non_vect_profit_p): New function.
7265         (arm_block_set_vect_profit_p): New function.
7266         (arm_block_set_unaligned_vect): New function.
7267         (arm_block_set_aligned_vect): New function.
7268         (arm_block_set_unaligned_non_vect): New function.
7269         (arm_block_set_aligned_non_vect): New function.
7270         (arm_block_set_vect, arm_gen_setmem): New functions.
7271
7272 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
7273
7274         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
7275
7276 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
7277
7278         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
7279
7280 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
7281
7282         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
7283         an rtx.
7284         * valtrack.h: Adjust.
7285
7286 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
7287
7288         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
7289         an rtx.
7290         (emit_jump_insn_before_noloc): Likewise.
7291         (emit_call_insn_before_noloc): Likewise.
7292         (emit_label_before): Likewise.
7293         (emit_label_after): Likewise.
7294         (emit_insn_before_setloc): Likewise.
7295         (emit_jump_insn_before_setloc): Likewise.
7296         (emit_call_insn_before_setloc): Likewise.
7297         (emit_call_insn_before): Likewise.
7298         * rtl.h: Adjust.
7299
7300 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7301
7302         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
7303         rtx_insn *, eliminating a checked cast.
7304
7305 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7306
7307         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
7308         const_rtx to const rtx_insn *.
7309         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
7310         cast.
7311
7312 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7313
7314         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
7315         fixup_args_size_notes.
7316         * expr.c (fixup_args_size_notes): Strengthen first two params from
7317         rtx to rtx_insn *, eliminating a checked cast.
7318         * rtl.h (fixup_args_size_notes): Strengthen first two params from
7319         rtx to rtx_insn *.
7320
7321 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
7322
7323         * haifa-sched.c (get_ready_element): Strengthen return type from
7324         rtx to rtx_insn *.
7325         * sched-int.h (get_ready_element): Likewise.
7326
7327 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
7328
7329         PR target/63165
7330         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
7331         indexed_or_indirect_operand instead of memory_operand.
7332         (floatsi<mode>2_lfiwzx_mem): Ditto.
7333
7334 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
7335
7336         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
7337         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
7338         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
7339
7340 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
7341
7342         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
7343         rtx.
7344         (get_last_nonnote_insn): Likewise.
7345         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
7346         * resource.c (find_basic_block): Likewise.
7347         * rtl.h: Adjust.
7348         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
7349         const_rtx.
7350
7351 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
7352
7353         * genattr.c (main): Within the prototype of insn_latency written
7354         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
7355         * genautomata.c (output_internal_maximal_insn_latency_func):
7356         Within the implementation of insn_latency written out to
7357         insn-automata.c, strengthen both params from rtx to rtx_insn *,
7358         eliminating a pair of checked casts.
7359
7360 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
7361
7362         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
7363         rtx_insn *.
7364
7365         * rtl.h (eh_returnjump_p): Likewise.
7366
7367 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
7368
7369         * Makefile.in (TAGS): Handle constructs in timevar.def.
7370
7371 2014-09-04  Guozhi Wei  <carrot@google.com>
7372
7373         PR target/62040
7374         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
7375         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
7376         it into two patterns.
7377         (move_lo_quad_internal_be_<mode>): Likewise.
7378
7379 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7380
7381         * doc/options.texi: Document that Var and Init are required if CPP
7382         is given.
7383         * optc-gen.awk: Require Var and Init if CPP is given.
7384         * common.opt (Wpedantic): Use Init.
7385
7386 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7387
7388         * config/rs6000/rs6000.c (special_handling_values): Add
7389         SH_EXTRACT.
7390         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
7391         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
7392         as swappable with special handling SH_EXTRACT.  Remove
7393         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
7394         optimization.
7395         (adjust_extract): New function.
7396         (handle_special_swappables): Add default to case statement; add
7397         case for SH_EXTRACT that calls adjust_extract.
7398         (dump_swap_insn_table): Handle SH_EXTRACT.
7399
7400 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7401
7402         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
7403         selection of 0th memory doubleword, regardless of endianness.
7404
7405 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7406
7407         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
7408
7409 2014-09-04  Alan Modra  <amodra@gmail.com>
7410
7411         PR debug/60655
7412         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
7413         can't be output.
7414
7415 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
7416
7417         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
7418         * targhooks.c (default_dwarf_frame_reg_mode): New function.
7419         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
7420         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
7421         * doc/tm.texi: Regenerate.
7422         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
7423         selection logic to default_dwarf_frame_reg_mode.
7424
7425 2014-09-03  Marek Polacek  <polacek@redhat.com>
7426
7427         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
7428         by -Wall.
7429
7430 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
7431
7432         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
7433         the automodified register.
7434
7435 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
7436
7437         * output.h (get_some_local_dynamic_name): Declare.
7438         * final.c (some_local_dynamic_name): New variable.
7439         (get_some_local_dynamic_name): New function.
7440         (final_end_function): Clear some_local_dynamic_name.
7441         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
7442         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
7443         (print_operand): Report an error if '%&' is used inappropriately.
7444         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
7445         (get_some_local_dynamic_name_1): Delete.
7446         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
7447         (rs6000_get_some_local_dynamic_name): Delete.
7448         (rs6000_get_some_local_dynamic_name_1): Delete.
7449         (print_operand): Report an error if '%&' is used inappropriately.
7450         * config/s390/s390.c (machine_function): Remove some_ld_name.
7451         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
7452         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
7453         * config/sparc/sparc.c: Include rtl-iter.h.
7454         (machine_function): Remove some_ld_name.
7455         (sparc_print_operand): Report an error if '%&' is used inappropriately.
7456         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
7457
7458 2014-09-03  Richard Henderson  <rth@redhat.com>
7459
7460         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
7461         (aarch64_popwb_pair_reg): Remove.
7462         (aarch64_set_frame_expr): Remove.
7463         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
7464         the restore ops performed by the insns generated.
7465         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
7466         insn.  Perform the calls_eh_return addition later; do not attempt to
7467         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
7468         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
7469         special markup at all.  Load cfun->machine->frame.hard_fp_offset
7470         into a local variable.
7471         (aarch64_frame_pointer_required): Don't check calls_alloca.
7472
7473 2014-09-03  Richard Biener  <rguenther@suse.de>
7474
7475         * opts.c (default_options_optimization): Adjust
7476         max-combine-insns to 2 for -Og.
7477
7478 2014-09-03  Martin Jambor  <mjambor@suse.cz>
7479
7480         PR ipa/62015
7481         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
7482         pass-trough jump functions correctly.
7483
7484 2014-09-03  Martin Jambor  <mjambor@suse.cz>
7485
7486         PR ipa/61986
7487         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
7488         created replacements in ascending order of offsets.
7489         (known_aggs_to_agg_replacement_list): Likewise.
7490
7491 2014-09-03  Martin Liska  <mliska@suse.cz>
7492
7493         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
7494         is set to set uninitialized value for vnresult.
7495
7496 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7497
7498         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
7499         for TARGET_MUST_PASS_IN_STACK.
7500
7501 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7502
7503         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
7504         for TARGET_ARG_PARTIAL_BYTES.
7505
7506 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7507
7508         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
7509         instructions for varargs implementation.
7510         (nds32_expand_epilogue): Emit stack adjustment instructions for
7511         varargs implementation.
7512
7513 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7514
7515         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
7516         optimization detection.
7517
7518 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7519
7520         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
7521         arguments.
7522         (nds32_function_arg_advance): Deal with nameless arguments.
7523         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
7524         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
7525         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
7526
7527 2014-09-03  Richard Biener  <rguenther@suse.de>
7528
7529         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
7530         (struct bb_bitmap_sets): Remove deferred member.
7531         (BB_DEFERRED): Remove.
7532         (defer_or_phi_translate_block): Remove.
7533         (compute_antic_aux): Remove deferring of blocks, assert
7534         proper iteration order.
7535         (compute_antic): Do not set BB_DEFERRED.
7536         (eliminate): Allocate el_avail of proper size initially.
7537
7538 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7539
7540         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
7541         according to the value of crtl->args.pretend_args_size.
7542
7543 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7544
7545         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
7546         varargs information.
7547
7548 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7549
7550         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
7551         implementation for TARGET_SETUP_INCOMING_VARARGS.
7552         (nds32_strict_argument_naming): Refine comment.
7553         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
7554         Define for future implementation.
7555
7556 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
7557
7558         * config/i386/adxintrin.h (_subborrow_u32): New.
7559         (_addcarry_u32): Ditto.
7560         (_subborrow_u64): Ditto.
7561         (_addcarry_u64): Ditto.
7562         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
7563         IX86_BUILTIN_SBB64.
7564         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
7565         __builtin_ia32_sbb_u64
7566
7567 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7568
7569         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
7570         GPR-specific stuff.
7571         (nds32_function_arg_advance): Likewise.
7572         (nds32_init_cumulative_args): Likewise.
7573         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
7574         (NDS32_FIRST_GPR_REGNUM): Define.
7575         (NDS32_LAST_GPR_REGNUM): Define.
7576         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
7577         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
7578         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
7579         (machine_function): Use GRP-specific stuff.
7580
7581 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7582
7583         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
7584         (nds32_expand_epilogue): Likewise.
7585         (nds32_expand_prologue_v3push): Likewise.
7586         (nds32_expand_epilogue_v3pop): Likewise.
7587
7588 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7589
7590         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
7591         v3push/v3pop for variadic function.
7592         * config/nds32/nds32.md (prologue, epilogue): Likewise.
7593
7594 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7595
7596         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
7597         Check rtx for varargs implementation.
7598         (nds32_output_stack_pop): Likewise.
7599         * config/nds32/nds32-protos.h: Have a rtx argument for
7600         nds32_output_stack_push and nds32_output_stack_pop.
7601         * config/nds32/nds32.md: Likewise.
7602
7603 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7604
7605         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
7606         to check if FUNC is an interrupt service routine.
7607         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
7608
7609 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7610
7611         * config/nds32/nds32.h (machine_function): Add some fields for variadic
7612         arguments implementation.
7613
7614 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7615
7616         * config/nds32/nds32-predicates.c
7617         (nds32_valid_stack_push_pop): Rename to ...
7618         (nds32_valid_stack_push_pop_p): ... this.
7619         * config/nds32/nds32-protos.h: Likewise.
7620         * config/nds32/predicates.md: Likewise.
7621
7622 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7623
7624         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
7625         (nds32_emit_stack_v3push): ... this.
7626         (nds32_gen_stack_v3pop): Rename to ...
7627         (nds32_emit_stack_v3pop): ... this and consider CFA restore
7628         information.
7629
7630 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7631
7632         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
7633         (nds32_emit_stack_push_multiple): ... this.
7634         (nds32_gen_stack_pop_multiple): Rename to ...
7635         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
7636         information.
7637
7638 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7639
7640         PR target/61078
7641         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
7642         and add a second splitter to handle the remaining cases.
7643
7644 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
7645
7646         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
7647
7648 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
7649
7650         * cfgexpand.c (label_rtx_for_bb): Change type to
7651         hash_map<basic_block, rtx_code_label *> *.
7652         (expand_gimple_basic_block): Adjust.
7653         (pass_expand::execute): Likewise.
7654
7655 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
7656
7657         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
7658         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
7659         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
7660         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
7661         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
7662         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
7663         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
7664         of rtx.
7665
7666 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
7667
7668         * alloc-pool.c: Include coretypes.h.
7669         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
7670         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
7671         hash_set instead of htab.
7672         * ggc-page.c (in_gc): New variable.
7673         (ggc_free): Do nothing if a collection is taking place.
7674         (ggc_collect): Set in_gc appropriately.
7675         * ggc.h (gt_ggc_mx(const char *)): New function.
7676         (gt_pch_nx(const char *)): Likewise.
7677         (gt_ggc_mx(int)): Likewise.
7678         (gt_pch_nx(int)): Likewise.
7679         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
7680         (hash_map::hash_entry::pch_nx): Likewise.
7681         (hash_map::hash_entry::pch_nx_helper): Likewise.
7682 (hash_map::hash_map): Adjust.
7683 (hash_map::create_ggc): New function.
7684 (gt_ggc_mx): Likewise.
7685 (gt_pch_nx): Likewise.
7686         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
7687 (default_hashset_traits::pch_nx): Likewise.
7688 (hash_set::hash_entry::ggc_mx): Likewise.
7689 (hash_set::hash_entry::pch_nx): Likewise.
7690 (hash_set::hash_entry::pch_nx_helper): Likewise.
7691 (hash_set::hash_set): Adjust.
7692 (hash_set::create_ggc): New function.
7693 (hash_set::elements): Likewise.
7694 (gt_ggc_mx): Likewise.
7695 (gt_pch_nx): Likewise.
7696         * hash-table.h (hash_table::hash_table): Adjust.
7697 (hash_table::m_ggc): New member.
7698         (hash_table::~hash_table): Adjust.
7699         (hash_table::expand): Likewise.
7700         (hash_table::empty): Likewise.
7701 (gt_ggc_mx): New function.
7702         (hashtab_entry_note_pointers): Likewise.
7703 (gt_pch_nx): Likewise.
7704
7705 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7706
7707         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
7708         built-in definition.
7709         (XVCVUXDDP_SCALE): Likewise.
7710         (XVCVDPSXDS_SCALE): Likewise.
7711         (XVCVDPUXDS_SCALE): Likewise.
7712         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
7713         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
7714         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
7715         VSX_BUILTIN_XVCVDPUXDS_SCALE.
7716         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
7717         prototype.
7718         * config/rs6000/rs6000.c (real.h): New include.
7719         (rs6000_scale_v2df): New function.
7720         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
7721         (UNSPEC_VSX_XVCVUXDDP): Likewise.
7722         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
7723         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
7724         (vsx_xvcvsxddp_scale): New define_expand.
7725         (vsx_xvcvsxddp): New define_insn.
7726         (vsx_xvcvuxddp_scale): New define_expand.
7727         (vsx_xvcvuxddp): New define_insn.
7728         (vsx_xvcvdpsxds_scale): New define_expand.
7729         (vsx_xvcvdpsxds): New define_insn.
7730         (vsx_xvcvdpuxds_scale): New define_expand.
7731         (vsx_xvcvdpuxds): New define_insn.
7732         * doc/extend.texi (vec_ctf): Add new prototypes.
7733         (vec_cts): Likewise.
7734         (vec_ctu): Likewise.
7735         (vec_splat): Likewise.
7736         (vec_div): Likewise.
7737         (vec_mul): Likewise.
7738
7739 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7740
7741         PR target/62275
7742         * config/arm/neon.md
7743         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
7744         <v_cmp_result>): New pattern.
7745         * config/arm/iterators.md (NEON_VCVT): New int iterator.
7746         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
7747         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
7748         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
7749         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
7750         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
7751
7752 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7753
7754         PR target/62275
7755         * config/arm/iterators.md (FIXUORS): New code iterator.
7756         (VCVT): New int iterator.
7757         (su_optab): New code attribute.
7758         (su): Likewise.
7759         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
7760
7761 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7762
7763         * config/aarch64/predicates.md (aarch64_comparison_operation):
7764         New special predicate.
7765         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
7766         aarch64_comparison_operation instead of matching an operator.
7767         Update operand numbers.
7768         (csinc3<mode>_insn): Likewise.
7769         (*csinv3<mode>_insn): Likewise.
7770         (*csneg3<mode>_insn): Likewise.
7771         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
7772         * config/aarch64/aarch64.c (aarch64_get_condition_code):
7773         Return -1 instead of aborting on invalid condition codes.
7774         (aarch64_print_operand): Update aarch64_get_condition_code callsites
7775         to assert that the returned condition code is valid.
7776         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
7777
7778 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
7779
7780         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
7781         tree.def, and gimple.def
7782
7783 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
7784             Balaji V. Iyer  <balaji.v.iyer@intel.com>
7785             Igor Zamyatin  <igor.zamyatin@intel.com>
7786
7787         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
7788         (__cilkrts_cilk_for_64): Likewise.
7789         * cilk-common.c (declare_cilk_for_builtin): New function.
7790         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
7791         __cilkrts_cilk_for_64 bultins.
7792         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
7793         CILK_TI_F_LOOP_64.
7794         (cilk_for_32_fndecl): New define.
7795         (cilk_for_64_fndecl): Likewise.
7796         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
7797         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
7798         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
7799         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
7800         GF_OMP_FOR_COMBINED_INTO.
7801         * gimplify.c (gimplify_scan_omp_clauses): Added
7802         OMP_CLAUSE__CILK_FOR_COUNT_ case.
7803         (gimplify_adjust_omp_clauses): Ditto.
7804         (gimplify_omp_for): Added CILK_FOR case.
7805         (gimplify_expr): Ditto.
7806         * omp-low.c: Include cilk.h.
7807         (extract_omp_for_data): Set appropriate kind for
7808         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
7809         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
7810         (create_omp_child_function_name): Added second argument to handle
7811         cilk_for case.
7812         (cilk_for_check_loop_diff_type): New function.
7813         (expand_cilk_for_call): Likewise.
7814         (expand_cilk_for): Likewise.
7815         (create_omp_child_function): Set cilk_for_count; handle the cases when
7816         it is true; call create_omp_child_function_name with second argument.
7817         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
7818         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
7819         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
7820         * tree-nested.c (convert_nonlocal_omp_clauses): Added
7821         OMP_CLAUSE__CILK_FOR_COUNT_ case.
7822         (convert_local_omp_clauses): Ditto.
7823         * tree-pretty-print.c (dump_omp_clause): Added
7824         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
7825         (dump_generic_node): Added CILK_FOR case.
7826         * tree.c (omp_clause_num_ops): New element
7827         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
7828         (omp_clause_code_name): New element _Cilk_for_count_.
7829         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
7830         * tree.def: Add tree code for CILK_FOR.
7831
7832 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7833
7834         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
7835         (ppc403-compare): Add "exts with dot" case.
7836         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
7837         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
7838         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
7839         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
7840         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
7841         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
7842         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
7843         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
7844         cell-cmp-microcoded): Similarly.
7845         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
7846         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
7847         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
7848         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
7849         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
7850         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
7851         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
7852         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
7853         (power6-compare): Add "exts with dot" case.
7854         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
7855         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
7856         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
7857
7858         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
7859         if avoiding Cell microcode.
7860         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
7861         (is_cracked_insn): Ditto.
7862         (insn_must_be_first_in_group): Ditto.
7863         * config/rs6000/rs6000.md (dot): Adjust comment.
7864         (cell_micro): Handle exts+dot.
7865         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
7866         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
7867         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
7868         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
7869         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
7870         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
7871         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
7872
7873 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7874
7875         * config/rs6000/rs6000.md (QHSI): Delete.
7876         (EXTQI, EXTHI, EXTSI): New mode iterators.
7877         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
7878         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
7879         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
7880         9 anonymous instructions, and 8 splitters): Delete.
7881         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
7882         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
7883         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
7884         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
7885         *zero_extendsi<mode>2_dot2): New.
7886
7887 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7888
7889         * config/rs6000/rs6000.md (any_extend): New code iterator.
7890         (u, su): New code attributes.
7891         (dmode, DMODE): New mode attributes.
7892         (<su>mul<mode>3_highpart): New.
7893         (*<su>mul<mode>3_highpart): New.
7894         (<su>mulsi3_highpart_le): New.
7895         (<su>muldi3_highpart_le): New.
7896         (<su>mulsi3_highpart_64): New.
7897         (<u>mul<mode><dmode>3): New.
7898         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
7899         splitters): Delete.
7900         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
7901         splitters): Delete.
7902
7903 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
7904
7905         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
7906         *mulsi3_internal2, and two splitters): Delete.
7907         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
7908         Delete.
7909         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
7910
7911 2014-09-02  Richard Biener  <rguenther@suse.de>
7912
7913         PR tree-optimization/62695
7914         * tree-ssa-structalias.c (find_func_clobbers): Add missing
7915         vector truncate.
7916
7917 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
7918
7919         PR target/62312
7920         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
7921
7922 2014-09-01  Andi Kleen  <ak@linux.intel.com>
7923
7924         * file-find.c (add_prefix_begin): Add.
7925         (do_add_prefix): Rename from add_prefix with first argument.
7926         (add_prefix): Add new wrapper.
7927         * file-find.h (add_prefix_begin): Add.
7928         * gcc-ar.c (main): Support -B option.
7929
7930 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
7931
7932         * genemit.c: Include dumpfile.h.
7933         (gen_split): Print name of splitter function to dump file.
7934
7935 2014-09-01  Richard Biener  <rguenther@suse.de>
7936
7937         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
7938         Use stack auto_vecs for constraint expressions.
7939         (find_func_aliases_for_call): Likewise.
7940         (find_func_aliases): Likewise.
7941         (find_func_clobbers): Likewise.
7942
7943 2014-09-01  Richard Biener  <rguenther@suse.de>
7944
7945         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
7946         operands vector in most cases.  Remove redundant code.
7947
7948 2014-09-01  Olivier Hainque  <hainque@adacore.com>
7949
7950         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
7951         $WIND_BASE instead of designating a harcoded arbitrary home dir.
7952         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
7953
7954 2014-09-01  Richard Biener  <rguenther@suse.de>
7955
7956         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
7957         copy_reference_ops_from_call, vn_nary_op_compute_hash,
7958         vn_reference_compute_hash, vn_reference_insert): Remove.
7959         (vn_reference_lookup_call): New function.
7960         * tree-ssa-sccvn.c (vn_reference_compute_hash,
7961         copy_reference_ops_from_ref, copy_reference_ops_from_call,
7962         vn_reference_insert, vn_nary_op_compute_hash): Make static.
7963         (create_reference_ops_from_call): Remove.
7964         (vn_reference_lookup_3): Properly update shared_lookup_references.
7965         (vn_reference_lookup_pieces): Assert that we updated
7966         shared_lookup_references properly.
7967         (vn_reference_lookup): Likewise.
7968         (vn_reference_lookup_call): New function.
7969         (visit_reference_op_call): Use it.  Avoid re-building the
7970         reference ops.
7971         (visit_reference_op_load): Remove redundant lookup.
7972         (visit_reference_op_store): Perform special tail-merging work
7973         only when possibly doing tail-merging.
7974         (visit_use): Likewise.
7975         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
7976
7977 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
7978
7979         PR target/62025
7980         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
7981         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
7982         (find_inc): Revert 2014-08-13 change.
7983
7984 2014-09-01  Marek Polacek  <polacek@redhat.com>
7985
7986         PR middle-end/61903
7987         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
7988         Change the type of V to unsigned HOST_WIDE_INT.
7989
7990 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7991
7992         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
7993         the size of byte markers.
7994         (do_shift_rotate): Fix confusion between host, target and marker byte
7995         size.
7996         (verify_symbolic_number_p): Likewise.
7997         (find_bswap_or_nop_1): Likewise.
7998         (find_bswap_or_nop): Likewise.
7999
8000 2014-09-01  Olivier Hainque  <hainque@adacore.com>
8001
8002         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
8003         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
8004
8005 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
8006
8007         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
8008         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
8009         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
8010
8011 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
8012
8013         PR sanitizer/61897
8014         PR sanitizer/62140
8015         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
8016         (build_check_stmt): Likewise.
8017         (instrument_strlen_call): Likewise.
8018         (asan_expand_check_ifn): Likewise and fix types.
8019         (maybe_cast_to_ptrmode): New function.
8020
8021 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8022
8023         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
8024
8025 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
8026
8027         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
8028
8029 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
8030
8031         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
8032         prefix to function labels when generating fast indirect calls.
8033
8034 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
8035
8036         PR bootstrap/62304
8037
8038         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
8039         param back from rtx_insn * to rtx.  Rename param from "label" to
8040         "label_or_return", reintroducing "label" as an rtx_insn * after
8041         we've ensured it's not a RETURN.
8042         (first_active_target_insn): Likewise for return type and param;
8043         add a checked cast to rtx_insn * once we've ensured "insn" is not
8044         a RETURN.
8045         (steal_delay_list_from_target): Convert param "pnew_thread" back
8046         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
8047         with JUMP_LABEL.
8048         (own_thread_p): Convert param "thread" back from an rtx_insn * to
8049         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
8050         cast once we've established we're not dealing with a RETURN,
8051         renaming subsequent uses of "thread" to "thread_insn".
8052         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
8053         to JUMP_LABEL.
8054         (follow_jumps): Convert return type and param "label" from
8055         rtx_insn * back to rtx.  Move initialization of "value" to after
8056         the handling for ANY_RETURN_P, adding a checked cast there to
8057         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
8058         rename to "this_label_or_return", reintroducing "this_label" as
8059         an rtx_insn * once we've handled the case where it could be an
8060         ANY_RETURN_P.
8061         (fill_slots_from_thread): Rename param "thread" to
8062         "thread_or_return", converting from an rtx_insn * back to an rtx.
8063         Reintroduce name "thread" as an rtx_insn * local with a checked
8064         cast once we've handled the case of it being an ANY_RETURN_P.
8065         Convert local "new_thread" from an rtx_insn * back to an rtx.
8066         Add a checked cast when assigning to "trial" from "new_thread".
8067         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
8068         checked cast to rtx_insn * from "new_thread" when invoking
8069         get_label_before.
8070         (fill_eager_delay_slots): Convert locals "target_label",
8071         "insn_at_target" from rtx_insn * back to rtx.
8072         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
8073         (relax_delay_slots): Convert locals "trial", "target_label" from
8074         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
8075         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
8076         invoking update_block.
8077         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
8078         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
8079
8080         * resource.h (mark_target_live_regs): Undo erroneous conversion
8081         of second param of r214693, converting it back from rtx_insn * to
8082         rtx, since it could be a RETURN.
8083
8084         * resource.c (find_dead_or_set_registers): Similarly, convert
8085         param "jump_target" back from an rtx_insn ** to an rtx *, as we
8086         could be writing back a RETURN.  Rename local rtx_insn * "next" to
8087         "next_insn", and introduce "lab_or_return" as a local rtx,
8088         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
8089         (mark_target_live_regs): Undo erroneous conversion
8090         of second param of r214693, converting it back from rtx_insn * to
8091         rtx, since it could be a RETURN.  Rename it from "target" to
8092         "target_maybe_return", reintroducing the name "target" as a local
8093         rtx_insn * with a checked cast, after we've handled the case of
8094         ANY_RETURN_P.
8095
8096 2014-08-29  DJ Delorie  <dj@redhat.com>
8097
8098         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
8099         pointer size up to a power of two.
8100         * defaults.h (DWARF2_ADDR_SIZE): Round up.
8101         (POINTER_SIZE_UNITS): New, rounded up value.
8102         * dwarf2asm.c (size_of_encoded_value): Use it.
8103         (dw2_output_indirect_constant_1): Likewise.
8104         * expmed.c (init_expmed_one_conv): We now know the sizes of
8105         partial int modes.
8106         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
8107         * optabs.c (expand_float): Use precision, not size.
8108         (expand_fix): Likewise.
8109         * simplify-rtx (simplify_unary_operation_1): Likewise.
8110         * tree-dfa.c (get_ref_base_and_extent): Likewise.
8111         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
8112         (default_assemble_integer) Likewise.
8113         (dump_tm_clone_pairs): Likewise.
8114         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
8115         * var-tracking.c (adjust_mems): Allow partial-int modes also.
8116         (prepare_call_arguments): Likewise.
8117         * stor-layout.c (finalize_type_size): Preserve precision.
8118         (layout_type): Use precision, not size.
8119
8120         * expr.c (convert_move): If the target has an explicit converter,
8121         use it.
8122
8123 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
8124
8125         * gdbinit.in: Skip various inline functions in rtl.h when
8126         stepping.
8127
8128 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
8129
8130         PR bootstrap/62301
8131         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
8132
8133 2014-08-29  Richard Biener  <rguenther@suse.de>
8134
8135         PR tree-optimization/62291
8136         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
8137         exactly the vector size needed and use quick_push.
8138         (phi_translate_1): Adjust comment.
8139         (valid_in_sets): Remove block argument and remove pointless
8140         checking of NAMEs.
8141         (dependent_clean): Adjust for removal of block argument.
8142         (clean): Likewise.
8143         (compute_antic_aux): Likewise.
8144         (compute_partial_antic_aux): Likewise.
8145
8146 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8147             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8148             Anna Tikhonova  <anna.tikhonova@intel.com>
8149             Ilya Tocar  <ilya.tocar@intel.com>
8150             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8151             Ilya Verbin  <ilya.verbin@intel.com>
8152             Kirill Yukhin  <kirill.yukhin@intel.com>
8153             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8154
8155         * config/i386/sse.md
8156         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
8157         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
8158         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
8159         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
8160
8161 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
8162             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
8163             Anna Tikhonova  <anna.tikhonova@intel.com>
8164             Ilya Tocar  <ilya.tocar@intel.com>
8165             Andrey Turetskiy  <andrey.turetskiy@intel.com>
8166             Ilya Verbin  <ilya.verbin@intel.com>
8167             Kirill Yukhin  <kirill.yukhin@intel.com>
8168             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
8169
8170         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
8171         * config/i386/sse.md
8172         (define_mode_iterator VI4_128_8_256): New.
8173         (define_mode_iterator VI2_128_4_256): Ditto.
8174         (define_mode_iterator PMOV_DST_MODE): Rename into
8175         (define_mode_iterator PMOV_DST_MODE_1): this.
8176         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
8177         Use PMOV_DST_MODE_1 mode iterator.
8178         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
8179         Ditto.
8180         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
8181         Ditto.
8182         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
8183         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
8184         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
8185         (define_mode_iterator PMOV_DST_MODE_2): New.
8186         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
8187         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
8188         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
8189         Ditto.
8190         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
8191         (define_mode_attr pmov_dst_3): Ditto.
8192         (define_mode_attr pmov_dst_zeroed_3): Ditto.
8193         (define_mode_attr pmov_suff_3): Ditto.
8194         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
8195         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
8196         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
8197         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
8198         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
8199         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
8200         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
8201         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
8202         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
8203         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
8204         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
8205         (define_mode_attr pmov_dst_4): Ditto.
8206         (define_mode_attr pmov_dst_zeroed_4): Ditto.
8207         (define_mode_attr pmov_suff_4): Ditto.
8208         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
8209         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
8210         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
8211         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
8212         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
8213         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
8214         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
8215         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
8216         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
8217         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
8218         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
8219
8220 2014-08-29  Richard Biener  <rguenther@suse.de>
8221
8222         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
8223         NON_LVALUE_EXPR in gimple.
8224
8225 2014-08-29  Richard Biener  <rguenther@suse.de>
8226
8227         PR middle-end/62292
8228         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
8229         from previous refactoring.
8230         (gimple_fold_builtin_strncpy): Likewise.
8231
8232 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
8233
8234         PR bootstrap/62300
8235         * function.c (assign_parm_setup_reg): Remove erroneous checked
8236         cast to rtx_insn * on result of gen_extend_insn in favor of
8237         introducing a new local rtx "pat".
8238
8239 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8240
8241         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
8242         to silence warning.
8243         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
8244
8245 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8246
8247         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
8248         (next_insn): Likewise.
8249         * emit-rtl.c (next_insn): Likewise.
8250         (previous_insn): Likewise.
8251         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
8252         "insn" and "next" from rtx to rtx_insn *.
8253         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
8254         "insn", "insn1", "vliw_start",  "prologue_end_note",
8255         "last_insn_in_packet".
8256
8257 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8258
8259         * shrink-wrap.h (active_insn_between): Strengthen both params from
8260         rtx to rtx_insn *.
8261         * function.c (active_insn_between): Likewise.
8262
8263 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8264
8265         * genattr.c (main): When writing out insn-attr.h, strengthen param
8266         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
8267         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
8268         writing out the definition of dfa_clear_single_insn_cache to the
8269         generated insn-automata.c
8270
8271 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8272
8273         * resource.h (clear_hashed_info_for_insn): Strengthen param from
8274         rtx to rtx_insn *.
8275         (incr_ticks_for_insn): Likewise.
8276         (init_resource_info): Likewise.
8277
8278         * resource.c (init_resource_info): Likewise.
8279         (clear_hashed_info_for_insn): Likewise.
8280         (incr_ticks_for_insn): Likewise.
8281
8282         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
8283         rtx to rtx_insn *.
8284         (steal_delay_list_from_target): Use methods of "seq".
8285         (try_merge_delay_insns): Use methods of "merged_insns".
8286         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
8287         (reorg_redirect_jump): Likewise for param "jump".
8288
8289 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8290
8291         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
8292         rtx to rtx_insn *.
8293         * config/s390/s390.c (s390_split_branches): Eliminate top-level
8294         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
8295         "set_insn".
8296         (s390_mainpool_finish): In three places, split out a local rtx
8297         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
8298         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
8299         and split another local rtx "insn" out into rtx "pat" and
8300         rtx_insn * "insn".
8301         * config/sh/sh.c (output_branchy_insn): Rather than working
8302         directly on operands[9], introduce local rtx_code_label *
8303         variables named "lab" in two places, working on them, and then
8304         assigning them to operands[9], so that the intervening operations
8305         are known by the type system to be on insns.
8306
8307 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8308
8309         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
8310         const rtx_insn *.
8311
8312         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
8313         in invocation of INSN_HAS_LOCATION.
8314
8315 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8316
8317         * config/rs6000/altivec.h (vec_xl): New #define.
8318         (vec_xst): Likewise.
8319         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
8320         (XXSPLTD_V2DI): Likewise.
8321         (DIV_V2DI): Likewise.
8322         (UDIV_V2DI): Likewise.
8323         (MUL_V2DI): Likewise.
8324         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8325         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
8326         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
8327         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
8328         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
8329         (UNSPEC_VSX_DIVSD): Likewise.
8330         (UNSPEC_VSX_DIVUD): Likewise.
8331         (UNSPEC_VSX_MULSD): Likewise.
8332         (vsx_mul_v2di): New insn-and-split.
8333         (vsx_div_v2di): Likewise.
8334         (vsx_udiv_v2di): Likewise.
8335         (vsx_xxspltd_<mode>): New insn.
8336
8337 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8338
8339         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
8340         NEXT_INSN.
8341         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
8342         (NEXT_INSN): Likewise.
8343         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
8344         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
8345         const rtx_insn *.
8346         (no_labels_between_p): Likewise for both params.
8347
8348         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
8349         cast when using NEXT_INSN on operands[2].
8350         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
8351         "insn" from rtx to rtx_insn *, adding a checked cast.
8352         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
8353         rtx_insn *.
8354         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
8355         for third param.
8356         (arc_text_label): Likewise for param "insn".
8357         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
8358         "insn".
8359         (arc_ccfsm_record_condition): Likewise for param "jump".
8360         (arc_text_label): Likewise for local "label".
8361         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
8362         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
8363         a method for typesafety.  Add a checked cast.
8364         * config/arc/constraints.md (Clb): Add a checked cast when getting
8365         the CODE_LABEL from a LABEL_REF.
8366         * config/arm/arm.c (require_pic_register): Strengthen locals
8367         "seq", "insn" from rtx to rtx_insn *.
8368         (create_fix_barrier): Likewise for locals "selected", "next".
8369         (thumb1_reorg): Likewise for locals "prev", "insn".
8370         (arm_expand_prologue): Likewise for local "last".
8371         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
8372         operands[0].
8373         (thumb2_output_casesi): Likewise for operands[2].
8374         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
8375         strengthen local "insn" from rtx to rtx_insn *.
8376         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
8377         type and param "insn".
8378         (find_prev_insn_start): Likewise.
8379         (hwloop_optimize): Likewise for locals "insn", "last_insn",
8380         "prev".
8381         (gen_one_bundle): Likewise for loal "t".
8382         (find_load): Likewise for param "insn".
8383         (workaround_speculation): Likewise for locals "insn", "next",
8384         "target", "next_tgt".
8385         * config/c6x/c6x.c (assign_reservations): Likewise for both params
8386         and for locals "insn", "within", "last".
8387         (count_unit_reqs): Likewise for params "head", "tail" and local
8388         "insn".
8389         (try_rename_operands): Likewise for params "head", "tail".
8390         (reshuffle_units): Likewise for locals "head", "tail", "insn".
8391         (struct c6x_sched_context): Likewise for fields
8392         "last_scheduled_insn", "last_scheduled_iter0".
8393         (init_sched_state): Replace NULL_RTX with NULL.
8394         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
8395         to rtx_insn *.
8396         (undo_split_delayed_nonbranch): Likewise for param and for local
8397         "prev".
8398         (conditionalize_after_sched): Likewise for local "insn".
8399         (bb_earliest_end_cycle): Likewise.
8400         (filter_insns_above): Likewise for locals "insn", "next".
8401         (hwloop_optimize): Remove redundant checked cast.
8402         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
8403         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
8404         NULL_RTX with NULL.
8405         (cris_simple_epilogue): Likewise.
8406         (cris_expand_prologue): Likewise.
8407         (cris_expand_epilogue): Likewise.
8408         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
8409         local "insn" from rtx to rtx_insn *.
8410         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
8411         (struct frv_packet_group): Likewise for the elements within array
8412         fields "insns", "sorted", and for field "nop".
8413         (frv_packet): Likewise for the elements within array field
8414         "insns".
8415         (frv_add_insn_to_packet): Likewise for param "insn".
8416         (frv_insert_nop_in_packet): Likewise for param "insn" and local
8417         "last".
8418         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
8419         (frv_sort_insn_group_1): Likewise for local "insn".
8420         (frv_optimize_membar_local): Likewise.
8421         (frv_align_label): Likewise for locals "x", "last", "barrier",
8422         "label".
8423         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
8424         local.
8425         (ia64_sched_init): Likewise for local "insn".
8426         (scheduled_good_insn): Likewise for param "last".
8427         (struct _ia64_sched_context): Likewise for field
8428         "last_scheduled_insn".
8429         (ia64_init_sched_context): Replace NULL_RTX with NULL.
8430         (struct bundle_state): Likewise for field "insn".
8431         (issue_nops_and_insn): Likewise for param "insn".
8432         (get_next_important_insn): Likewise for return type and both
8433         params.
8434         (ia64_add_bundle_selector_before): Likewise for param "insn".
8435         (bundling): Likewise for params "prev_head_insn", "tail" and
8436         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
8437         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
8438         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
8439         Strengthen final param from rtx to rtx_insn *.
8440         (iq2000_move_1word): Likewise for second param.
8441         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
8442         param "cur_insn" and local "next_insn".
8443         (iq2000_move_1word): Likewise for param "insn".
8444         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
8445         casts when using NEXT_INSN on operands[1].
8446         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
8447         "insn" from rtx to rtx_insn *.
8448         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
8449         "x", introducing local rtx_insn * "insn" for when working with the
8450         CODE_LABEL of the LABEL_REF.
8451         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
8452         rtx_insn *.
8453         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
8454         param.
8455         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
8456         type.
8457         (conditionalize_block): Likewise for return type and param.
8458         (mcore_is_dead): Likewise for param "first" and local "insn".
8459         (emit_new_cond_insn): Likewise for return type.
8460         (conditionalize_block): Likewise for return type, param, and
8461         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
8462         "newinsn".
8463         (conditionalize_optimization): Likewise for local "insn".
8464         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
8465         using NEXT_INSN.
8466         * config/microblaze/microblaze.md: Add checked casts when using
8467         NEXT_INSN.
8468         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
8469         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
8470         and rtx_insn * "insn".
8471         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
8472         checked cast when using NEXT_INSN on operands[2].
8473         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
8474         local "insn" from rtx to rtx_insn *.
8475         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
8476         Likewise.
8477         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
8478         Add a checked cast when using NEXT_INSN on operands[1].
8479         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
8480         rtx to rtx_insn *.
8481         (pa_output_cbranch): Likewise for final param.
8482         (pa_output_lbranch): Likewise for second param.
8483         (pa_output_bb): Likewise for third param.
8484         (pa_output_bvb): Likewise.
8485         (pa_output_dbra): Likewise for second param.
8486         (pa_output_movb): Likewise.
8487         (pa_output_parallel_movb): Likewise.
8488         (pa_output_parallel_addb): Likewise.
8489         (pa_output_millicode_call): Likewise for first param.
8490         (pa_output_mul_insn): Likewise for second param.
8491         (pa_output_div_insn): Likewise for third param.
8492         (pa_output_mod_insn): Likewise for second param.
8493         (pa_jump_in_call_delay): Likewise for param.
8494         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
8495         (pa_output_div_insn): Likewise.
8496         (pa_output_mod_insn): Likewise.
8497         (pa_output_cbranch): Likewise.
8498         (pa_output_lbranch): Likewise.
8499         (pa_output_bb): Likewise.
8500         (pa_output_bvb): Likewise.
8501         (pa_output_dbra): Likewise.
8502         (pa_output_movb): Likewise.
8503         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
8504         to simplify and for typesafety.
8505         (pa_output_call): Use method of rtx_sequence *.
8506         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
8507         (pa_jump_in_call_delay): Likewise.
8508         (pa_output_parallel_movb): Likewise.
8509         (pa_output_parallel_addb): Likewise.
8510         (pa_following_call): Likewise.
8511         (pa_combine_instructions): Likewise for locals "anchor",
8512         "floater".
8513         (pa_can_combine_p): Likewise for params "anchor", "floater" and
8514         locals "start", "end".
8515         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
8516         param "insn" and local "local_insn".
8517         (picochip_final_prescan_insn): Likewise for local "local_insn".
8518         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
8519         local "insn".
8520         (uses_TOC): Likewise.
8521         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
8522         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
8523         splitting out to more tightly-scoped locals, 3 as rtx and one as
8524         rtx_insn *.
8525         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
8526         to rtx_insn *.
8527         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
8528         where needed.
8529         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
8530         to rtx_insn *.
8531         (fixup_addr_diff_vecs): Likewise.
8532         (reg_unused_after): Likewise for param 2.
8533         (sh_can_redirect_branch): Likewise for both params.
8534         (check_use_sfunc_addr): Likewise for param 1.
8535         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
8536         (find_barrier): Likewise for local "last_got".
8537         (gen_block_redirect): Likewise for return type, param "jump" and
8538         locals "prev", "scan", "next", "insn".
8539         (struct far_branch): Likewise for fields "near_label",
8540         "insert_place", "far_label".
8541         (gen_far_branch): Likewise for local "jump".
8542         (fixup_addr_diff_vecs): Likewise for param "first" and locals
8543         "insn", "prev".
8544         (barrier_align): Likewise for param and for locals "prev", "x".
8545         Introduce local rtx_sequence * "prev_seq" and use insn method for
8546         typesafety and clarity.
8547         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
8548         (get_dest_uid): Likewise for local "dest".
8549         (split_branches): Likewise for locals "next", "beyond", "label",
8550         "block", "far_label".  Add checked casts when assigning to
8551         bp->far_label and "far_label".
8552         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
8553         (sequence_insn_p): Likewise.
8554         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
8555         more loop-scoped rtx "insn" when walking LABEL_REFS.
8556         (sh_can_redirect_branch): Strengthen both params from rtx to
8557         rtx_insn *.
8558         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
8559         new local rtx_sequence * "seq" via a dyn_cast, and use a method
8560         for clarity and typesafety.
8561         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
8562         "insn" from rtx to rtx_insn *.
8563         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
8564         when using NEXT_INSN on the CODE_LABEL in operands[2].
8565         (define_insn "casesi_worker_2"): Likewise.
8566         (define_insn "casesi_shift_media"): Likewise.
8567         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
8568         operands[3].
8569         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
8570         Strengthen field "insn" from rtx to rtx_insn *.
8571         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
8572         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
8573         param "start_insn" and local "start_insn".
8574         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
8575         field "insn".
8576         (find_set_of_reg_bb): Likewise for param "insn".
8577         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
8578         (trace_reg_uses): Likewise for param "start_insn".
8579         (sh_treg_combine::cbranch_trace): Likewise for field
8580         "cbranch_insn".
8581         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
8582         param "insn".
8583         (sh_treg_combine::record_set_of_reg): Likewise for param
8584         "start_insn" and local "i".
8585         (sh_treg_combine::can_remove_cstore): Likewise for local
8586         "prev_insn".
8587         (sh_treg_combine::try_optimize_cbranch): Likewise for param
8588         "insn".
8589         (sh_treg_combine::execute): Likewise for local "i".
8590         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
8591         param.
8592         (sparc_check_64): Likewise for second param.
8593         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
8594         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
8595         dyn_cast, using its insn method for typesafety and clarity.
8596         (empty_delay_slot): Strengthen param "insn" from rtx to
8597         rtx_insn *.
8598         (set_extends): Likewise.
8599         (sparc_check_64): Likewise.
8600         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
8601         for locals "seq", "last_insn".
8602         (combine_bnp): Likewise for param "insn".
8603         (xstormy16_reorg): Likewise for local "insn".
8604         * config/v850/v850.c (substitute_ep_register): Likewise for params
8605         "first_insn", "last_insn" and local "insn".
8606         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
8607         elements of "regs" array, and local "insn".
8608         * except.c (emit_note_eh_region_end): Likewise for param "insn".
8609         * final.c (final_sequence): Strengthen this global from rtx to
8610         rtx_sequence *.
8611         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
8612         rtx_insn *.
8613         (final_scan_insn): Update assignment to "final_sequence" to be
8614         from "seq", the cast version of "body", for type-safety.
8615         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
8616         "insns" from rtx to rtx_insn *.
8617         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
8618         * genattr.c (main): When writing out generated insn-attr.h,
8619         strengthen params 1 and 3 of eligible_for_delay,
8620         eligible_for_annul_true, eligible_for_annul_false from rtx to
8621         rtx_insn *.
8622         * genattrtab.c (write_eligible_delay): Likewise when writing out
8623         generated insn-attrtab.c; also local "insn" the generated
8624         functions.
8625         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
8626         to rtx_insn *.
8627         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
8628         "start_label" from rtx to rtx_insn *.
8629         * ira.c (decrease_live_ranges_number): Likewise for local "p".
8630         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
8631         "insns" and local "insn".
8632         (validate_equiv_mem): Likewise for param "start" and local "insn".
8633         (memref_used_between_p): Likewise for params "start", "end" and
8634         local "insn".
8635         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
8636         final param.
8637         * loop-doloop.c (doloop_optimize): Within region guarded by
8638         INSN_P (doloop_pat), introduce a new local rtx_insn *
8639         "doloop_insn" via a checked cast, and use it for typesafety,
8640         eventually writing the value back into doloop_pat.
8641         * output.h (final_sequence): Strengthen this global from rtx to
8642         rtx_sequence *.
8643         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
8644         reintroducing "insn" as an rtx_insn * via a checked cast.
8645         Strengthen param "attempt" and local "new_insn"from rtx to
8646         rtx_insn *.
8647         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
8648         to rtx_insn *.
8649         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
8650         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
8651         "p" in favor of more tightly-scoped replacements, sometimes rtx
8652         and sometimes rtx_insn *, as appropriate.
8653         (delete_output_reload): Eliminate top-level rtx "i1", splitting
8654         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
8655         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
8656         local "trial" from rtx to rtx_insn *.
8657         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
8658         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
8659         rtx_sequence * and use methods for clarity and typesafety.
8660         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
8661         rtx to rtx_insn *.  Strenghten local "li" from rtx to
8662         rtx_insn_list * and use its methods for clarity and typesafety.
8663         (steal_delay_list_from_target): Strengthen param "insn" from rtx
8664         to rtx_insn *.
8665         (steal_delay_list_from_fallthrough): Likewise.
8666         (try_merge_delay_insns): Likewise for param "thread" and locals
8667         "trial", "next_trial", "delay_insn".
8668         (redundant_insn): Likewise for param "target" and local "trial".
8669         (own_thread_p): Likewise for param "thread" and locals
8670         "active_insn", "insn".
8671         (get_label_before): Likewise for param "insn".
8672         (fill_simple_delay_slots): Likewise for local "new_label"; use
8673         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
8674         (label_before_next_insn): Strengthen return type and local "insn"
8675         from rtx to rtx_insn *.
8676         (relax_delay_slots): Likewise for locals "other", "tmp".
8677         (make_return_insns): Likewise for param "first" and locals "insn",
8678         "jump_insn", "prev".  Move declaration of "pat" to its assignment
8679         and strengthen from rtx to rtx_sequence *.  Use its methods for
8680         clarity and typesafety.
8681         * rtlanal.c (no_labels_between_p): Strengthen params from
8682         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
8683         rtx_insn *.
8684         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
8685         from const_rtx to const rtx_insn *.
8686         (reg_set_between_p): Rename param "from_insn" to
8687         "uncast_from_insn", and reintroduce "from_insn" as a
8688         const rtx_insn * via a checked cast.
8689         (modified_between_p): Likewise for param "start" as "uncast_start".
8690         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
8691         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
8692         "tmp", head" from rtx to rtx_insn *.
8693         (recompute_rev_top_order): Likewise for local "insn".
8694         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
8695         * store-motion.c (build_store_vectors): Likewise for local "insn".
8696         Strengthen local "st" from rtx to rtx_insn_list * and use methods
8697         for clarity and typesafety.
8698         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
8699         rtx to rtx_insn *.
8700         (computation_cost): Likewise for local "seq".
8701         (get_address_cost): Likewise.
8702
8703 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8704
8705         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
8706         const rtx_insn *.
8707         (label_is_jump_target_p): Likewise for second param.
8708
8709         * rtlanal.c (tablejump_p): Likewise for param "insn".
8710         (label_is_jump_target_p): Likewise for param "jump_insn".
8711
8712 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8713
8714         * rtl.h (find_first_parameter_load): Strengthen return type and
8715         both params from rtx to rtx_insn *.
8716         * rtlanal.c (find_first_parameter_load): Strengthen return type,
8717         both params and locals "before", "first_set" from rtx to
8718         rtx_insn *.  Remove now-redundant cast.
8719         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
8720
8721 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8722
8723         * rtl.h (find_last_value): Delete.
8724         * rtlanal.c (find_last_value): Delete.
8725
8726 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8727
8728         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
8729         from rtx to rtx_insn *.
8730         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
8731         rtx "note" with new local rtx_insn * "new_head" when calculating
8732         head insn of new basic block.
8733         * combine.c (combine_split_insns): Strengthen return type and local
8734         "ret" from rtx to rtx_insn *.
8735         (likely_spilled_retval_p): Likewise for locals "use" and "p".
8736         (try_combine): Eliminate local "m_split", splitting into new
8737         locals "m_split_insn" and "m_split_pat".
8738         (find_split_point): Strengthen local "seq" from rtx into
8739         rtx_insn *.
8740         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
8741         locals "label", "branch".
8742         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
8743         for local "insn".
8744         (define_expand "umulsi3_highpart"): Likewise for local "insn".
8745         * dse.c (note_add_store_info): Likewise for fields "first",
8746         "current".
8747         (note_add_store): Likewise for local "insn".
8748         (emit_inc_dec_insn_before): Likewise for locals "insn",
8749         "new_insn", "cur".
8750         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
8751         (replace_read): Likewise for locals "insns", "this_insn".
8752         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
8753         (notice_eh_throw): Likewise for param "insn".
8754         (before_next_cfi_note): Likewise for return type, param, and local
8755         "prev".
8756         (connect_traces): Likewise for local "note".
8757         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
8758         (verify_rtl_sharing): Likewise.
8759         (unshare_all_rtl_in_chain): Likewise for param "insn".
8760         (get_first_nonnote_insn): Likewise for local "insn".
8761         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
8762         "seq" and use its methods to clarify things.
8763         (next_insn): Strengthen return type from rtx to rtx_insn *.
8764         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
8765         local rtx_insn * using a checked cast, dropping a checked cast
8766         made redundant by this change.  Use a cast to and method of
8767         rtx_sequence to clarify the code.
8768         (previous_insn): Rename param "insn" to "uncast_insn" and
8769         reintroduce "insn" as a local rtx_insn * using a checked cast,
8770         dropping a checked cast made redundant by this change.  Use a cast
8771         to and method of rtx_sequence to clarify the code.
8772         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
8773         reintroduce "insn" as a local rtx_insn * using a checked cast,
8774         dropping a checked cast made redundant by this change.
8775         (next_nonnote_insn_bb): Likewise.
8776         (prev_nonnote_insn): Likewise.
8777         (prev_nonnote_insn_bb): Likewise.
8778         (next_nondebug_insn): Likewise.
8779         (prev_nondebug_insn): Likewise.
8780         (next_nonnote_nondebug_insn): Likewise.
8781         (prev_nonnote_nondebug_insn): Likewise.
8782         (next_real_insn): Likewise.
8783         (prev_real_insn): Likewise.
8784         (next_active_insn): Likewise.
8785         (prev_active_insn): Likewise.
8786         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
8787         clarity.
8788         (prev_cc0_setter): Likewise.
8789         (try_split): Rename param "trial" to "uncast_trial" and
8790         reintroduce "insn" as a local rtx_insn * using a checked cast,
8791         dropping checked casts made redundant by this change.
8792         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
8793         rtx to rtx_insn *.
8794         (remove_insn): Rename param "insn" to "uncast_insn" and
8795         reintroduce "insn" as a local rtx_insn * using a checked cast.
8796         (emit_pattern_after_setloc): Likewise for param "after", as
8797         "uncast_after".
8798         (emit_pattern_after): Likewise.  Strengthen local "prev" from
8799         rtx to rtx_insn *.
8800         (emit_pattern_before_setloc): Rename param "before" to
8801         "uncast_before" and reintroduce "before" as a local rtx_insn *
8802         using a checked cast.  Strengthen locals "first", "last" from
8803         rtx to rtx_insn *.
8804         (emit_pattern_before): Likewise rename/cast param "before" to
8805         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
8806         * except.c (copy_reg_eh_region_note_forward): Strengthen param
8807         "first" and local "insn" from rtx to rtx_insn *.
8808         (copy_reg_eh_region_note_backward): Likewise for param "last"
8809         and local "insn".
8810         * expr.c (fixup_args_size_notes): Rename param "last" to
8811         "uncast_last" and reintroduce "last" as a local rtx_insn *
8812         using a checked cast.  Strengthen local "insn" from rtx to
8813         rtx_insn *.
8814         * function.c (set_insn_locations): Strengthen param "insn" from
8815         rtx to rtx_insn *.
8816         (record_insns): Likewise for param "insns" and local "tmp".
8817         (active_insn_between): Rename param "tail" to
8818         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
8819         using a checked cast.
8820         (thread_prologue_and_epilogue_insns): Split out top-level local
8821         rtx "seq" into three different rtx_insn * locals.  Strengthen
8822         local "prologue_seq" from rtx to rtx_insn *.
8823         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
8824         from rtx to rtx_insn *.
8825         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
8826         (priority): Likewise for locals "prev_first", "twin".
8827         (setup_insn_max_reg_pressure): Likewise for param "after".
8828         (sched_setup_bb_reg_pressure_info): Likewise.
8829         (no_real_insns_p): Strengthen params from const_rtx to
8830         const rtx_insn *.
8831         (schedule_block): Strengthen local "next_tail" from rtx to
8832         rtx_insn *.
8833         * ifcvt.c (find_active_insn_before): Strengthen return type and
8834         param "insn" from rtx to rtx_insn *.
8835         (find_active_insn_after): Likewise.
8836         (cond_exec_process_insns): Likewise for param "start" and local "insn".
8837         (cond_exec_process_if_block): Likewise for locals "then_start",
8838         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
8839         (noce_process_if_block): Likewise for local "jump".
8840         (merge_if_block): Likewise for two locals named "end".
8841         (cond_exec_find_if_block): Likewise for local "last_insn".
8842         * jump.c (delete_related_insns): Rename param "insn" to
8843         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
8844         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
8845         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
8846         NULL.
8847         (split_reg): Likewise.
8848         * lra.c (lra_process_new_insns): Likewise.
8849         * modulo-sched.c (permute_partial_schedule): Strengthen param
8850         "last" from rtx to rtx_insn *.
8851         * optabs.c (add_equal_note): Likewise for param "insns" and local
8852         "last_insn".
8853         (expand_binop_directly): Add checked casts to rtx_insn * within
8854         NEXT_INSN (pat) uses.
8855         (expand_unop_direct): Likewise.
8856         (maybe_emit_unop_insn): Likewise.
8857         * recog.c (peep2_attempt): Strengthen locals "last",
8858         "before_try", "x" from rtx to rtx_insn *.
8859         * reorg.c (optimize_skip): Strengthen return type and local
8860         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
8861         and locals "trial", "next_trial" from rtx to rtx_insn *.
8862         * resource.c (next_insn_no_annul): Strengthen return type and
8863         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
8864         rtx_sequence to clarify the code.
8865         (mark_referenced_resources): Add a checked cast to rtx_insn *
8866         within PREV_INSN (x).
8867         (find_dead_or_set_registers): Strengthen return type, param
8868         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
8869         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
8870         to rtx_insn **.
8871         (mark_target_live_regs): Strengthen params "insns" and "target",
8872         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
8873         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
8874         the code.
8875         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
8876         from rtx to rtx_insn *.
8877         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
8878         from rtx to rtx_insn *.
8879         (copy_reg_eh_region_note_backward): Likewise.
8880         (unshare_all_rtl_in_chain): Likewise for sole param.
8881         (dump_rtl_slim): Strengthen second and third params from const_rtx
8882         to const rtx_insn *.
8883         * sched-deps.c (sched_free_deps): Strengthen params "head" and
8884         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
8885         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
8886         "next_tail" from rtx to rtx_insn *.
8887         (begin_move_insn): Likewise for local "next".
8888         * sched-int.h (sched_free_deps): Likewise for first and second
8889         params.
8890         (no_real_insns_p): Strengthen both params from const_rtx to
8891         const rtx_insn *.
8892         (sched_setup_bb_reg_pressure_info): Strengthen second params from
8893         rtx to rtx_insn *.
8894         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
8895         "next_tail".
8896         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
8897         and locals "insn", "tail" from const_rtx to const rtx_insn *.
8898         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
8899         rtx_insn *.
8900         (debug_rtl_slim): Strengthen params "first" and "last" from
8901         const_rtx to const rtx_insn *.
8902         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
8903         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
8904         (convert_to_simple_return): Likewise for param "returnjump".
8905         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
8906         "prologue_seq".
8907         (convert_to_simple_return): Likewise for param "returnjump".
8908         * valtrack.c (propagate_for_debug): Likewise for params
8909         "insn", "last".
8910         * valtrack.h (propagate_for_debug): Likewise for second param.
8911
8912 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8913
8914         * output.h (insn_current_reference_address): Strengthen param
8915         from rtx to rtx_insn *.
8916         * final.c (insn_current_reference_address): Likewise.
8917
8918 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8919
8920         * basic-block.h (inside_basic_block_p): Strengthen param from
8921         const_rtx to const rtx_insn *.
8922         * cfgbuild.c (inside_basic_block_p): Likewise.
8923
8924 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8925
8926         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
8927         rtx_insn *.
8928         (get_trace_info): Likewise for param "insn".
8929         (save_point_p): Likewise.
8930         (maybe_record_trace_start): Likewise for both params.
8931         (maybe_record_trace_start_abnormal): Likewise.
8932         (create_trace_edges): Likewise for sole param and for three of the
8933         locals named "lab".
8934         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
8935         to rtx_insn *, and update a call to pat->element to pat->insn.
8936
8937 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8938
8939         * function.h (struct expr_status): Convert field "x_forced_labels"
8940         from rtx_expr_list * to rtx_insn_list *.
8941
8942         * cfgbuild.c (make_edges): Convert local "x" from an
8943         rtx_expr_list * to an rtx_insn_list *, replacing use of
8944         "element" method with "insn" method.
8945         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
8946         * except.c (sjlj_emit_dispatch_table): Replace use of
8947         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
8948         forced_labels.
8949         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
8950         rtx_expr_list * to an rtx_insn_list *, replacing use of
8951         "element" method with "insn" method.
8952         * reload1.c (set_initial_label_offsets): Likewise for local "x".
8953         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
8954         rtx_insn *, adding a checked cast.  Replace use of
8955         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
8956         forced_labels.
8957         (expand_label): Likewise for local "label_r".
8958
8959 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8960
8961         * function.h (struct rtl_data): Convert field
8962         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
8963         rtx_insn_list *.
8964         * rtl.h (remove_node_from_insn_list): New prototype.
8965
8966         * builtins.c (expand_builtin): When prepending to
8967         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
8968         gen_rtx_EXPR_LIST.
8969         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
8970         to rtx_insn_list *, and use its "insn" method rather than
8971         "element" method.
8972         * cfgrtl.c (delete_insn): Use new function
8973         remove_node_from_insn_list rather than
8974         remove_node_from_expr_list.
8975         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
8976         to rtx_insn_list *, and use its "insn" method rather than
8977         "element" method.
8978         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
8979         * reload1.c (set_initial_label_offsets): Likewise for local "x".
8980         * rtlanal.c (remove_node_from_insn_list): New function, adapted
8981         from remove_node_from_expr_list.
8982         * stmt.c (expand_label): When prepending to
8983         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
8984         gen_rtx_EXPR_LIST.
8985
8986 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8987
8988         * function.h (struct rtl_data): Strengthen fields "x_return_label"
8989         and "x_naked_return_label" from rtx to rtx_code_label *.
8990
8991 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
8992
8993         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
8994         (SET_NEXT_INSN): Likewise.
8995         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
8996
8997         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
8998         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
8999         to split out the SEQUENCE from local "bundle", strengthening the
9000         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
9001         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
9002         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
9003         and the type of the elements of the "slot" array from rtx to
9004         rtx_insn *.
9005         (reorg_split_calls): Likewise for locals "insn" and "next", and
9006         the type of the elements of the "slot" array.
9007
9008         * config/frv/frv.c (frv_nops): Likewise for the elements of this
9009         array.
9010         (frv_function_prologue): Likewise for locals "insn", "next",
9011         "last_call".
9012         (frv_register_nop): Introduce a local "nop_insn" to be the
9013         rtx_insn * containing rtx "nop".
9014
9015         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
9016         used as an insn and sometimes as a pattern, so rename it to
9017         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
9018         using it where dealing with the core insn.
9019
9020         * config/picochip/picochip.c (reorder_var_tracking_notes):
9021         Strengthen locals "insn", "next", "last_insn", "queue",
9022         "next_queue", "prev" from rtx to rtx_insn *.
9023
9024         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
9025         the second param is an rtx_insn ** rather than an rtx **.
9026         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
9027         from rtx to rtx_sequence *, and introduce local named "sequence",
9028         using methods of rtx_sequence to clarify the code.
9029         (remove_insn): Introduce local rtx_sequence * named "sequence" and
9030         use its methods.
9031         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
9032         Rename param "after" to "uncast_after", reintroducing "after" as a
9033         local rtx_insn * with a checked cast.
9034         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
9035         reintroducing "after" as a local rtx_insn * with a checked cast.
9036         Strengthen local "last" from rtx to rtx_insn * and remove the
9037         now-redundant checked casts.
9038         (copy_delay_slot_insn): Strengthen return type and param from rtx
9039         to rtx_insn *.
9040
9041         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
9042         "last" from rtx to rtx_insn *.
9043
9044 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
9045
9046         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
9047         param from rtx to rtx_insn *.
9048
9049         * emit-rtl.c (copy_delay_slot_insn): Likewise.
9050
9051         * reorg.c (skip_consecutive_labels): Strengthen return type, param
9052         and local "insn" from rtx to rtx_insn *.
9053         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
9054         (unfilled_slots_next): Likewise.
9055         (function_return_label): Strengthen from rtx to rtx_code_label *.
9056         (function_simple_return_label): Likewise.
9057         (first_active_target_insn): Strengthen return type and param from
9058         rtx to rtx_insn *.
9059         (find_end_label): Strengthen return type from rtx to
9060         rtx_code_label *; strengthen locals as appropriate.
9061         (emit_delay_sequence): Strengthen return type, param "insn" and
9062         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
9063         and local "li" from rtx to rtx_insn_list *, using methods of
9064         rtx_insn_list for clarity and typesafety.
9065         (add_to_delay_list): Strengthen return type and param "insn" from
9066         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
9067         rtx_insn_list * and use methods of rtx_insn_list.
9068         (delete_from_delay_slot): Strengthen return type, param "insn",
9069         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
9070         Strengthen local "seq" from rtx to rtx_sequence *, and local
9071         "delay_list" from rtx to rtx_insn_list *, using methods of
9072         rtx_sequence for clarity and type-safety.
9073         (delete_scheduled_jump): Add checked cast when invoking
9074         delete_from_delay_slot.  Strengthen local "trial" from rtx to
9075         rtx_insn *.
9076         (optimize_skip): Strengthen return type and local "delay_list"
9077         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
9078         rtx_insn *.
9079         (steal_delay_list_from_target): Strengthen return type, param
9080         "delay_list" and local "new_delay_list" from rtx to
9081         rtx_insn_list *.  Strengthen param "seq" from rtx to
9082         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
9083         rtx_insn **.
9084         Split out local "temp" into multiple more-tightly scoped locals:
9085         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
9086         of rtx_insn_list and rtx_sequence for clarity and typesafety.
9087         Strengthen locals named "trial" from rtx to rtx_insn *.
9088         (steal_delay_list_from_fallthrough): Strengthen return type and
9089         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
9090         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
9091         Strengthen local "trial" from rtx to rtx_insn *.
9092         (try_merge_delay_insns): Strength local "merged_insns" from rtx
9093         to rtx_insn_list * and use its methods.  Strengthen local "pat"
9094         from rtx to rtx_sequence * and use its methods.  Strengthen locals
9095         "dtrial" and "new_rtx" from rtx to rtx_insn *.
9096         (get_label_before): Strengthen return type and local "label" from
9097         rtx to rtx_insn *.
9098         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
9099         "next_trial", "next", prev".  Strengthen local "delay_list" from
9100         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
9101         rtx_insn **.
9102         (follow_jumps): Strengthen return type, param "label" and locals
9103         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
9104         (fill_slots_from_thread): Strengthen return type, param
9105         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
9106         "insn", "thread", "opposite_thread" and locals "new_thread",
9107         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
9108         "sequence" from a checked cast to rtx_sequence so that we can call
9109         steal_delay_list_from_target and steal_delay_list_from_fallthrough
9110         with an rtx_sequence *.
9111         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
9112         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
9113         Strengthen local "delay_list" from rtx to rtx_insn_list *.
9114         (relax_delay_slots): Strengthen param "first" and locals "insn",
9115         "next", "trial", "delay_insn", "target_label" from rtx to
9116         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
9117         Introduce a local "trial_seq" for PATTERN (trial) of type
9118         rtx_sequence *, in both cases using methods of rtx_sequence.
9119         (dbr_schedule): Strengthen param "first" and locals "insn",
9120         "next", "epilogue_insn" from rtx to rtx_insn *.
9121
9122 2014-08-28  Richard Biener  <rguenther@suse.de>
9123
9124         PR tree-optimization/62283
9125         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9126         Do not peel loops for alignment where the vector loop likely
9127         doesn't run at least VF times.
9128
9129 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
9130
9131         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
9132         important_candidates.  Consider all important candidates if
9133         IVS doesn't give any result.  Remove check on ivs->upto.
9134         (try_add_cand_for): Call iv_ca_add_use only once.
9135
9136 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9137             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9138             Anna Tikhonova  <anna.tikhonova@intel.com>
9139             Ilya Tocar  <ilya.tocar@intel.com>
9140             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9141             Ilya Verbin  <ilya.verbin@intel.com>
9142             Kirill Yukhin  <kirill.yukhin@intel.com>
9143             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9144
9145         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
9146         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
9147         masking.
9148         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
9149         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
9150         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
9151         (define_insn "*mul<mode>3"): Add EVEX version.
9152
9153 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9154             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9155             Anna Tikhonova  <anna.tikhonova@intel.com>
9156             Ilya Tocar  <ilya.tocar@intel.com>
9157             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9158             Ilya Verbin  <ilya.verbin@intel.com>
9159             Kirill Yukhin  <kirill.yukhin@intel.com>
9160             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9161
9162         * config/i386/sse.md
9163         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
9164         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
9165         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
9166         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
9167         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
9168         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
9169         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
9170         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
9171         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
9172         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
9173         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
9174         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
9175         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
9176         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
9177         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
9178         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
9179
9180 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9181             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9182             Anna Tikhonova  <anna.tikhonova@intel.com>
9183             Ilya Tocar  <ilya.tocar@intel.com>
9184             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9185             Ilya Verbin  <ilya.verbin@intel.com>
9186             Kirill Yukhin  <kirill.yukhin@intel.com>
9187             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9188
9189         * config/i386/sse.md
9190         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
9191         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
9192         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
9193
9194 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9195             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9196             Anna Tikhonova  <anna.tikhonova@intel.com>
9197             Ilya Tocar  <ilya.tocar@intel.com>
9198             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9199             Ilya Verbin  <ilya.verbin@intel.com>
9200             Kirill Yukhin  <kirill.yukhin@intel.com>
9201             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9202
9203         * config/i386/sse.md
9204         (define_mode_iterator VI128_256): New.
9205         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
9206
9207 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9208             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9209             Anna Tikhonova  <anna.tikhonova@intel.com>
9210             Ilya Tocar  <ilya.tocar@intel.com>
9211             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9212             Ilya Verbin  <ilya.verbin@intel.com>
9213             Kirill Yukhin  <kirill.yukhin@intel.com>
9214             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9215
9216         * config/i386/sse.md
9217         (define_mode_iterator VI8_256_512): New.
9218         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
9219         Ditto.
9220         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
9221         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
9222         Ditto.
9223         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
9224
9225 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9226
9227         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
9228         pointer to the cumulative reloc value and return the value for
9229         this reloc instead.
9230         (compute_reloc_for_rtx): Take a const_rtx.  Call
9231         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
9232         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
9233         for_each_rtx for the CONST case.
9234
9235 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9236
9237         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
9238         (mark_constants_in_pattern): ...this new function to iterate over
9239         all the subrtxes.
9240         (mark_constants): Update accordingly.
9241
9242 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9243
9244         * varasm.c: Include rtl-iter.h.
9245         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
9246         Remove the pointer to the cumulative hashval_t and just return
9247         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
9248         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9249         Accumulate the hashval_ts here instead of const_rtx_hash_1.
9250
9251 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9252
9253         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
9254         Give real type of data parameter.  Remove return value.
9255         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
9256         to iterate over subrtxes.
9257
9258 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9259
9260         * var-tracking.c (use_narrower_mode_test): Turn from being a
9261         for_each_rtx callback to being a function that examines each
9262         subrtx itself.
9263         (adjust_mems): Update accordingly.
9264
9265 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9266
9267         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
9268         callback to being a function that examines each subrtx itself.
9269         Remove handling of null rtxes.
9270         (add_uses): Update accordingly.
9271
9272 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9273
9274         * var-tracking.c: Include rtl-iter.h.
9275         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
9276         to being a function that examines each subrtx itself.
9277         (use_type): Update accordingly.
9278
9279 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9280
9281         * store-motion.c: Include rtl-iter.h.
9282         (extract_mentioned_regs_1): Delete.
9283         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
9284         for_each_rtx to iterate over subrtxes.
9285
9286 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9287
9288         * sel-sched.c: Include rtl-iter.h
9289         (count_occurrences_1): Delete.
9290         (count_occurrences_equiv): Turn rtxes into const_rtxes.
9291         Use FOR_EACH_SUBRTX rather than for_each_rtx.
9292
9293 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9294
9295         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
9296         * rtlanal.c (tls_referenced_p_1): Delete.
9297         (tls_referenced_p): Take a const_rtx rather than an rtx.
9298         Use FOR_EACH_SUBRTX rather than for_each_rtx.
9299
9300 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9301
9302         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
9303         (for_each_inc_dec): Take an rtx rather than an rtx *.
9304         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
9305         (cselib_record_sets): Likewise.
9306         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
9307         (check_for_inc_dec): Likewise.
9308         * rtlanal.c (for_each_inc_dec_ops): Delete.
9309         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
9310         rather than a pointer to the memory address.  Replace
9311         for_each_inc_dec_ops argument with separate function and data
9312         arguments.  Abort on non-autoinc addresses.
9313         (for_each_inc_dec_find_mem): Delete.
9314         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
9315         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
9316
9317 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9318
9319         * rtl.h (find_all_hard_regs): Declare.
9320         * rtlanal.c (find_all_hard_regs): New function.
9321         (record_hard_reg_uses_1): Delete.
9322         (record_hard_reg_uses): Use find_all_hard_regs.
9323
9324 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9325
9326         * rtl.h (replace_label_data): Delete.
9327         (replace_label): Take the old label, new label and update-nuses flag
9328         as direct arguments.  Return void.
9329         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
9330         * rtlanal.c (replace_label): Update interface as above.  Handle
9331         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
9332         iterator.  Use FOR_EACH_SUBRTX_PTR.
9333
9334 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9335
9336         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
9337         with const_rtx parameters.
9338         * varasm.c (get_pool_constant): Likewise.
9339         * rtlanal.c (rtx_referenced_p_1): Delete.
9340         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9341         Assert that the rtx we're looking for is nonnull.  Allow searches
9342         for constant pool SYMBOL_REFs.
9343
9344 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9345
9346         * reload1.c: Include rtl-iter.h.
9347         (note_reg_elim_costly): Turn from being a for_each_rtx callback
9348         to being a function that examines each subrtx itself.
9349         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
9350
9351 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9352
9353         * regcprop.c (cprop_find_used_regs_1): Delete.
9354         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9355
9356 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9357
9358         * regcprop.c: Include rtl-iter.h.
9359         (kill_value): Take a const_rtx.
9360         (kill_autoinc_value): Turn from being a for_each_rtx callback
9361         to being a function that examines each subrtx itself.
9362         (copyprop_hardreg_forward_1): Update accordingly.
9363
9364 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9365
9366         * reg-stack.c: Include rtl-iter.h.
9367         (subst_stack_regs_in_debug_insn): Delete.
9368         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
9369         instead of for_each_rtx.
9370
9371 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9372
9373         * lower-subreg.c (find_decomposable_subregs): Turn from being
9374         a for_each_rtx callback to being a function that examines each
9375         subrtx itself.  Remove handling of null rtxes.
9376         (decompose_multiword_subregs): Update accordingly.
9377
9378 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9379
9380         * lower-subreg.c (adjust_decomposed_uses): Delete.
9381         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
9382         Remove handling of null rtxes.
9383
9384 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9385
9386         * lower-subreg.c: Include rtl-iter.h.
9387         (resolve_subreg_use): Turn from being a for_each_rtx callback
9388         to being a function that examines each subrtx itself.  Remove
9389         handling of null rtxes.
9390         (resolve_reg_notes, resolve_simple_move): Update accordingly.
9391         (decompose_multiword_subregs): Likewise.
9392
9393 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9394
9395         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
9396         to being a function that examines each subrtx itself.
9397         (simplify_using_condition, simplify_using_initial_values): Update
9398         accordingly.
9399
9400 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9401
9402         * loop-iv.c: Include rtl-iter.h.
9403         (find_single_def_src): New function.
9404         (replace_single_def_regs): Turn from being a for_each_rtx callback
9405         to being a function that examines each subrtx itself.
9406         (replace_in_expr, simplify_using_initial_values): Update accordingly.
9407
9408 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9409
9410         * jump.c (eh_returnjump_p_1): Delete.
9411         (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9412         Remove handling of null rtxes.
9413
9414 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9415
9416         * jump.c: Include rtl-iter.h.
9417         (returnjump_p_1): Delete.
9418         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9419         Remove handling of null rtxes.
9420
9421 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9422
9423         * ira.c: Include rtl-iter.h.
9424         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
9425         to being a function that examines each subrtx itself.  Remove
9426         handling of null rtxes.
9427         (update_equiv_regs): Update call accordingly.
9428
9429 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9430
9431         * fwprop.c: Include rtl-iter.h.
9432         (varying_mem_p): Turn from being a for_each_rtx callback to being
9433         a function that examines each subrtx itself.
9434         (propagate_rtx): Update accordingly.
9435
9436 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9437
9438         * function.c: Include rtl-iter.h
9439         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
9440         callback to being a function that examines each subrtx itself.
9441         Return the changed flag.
9442         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
9443         (instantiate_virtual_regs): Update calls accordingly.
9444
9445 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9446
9447         * final.c: Include rtl-iter.h.
9448         (mark_symbol_ref_as_used): Delete.
9449         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
9450         for_each_rtx.
9451
9452 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9453
9454         * emit-rtl.c: Include rtl-iter.h.
9455         (find_auto_inc): Turn from being a for_each_rtx callback to being
9456         a function that examines each subrtx itself.  Assume the first operand
9457         to an RTX_AUTOINC is the automodified register.
9458         (try_split): Update call accordingly.
9459
9460 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9461
9462         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
9463         Return a bool, inverting the result so that 0/false means "not ok".
9464         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
9465         subrtxes of a CONST.
9466         (mem_loc_descriptor, add_const_value_attribute)
9467         (resolve_addr_in_expr): Update calls accordingly.
9468
9469 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9470
9471         * dwarf2out.c: Include rtl-iter.h.
9472         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
9473         Remove unused data parameter.  Return a bool, inverting the result
9474         so that 0/false means "not ok".
9475         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
9476         instead of for_each_rtx.
9477
9478 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9479
9480         * dse.c: Include rtl-iter.h.
9481         (check_mem_read_rtx): Change void * parameter to real type.
9482         Remove return value.
9483         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
9484         for_each_rtx.  Don't handle null rtxes.
9485
9486 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9487
9488         * df-problems.c: Include rtl-iter.h.
9489         (find_memory): Turn from being a for_each_rtx callback to being
9490         a function that examines each subrtx itself.  Continue to look for
9491         volatile references even after a nonvolatile one has been found.
9492         (can_move_insns_across): Update calls accordingly.
9493
9494 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9495
9496         * ddg.c (walk_mems_2, walk_mems_1): Delete.
9497         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
9498         to iterate over subrtxes.  Return a bool rather than an int.
9499
9500 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9501
9502         * ddg.c: Include rtl-iter.h.
9503         (mark_mem_use_1): Rename to...
9504         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
9505         instead of for_each_rtx.
9506         (mem_read_insn_p): Update accordingly.
9507
9508 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9509
9510         * cse.c (change_cc_mode_args): Delete.
9511         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
9512         a function that examines each subrtx itself.  Take the fields of
9513         change_cc_mode_args as argument and return void.
9514         (cse_change_cc_mode_insn): Update calls accordingly.
9515
9516 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9517
9518         * cse.c (is_dead_reg): Change argument to const_rtx.
9519         (dead_debug_insn_data): Delete.
9520         (is_dead_debug_insn): Expand commentary.  Turn from being a
9521         for_each_rtx callback to being a function that examines
9522         each subrtx itself.  Take the fields of dead_debug_insn_data
9523         as argument.
9524         (delete_trivially_dead_insns): Update call accordingly.
9525
9526 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9527
9528         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
9529         being a for_each_rtx callback to being a function that examines
9530         each subrtx itself.
9531         (cse_extended_basic_block): Update call accordingly.
9532
9533 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9534
9535         * cse.c (check_dependence_data): Delete.
9536         (check_dependence): Change from being a for_each_rtx callback to being
9537         a function that examines all subrtxes itself.  Don't handle null rtxes.
9538         (invalidate): Update call accordingly.
9539
9540 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9541
9542         * cse.c: Include rtl-iter.h.
9543         (approx_reg_cost_1): Delete.
9544         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9545         Don't handle null rtxes.
9546
9547 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9548
9549         * cfgcleanup.c: Include rtl-iter.h.
9550         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
9551         to being a function that examines each subrtx itself.
9552         (thread_jump): Update accordingly.
9553
9554 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9555
9556         * combine-stack-adj.c: Include rtl-iter.h.
9557         (record_stack_refs_data): Delete.
9558         (record_stack_refs): Turn from being a for_each_rtx callback
9559         to being a function that examines each subrtx itself.
9560         Take a pointer to the reflist.  Invert sense of return value
9561         so that true means success and false means failure.  Don't
9562         handle null rtxes.
9563         (combine_stack_adjustments_for_block): Update accordingly.
9564
9565 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9566
9567         * combine.c (record_truncated_value): Turn from being a for_each_rtx
9568         callback to a function that takes an rtx and returns a bool
9569         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
9570         for_each_rtx.
9571
9572 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9573
9574         * combine.c: Include rtl-iter.h.
9575         (unmentioned_reg_p_1): Delete.
9576         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
9577         Don't handle null rtxes.
9578
9579 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9580
9581         * calls.c: Include rtl-iter.h.
9582         (internal_arg_pointer_based_exp_1): Delete.
9583         (internal_arg_pointer_based_exp): Take a const_rtx.
9584         Use FOR_EACH_SUBRTX to iterate over subrtxes.
9585
9586 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9587
9588         * caller-save.c: Include rtl-iter.h.
9589         (add_used_regs_1): Delete.
9590         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
9591         to iterate over subrtxes.  Assert that any remaining pseudos
9592         have been spilled.
9593
9594 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9595
9596         * bt-load.c: Include rtl-iter.h.
9597         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
9598         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
9599         to iterate over subrtxes.
9600         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
9601         find_btr_use rather than btr_referenced_p.
9602
9603 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9604
9605         * alias.c: Include rtl-iter.h.
9606         (refs_newer_value_cb): Delete.
9607         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
9608
9609 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
9610
9611         * rtl-iter.h: New file.
9612         * rtlanal.c: Include it.
9613         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
9614         (generic_subrtx_iterator <T>::add_single_to_queue)
9615         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
9616         (generic_subrtx_iterator <T>::free_array): New functions.
9617         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
9618         (generic_subrtx_iterator <const_rtx_accessor>)
9619         (generic_subrtx_iterator <rtx_var_accessor>
9620         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
9621         (setup_reg_subrtx_bounds): New function.
9622         (init_rtlanal): Call it.
9623
9624 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
9625
9626         PR target/62261
9627         * config/sh/sh.md (ashlsi3): Handle negative shift count for
9628         TARGET_SHMEDIA.
9629         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
9630
9631 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
9632
9633         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
9634
9635 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9636
9637         * rtl.h (JUMP_LABEL_AS_INSN): New.
9638
9639 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9640
9641         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
9642         rtx_expr_list **.
9643         (alloc_EXPR_LIST): Strengthen return type from rtx to
9644         rtx_expr_list *.
9645         (remove_free_EXPR_LIST_node): Likewise for param.
9646         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
9647         from rtx to rtx_expr_list *.
9648         * sched-int.h (struct deps_desc): Strengthen fields
9649         "pending_read_mems" and "pending_write_mems" from rtx to
9650         rtx_expr_list *.
9651
9652         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
9653         rtx to rtx_expr_list *.
9654         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
9655         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
9656         rtx_expr_list **.
9657         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
9658         from rtx to rtx_expr_list *.
9659         * loop-iv.c (simplify_using_initial_values): Strengthen local
9660         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
9661         "pnote_next" from rtx * to rtx_expr_list **.
9662         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
9663         param "exprp" from rtx * to rtx_expr_list **.
9664         (add_insn_mem_dependence): Strengthen local "mem_list" from
9665         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
9666         to rtx_expr_list *.
9667         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
9668         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
9669         param "old_mems_p" from rtx * to rtx_expr_list **.
9670         * var-tracking.c (struct adjust_mem_data): Strengthen field
9671         "side_effects" from rtx to rtx_expr_list *.
9672         (adjust_insn): Replace NULL_RTX with NULL when assigning to
9673         rtx_expr_list *.
9674         (prepare_call_arguments): Likewise.
9675
9676 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9677
9678         * function.h (struct rtl_data): Strengthen field
9679         "x_stack_slot_list" from rtx to rtx_expr_list *.
9680
9681         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
9682         when assigning to stack_slot_list.
9683
9684 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9685
9686         * function.h (struct rtl_data): Strengthen field
9687         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
9688         * rtl.h (remove_node_from_expr_list): Strengthen second param from
9689         rtx * to rtx_expr_list **.
9690
9691         * cfgbuild.c (make_edges): In loop over
9692         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
9693         rtx_expr_list *, and use methods of the latter class to clarify
9694         the code.
9695         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
9696         rtx_expr_list *, and use methods of the latter class to clarify
9697         the code.
9698         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
9699         * reload1.c (set_initial_label_offsets): Likewise for local "x".
9700         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
9701         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
9702         to rtx_expr_list *.  Use methods of the latter class to clarify
9703         the code.
9704
9705 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9706
9707         * function.h (struct expr_status): Strengthen field
9708         "x_forced_labels" from rtx to rtx_expr_list *.
9709
9710         * cfgbuild.c (make_edges): Split local "x" into two locals,
9711         strengthening one from rtx to rtx_expr_list *, and using methods
9712         of said class.
9713         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
9714         loop over forced_labels, introduce strengthen it from rtx to
9715         rtx_expr_list *, using methods to clarify the code.
9716         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
9717         to rtx_expr_list *, using methods of said class to clarify the
9718         code.
9719         * reload1.c (set_initial_label_offsets): Split local "x" into two
9720         per-loop variables, strengthening the first from rtx to
9721         rtx_expr_list * and using methods.
9722
9723 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9724
9725         * coretypes.h (class rtx_expr_list): Add forward declaration.
9726         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
9727         * gengenrtl.c (special_rtx): Add EXPR_LIST.
9728         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
9729         invariant: GET_CODE (X) == EXPR_LIST.
9730         (is_a_helper <rtx_expr_list *>::test): New.
9731         (rtx_expr_list::next): New.
9732         (rtx_expr_list::element): New.
9733         (gen_rtx_EXPR_LIST): New.
9734
9735 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9736
9737         * varasm.c (mark_constants): Convert a GET_CODE check into a
9738         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
9739         Use methods of rtx_sequence to clarify the code.
9740
9741 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9742
9743         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
9744         local "seq" via a checked cast, and use methods of rtx_sequence
9745         to simplify the code.
9746
9747 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9748
9749         * resource.c (mark_referenced_resources): Strengthen local
9750         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
9751         using methods of rtx_sequence to clarify the code.
9752         (find_dead_or_set_registers): Within the switch statement, convert
9753         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
9754         the JUMP_P handling, introduce another local "seq", adding a
9755         checked cast to rtx_sequence *.  In both cases, use methods of
9756         rtx_sequence to clarify the code.
9757         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
9758         via a checked cast, and use methods of rtx_sequence to simplify
9759         the code.
9760
9761 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9762
9763         * reorg.c (redundant_insn): In two places in the function, replace
9764         a check of GET_CODE with a dyn_cast, introducing local "seq", and
9765         usings methods of rtx_sequence to clarify the code.
9766
9767 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9768
9769         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
9770         local "seq" with a checked cast, and use methods of rtx_sequence
9771         to clarify the code.
9772
9773 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9774
9775         * function.c (contains): Introduce local "seq" for PATTERN (insn),
9776         with a checked cast, in the region for where we know it's a
9777         SEQUENCE.  Use methods of rtx_sequence.
9778
9779 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9780
9781         * final.c (get_attr_length_1): Replace GET_CODE check with a
9782         dyn_cast, introducing local "seq" and the use of methods of
9783         rtx_sequence.
9784         (shorten_branches): Likewise, introducing local "body_seq".
9785         Strengthen local "inner_insn" from rtx to rtx_insn *.
9786         (reemit_insn_block_notes): Replace GET_CODE check with a
9787         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
9788         Use methods of rtx_sequence.
9789         (final_scan_insn): Likewise, introducing local "seq" for when
9790         "body" is known to be a SEQUENCE, using its methods.
9791
9792 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9793
9794         * except.c (can_throw_external): Strengthen local "seq" from rtx
9795         to rtx_sequence *.  Use methods of rtx_sequence.
9796         (insn_nothrow_p): Likewise.
9797
9798 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9799
9800         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
9801         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
9802         Use methods of rtx_sequence.
9803         (scan_trace): Likewise for local "pat".
9804
9805 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9806
9807         * coretypes.h (class rtx_sequence): Add forward declaration.
9808         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
9809         invariant: GET_CODE (X) == SEQUENCE.
9810         (is_a_helper <rtx_sequence *>::test): New.
9811         (is_a_helper <const rtx_sequence *>::test): New.
9812         (rtx_sequence::len): New.
9813         (rtx_sequence::element): New.
9814         (rtx_sequence::insn): New.
9815
9816 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9817
9818         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
9819         rtx_insn_list **.
9820         (alloc_INSN_LIST): Strengthen return type from rtx to
9821         rtx_insn_list *.
9822         (copy_INSN_LIST): Likewise for return type and param.
9823         (concat_INSN_LIST): Likewise for both params and return type.
9824         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
9825         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
9826         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
9827         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
9828
9829         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
9830         "implicit_sets", "control_uses", "clobbers" from rtx to
9831         rtx_insn_list *.
9832         (struct deps_desc): Likewise for fields "pending_read_insns",
9833         "pending_write_insns", "pending_jump_insns",
9834         "last_pending_memory_flush", "last_function_call",
9835         "last_function_call_may_noreturn", "sched_before_next_call",
9836         "sched_before_next_jump".
9837         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
9838         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
9839
9840         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
9841         from rtx to rtx_insn_list *.
9842         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
9843         rtx_insn_list *.
9844
9845         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
9846         to rtx_insn_list **.
9847         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
9848         rtx_insn_list *.
9849         (queue_insn): Likewise for local "link".
9850         (struct haifa_saved_data): Strengthen field "insn_queue" from
9851         rtx * to rtx_insn_list **.
9852         (save_backtrack_point): Update allocation of save->insn_queue to
9853         reflect the strengthening of elements from rtx to rtx_insn_list *.
9854         (queue_to_ready): Strengthen local "link" from rtx to
9855         rtx_insn_list *; use methods "next" and "insn" when traversing the
9856         list.
9857         (early_queue_to_ready): Likewise for locals "link", "next_link",
9858         "prev_link".
9859         (schedule_block): Update allocation of insn_queue to reflect the
9860         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
9861         local "link" from rtx to rtx_insn_list *, and use methods when
9862         working it.
9863         (add_to_speculative_block): Strengthen locals "twins" and
9864         "next_node" from rtx to rtx_insn_list *, and use methods when
9865         working with them.  Strengthen local "twin" from rtx to
9866         rtx_insn *, eliminating a checked cast.
9867         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
9868         from rtx to rtx_insn_list *, and use methods when working with
9869         them.
9870
9871         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
9872         from rtx to rtx_insn_list *, adding a checked cast.
9873         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
9874         rtx_insn_list **.
9875         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
9876         "newlink" from rtx to rtx_insn_list *.  Strengthen local
9877         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
9878         from rtx to rtx_insn *.
9879         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
9880         from rtx to rtx_insn_list *.  Use methods of the latter class.
9881         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
9882         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
9883         (remove_free_INSN_LIST_node): Strengthen return type and local
9884         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
9885         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
9886         rtx_insn_list *, using "insn" method.
9887
9888         * sched-deps.c (add_dependence_list):  Strengthen param "list"
9889         from rtx to rtx_insn_list *, and use methods when working with it.
9890         (add_dependence_list_and_free):  Strengthen param "listp" from
9891         rtx * to rtx_insn_list **.
9892         (remove_from_dependence_list): Strenghten param "listp" from rtx *
9893         to rtx_insn_list **, and use methods when working with *listp.
9894         (remove_from_both_dependence_lists): Strengthen param "listp" from
9895         rtx * to rtx_insn_list **
9896         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
9897         to rtx_insn_list **.  Eliminate local "link", in favor of two new
9898         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
9899         respectively.
9900         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
9901         by introducing local "cond_deps".
9902         (remove_from_deps): Strengthen param "insn" from rtx to
9903         rtx_insn *.
9904
9905         * sched-rgn.c (concat_insn_mem_list): Strengthen param
9906         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
9907         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
9908         Use methods of rtx_insn_list.
9909
9910         * store-motion.c (struct st_expr): Strengthen fields
9911         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
9912         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
9913         rtx_insn_list *.
9914         (find_moveable_store): Split out "tmp" into multiple more-tightly
9915         scoped locals.  Use methods of rtx_insn_list *.
9916         (compute_store_table): Strengthen local "tmp" from rtx to
9917         rtx_insn *.  Use methods of rtx_insn_list *.
9918
9919 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9920
9921         * coretypes.h (class rtx_insn_list): Add forward declaration.
9922         * rtl.h (class rtx_insn_list): New subclass of rtx_def
9923         (is_a_helper <rtx_insn_list *>::test): New.
9924         (rtx_insn_list::next): New.
9925         (rtx_insn_list::insn): New.
9926         (gen_rtx_INSN_LIST): Add prototype.
9927         * emit-rtl.c (gen_rtx_INSN_LIST): New.
9928         * gengenrtl.c (special_rtx): Add INSN_LIST.
9929
9930 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9931
9932         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
9933         "prev" from rtx to rtx_insn *.
9934
9935 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9936
9937         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
9938         functions.  Require merely an rtx for now, not an rtx_insn *.
9939         (BLOCK_FOR_INSN): Likewise.
9940         (INSN_LOCATION): Likewise.
9941         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
9942
9943 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9944
9945         * rtl.h (PATTERN): Convert this macro into a pair of inline
9946         functions, for now, requiring const_rtx and rtx.
9947
9948 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
9949
9950         * target.def (unwind_emit): Strengthen param "insn" from rtx to
9951         rtx_insn *.
9952         (final_postscan_insn): Likewise.
9953         (adjust_cost): Likewise.
9954         (adjust_priority): Likewise.
9955         (variable_issue): Likewise.
9956         (macro_fusion_pair_p): Likewise.
9957         (dfa_post_cycle_insn): Likewise.
9958         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
9959         (first_cycle_multipass_issue): Likewise.
9960         (dfa_new_cycle): Likewise.
9961         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
9962         (speculate_insn): Likewise for param "insn".
9963         (gen_spec_check): Likewise for params "insn" and "label".
9964         (get_insn_spec_ds): Likewise for param "insn".
9965         (get_insn_checked_ds): Likewise.
9966         (dispatch_do): Likewise.
9967         (dispatch): Likewise.
9968         (cannot_copy_insn_p): Likewise.
9969         (invalid_within_doloop): Likewise.
9970         (legitimate_combined_insn): Likewise.
9971         (needed): Likewise.
9972         (after): Likewise.
9973
9974         * doc/tm.texi: Automatically updated to reflect changes to
9975         target.def.
9976
9977         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
9978         working with insn.
9979         (schedule_block): Likewise.
9980         (sched_init): Likewise.
9981         (sched_speculate_insn): Strengthen param "insn" from rtx to
9982         rtx_insn *.
9983         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
9984         working with insn.
9985         * hooks.c (hook_bool_rtx_true): Rename to...
9986         hook_bool_rtx_insn_true): ...this, and strengthen first param from
9987         rtx to rtx_insn *.
9988         (hook_constcharptr_const_rtx_null): Rename to...
9989         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
9990         first param from const_rtx to const rtx_insn *.
9991         (hook_bool_rtx_int_false): Rename to...
9992         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
9993         param from rtx to rtx_insn *.
9994         (hook_void_rtx_int): Rename to...
9995         (hook_void_rtx_insn_int): ...this, and strengthen first param from
9996         rtx to rtx_insn *.
9997
9998         * hooks.h (hook_bool_rtx_true): Rename to...
9999         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
10000         rtx to rtx_insn *.
10001         (hook_bool_rtx_int_false): Rename to...
10002         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
10003         param from rtx to rtx_insn *.
10004         (hook_void_rtx_int): Rename to...
10005         (hook_void_rtx_insn_int): ...this, and strengthen first param from
10006         rtx to rtx_insn *.
10007         (hook_constcharptr_const_rtx_null): Rename to...
10008         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
10009         first param from const_rtx to const rtx_insn *.
10010
10011         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
10012         and local "prev" from rtx to rtx_insn *.
10013
10014         * sched-int.h (sched_speculate_insn): Strengthen first param from
10015         rtx to rtx_insn *.
10016
10017         * sel-sched.c (create_speculation_check): Likewise for local "label".
10018         * targhooks.c (default_invalid_within_doloop): Strengthen param
10019         "insn" from const_rtx to const rtx_insn *.
10020         * targhooks.h (default_invalid_within_doloop): Strengthen param
10021         from const_rtx to const rtx_insn *.
10022
10023         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
10024         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
10025
10026         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
10027         "insn".
10028         (arc_invalid_within_doloop): Likewise, with const.
10029
10030         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
10031         (arm_cannot_copy_insn_p): Likewise for param "insn".
10032         (arm_unwind_emit): Likewise.
10033
10034         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
10035         "dep_insn".
10036
10037         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
10038         (c6x_variable_issue): Likewise.  Removed now-redundant checked
10039         cast.
10040         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
10041
10042         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
10043         Likewise for param "insn".
10044         (epiphany_mode_after): Likewise.
10045         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
10046         params "insn", "dep_insn".
10047         (epiphany_mode_needed): Likewise for param "insn".
10048         (epiphany_mode_after): Likewise.
10049
10050         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
10051         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
10052         (ix86_avx_u128_mode_needed): Likewise.
10053         (ix86_i387_mode_needed): Likewise.
10054         (ix86_mode_needed): Likewise.
10055         (ix86_avx_u128_mode_after): Likewise.
10056         (ix86_mode_after): Likewise.
10057         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
10058         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
10059         (ix86_adjust_priority): Likewise for param "insn".
10060         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
10061         (do_dispatch): Likewise.
10062         (has_dispatch): Likewise.
10063         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
10064
10065         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
10066         reflect renaming of default hook implementation from
10067         hook_constcharptr_const_rtx_null to
10068         hook_constcharptr_const_rtx_insn_null.
10069         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
10070         rtx to rtx_insn *.
10071         (ia64_variable_issue): Likewise for param "insn".
10072         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
10073         (ia64_dfa_new_cycle): Likewise.
10074         (ia64_get_insn_spec_ds): Likewise.
10075         (ia64_get_insn_checked_ds): Likewise.
10076         (ia64_speculate_insn): Likewise.
10077         (ia64_gen_spec_check): Likewise for params "insn", "label".
10078         (ia64_asm_unwind_emit): Likewise for param "insn".
10079
10080         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
10081
10082         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
10083         "insn", "def_insn".
10084         (m68k_sched_variable_issue): Likewise for param "insn".
10085
10086         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
10087         "def_insn".
10088
10089         * config/microblaze/microblaze.c (microblaze_adjust_cost):
10090         Likewise for params "insn", "dep".
10091
10092         * config/mips/mips.c (mips_adjust_cost): Likewise.
10093         (mips_variable_issue): Likewise for param "insn".
10094         (mips_final_postscan_insn): Likewise.
10095
10096         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
10097         for params "insn", "dep".
10098
10099         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
10100         "dep_insn".
10101         (pa_adjust_priority): Likewise for param "insn".
10102
10103         * config/picochip/picochip.c (picochip_sched_adjust_cost):
10104         Likewise for params "insn", "dep_insn".
10105
10106         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
10107         param "insn".
10108         (rs6000_variable_issue): Likewise.
10109         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
10110         (rs6000_debug_adjust_cost): Likewise.
10111         (rs6000_adjust_priority): Likewise for param "insn".
10112         (rs6000_use_sched_lookahead_guard): Likewise.
10113         (get_next_active_insn): Likewise for return type and both params.
10114         (redefine_groups): Likewise for params "prev_head_insn", "tail"
10115         and locals "insn", "next_insn".
10116         (pad_groups): Likewise.
10117
10118         * config/s390/s390.c (s390_adjust_priority): Likewise for param
10119         "insn".
10120         (s390_cannot_copy_insn_p): Likewise.
10121         (s390_sched_variable_issue): Likewise for third param, eliminating
10122         checked cast.
10123         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
10124         default hook implementation from hook_constcharptr_const_rtx_null
10125         to hook_constcharptr_const_rtx_insn_null.
10126
10127         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
10128         from rtx to rtx_insn *.
10129         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
10130         (sh_variable_issue): Likewise for param "insn".
10131         (sh_dfa_new_cycle): Likewise.
10132         (sh_mode_needed): Likewise.
10133         (sh_mode_after): Likewise.
10134
10135         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
10136         params "insn", "dep_insn".
10137         (hypersparc_adjust_cost): Likewise.
10138         (sparc_adjust_cost): Likewise.
10139
10140         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
10141         param, eliminated checked cast.
10142         (spu_sched_adjust_cost): Likewise for first and third params.
10143
10144         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
10145         params "insn" and "dep_insn" from rtx to rtx_insn *.
10146
10147         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
10148
10149 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
10150
10151         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
10152         (set_is_load_p): ...this, updating to work on a SET pattern rather
10153         than an insn.
10154         (is_store_insn): Rename to...
10155         (set_is_store_p): ...this, updating to work on a SET pattern
10156         rather than an insn.
10157         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
10158         top of function to where it is needed.  Rewrite the bogus
10159         condition that checks for "insn" and "dep" being PARALLEL to
10160         instead use single_set, introducing locals "insn_set" and
10161         "dep_set".  Given that we only ever returned "cost" for a non-pair
10162         of SETs, bail out early if we don't have a pair of SET.
10163         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
10164         use the new locals "insn_set" and "dep_set", and update calls to
10165         is_load_insn and is_store_insn to be calls to set_is_load_p and
10166         set_is_store_p.
10167
10168 2014-08-27  Guozhi Wei  <carrot@google.com>
10169
10170         PR target/62262
10171         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
10172         amount before using it.
10173
10174 2014-08-27  Richard Biener  <rguenther@suse.de>
10175
10176         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
10177         get_maxval_strlen inside a more useful API.
10178         (gimple_fold_builtin_with_strlen): Remove and fold into ...
10179         (gimple_fold_builtin): ... caller.
10180         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
10181         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
10182         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
10183         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
10184         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
10185         gimple_fold_builtin_sprintf): Adjust to compute maxval
10186         themselves.
10187
10188 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
10189
10190         PR other/62248
10191         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
10192
10193 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10194             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10195             Anna Tikhonova  <anna.tikhonova@intel.com>
10196             Ilya Tocar  <ilya.tocar@intel.com>
10197             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10198             Ilya Verbin  <ilya.verbin@intel.com>
10199             Kirill Yukhin  <kirill.yukhin@intel.com>
10200             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10201
10202         * config/i386/sse.md
10203         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
10204         Use `concat_tg_mode' attribute to determine asm register size.
10205
10206 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10207             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10208             Anna Tikhonova  <anna.tikhonova@intel.com>
10209             Ilya Tocar  <ilya.tocar@intel.com>
10210             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10211             Ilya Verbin  <ilya.verbin@intel.com>
10212             Kirill Yukhin  <kirill.yukhin@intel.com>
10213             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10214
10215         * config/i386/sse.md
10216         (define_mode_iterator VI48_AVX512VL): New.
10217         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
10218         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
10219         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
10220         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10221         with VI1): Change mode iterator.
10222         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10223         with VI_ULOADSTORE_BW_AVX512VL): New.
10224         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10225         with VI_ULOADSTORE_F_AVX512VL): Ditto.
10226         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10227         with VI1): Change mode iterator.
10228         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10229         with VI_ULOADSTORE_BW_AVX512VL): New.
10230         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
10231         with VI_ULOADSTORE_F_AVX512VL): Ditto.
10232         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
10233         with VI1): Change mode iterator.
10234         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
10235         with VI_ULOADSTORE_BW_AVX512VL): New.
10236         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
10237         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
10238         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
10239         (define_insn "<avx512>_storedqu<mode>_mask" with
10240         VI48_AVX512VL): New.
10241         (define_insn "<avx512>_storedqu<mode>_mask" with
10242         VI12_AVX512VL): Ditto.
10243
10244 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10245             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10246             Anna Tikhonova  <anna.tikhonova@intel.com>
10247             Ilya Tocar  <ilya.tocar@intel.com>
10248             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10249             Ilya Verbin  <ilya.verbin@intel.com>
10250             Kirill Yukhin  <kirill.yukhin@intel.com>
10251             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10252
10253         * config/i386/sse.md
10254         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
10255         (define_mode_iterator VI48_AVX512BW): New.
10256         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
10257         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
10258         with VI48_AVX2_48_AVX512F): New.
10259         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
10260         with VI2_AVX512VL): Ditto.
10261
10262 2014-08-27  Richard Biener  <rguenther@suse.de>
10263
10264         PR middle-end/62239
10265         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
10266         (fold_builtin_3): Do not fold strcat_chk here.
10267         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
10268         from builtins.c.
10269         (gimple_fold_builtin): Fold strcat_chk here.
10270
10271 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
10272
10273         * dwarf2out.h (dwarf2out_decl): Remove prototype.
10274         * dwarf2out.c (dwarf2out_decl): Make static.
10275
10276 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
10277
10278         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
10279
10280 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10281
10282         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
10283         from rtx to rtx_insn *.
10284         (cselib_lookup_from_insn): Likewise for final param.
10285         (cselib_subst_to_values_from_insn): Likewise.
10286         (cselib_add_permanent_equiv): Likewise.
10287
10288         * cselib.c (cselib_current_insn): Likewise for this variable.
10289         (cselib_subst_to_values_from_insn): Likewise for param "insn".
10290         (cselib_lookup_from_insn): Likewise.
10291         (cselib_add_permanent_equiv): Likewise for param "insn" and local
10292         "save_cselib_current_insn".
10293         (cselib_process_insn): Replace use of NULL_RTX with NULL.
10294
10295         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
10296         from rtx to rtx_insn *.
10297
10298 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10299
10300         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
10301         rtx_insn *.
10302
10303 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10304
10305         * df.h (df_dump_insn_problem_function): Strengthen first param of
10306         this callback from const_rtx to const rtx_insn *.
10307         (struct df_insn_info): Strengthen field "insn" from rtx to
10308         rtx_insn *.
10309         (DF_REF_INSN): Eliminate this function, reinstating the older
10310         macro definition.
10311         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
10312         (df_reg_defined): Likewise.
10313         (df_find_use): Likewise.
10314         (df_reg_used): Likewise.
10315         (df_dump_insn_top): Strengthen param 1 from const_rtx to
10316         const rtx_insn *.
10317         (df_dump_insn_bottom): Likewise.
10318         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
10319         (df_insn_debug_regno): Likewise.
10320         (debug_df_insn): Likewise.
10321         (df_rd_simulate_one_insn): Likewise for param 2.
10322         (df_word_lr_simulate_defs): Likewise for param 1.
10323         (df_word_lr_simulate_uses): Likewise.
10324         (df_md_simulate_one_insn): Likewise for param 2.
10325         (df_simulate_find_noclobber_defs): Likewise for param 1.
10326         (df_simulate_find_defs): Likewise.
10327         (df_simulate_defs): Likewise.
10328         (df_simulate_uses): Likewise.
10329         (df_simulate_one_insn_backwards): Likewise for param 2.
10330         (df_simulate_one_insn_forwards): Likewise.
10331         (df_uses_create): Likewise for param 2.
10332         (df_insn_create_insn_record): Likewise for param 1.
10333         (df_insn_delete): Likewise.
10334         (df_insn_rescan): Likewise.
10335         (df_insn_rescan_debug_internal): Likewise.
10336         (df_insn_change_bb): Likewise.
10337         (df_notes_rescan): Likewise.
10338         * rtl.h (remove_death): Likewise for param 2.
10339         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
10340         const rtx_insn *.
10341         * sched-int.h (reemit_notes): Strengthen param from rtx to
10342         rtx_insn *.
10343         * valtrack.h (propagate_for_debug): Likewise for param 1.
10344
10345         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
10346         local "tmp_rtx" from const_rtx to const rtx_insn *.
10347         * combine.c (remove_death): Strengthen param "insn" from rtx to
10348         rtx_insn *.
10349         (move_deaths): Likewise for local "where_dead".
10350         * cse.c (delete_trivially_dead_insns): Introduce local
10351         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
10352         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
10353         rtx_insn *.
10354         (df_reg_defined): Likewise.
10355         (df_find_use): Likewise.
10356         (df_reg_used): Likewise.
10357         (df_dump_insn_problem_data): Strengthen param "insn" from
10358         const_rtx to const rtx_insn *.
10359         (df_dump_insn_top): Likewise.
10360         (df_dump_insn_bottom): Likewise.
10361         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
10362         (df_insn_debug_regno): Likewise.
10363         (debug_df_insn): Likewise.
10364         (DF_REF_INSN): Delete.
10365         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
10366         from rtx to rtx_insn *.
10367         (df_chain_insn_top_dump): Strengthen param "insn" from
10368         const_rtx to const rtx_insn *.
10369         (df_chain_insn_bottom_dump): Likewise.
10370         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
10371         rtx_insn *.
10372         (df_word_lr_simulate_uses): Likewise.
10373         (df_print_note): Likewise.
10374         (df_remove_dead_and_unused_notes): Likewise.
10375         (df_set_unused_notes_for_mw): Likewise.
10376         (df_set_dead_notes_for_mw): Likewise.
10377         (df_create_unused_note): Likewise.
10378         (df_simulate_find_defs): Likewise.
10379         (df_simulate_find_uses): Likewise.
10380         (df_simulate_find_noclobber_defs): Likewise.
10381         (df_simulate_defs): Likewise.
10382         (df_simulate_uses): Likewise.
10383         (df_simulate_one_insn_backwards): Likewise.
10384         (df_simulate_one_insn_forwards): Likewise.
10385         (df_md_simulate_one_insn): Likewise.
10386         * df-scan.c (df_uses_create): Likewise.
10387         (df_insn_create_insn_record): Likewise.
10388         (df_insn_delete): Likewise.
10389         (df_insn_rescan): Likewise.
10390         (df_insn_rescan_debug_internal): Likewise.
10391         (df_insn_change_bb): Likewise.
10392         (df_notes_rescan): Likewise.
10393         (df_refs_add_to_chains): Likewise.
10394         (df_insn_refs_verify): Likewise.
10395         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
10396         when invoking df_insn_delete.
10397         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
10398         (set_unique_reg_note): Add checked cast.
10399         * final.c (cleanup_subreg_operands): Likewise.
10400         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
10401         "insn" from rtx to rtx_insn *.
10402         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
10403         "last" from rtx to rtx_insn *.
10404         * ira-emit.c (change_regs_in_insn): New function.
10405         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
10406         Invoke change_regs_in_insn rather than change_regs.
10407         * ira.c (update_equiv_regs): Strengthen locals "insn",
10408         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
10409         for_each_rtx_in_insn rather than for_each_rtx.
10410         * recog.c (confirm_change_group): Add checked casts.
10411         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
10412         Add checked cast.
10413         (peep2_fill_buffer): Add checked cast.
10414         * rtlanal.c (remove_note): Likewise.
10415         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
10416         locals "next" "end" from rtx to rtx_insn *.
10417
10418 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10419
10420         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
10421         to rtx_insn *.
10422         (struct reg_use_data): Likewise for field "insn".
10423         (insn_cost): Likewise for param.
10424         (real_insn_for_shadow): Likewise for return type and param.
10425         (increase_insn_priority): Likewise for param 1.
10426         (debug_dependencies): Likewise for both params.
10427
10428         * haifa-sched.c (insn_delay): Likewise for param "insn".
10429         (real_insn_for_shadow): Likewise for return type and param "insn".
10430         (update_insn_after_change): Likewise for param "insn".
10431         (recompute_todo_spec): Likewise for param "next" and locals "pro",
10432         "other".
10433         (insn_cost): Likewise for param "insn".
10434         (increase_insn_priority): Likewise.
10435         (calculate_reg_deaths): Likewise.
10436         (setup_insn_reg_pressure_info): Likewise.
10437         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
10438         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
10439         (model_recompute): Likewise.
10440         (must_restore_pattern_p): Likewise for param "next".
10441         (model_excess_cost): Likewise for param "insn".
10442         (queue_remove): Likewise.
10443         (adjust_priority): Likewise for param "prev".
10444         (update_register_pressure): Likewise for param "insn".
10445         (setup_insn_max_reg_pressure): Likewise for local "insn".
10446         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
10447         (model_add_to_schedule): Likewise.
10448         (model_reset_queue_indices): Likewise for local "insn".
10449         (unschedule_insns_until): Strengthen local "recompute_vec" from
10450         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
10451         "con" from rtx to rtx_insn *.
10452         (restore_last_backtrack_point): Likewise for both locals "x". Add
10453         checked casts.
10454         (estimate_insn_tick): Likewise for param "insn".
10455         (commit_schedule): Likewise for params "prev_head", "tail" and
10456         local "x".
10457         (verify_shadows): Likewise for locals "i1", "i2".
10458         (dump_insn_stream): Likewise for params "head", "tail" and locals
10459         "next_tail", "insn".
10460         (schedule_block): Likewise for locals "insn", "x".  Add a checked
10461         cast.
10462         (fix_inter_tick): Likewise for params "head", "tail".
10463         (create_check_block_twin): Likewise for local "jump".
10464         (haifa_change_pattern): Likewise for param "insn".
10465         (haifa_speculate_insn): Likewise.
10466         (dump_new_block_header): Likewise for params "head", "tail".
10467         (fix_jump_move): Likewise for param "jump".
10468         (move_block_after_check): Likewise.
10469         (sched_init_insn_luid): Likewise for param "insn".
10470         (sched_init_luids): Likewise for local "insn".
10471         (insn_luid): Likewise for param "insn".
10472         (init_h_i_d): Likewise.
10473         (haifa_init_h_i_d): Likewise for local "insn".
10474         (haifa_init_insn): Likewise for param "insn".
10475         * sched-deps.c (add_dependence): Likewise for local "real_pro",
10476         "other".
10477         (create_insn_reg_use): Likewise for param "insn".
10478         (setup_insn_reg_uses): Likewise.  Add a checked cast.
10479         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
10480         "tail" from rtx to rtx_insn *.
10481         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
10482         "insn", "next_tail".
10483
10484 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10485
10486         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
10487         from rtx to rtx_insn *.
10488         (model_add_to_schedule): Likewise for locals "start", "end",
10489         "iter".
10490
10491 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10492
10493         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
10494         rtx_insn *.
10495         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
10496         "to" and locals "insn", "next", "copy".  Remove now-redundant
10497         checked cast.
10498
10499 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10500
10501         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
10502         rtx_insn * and param 4 from rtx * to rtx_insn **.
10503         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
10504         param 2 from rtx * to rtx_insn **.
10505
10506         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
10507         rtx_insn * and final param from rtx * to rtx_insn **.
10508
10509         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
10510         from rtx to rtx_insn *.
10511         (try_head_merge_bb): Likewise for both locals named "move_upto".
10512         * df-problems.c (can_move_insns_across): Likewise for params
10513         "from", "to", "across_from", "across_to" and locals "insn",
10514         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
10515         rtx_insn **.
10516         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
10517         from rtx to rtx_insn *.
10518         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
10519         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
10520         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
10521         rtx_insn *.
10522         (noce_try_abs): Likewise.
10523         (noce_get_condition): Likewise for param "jump".  Strengthen param
10524         "earliest" from rtx * to rtx_insn **.
10525         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
10526         rtx_insn *.
10527         (find_cond_trap): Likewise.
10528         (dead_or_predicable): Likewise for local "earliest".
10529         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
10530         checked cast.
10531         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
10532         and local "prev".  Strengthen param "earliest" from rtx * to
10533         rtx_insn **.
10534         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
10535         Strengthen param "earliest" from rtx * to rtx_insn **.
10536
10537 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10538
10539         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
10540         "to" and local "insn" from rtx to rtx_insn *.
10541
10542 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10543
10544         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
10545         from rtx to rtx_insn *.
10546         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
10547         (code_motion_path_driver): Likewise for local "last_insn".
10548         (simplify_changed_insns): Likewise for local "insn".
10549
10550 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10551
10552         * rtl.h (push_to_sequence): Strengthen param from rtx to
10553         rtx_insn *.
10554         (push_to_sequence2): Likewise for both params.
10555         (delete_insns_since): Likewise for param.
10556         (reorder_insns_nobb): Likewise for all three params.
10557         (set_new_first_and_last_insn): Likewise for both params.
10558
10559         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
10560         rtx_insn *.  Remove now-redundant cast.
10561         (set_last_insn): Likewise.
10562
10563         * builtins.c (expand_builtin_return): Strengthen local
10564         "call_fusage" from rtx to rtx_insn *.
10565         * cfgrtl.c (create_basic_block_structure): Likewise for local
10566         "after".
10567         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
10568         "first", "last" and local "insn".
10569         (delete_insns_since): Likewise for param "from".
10570         (reorder_insns_nobb): Likewise for params "from", "to", "after"
10571         and local "x".
10572         (push_to_sequence): Likewise for param "first" and local "last".
10573         (push_to_sequence2): Likewise for params "first" and "last".
10574         * lra.c (emit_add3_insn): Likewise for local "last".
10575         (lra_emit_add): Likewise.
10576         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
10577         "last_insn".
10578         (process_address_1): Likewise for locals "insn", last".
10579         * modulo-sched.c (ps_first_note): Likewise for return type.
10580         * optabs.c (expand_binop_directly): Likewise for param "last".
10581
10582 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10583
10584         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
10585         to rtx_insn*.
10586         * emit-rtl.c (get_last_insn_anywhere): Likewise.
10587
10588 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10589
10590         * function.h (struct sequence_stack): Strengthen fields "first"
10591         and "last" from rtx to rtx_insn *.
10592         (struct emit_status): Likewise for fields "x_first_insn" and
10593         "x_last_insn".
10594
10595         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
10596         (set_first_insn): Add checked cast.
10597         (get_last_insn): Remove now-redundant checked cast.
10598         (set_last_insn): Add checked cast.
10599
10600         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
10601         "saved_first" and "saved_last" from rtx to rtx_insn *.
10602
10603 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10604
10605         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
10606         (unlink_insn_chain): Strengthen both params from rtx to
10607         rtx_insn *.
10608
10609         * cfgrtl.c (cfg_layout_function_header): Likewise for this
10610         variable.
10611         (unlink_insn_chain): Likewise for params "first" and "last".
10612         Remove now-redundant checked cast.
10613         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
10614         (fixup_reorder_chain): Strengthen local "insn" from rtx to
10615         rtx_insn *.
10616         * emit-rtl.c (link_insn_into_chain): Likewise for all three
10617         params.
10618         (add_insn): Likewise for param "insn" and local "prev".
10619         (add_insn_after_nobb): Likewise for both params and local "next".
10620         (add_insn_before_nobb): Likewise for both params and local "prev".
10621         (add_insn_after): Rename param "after" to "uncast_after",
10622         introducing local "after" with another checked cast.
10623         (add_insn_before): Rename params "insn" and "before", giving them
10624         "uncast_" prefixes, adding the old names back using checked casts.
10625         (emit_note_after): Likewise for param "after".
10626         (emit_note_before): Likewise for param "before".
10627         (emit_label): Add a checked cast.
10628
10629 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10630
10631         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
10632         "insn" from rtx to rtx_insn *.
10633
10634         * cselib.c (cselib_record_sets_hook): Likewise.
10635
10636         * var-tracking.c (add_with_sets): Likewise, renaming back from
10637         "uncast_insn" to "insn" and eliminating the checked cast from rtx
10638         to rtx_insn *.
10639
10640 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10641
10642         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
10643         and "header_" from rtx to rtx_insn *.
10644         (struct basic_block_d): Likewise for field "head_" within "x"
10645         field of union basic_block_il_dependent.
10646         (BB_HEAD): Drop function...
10647         (SET_BB_HEAD): ...and this function in favor of...
10648         (BB_HEAD): ...reinstate macro.
10649         (BB_END): Drop function...
10650         (SET_BB_END): ...and this function in favor of...
10651         (BB_END): ...reinstate macro.
10652         (BB_HEADER): Drop function...
10653         (SET_BB_HEADER): ...and this function in favor of...
10654         (BB_HEADER): ...reinstate macro.
10655
10656         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
10657         (fix_crossing_unconditional_branches): Likewise.
10658         * caller-save.c (save_call_clobbered_regs): Likewise.
10659         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
10660         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
10661         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
10662         (merge_blocks_move_successor_nojumps): Likewise.
10663         (outgoing_edges_match): Update use of for_each_rtx to
10664         for_each_rtx_in_insn.
10665         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
10666         (expand_gimple_cond): Likewise.
10667         (expand_gimple_tailcall): Likewise.
10668         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
10669         SET_BB_END.
10670         (construct_exit_block): Drop use of SET_BB_END.
10671         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
10672         rtx_insn *.
10673         (delete_insn): Rename param "insn" to "uncast_insn", introducing
10674         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
10675         SET_BB_HEAD and SET_BB_END.
10676         (create_basic_block_structure): Drop use of SET_BB_HEAD and
10677         SET_BB_END.
10678         (rtl_delete_block): Drop use of SET_BB_HEAD.
10679         (rtl_split_block): Drop use of SET_BB_END.
10680         (emit_nop_for_unique_locus_between): Likewise.
10681         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
10682         (block_label): Drop use of SET_BB_HEAD.
10683         (fixup_abnormal_edges): Drop use of SET_BB_END.
10684         (record_effective_endpoints): Drop use of SET_BB_HEADER.
10685         (relink_block_chain): Likewise.
10686         (fixup_reorder_chain): Drop use of SET_BB_END.
10687         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
10688         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
10689         rtx_insn **.  Drop use of SET_BB_HEADER.
10690         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
10691         SET_BB_HEAD.
10692         (BB_HEAD): Delete this function.
10693         (SET_BB_HEAD): Likewise.
10694         (BB_END): Likewise.
10695         (SET_BB_END): Likewise.
10696         (BB_HEADER): Likewise.
10697         (SET_BB_HEADER): Likewise.
10698         * emit-rtl.c (add_insn_after):  Rename param "insn" to
10699         "uncast_insn", adding a new local "insn" and a checked cast to
10700         rtx_insn *.  Drop use of SET_BB_END.
10701         (remove_insn): Strengthen locals "next" and "prev" from rtx to
10702         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
10703         (reorder_insns): Drop use of SET_BB_END.
10704         (emit_insn_after_1): Strengthen param "first" and locals "last",
10705         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
10706         (emit_pattern_after_noloc): Add checked cast.
10707         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
10708         (restore_other_notes): Likewise.
10709         (move_insn): Likewise.
10710         (sched_extend_bb): Likewise.
10711         (fix_jump_move): Likewise.
10712         * ifcvt.c (noce_process_if_block): Likewise.
10713         (dead_or_predicable): Likewise.
10714         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
10715         * reg-stack.c (change_stack): Drop use of SET_BB_END.
10716         * sel-sched-ir.c (sel_move_insn): Likewise.
10717         * sel-sched.c (move_nop_to_previous_block): Likewise.
10718
10719         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
10720         SET_BB_END.
10721         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
10722
10723 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10724
10725         * basic-block.h (create_basic_block_structure): Strengthen params
10726         1 "head" and 2 "end" from rtx to rtx_insn *.
10727         * cfgrtl.c (create_basic_block_structure): Likewise.
10728         (rtl_create_basic_block): Update casts from void * to rtx to
10729         rtx_insn *, so that we can pass them as rtx_insn * to
10730         create_basic_block_structure.
10731         * sel-sched-ir.c (sel_create_basic_block): Likewise.
10732
10733 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10734
10735         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
10736         rtx_insn **.
10737         (check_for_inc_dec): Strengthen param "insn" from rtx to
10738         rtx_insn *.
10739
10740         * cselib.h (cselib_process_insn): Likewise.
10741
10742         * cselib.c (cselib_record_sets): Likewise.
10743         (cselib_process_insn): Likewise.
10744
10745         * dse.c (struct insn_info): Likewise for field "insn".
10746         (check_for_inc_dec_1): Likewise for local "insn".
10747         (check_for_inc_dec): Likewise for param "insn".
10748         (scan_insn): Likewise.
10749         (dse_step1): Likewise for local "insn".
10750
10751         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
10752         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
10753
10754 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10755
10756         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
10757         from rtx to rtx_insn *.
10758         (DEP_PRO): Delete this function and...
10759         (SET_DEP_PRO): ...this function in favor of...
10760         (DEP_PRO): ...reinstate this macro.
10761         (DEP_CON): Delete this function and...
10762         (SET_DEP_CON): ...this function in favor of...
10763         (DEP_CON): ...reinstate this old macro.
10764         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
10765         (init_dep): Likewise.
10766         (set_priorities): Likewise for both params.
10767         (sd_copy_back_deps): Likewise for params 1 and 2.
10768
10769         * haifa-sched.c (priority): Likewise for param "insn" and local
10770         "next".
10771         (set_priorities): Likewise for params "head" and "tail" and local
10772         "insn".
10773         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
10774         local "consumer".
10775         (add_to_speculative_block): Add a checked cast.
10776         (create_check_block_twin): Drop use of SET_DEP_CON.
10777         (add_jump_dependencies): Strengthen params "insn" and "jump" from
10778         rtx to rtx_insn *.
10779
10780         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
10781         Drop use of SET_DEP_PRO
10782         (init_dep): Strengthen params "pro" and "con" from rtx to
10783         rtx_insn *.
10784         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
10785         use of SET_DEP_CON.
10786         (DEP_PRO): Delete.
10787         (DEP_CON): Delete.
10788         (SET_DEP_PRO): Delete.
10789         (SET_DEP_CON): Delete.
10790
10791 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10792
10793         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
10794         from rtx to rtx_insn *.
10795         (VINSN_INSN_RTX): Eliminate rvalue function and...
10796         (SET_VINSN_INSN): ...lvalue function in favor of...
10797         (VINSN_INSN_RTX): reinstate this old macro.
10798
10799         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
10800         in favor of VINSN_INSN_RTX.
10801         (VINSN_INSN_RTX): Delete this function.
10802         (SET_VINSN_INSN_RTX): Likewise.
10803
10804 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10805
10806         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
10807         (BND_TO): Delete this function and...
10808         (SET_BND_TO): ...this functions in favor of...
10809         (BND_TO): ...reinstating this macro.
10810         (struct _fence): Strengthen field "executing_insns" from
10811         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
10812         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
10813         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
10814         and param "insn" from rtx to insn_t.
10815         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
10816         rtx_insn *.
10817
10818         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
10819         vec<rtx_insn *> .
10820         (rtx_vec_t): Likewise.
10821         (struct sched_deps_info_def): Strengthen param of "start_insn"
10822         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
10823         "note_mem_dep" callback and first param of "note_dep" callback.
10824
10825         * haifa-sched.c (add_to_speculative_block): Strengthen param
10826         "insn" from rtx to rtx_insn *.
10827         (clear_priorities): Likewise.
10828         (calc_priorities): Likewise for local "insn".
10829
10830         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
10831         Remove redundant checked cast.
10832         (haifa_note_mem_dep): Likewise for param "pending_insn".
10833         (haifa_note_dep): Likewise for param "elem".
10834         (note_mem_dep): Likewise for param "e".
10835         (sched_analyze_1): Add checked casts.
10836         (sched_analyze_2): Likewise.
10837
10838         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
10839         from rtx to rtx_insn *.
10840         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
10841         from vec<rtx> * to vec<rtx_insn *> *.
10842
10843         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
10844         scaffolding.
10845         (flist_add): Strengthen param "executing_insns" from
10846         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
10847         (advance_deps_context): Remove now-redundant checked cast.
10848         (init_fences): Replace uses of NULL_RTX with NULL.
10849         (merge_fences): Strengthen params "last_scheduled_insn" and
10850         "sched_next" from rtx to rtx_insn * and "executing_insns" from
10851         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
10852         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
10853         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
10854         an instruction, rather than doing double-duty as a pattern.
10855         (return_nop_to_pool): Update for change of insn_t.
10856         (deps_init_id): Remove now-redundant checked cast.
10857         (struct sched_scan_info_def): Strengthen param of "init_insn"
10858         callback from rtx to insn_t.
10859         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
10860         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
10861         NULL.
10862         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
10863         "end" from rtx to rtx_insn *.
10864         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
10865         (rtx insn_rtx, bool force_unique_p)
10866         (BND_TO): Delete function.
10867         (SET_BND_TO): Delete function.
10868
10869         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
10870         rtx to rtx_insn *.
10871         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
10872         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
10873         rtx to rtx_insn *.
10874         (undo_transformations): Likewise for param "insn".
10875         (update_liveness_on_insn): Likewise.
10876         (compute_live_below_insn): Likewise for param "insn" and local
10877         "succ".
10878         (update_data_sets): Likewise for param "insn".
10879         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
10880         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
10881         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
10882         rtx_insn *.
10883         (move_cond_jump): Likewise for param "insn".
10884         (move_cond_jump): Drop use of SET_BND_TO.
10885         (compute_av_set_on_boundaries): Likewise.
10886         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
10887         (update_and_record_unavailable_insns): Strengthen local "bb_end"
10888         from rtx to rtx_insn *.
10889         (maybe_emit_renaming_copy): Likewise for param "insn".
10890         (maybe_emit_speculative_check): Likewise.
10891         (handle_emitting_transformations): Likewise.
10892         (remove_insn_from_stream): Likewise.
10893         (code_motion_process_successors): Strengthen local "succ" from rtx
10894         to insn_t.
10895
10896 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10897
10898         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
10899         ilist_t, not _xlist_t;
10900         (ILIST_INSN): Define in terms of new union field "insn".
10901         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
10902         _XLIST_NEXT.
10903         (struct _list_node): Add new field "insn" to the union, of type
10904         insn_t.
10905         (ilist_add): Replace macro with an inline function, requiring an
10906         insn_t.
10907         (ilist_remove): Define this macro directly in terms of
10908         _list_remove, rather than indirectly via _xlist_remove.
10909         (ilist_clear): Likewise, in terms of _list_clear rather than
10910         _xlist_clear.
10911         (ilist_is_in_p): Replace macro with an inline function, requiring
10912         an insn_t.
10913         (_list_iter_cond_insn): New function.
10914         (ilist_iter_remove): Define this macro directly in terms of
10915         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
10916         (ilist_iterator): Define directly in terms of _list_iterator
10917         rather than indirectly through _xlist_iterator.
10918         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
10919         than in terms of _FOR_EACH_X.
10920         (FOR_EACH_INSN_1): Likewise.
10921
10922 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
10923
10924         PR target/60606
10925         PR target/61330
10926         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
10927         DECL_HARD_REGISTER and return for invalid register specifications.
10928         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
10929         DECL_HARD_REGISTER, call expand_one_error_var.
10930         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
10931         CC_REGNUM with non-MODE_CC modes.
10932         (arm_regno_class): Return NO_REGS for PC_REGNUM.
10933
10934 2014-08-26  Marek Polacek  <polacek@redhat.com>
10935
10936         PR c/61271
10937         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
10938
10939 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
10940
10941         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
10942         qi cost; add di cost.
10943         (cortexa57_addrcost_table): Likewise.
10944
10945 2014-08-26  Marek Polacek  <polacek@redhat.com>
10946
10947         PR c/61271
10948         * expr.c (is_aligning_offset): Remove logical not.
10949
10950 2014-08-26  Marek Polacek  <polacek@redhat.com>
10951
10952         PR c/61271
10953         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
10954         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
10955
10956 2014-08-26  Richard Biener  <rguenther@suse.de>
10957
10958         PR tree-optimization/62175
10959         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
10960         expand possibly trapping operations.
10961
10962 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
10963
10964         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
10965         "insn" from rtx to rtx_insn *.
10966         (permute_load): Likewise for param "insn".
10967         (permute_store): Likewise.
10968         (handle_special_swappables): Likewise for local "insn".
10969         (replace_swap_with_copy): Likewise for locals "insn" and
10970         "new_insn".
10971         (rs6000_analyze_swaps): Likewise for local "insn".
10972
10973 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10974
10975         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
10976         to rtx_insn *.
10977
10978 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
10979
10980         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
10981         "note_list" from rtx to rtx_insn *.
10982         (BB_NOTE_LIST): Replace this function and...
10983         (SET_BB_NOTE_LIST): ...this function with...
10984         (BB_NOTE_LIST): ...the former macro implementation.
10985
10986         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
10987         local "from_start" from rtx to rtx_insn *.  Strengthen param
10988         "to_endp" from rtx * to rtx_insn **.
10989
10990         * haifa-sched.c (concat_note_lists): Likewise.
10991         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
10992         BB_NOTE_LIST.
10993         (sel_restore_notes): Likewise.
10994         (move_bb_info): Likewise.
10995         (BB_NOTE_LIST): Delete this function.
10996         (SET_BB_NOTE_LIST): Delete this function.
10997         * sel-sched.c (create_block_for_bookkeeping): Eliminate
10998         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
10999
11000 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11001
11002         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
11003         from rtx * to rtx_insn **.
11004         (reorder2): Likewise.
11005         (dependencies_evaluation_hook): Strengthen params "head", "tail"
11006         from rtx to rtx_insn *.
11007
11008         * doc/tm.texi: Update mechanically for above change to target.def.
11009
11010         * sched-int.h (note_list): Strengthen this variable from rtx to
11011         rtx_insn *.
11012         (remove_notes): Likewise for both params.
11013         (restore_other_notes): Likewise for return type and first param.
11014         (struct ready_list): Strengthen field "vec" from rtx * to
11015         rtx_insn **.
11016         (struct dep_replacement): Strenghten field "insn" from rtx to
11017         rtx_insn *.
11018         (struct deps_desc): Likewise for fields "last_debug_insn",
11019         "last_args_size".
11020         (struct haifa_sched_info): Likewise for callback field
11021         "can_schedule_ready_p"'s param, for first param of "new_ready"
11022         callback field, for both params of "rank" callback field, for
11023         first field of "print_insn" callback field (with a const), for
11024         both params of "contributes_to_priority" callback, for param
11025         of "insn_finishes_block_p" callback, for fields "prev_head",
11026         "next_tail", "head", "tail", for first param of "add_remove_insn"
11027         callback, for first param of "begin_schedule_ready" callback, for
11028         both params of "begin_move_insn" callback, and for second param
11029         of "advance_target_bb" callback.
11030         (add_dependence): Likewise for params 1 and 2.
11031         (sched_analyze): Likewise for params 2 and 3.
11032         (deps_analyze_insn): Likewise for param 2.
11033         (ready_element): Likewise for return type.
11034         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
11035         (try_ready): Strenghten param from rtx to rtx_insn *.
11036         (sched_emit_insn): Likewise for return type.
11037         (record_delay_slot_pair): Likewise for params 1 and 2.
11038         (add_delay_dependencies): Likewise for param.
11039         (contributes_to_priority): Likewise for both params.
11040         (find_modifiable_mems): Likewise.
11041
11042         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
11043         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
11044         "first_older_only_insn" from rtx to rtx_insn *.
11045         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
11046         rtx_insn **.
11047
11048         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
11049         "last_scheduled_iter0" from rtx to rtx_insn *.
11050         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
11051         (c6x_sched_reorder_1): Strengthen param "ready" and locals
11052         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
11053         "insn" from rtx to rtx_insn *.
11054         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
11055         rtx_insn **.
11056         (c6x_sched_reorder2): Strengthen param "ready" and locals
11057         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
11058         "insn" from rtx to rtx_insn *.
11059         (c6x_variable_issue):  Add a checked cast when assigning from insn
11060         to ss.last_scheduled_iter0.
11061         (split_delayed_branch): Strengthen param "insn" and local "i1"
11062         from rtx to rtx_insn *.
11063         (split_delayed_nonbranch): Likewise.
11064         (undo_split_delayed_nonbranch): Likewise for local "insn".
11065         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
11066         "entry_after", "end_packet", "head_insn", "tail_insn",
11067         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
11068         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
11069         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
11070         but add a checked cast on loop->start_label.  Consolidate calls to
11071         avoid assigning result of gen_spkernel to "insn", now an
11072         rtx_insn *.
11073
11074         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
11075         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
11076         rtx to rtx_insn *.
11077         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
11078         rtx_insn **.  Strengthen locals "top", "next" from rtx to
11079         rtx_insn *.
11080         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
11081         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
11082         (add_parameter_dependencies): Strengthen params "call", "head" and
11083         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
11084         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
11085         (add_dependee_for_func_arg): Likewise for param "arg" and local
11086         "insn".
11087         (ix86_dependencies_evaluation_hook): Likewise for params "head",
11088         "tail" and locals "insn", "first_arg".
11089
11090         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
11091         for params "head", "tail" and locals "insn", "next", "next_tail".
11092         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
11093         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
11094         "insn", "lowest", "highest" from rtx to rtx_insn *.
11095         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
11096         rtx_insn **.
11097         (ia64_sched_reorder2): Likewise.
11098
11099         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
11100         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
11101         from rtx * to rtx_insn **.
11102         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
11103         rtx_insn **.
11104         (mep_print_sched_insn): Strengthen param "insn" from rtx to
11105         rtx_insn *.
11106         (mep_sched_reorder): Strengthen param "ready" from rtx * to
11107         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
11108         to rtx_insn *.
11109
11110         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
11111         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
11112         to rtx_insn *.
11113         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
11114         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
11115         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
11116         rtx_insn **.
11117         (vr4130_reorder): Likewise.
11118         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
11119         rtx to rtx_insn *.
11120         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
11121         rtx_insn **.
11122         (mips_sched_reorder): Likewise.
11123         (mips_sched_reorder2): Likewise.
11124
11125         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
11126
11127         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
11128         Strengthen local "tmp" from rtx to rtx_insn *.
11129         (rs6000_sched_reorder2): Likewise.
11130
11131         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
11132         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
11133         (s390_sched_reorder): Strengthen param "ready" from rtx * to
11134         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
11135
11136         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
11137         "tmp2" from rtx to rtx_insn *.
11138         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
11139         Strengthen local "insn" from rtx to rtx_insn *.
11140         (ready_reorder): Strengthen param "ready" from rtx * to
11141         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
11142         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
11143         (sh_reorder2): Likewise.
11144
11145         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
11146         local "insn" from rtx to rtx_insn *.
11147
11148         * haifa-sched.c (note_list): Strengthen this variable from rtx to
11149         rtx_insn *.
11150         (scheduled_insns): Strengthen this variable from vec<rtx> to
11151         vec<rtx_insn *>.
11152         (set_modulo_params): Likewise for locals "i1", "i2".
11153         (record_delay_slot_pair): Likewise for params "i1", "i2".
11154         (add_delay_dependencies): Likewise for param "insn".
11155         (cond_clobbered_p): Likewise.
11156         (recompute_todo_spec): Likewise for local "prev".
11157         (last_scheduled_insn): Likewise for this variable.
11158         (nonscheduled_insns_begin): Likewise.
11159         (model_set_excess_costs): Strengthen param "insns" from rtx * to
11160         rtx_insn **.
11161         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
11162         rtx_insn *.
11163         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
11164         Strengthen local "insn" from rtx to rtx_insn *.
11165         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
11166         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
11167         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
11168         (ready_remove_first): Likewise for return type and local "t".
11169         (ready_element): Likewise for return type.
11170         (ready_remove): Likewise for return type and local "t".
11171         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
11172         (check_clobbered_conditions): Strengthen local "x" from rtx to
11173         rtx_insn *, adding a checked cast.
11174         (schedule_insn): Likewise for param "insn".
11175         (remove_notes): Likewise for params "head", "tail" and locals
11176         "next_tail", "insn", "next".
11177         (struct haifa_saved_data): Likewise for fields
11178         "last_scheduled_insn", "nonscheduled_insns_begin".
11179         (save_backtrack_point): Update for change to field "vec" of
11180         struct ready_list.
11181         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
11182         rtx_insn **.
11183         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
11184         from rtx to rtx_insn *
11185         (resolve_dependencies): Strengthen param "insn" from rtx to
11186         rtx_insn *
11187         (restore_other_notes): Likewise for return type, for param "head"
11188         and local "note_head".
11189         (undo_all_replacements): Likewise for local "insn".
11190         (first_nonscheduled_insn): Likewise for return type and local "insn".
11191         (queue_to_ready): Likewise for local "insn", adding checked casts.
11192         (early_queue_to_ready): Likewise for local "insn".
11193         (debug_ready_list_1): Strengthen local "p" from rtx * to
11194         rtx_insn **.
11195         (move_insn): Strengthen param "insn" and local "note" from rtx to
11196         rtx_insn *
11197         (insn_finishes_cycle_p): Likewise for param "insn".
11198         (max_issue): Likewise for local "insn".
11199         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
11200         to rtx_insn **.
11201         (commit_schedule): Strengthen param "prev_head" and local "insn"
11202         from rtx to rtx_insn *
11203         (prune_ready_list): Likewise for local "insn".
11204         (schedule_block): Likewise for locals "prev_head", "head", "tail",
11205         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
11206         (set_priorities): Likewise for local "prev_head".
11207         (try_ready): Likewise for param "next".
11208         (fix_tick_ready): Likewise.
11209         (change_queue_index): Likewise.
11210         (sched_extend_ready_list): Update for change to field "vec" of
11211         struct ready_list.
11212         (generate_recovery_code): Strengthen param "insn" from rtx to
11213         rtx_insn *.
11214         (begin_speculative_block): Likewise.
11215         (create_check_block_twin): Likewise for param "insn" and locals
11216         "label", "check", "twin".  Introduce local "check_pat" to avoid
11217         "check" being used as a plain rtx before being used as an insn.
11218         (fix_recovery_deps): Add a checked cast to rtx_insn * when
11219         extracting elements from ready_list.
11220         (sched_remove_insn): Strengthen param "insn" from rtx to
11221         rtx_insn *.
11222         (sched_emit_insn): Likewise for return type.
11223         (ready_remove_first_dispatch): Likewise for return type and local
11224         "insn".
11225
11226         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
11227
11228         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
11229         const rtx_insn *.
11230
11231         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
11232         from rtx to rtx_insn *.
11233         (add_dependence_list): Likewise for param "insn".  Add a checked
11234         cast.
11235         (add_dependence_list_and_free): Strengthen param "insn" from rtx
11236         to rtx_insn *.  Strengthen param "list_p" from rtx * to
11237         rtx_insn **.
11238         (chain_to_prev_insn): Strengthen param "insn" and locals
11239         "prec_nonnote", "i" from rtx to rtx_insn *.
11240         (flush_pending_lists): Likewise for param "insn".
11241         (cur_insn): Likewise for this variable.
11242         (haifa_start_insn): Add a checked cast.
11243         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
11244         (sched_analyze_reg): Likewise for param "insn".
11245         (sched_analyze_1): Likewise.
11246         (sched_analyze_2): Likewise.  Add checked casts.
11247         (sched_analyze_insn): Likewise.  Also for local "prev".
11248         (deps_analyze_insn): Likewise for param "insn".
11249         (sched_analyze): Likewise for params "head", "tail" and local "insn".
11250         (add_dependence_1): Likewise for params "insn", "elem".
11251         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
11252         (parse_add_or_inc): Likewise for param "insn".
11253         (find_inc): Likewise for local "inc_cand".
11254         (find_modifiable_mems): Likewise for params "head", "tail" and
11255         locals "insn", "next_tail".
11256
11257         * sched-ebb.c (init_ready_list): Likewise for local "insn".
11258         (begin_schedule_ready): Likewise for param "insn".
11259         (begin_move_insn): Likewise for params "insn" and "last".
11260         (ebb_print_insn): Strengthen param "insn" from const_rtx to
11261         const rtx_insn *.
11262         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
11263         (ebb_contributes_to_priority): Likewise for params "next", "insn".
11264         (ebb_add_remove_insn): Likewise for param "insn".
11265         (advance_target_bb): Likewise.
11266
11267         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
11268         "insn".
11269         (check_live): Likewise for param "insn".
11270         (init_ready_list): Likewise for local "insn".
11271         (can_schedule_ready_p): Likewise for param "insn".
11272         (begin_schedule_ready): Likewise.
11273         (new_ready): Likewise for param "next".
11274         (rgn_print_insn): Likewise for param "insn".
11275         (rgn_rank): Likewise for params "insn1", "insn2".
11276         (contributes_to_priority): Likewise for params "next", "insn".
11277         (rgn_insn_finishes_block_p): Likewise for param "insn".
11278         (add_branch_dependences): Likewise for params "head", "tail" and
11279         locals "insn", "last".
11280         (rgn_add_remove_insn): Likewise for param "insn".
11281         (advance_target_bb): Likewise.
11282
11283         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
11284         const_rtx to const rtx_insn *.
11285
11286         * sel-sched-dump.h (sel_print_insn): Likewise.
11287
11288         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
11289         (deps_init_id): Likewise.
11290
11291         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
11292         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
11293         rtx_insn **.
11294
11295 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11296
11297         * output.h (final_start_function): Strengthen param 1 from rtx to
11298         rtx_insn *.
11299
11300         * final.c (final_start_function): Likewise, renaming back from
11301         "uncast_first" to "first", and dropping the checked cast from rtx
11302         to rtx_insn *.
11303
11304 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11305
11306         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
11307         * final.c (final): Likewise.  Rename param back from
11308         "uncast_first" to "first" and eliminate the checked cast from rtx
11309         to rtx_insn *.
11310
11311 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11312
11313         * output.h (shorten_branches): Strengthen param from rtx to
11314         rtx_insn *.
11315
11316         * final.c (shorten_branches): Likewise, renaming param back from
11317         "uncast_first" to "first", and dropping the checked cast from rtx
11318         to rtx_insn *.
11319
11320         * genattr.c (gen_attr): Likewise when writing out the prototype of
11321         shorten_branches.
11322
11323 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11324
11325         * sched-int.h (struct haifa_sched_info): Strengthen fields
11326         "prev_head" and "next_tail" from rtx to rtx_insn *.
11327
11328 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11329
11330         * rtl.h (rtx_jump_table_data::get_labels): New method.
11331         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
11332         with use of the new rtx_jump_table_data::get_labels method.
11333         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
11334         to rtx_jump_table_data *.  Simplify by using get_labels method.
11335         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
11336         a dyn_cast, introducing local "table", using it to replace
11337         label-lookup logic with a get_labels method call.
11338         (patch_jump_insn): Simplify using get_labels method.
11339         * dwarf2cfi.c (create_trace_edges): Likewise.
11340         * rtlanal.c (label_is_jump_target_p): Likewise.
11341
11342 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11343
11344         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
11345         to rtx_insn *.
11346
11347         * emit-rtl.c (unshare_all_rtl_1): Likewise.
11348         (unshare_all_rtl_again): Likewise, also for local "p".
11349
11350 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11351
11352         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
11353         to rtx_insn *.
11354         * cfgrtl.c (delete_insn_and_edges): Likewise.
11355
11356 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11357
11358         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
11359         from rtx to rtx_insn *.
11360
11361         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
11362
11363 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11364
11365         * function.c (thread_prologue_and_epilogue_insns): Likewise for
11366         locals "returnjump", "epilogue_end", "insn", "next".
11367
11368         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
11369         "returnjump" from rtx * to rtx_insn **.
11370         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
11371
11372 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11373
11374         * basic-block.h (struct edge_def). Strengthen "r" within
11375         union edge_def_insns from rtx to rtx_insn *.
11376
11377         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
11378         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
11379         rtx_insn *.
11380         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
11381         from rtx to rtx_insn *.
11382         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
11383         rtx_insn *.
11384         * postreload-gcse.c (reg_killed_on_edge): Likewise.
11385         (reg_used_on_edge): Likewise.
11386         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
11387         (gt_pch_nx): New overload for rtx_insn *&.
11388         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
11389         from rtx to rtx_insn *.
11390
11391 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11392
11393         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
11394         from rtx to rtx_insn *.
11395         (BB_FOOTER): Replace function with access macro.
11396         (SET_BB_FOOTER): Delete.
11397
11398         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
11399         with BB_FOOTER.
11400         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
11401         (emit_barrier_after_bb): Likewise.
11402         (record_effective_endpoints): Likewise.
11403         (relink_block_chain): Likewise.
11404         (fixup_fallthru_exit_predecessor): Likewise.
11405         (cfg_layout_duplicate_bb): Likewise.
11406         (cfg_layout_split_block): Likewise.
11407         (cfg_layout_delete_block): Likewise.
11408         (cfg_layout_merge_blocks): Likewise.
11409         (BB_FOOTER): Delete function.
11410         (SET_BB_FOOTER): Delete function.
11411         * combine.c (update_cfg_for_uncondjump): Replace uses of
11412         SET_BB_FOOTER with BB_FOOTER.
11413
11414 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11415
11416         * except.h (struct eh_landing_pad_d): Strengthen field
11417         "landing_pad" from rtx to rtx_code_label *.
11418
11419         * except.c (sjlj_emit_dispatch_table): Likewise for param
11420         "dispatch_label"
11421         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
11422
11423 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11424
11425         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
11426         first param from rtx to rtx_insn *.
11427         * config/xtensa/xtensa.c (struct machine_function): Likewise for
11428         field "set_frame_ptr_insn".
11429         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
11430         "csend" from rtx to rtx_code_label *.
11431         (xtensa_expand_atomic): Likewise for local "csloop".
11432         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
11433         rtx_insn *.
11434         (xtensa_call_tls_desc): Likewise for return type and locals
11435         "call_insn", "insns".
11436         (xtensa_legitimize_tls_address): Likewise for local "insns".
11437         (xtensa_expand_prologue): Likewise for locals "insn", "first".
11438
11439 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11440
11441         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
11442         first param from rtx to rtx_insn *.
11443         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
11444         "insn".
11445
11446 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11447
11448         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
11449         Strengthen param 1 from rtx to rtx_insn *.
11450         (tilepro_output_cbranch): Likewise.
11451         (tilepro_adjust_insn_length): Likewise.
11452         (tilepro_final_prescan_insn): Likewise for sole param.
11453
11454         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
11455         Likewise for local "last".
11456         (cbranch_predicted_p): Likewise for param "insn".
11457         (tilepro_output_simple_cbranch_with_opcode): Likewise.
11458         (tilepro_output_cbranch_with_opcode): Likewise.
11459         (tilepro_output_cbranch): Likewise.
11460         (frame_emit_load): Likewise for return type and locals "seq",
11461         "insn".
11462         (emit_sp_adjust): Likewise for return type and local "insn".
11463         (tilepro_expand_epilogue): Likewise for locals "last_insn",
11464         "insn".
11465         (tilepro_adjust_insn_length): Likewise for param "insn".
11466         (next_insn_to_bundle): Likewise for return type and params
11467         "r", "end".
11468         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
11469         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
11470         local "new_insns".
11471         (match_addli_pcrel): Likewise for param "insn".
11472         (replace_addli_pcrel): Likewise.
11473         (match_auli_pcrel): Likewise.
11474         (replace_auli_pcrel): Likewise.
11475         (tilepro_fixup_pcrel_references): Likewise for locals "insn",
11476         "next_insn".
11477         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
11478         "queue", "next_queue", "prev".
11479         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
11480         (tilepro_final_prescan_insn): Likewise for param "insn".
11481
11482 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11483
11484         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
11485         Strengthen param 1 from rtx to rtx_insn *.
11486         (tilegx_output_cbranch): Likewise.
11487         (tilegx_adjust_insn_length): Likewise.
11488         (tilegx_final_prescan_insn): Likewise for sole param.
11489
11490         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
11491         or local "last".
11492         (cbranch_predicted_p): Likewise for param "insn".
11493         (tilegx_output_simple_cbranch_with_opcode): Likewise.
11494         (tilegx_output_cbranch_with_opcode): Likewise.
11495         (tilegx_output_cbranch): Likewise.
11496         (frame_emit_load): Likewise for return type.
11497         (set_frame_related_p): Likewise for locals "seq", "insn".
11498         (emit_sp_adjust): Likewise for return type, and for local "insn".
11499         Introduce local "pat" for use in place of "insn" where the latter
11500         isn't an instruction.
11501         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
11502         from rtx to rtx_insn *.
11503         (tilegx_adjust_insn_length): Likewise for param "insn".
11504         (next_insn_to_bundle): Likewise for return type and params "r" and
11505         "end".
11506         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
11507         "end".
11508         (replace_insns): Likewise for params "old_insn", "new_insns".
11509         (replace_mov_pcrel_step1): Likewise for param "insn" and local
11510         "new_insns".
11511         (replace_mov_pcrel_step2): Likewise.
11512         (replace_mov_pcrel_step3): Likewise.
11513         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
11514         "next_insn".
11515         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
11516         "queue", "next_queue", "prev".
11517         (tilegx_output_mi_thunk): Likewise for local "insn".
11518         (tilegx_final_prescan_insn): Likewise for param "insn".
11519
11520 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11521
11522         * config/spu/spu.c (frame_emit_store): Strengthen return type from
11523         rtx to rtx_insn *.
11524         (frame_emit_load): Likewise.
11525         (frame_emit_add_imm): Likewise, also for local "insn".
11526         (spu_expand_prologue): Likewise for local "insn".
11527         (struct spu_bb_info): Likewise for field "prop_jump".
11528         (emit_nop_for_insn): Likewise for param "insn" and local
11529         "new_insn".
11530         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
11531         "hbr_insn".
11532         (spu_emit_branch_hint): Likewise for params "before", "branch" and
11533         locals "hint", "insn".
11534         (get_branch_target): Likewise for param "branch".
11535         (insn_clobbers_hbr): Likewise for param "insn".
11536         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
11537         locals "insn", "before_4", "before_16".
11538         (insert_hbrp): Likewise for local "insn".
11539         (spu_machine_dependent_reorg): Likewise for locals "branch",
11540         "insn", "next", "bbend".
11541         (uses_ls_unit): Likewise for param "insn".
11542         (get_pipe): Likewise.
11543         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
11544         introducing a checked cast.
11545         (spu_sched_adjust_cost): Likewise for params "insn" and
11546         "dep_insn".
11547         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
11548         (spu_sms_res_mii): Likewise.
11549
11550 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11551
11552         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
11553         from rtx to rtx_insn *.
11554         (output_cbranch): Likewise for param 6.
11555         (output_return): Likewise for param 1.
11556         (output_sibcall): Likewise.
11557         (output_v8plus_shift): Likewise.
11558         (output_v8plus_mult): Likewise.
11559         (output_v9branch): Likewise for param 7.
11560         (output_cbcond):  Likewise for param 3.
11561
11562         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
11563         for local "insn".
11564         (sparc_legitimize_pic_address): Likewise.
11565         (sparc_emit_call_insn): Likewise.
11566         (emit_save_or_restore_regs): Likewise.
11567         (emit_window_save): Likewise for return type and local "insn".
11568         (sparc_expand_prologue): Likewise for local "insn".
11569         (sparc_flat_expand_prologue): Likewise.
11570         (output_return): Likewise for param "insn".
11571         (output_sibcall): Likewise for param "insn" and local "delay".
11572         (output_ubranch): Likewise for param "insn".
11573         (output_cbranch): Likewise.
11574         (output_cbcond): Likewise.
11575         (output_v9branch): Likewise.
11576         (output_v8plus_shift): Likewise.
11577         (sparc_output_mi_thunk): Likewise for local "insn".
11578         (get_some_local_dynamic_name): Likewise.
11579         (output_v8plus_mult): Likewise for param "insn".
11580
11581 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11582
11583         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
11584         from rtx to rtx_insn *.
11585         (output_branchy_insn): Likewise for param 3.
11586         (output_far_jump): Likewise for param 1.
11587         (final_prescan_insn): Likewise.
11588         (sh_insn_length_adjustment): Likewise for sole param.
11589
11590         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
11591         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
11592         rtx_code_label *.
11593         (sh_emit_compare_and_set): Likewise for local "lab".
11594         (output_far_jump): Strengthen param "insn" and local "prev" from
11595         rtx to rtx_insn *.
11596         (output_branchy_insn): Likewise for param "insn" and local
11597         "next_insn".
11598         (output_ieee_ccmpeq): Likewise for param "insn".
11599         (struct label_ref_list_d): Strengthen field "label" from rtx to
11600         rtx_code_label *.
11601         (pool_node): Likewise.
11602         (pool_window_label): Likewise for this global.
11603         (add_constant): Likewise for return type and locals "lab", "new_rtx".
11604         (dump_table): Strengthen params "start", "barrier" and local
11605         "scan" from rtx to rtx_insn *.
11606         (broken_move): Likewise for param "insn".
11607         (untangle_mova): Likewise for params "first_mova" and "new_mova".
11608         Strengthen param "first_mova" from rtx * to rtx_insn **.
11609         (mova_p): Likewise for param "insn".
11610         (fixup_mova): Likewise for param "mova".
11611         (find_barrier): Likewise for return type, params "mova" and
11612         "from", and locals "barrier_before_mova", "found_barrier",
11613         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
11614         "label" from rtx to rtx_code_label *.
11615         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
11616         rtx to rtx_insn *.
11617         (sh_reorg): Likewise for locals "link", "scan", "barrier".
11618         (split_branches): Likewise for param "first" and local "insn".
11619         (final_prescan_insn): Likewise for param "insn".
11620         (sequence_insn_p): Likewise for locals "prev", "next".
11621         (sh_insn_length_adjustment): Likewise for param "insn".
11622         (sh_can_redirect_branch): Likewise for local "insn".
11623         (find_r0_life_regions): Likewise for locals "end", "insn".
11624         (sh_output_mi_thunk): Likewise for local "insns".
11625
11626 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11627
11628         * config/score/score.c (score_output_mi_thunk): Strengthen local
11629         "insn" from rtx to rtx_insn *.
11630         (score_prologue): Likewise.
11631
11632 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11633
11634         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
11635         1 from rtx to rtx_insn *.
11636         (s390_emit_jump): Likewise for return type.
11637         (s390_emit_call): Likewise.
11638         (s390_load_got): Likewise.
11639
11640         * config/s390/s390.c (last_scheduled_insn): Likewise for this
11641         variable.
11642         (s390_match_ccmode): Likewise for param "insn".
11643         (s390_emit_jump): Likewise for return type.
11644         (s390_split_branches): Likewise for local "label".
11645         (struct constant): Strengthen field "label" from rtx to
11646         rtx_code_label *.
11647         (struct constant_pool): Likewise for field "label".  Strengthen
11648         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
11649         rtx_insn *.
11650         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
11651         insns.
11652         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
11653         (s390_end_pool): Likewise.
11654         (s390_dump_pool): Likewise for local "insn".
11655         (s390_mainpool_start): Likewise.
11656         (s390_chunkify_start): Likewise.
11657         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
11658         with insns.  Strengthen locals "label", "jump", "barrier", "next",
11659         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
11660         (s390_chunkify_finish): Strengthen local "insn" from rtx to
11661         rtx_insn *.
11662         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
11663         "jump", "label", "next_insn".
11664         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
11665         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
11666         "tbegin_insn".
11667         (s390_load_got): Likewise for return type and local "insns".
11668         (s390_save_gprs_to_fprs): Likewise for local "insn".
11669         (s390_restore_gprs_from_fprs): Likewise.
11670         (pass_s390_early_mach::execute): Likewise.
11671         (s390_emit_prologue): Likewise for local "insns".
11672         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
11673         rtx_code_label *.
11674         (s390_emit_call): Strengthen return type and local "insn" from
11675         rtx to rtx_insn *.
11676         (s390_emit_tpf_eh_return): Likewise for local "insn".
11677         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
11678         "next_insn", introducing locals "s_pat", "rpat" to allow this.
11679         (s390_fix_long_loop_prediction): Likewise for param "insn" and
11680         local "cur_insn".
11681         (s390_non_addr_reg_read_p): Likewise for param "insn".
11682         (find_cond_jump): Likewise for return type and param "insn".
11683         (s390_swap_cmp): Likewise for param "insn".
11684         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
11685         "prev_insn", "next_insn".
11686         (s390_reorg): Likewise for locals "insn", "target".
11687         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
11688         (s390_sched_variable_issue): For now, rename param "insn" to
11689         "uncast_insn", introducing a checked cast.
11690         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
11691         insn.
11692         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
11693         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
11694
11695 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11696
11697         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
11698         param from rtx to rtx_insn *.
11699         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
11700
11701 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11702
11703         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
11704         4 from rtx to rtx_insn *.
11705         (rs6000_final_prescan_insn): Likewise for first param.
11706         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
11707         local "insn".
11708         (rs6000_get_some_local_dynamic_name): Likewise.
11709         (output_cbranch): Likewise for param "insn".
11710         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
11711         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
11712         (rs6000_emit_allocate_stack): Likewise for local "insn".
11713         (load_cr_save): Likewise.
11714         (restore_saved_cr): Likewise.
11715         (restore_saved_lr): Likewise.
11716         (emit_cfa_restores): Likewise.
11717         (rs6000_output_function_epilogue): Likewise for locals "insn" and
11718         "deleted_debug_label".
11719         (rs6000_output_mi_thunk): Likewise for local "insn".
11720         (rs6000_final_prescan_insn): Likewise for param "insn".
11721
11722 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11723
11724         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
11725         Strengthen param "insn" from rtx to rtx_insn *.
11726         * config/picochip/picochip.c (picochip_current_prescan_insn):
11727         Likewise for this variable.
11728         (picochip_final_prescan_insn): Likewise for param "insn".
11729
11730 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11731
11732         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
11733         from rtx to rtx_insn *.
11734         (pa_output_indirect_call): Likewise.
11735         (pa_adjust_insn_length): Likewise.
11736         (pa_attr_length_millicode_call): Likewise.
11737         (pa_attr_length_call): Likewise.
11738         (pa_attr_length_indirect_call): Likewise.
11739
11740         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
11741         "insn".
11742         (pa_attr_length_millicode_call): Likewise.
11743         (pa_attr_length_call): Likewise.
11744         (pa_output_call): Likewise.
11745         (pa_attr_length_indirect_call): Likewise.
11746         (pa_output_indirect_call): Likewise.
11747
11748 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11749
11750         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
11751         Strengthen first param from rtx to rtx_insn *.
11752         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
11753         param "insn".
11754
11755 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11756
11757         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
11758         type from rtx to rtx_insn *.
11759         (mips_expand_call): Likewise.
11760         (mips_adjust_insn_length): Likewise for first param.
11761         (mips_output_conditional_branch): Likewise.
11762         (mips_output_order_conditional_branch): Likewise.
11763         (mips_final_prescan_insn): Likewise.
11764
11765         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
11766         rtx_insn * for the SEQUENCE case.
11767         (SEQ_END): Likewise.
11768         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
11769         (mips_emit_call_insn): Likewise, also for local "insn".
11770         (mips16_gp_pseudo_reg): Likewise for local "scan".
11771         (mips16_build_call_stub): Likewise for return type and for local
11772         "insn".  Introduce a new local "pattern" so that "insn" can indeed
11773         be an insn.
11774         (mips_expand_call): Strengthen return type and local "insn" from
11775         rtx to rtx_insn *.
11776         (mips_block_move_loop): Strengthen local "label" from rtx to
11777         rtx_code_label *.
11778         (mips_expand_synci_loop): Likewise for locals "label",
11779         "end_label".
11780         (mips_set_frame_expr): Strengthen local "insn" from rtx to
11781         rtx_insn *.
11782         (mips16e_collect_argument_saves): Likewise for locals "insn",
11783         "next".
11784         (mips_find_gp_ref): Likewise for param of callback for "pred"
11785         param, and for local "insn".
11786         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
11787         (mips_insn_has_flexible_gp_ref_p): Likewise.
11788         (mips_epilogue_emit_cfa_restores): Likewise for return type and
11789         local "insn".
11790         (mips_epilogue_set_cfa): Likewise for local "insn".
11791         (mips_expand_epilogue): Likewise.
11792         (mips_adjust_insn_length): Likewise for param "insn".
11793         (mips_output_conditional_branch): Likewise.
11794         (mips_output_order_conditional_branch): Likewise.
11795         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
11796         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
11797         "falu2_turn_enabled_insn".
11798         (mips_builtin_branch_and_move): Strengthen locals "true_label",
11799         "done_label" from rtx to rtx_code_label *.
11800         (struct mips16_constant): Likewise for field "label".
11801         (mips16_add_constant): Likewise for return type.
11802         (mips16_emit_constants_1): Strengthen return type and param "insn"
11803         from rtx to rtx_insn *.
11804         (mips16_emit_constants): Likewise for param "insn".
11805         (mips16_insn_length): Likewise.
11806         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
11807         to rtx_code_label *.
11808         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
11809         from rtx to rtx_insn *.
11810         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
11811         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
11812         (r10k_simplify_address): Strengthen param "insn" and local
11813         "def_insn" from rtx to rtx_insn *.
11814         (r10k_safe_address_p): Strengthen param "insn" from rtx to
11815         rtx_insn *.
11816         (r10k_needs_protection_p_1): Update target type of cast of data
11817         from to rtx to rtx_insn *.
11818         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
11819         rtx * to rtx_insn **.
11820         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
11821         rtx_insn *.
11822         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
11823         (mips_call_expr_from_insn): Likewise for param "insn".
11824         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
11825         (mips_find_pic_call_symbol): Likewise for param "insn".
11826         (mips_annotate_pic_calls): Likewise for local "insn".
11827         (mips_sim_insn): Likewise for this variable.
11828         (struct mips_sim): Likewise for field "insn" within elements of
11829         last_set array.
11830         (mips_sim_wait_reg): Likewise for param "insn".
11831         (mips_sim_wait_regs): Likewise.
11832         (mips_sim_wait_units): Likewise.
11833         (mips_sim_wait_insn): Likewise.
11834         (mips_sim_issue_insn): Likewise.
11835         (mips_sim_finish_insn): Likewise.
11836         (mips_seq_time): Likewise for param "seq" and local "insn".
11837         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
11838         locals "first", "second".
11839         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
11840         "last", "last2", "next".
11841         (mips_avoid_hazard): Likewise for params "after", "insn".
11842         (mips_reorg_process_insns): Likewise for locals "insn",
11843         "last_insn", "subinsn", "next_insn".
11844         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
11845         (mips16_split_long_branches): Likewise for locals "insn" "jump",
11846         "jump_sequence".
11847         (mips_output_mi_thunk): Likewise for local "insn".
11848         (mips_final_prescan_insn): Likewise for param "insn".
11849
11850 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11851
11852         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
11853         Strengthen return type and local "insns" from rtx to rtx_insn *.
11854         (microblaze_legitimize_tls_address): Likewise for local "insns".
11855         (microblaze_block_move_loop): Strengthen local "label" from rtx
11856         to rtx_code_label *.
11857         (microblaze_expand_prologue): Strengthen two locals named "insn"
11858         from rtx to rtx_insn *.
11859         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
11860         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
11861         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
11862         to rtx_code_label *.
11863
11864 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11865
11866         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
11867         param from rtx to rtx_insn *.
11868         (mep_reuse_lo): Likewise for third param.
11869         (mep_use_post_modify_p): Likewise for first param.
11870         (mep_core_address_length): Likewise.
11871         (mep_cop_address_length): Likewise.
11872         (mep_final_prescan_insn): Likewise.
11873         (mep_store_data_bypass_p): Likewise for both params.
11874         (mep_mul_hilo_bypass_p): Likewise.
11875         (mep_ipipe_ldc_p): Likewise for param.
11876
11877         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
11878         (mep_rewrite_mult): Likewise.
11879         (mep_rewrite_mulsi3): Likewise.
11880         (mep_rewrite_maddsi3): Likewise.
11881         (mep_reuse_lo_p_1): Likewise.
11882         (mep_reuse_lo_p): Likewise.
11883         (mep_frame_expr): Likewise.
11884         (mep_make_parallel): Likewise for both params.
11885         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
11886         local "insn".
11887         (mep_use_post_modify_p): Likewise for param "insn".
11888         (mep_core_address_length): Likewise.
11889         (mep_cop_address_length): Likewise.
11890         (mep_reg_set_in_function): Likewise for local "insn".
11891         (mep_asm_without_operands_p): Likewise.
11892         (F): Likewise for return type and param "x".
11893         (add_constant): Likewise for local "insn".
11894         (maybe_dead_move): Likewise for return type and local "insn".
11895         (mep_expand_prologue): Likewise for local "insn".
11896         (mep_final_prescan_insn): Likewise for param "insn".
11897         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
11898         "next", "follow", "x".
11899         (mep_insert_repeat_label_last): Likewise for return type, param
11900         "last_insn", and locals "next", "prev".  Strengthen param "label"
11901         from rtx to rtx_code_label *.
11902         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
11903         rtx_insn *.
11904         (struct mep_doloop_end): Likewise for fields "insn" and
11905         "fallthrough".
11906         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
11907         Strengthen local "repeat_label" from rtx to rtx_code_label *.
11908         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
11909         rtx_insn *.
11910         (mep_invert_branch): Likewise for params "insn" and "after".
11911         (mep_reorg_erepeat): Likewise for param "insns" and locals
11912         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
11913         "l" from rtx to rtx_code_label *.
11914         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
11915         from rtx to rtx_insn *.
11916         (mep_reorg_addcombine): Likewise for param "insns" and locals
11917         "i", "n".
11918         (add_sp_insn_p): Likewise for param "insn".
11919         (mep_reorg_noframe): Likewise for param "insns" and locals
11920         "start_frame_insn", "end_frame_insn", "next".
11921         (mep_reorg): Likewise for local "insns".
11922         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
11923         cast.
11924         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
11925         (mep_mul_hilo_bypass_p): Likewise.
11926         (mep_ipipe_ldc_p): Likewise for param "insn".
11927         (mep_make_bundle): Likewise for return type, param "cop" and local
11928         "insn", splitting out the latter into a new local "seq" for when it
11929         is a SEQUENCE rather than an insn.
11930         (core_insn_p): Likewise for param "insn".
11931         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
11932         "last", "first", "note", "prev", "core_insn".
11933
11934 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11935
11936         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
11937         rtx to rtx_insn *.
11938         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
11939         (m68k_final_prescan_insn): Likewise for first param.
11940
11941         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
11942         (m68k_set_frame_related): Likewise for param "insn".
11943         (output_btst): Likewise for param "insn".
11944         (m68k_final_prescan_insn): Likewise.
11945         (m68k_move_to_reg): Likewise for local "insn".
11946         (m68k_call_tls_get_addr): Likewise for local "insns".
11947         (m68k_call_m68k_read_tp): Likewise.
11948         (strict_low_part_peephole_ok): Likewise for param "first_insn".
11949         (m68k_output_mi_thunk): Likewise for local "insn".
11950
11951 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11952
11953         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
11954         first param from rtx to rtx_insn *.
11955         (iq2000_adjust_insn_length): Likewise.
11956         (iq2000_output_conditional_branch): Likewise.
11957         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
11958         "insn" and local "nop_insn".
11959         (iq2000_annotate_frame_insn): Likewise for param "insn".
11960         (iq2000_expand_prologue): Likewise for both locals "insn".
11961         (iq2000_adjust_insn_length): Likewise for param "insn".
11962         (iq2000_output_conditional_branch): Likewise.
11963
11964 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11965
11966         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
11967         "insns" from rtx to rtx_insn *.
11968         (ia64_emit_cond_move): Likewise for locals "insn", "first".
11969         (struct spill_fill_data): Likewise for field "init_after" and for
11970         elements of array field "prev_insn".
11971         (spill_restore_mem): Likewise for locals "insn", "first".
11972         (do_spill): Likewise for local "insn".
11973         (do_restore): Likewise.
11974         (ia64_expand_prologue): Likewise.
11975         (ia64_expand_epilogue): Likewise.
11976         (emit_insn_group_barriers): Likewise for locals "insn",
11977         "last_label".
11978         (emit_all_insn_group_barriers): Likewise for locals "insn",
11979         "last".
11980         (dfa_stop_insn): Likewise for this global.
11981         (dfa_pre_cycle_insn): Likewise.
11982         (ia64_nop): Likewise.
11983         (final_emit_insn_group_barriers): Likewise for locals "insn",
11984         "last".
11985         (emit_predicate_relation_info): Likewise for locals "head", "n",
11986         "insn", "b", "a".
11987         (ia64_reorg): Likewise for local "insn".
11988         (ia64_output_mi_thunk): Likewise.
11989         (expand_vec_perm_interleave_2): Likewise for local "seq".
11990
11991 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
11992
11993         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
11994         param 1 "insn" from rtx to rtx_insn *.
11995         (ix86_use_lea_for_mov): Likewise.
11996         (ix86_avoid_lea_for_addr): Likewise.
11997         (ix86_split_lea_for_addr): Likewise.
11998         (ix86_lea_for_add_ok): Likewise.
11999         (ix86_output_call_insn): Likewise.
12000
12001         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
12002         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
12003         (ix86_output_function_epilogue): Likewise for locals "insn",
12004         "deleted_debug_label".
12005         (legitimize_tls_address): Likewise for local "insn".
12006         (get_some_local_dynamic_name): Likewise.
12007         (increase_distance): Likewise for params "prev", "next".
12008         (distance_non_agu_define_in_bb): Likewise for params "insn",
12009         "start" and locals "prev", "next".
12010         (distance_non_agu_define): Likewise for param "insn".
12011         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
12012         locals "next", "prev".
12013         (distance_agu_use): Likewise for param "insn".
12014         (ix86_lea_outperforms): Likewise.
12015         (ix86_ok_to_clobber_flags): Likewise.
12016         (ix86_avoid_lea_for_add): Likewise.
12017         (ix86_use_lea_for_mov): Likewise.
12018         (ix86_avoid_lea_for_addr): Likewise.
12019         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
12020         (ix86_split_lea_for_addr): Likewise for param "insn".
12021         (ix86_lea_for_add_ok): Likewise for param "insn".
12022         (ix86_expand_carry_flag_compare): Likewise for local
12023         "compare_seq".
12024         (ix86_expand_int_movcc): Likewise.
12025         (ix86_output_call_insn): Likewise for param "insn".
12026         (ix86_output_call_insn): Likewise for local "i".
12027         (x86_output_mi_thunk): Introduce local "insn", using it in place
12028         of "tmp" when dealing with insns.
12029         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
12030         "start".
12031         (ix86_pad_returns): Likewise for locals "ret", "prev".
12032         (ix86_count_insn_bb): Likewise for local "insn".
12033         (ix86_pad_short_function): Likewise for locals "ret", "insn".
12034         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
12035         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
12036         (expand_vec_perm_interleave2): Likewise for local "seq".
12037         (expand_vec_perm_vperm2f128_vblend): Likewise.
12038         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
12039         call to for_each_rtx with for_each_rtx_in_insn.
12040
12041 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12042
12043         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
12044         "label" from rtx to rtx_code_label *.
12045         (ix86_expand_prologue): Likewise.
12046         (ix86_expand_split_stack_prologue): Likewise for locals "label",
12047         "varargs_label".
12048         (ix86_split_idivmod): Likewise for locals "end_label" and
12049         "qimode_label".
12050         (ix86_expand_branch): Likewise for local "label2".
12051         (ix86_expand_aligntest): Likewise for return type and local "label".
12052         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
12053         "top_label".
12054         (expand_movmem_epilogue): Likewise for the various locals named
12055         "label".
12056         (expand_setmem_epilogue): Likewise.
12057         (expand_small_movmem_or_setmem): Likewise for local "label".
12058         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
12059         Strengthen param "done_label" from rtx * to rtx_code_label **.
12060         Strengthen locals "loop_label" and "label" from rtx to
12061         rtx_code_label *.
12062         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
12063         Likewise for locals "loop_label", "label".
12064         (ix86_expand_set_or_movmem): Likewise for locals "label",
12065         "jump_around_label", "hot_label".
12066         (ix86_expand_strlensi_unroll_1): Likewise for locals
12067         "align_2_label", align_3_label", "align_4_label", "end_0_label",
12068         "end_2_label".
12069         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
12070         (void ix86_emit_i387_log1p): Likewise for locals "label1",
12071         "label2", "jump_label".
12072         (ix86_expand_sse_compare_and_jump): Likewise for return type and
12073         local "label".
12074         (ix86_expand_lfloorceil): Likewise for local "label".
12075         (ix86_expand_rint): Likewise.
12076         (ix86_expand_floorceildf_32): Likewise.
12077         (ix86_expand_floorceil): Likewise.
12078         (ix86_expand_rounddf_32): Likewise.
12079         (ix86_expand_trunc): Likewise.
12080         (ix86_expand_truncdf_32): Likewise.
12081         (ix86_expand_round): Likewise.
12082
12083 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12084
12085         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
12086         first param from rtx to rtx_insn *.
12087         (h8300_insn_length_from_table): Likewise.
12088         * config/h8300/h8300.c (F): Likewise for return type and param
12089         "x".
12090         (Fpa): Add a checked cast to rtx_insn *.
12091         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
12092         rtx_insn *.
12093         (final_prescan_insn): Likewise for param "insn".
12094         (h8300_binary_length): Likewise.
12095         (h8300_insn_length_from_table): Likewise.
12096
12097 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12098
12099         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
12100         Strengthen first param "insn" from rtx to rtx_insn *.
12101
12102         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
12103         Likewise.
12104         (frame_insn): Likewise for return type.  Introduce local "insn"
12105         for use in place of local "x" for use as an rtx_insn *.
12106         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
12107         (epiphany_expand_prologue): Likewise for local "insn".
12108         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
12109         * config/epiphany/resolve-sw-modes.c
12110         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
12111         "seq".
12112
12113 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12114
12115         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
12116         param from rtx to rtx_insn *.
12117         (c6x_final_prescan_insn): Likewise for first param.
12118
12119         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
12120         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
12121         (c6x_expand_compare): Strengthen local "insns" from rtx to
12122         rtx_insn *.
12123         (c6x_get_unit_specifier): Likewise for param "insn".
12124         (c6x_print_unit_specifier_field): Likewise.
12125         (c6x_final_prescan_insn): Likewise.
12126         (emit_add_sp_const): Likewise for local "insn".
12127         (c6x_expand_prologue): Likewise.
12128
12129 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12130
12131         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
12132         param 1 from rtx to rtx_insn *.
12133         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
12134         the various locals named "insn".
12135         (expand_epilogue_reg_restore): Likewise.
12136         (frame_related_constant_load): Likewise.
12137         (add_to_reg): Likewise.
12138         (emit_link_insn): Likewise.
12139         (do_link): Likewise.
12140         (expand_interrupt_handler_prologue): Likewise.
12141         (branch_dest): Likewise for param "branch".
12142         (asm_conditional_branch): Likewise for param "insn".
12143         (gen_one_bundle): Likewise for elements of param "slot" and local
12144         "t".
12145         (bfin_gen_bundles): Likewise for locals "insn", "next" and
12146         elements of local "slot".
12147         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
12148         "queue", "next_queue", "prev".
12149         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
12150         (add_sched_insns_for_speculation): Likewise for local "insn".
12151
12152 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12153
12154         * config/avr/avr-protos.h (output_movqi): Strengthen first param
12155         from rtx to rtx_insn *.
12156         (output_movhi): Likewise.
12157         (output_movsisf): Likewise.
12158         (avr_out_tstsi): Likewise.
12159         (avr_out_tsthi): Likewise.
12160         (avr_out_tstpsi): Likewise.
12161         (avr_out_compare): Likewise.
12162         (avr_out_compare64): Likewise.
12163         (avr_out_movpsi): Likewise.
12164         (ashlqi3_out): Likewise.
12165         (ashlhi3_out): Likewise.
12166         (ashlsi3_out): Likewise.
12167         (ashrqi3_out): Likewise.
12168         (ashrhi3_out): Likewise.
12169         (ashrsi3_out): Likewise.
12170         (lshrqi3_out): Likewise.
12171         (lshrhi3_out): Likewise.
12172         (lshrsi3_out): Likewise.
12173         (avr_out_ashlpsi3): Likewise.
12174         (avr_out_ashrpsi3): Likewise.
12175         (avr_out_lshrpsi3): Likewise.
12176         (avr_out_fract): Likewise.
12177         (avr_out_sbxx_branch): Likewise.
12178         (avr_out_round): Likewise.
12179         (avr_out_xload): Likewise.
12180         (avr_out_movmem): Likewise.
12181         (adjust_insn_length): Likewise.
12182         (avr_out_lpm): Likewise.
12183         (reg_unused_after): Likewise.
12184         (_reg_unused_after): Likewise.
12185         (avr_jump_mode): Likewise for second param.
12186         (jump_over_one_insn): Likewise for first param.
12187         (avr_final_prescan_insn): Likewise.
12188         (out_shift_with_cnt): Likewise for second param.
12189
12190         * config/avr/avr.c (get_sequence_length): Likewise for param
12191         "insns" and local "insn".
12192         (emit_push_byte): Likewise for local "insn".
12193         (emit_push_sfr): Likewise.
12194         (avr_prologue_setup_frame): Likewise for locals "insn",
12195         "fp_plus_insns", "sp_plus_insns".
12196         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
12197         "sp_plus_insns".
12198         (avr_jump_mode): Likewise for param "insn".
12199         (avr_final_prescan_insn): Likewise.
12200         (avr_find_unused_d_reg): Likewise.
12201         (avr_out_lpm_no_lpmx): Likewise.
12202         (avr_out_lpm): Likewise.
12203         (avr_out_xload): Likewise.
12204         (output_movqi): Likewise.
12205         (output_movhi): Likewise.
12206         (out_movqi_r_mr): Likewise.
12207         (out_movhi_r_mr): Likewise.
12208         (out_movsi_r_mr): Likewise.
12209         (out_movsi_mr_r): Likewise.
12210         (output_movsisf): Likewise.
12211         (avr_out_load_psi): Likewise.
12212         (avr_out_store_psi): Likewise.
12213         (avr_out_movpsi): Likewise.
12214         (out_movqi_mr_r): Likewise.
12215         (avr_out_movhi_mr_r_xmega): Likewise.
12216         (out_movhi_mr_r): Likewise.
12217         (compare_condition): Likewise for param "insn" and local "next".
12218         (compare_sign_p): Likewise for param "insn".
12219         (compare_diff_p): Likewise.
12220         (compare_eq_p): Likewise.
12221         (avr_out_compare): Likewise.
12222         (avr_out_compare64): Likewise.
12223         (avr_out_tsthi): Likewise.
12224         (avr_out_tstpsi): Likewise.
12225         (avr_out_tstsi): Likewise.
12226         (out_shift_with_cnt): Likewise.
12227         (ashlqi3_out): Likewise.
12228         (ashlhi3_out): Likewise.
12229         (avr_out_ashlpsi3): Likewise.
12230         (ashlsi3_out): Likewise.
12231         (ashrqi3_out): Likewise.
12232         (ashrhi3_out): Likewise.
12233         (avr_out_ashrpsi3): Likewise.
12234         (ashrsi3_out): Likewise.
12235         (lshrqi3_out): Likewise.
12236         (lshrhi3_out): Likewise.
12237         (avr_out_lshrpsi3): Likewise.
12238         (lshrsi3_out): Likewise.
12239         (avr_out_fract): Likewise.
12240         (avr_out_round): Likewise.
12241         (avr_adjust_insn_length): Likewise.
12242         (reg_unused_after): Likewise.
12243         (_reg_unused_after): Likewise.
12244         (avr_compare_pattern): Likewise.
12245         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
12246         and locals "branch1", "branch2", "insn2", "jump".
12247         (avr_reorg): Likewise for local "insn".
12248         (avr_2word_insn_p): Likewise for param "insn".
12249         (jump_over_one_insn_p): Likewise.
12250         (avr_out_sbxx_branch): Likewise.
12251         (avr_out_movmem): Likewise.
12252
12253 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12254
12255         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
12256         param from rtx to rtx_insn *.
12257         (thumb1_final_prescan_insn): Likewise.
12258         (thumb2_final_prescan_insn): Likewise.
12259
12260         * config/arm/arm.c (emit_set_insn): Strengthen return type from
12261         rtx to rtx_insn *.
12262         (struct minipool_node): Likewise for field "insn".
12263         (dump_minipool): Likewise for param "scan".
12264         (create_fix_barrier): Likewise for local "from".  Strengthen local
12265         "label" from rtx to rtx_code_label *.
12266         (push_minipool_barrier): Strengthen param "insn" from rtx to
12267         rtx_insn *.
12268         (push_minipool_fix): Likewise.
12269         (note_invalid_constants): Likewise.
12270         (thumb2_reorg): Likewise for local "insn".
12271         (arm_reorg): Likewise.
12272         (thumb2_final_prescan_insn): Likewise for param
12273         "insn" and local "first_insn".
12274         (arm_final_prescan_insn): Likewise for param "insn" and locals
12275         "start_insn", "this_insn".
12276         (arm_debugger_arg_offset): Likewise for param "insn".
12277         (thumb1_emit_multi_reg_push): Likewise for return type and local
12278         "insn".
12279         (thumb1_final_prescan_insn): Likewise for param "insn".
12280         (thumb_far_jump_used_p): Likewise for local "insn".
12281         (thumb1_expand_prologue): Likewise.
12282         (arm_expand_epilogue_apcs_frame): Likewise.
12283         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
12284         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
12285         from rtx to rtx_code_label *.
12286         (arm_split_atomic_op): Likewise for local "label".
12287         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
12288
12289 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12290
12291         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
12292         first param from rtx to rtx_insn *.
12293         (arc_verify_short): Likewise.
12294         (arc_short_long): Likewise.
12295         (arc_need_delay): Likewise.
12296
12297         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
12298         "target_insn".
12299         (arc_ccfsm_advance): Likewise for param "insn" and locals
12300         "start_insn", "this_insn".
12301         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
12302         (arc_ccfsm_post_advance): Likewise for param "insn".
12303         (arc_next_active_insn): Likewise for return type and param "insn".
12304         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
12305         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
12306         (output_short_suffix): Likewise for local "insn".
12307         (arc_final_prescan_insn): Likewise for param "insn".  Remove
12308         now-redundant checked cast.
12309         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
12310         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
12311         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
12312         for use where lc_set became an insn.
12313         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
12314         rtx to rtx_insn *.
12315         (arc_get_insn_variants): Likewise for local "prev".
12316         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
12317         "next".
12318         (arc_predicate_delay_insns): Likewise for local "insn".
12319         (arc_pad_return): Likewise for local "prev".  For now, add a
12320         checked cast when extracting the insn from "final_sequence".
12321         (arc_short_long): Likewise for param "insn".
12322         (arc_need_delay): Likewise for param "insn" and local "next".
12323         (arc_label_align): Likewise for locals "prev", "next".
12324
12325 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12326
12327         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
12328         "insn" from rtx to rtx_insn *.
12329         (alpha_gp_save_rtx): Likewise for local "seq".
12330         (alpha_instantiate_decls): Likewise for local "top".
12331         (get_some_local_dynamic_name): Likewise for local "insn".
12332         (alpha_does_function_need_gp): Likewise.
12333         (set_frame_related_p): Likewise for return type and for locals
12334         "seq" and "insn".
12335         (emit_frame_store_1): Likewise for local "insn".
12336         (alpha_expand_prologue): Likewise for locals "insn", "seq".
12337         (alpha_end_function): Likewise for local "insn".
12338         (alpha_output_mi_thunk_osf): Likewise.
12339         (alphaev4_insn_pipe): Likewise for param "insn".
12340         (alphaev5_insn_pipe): Likewise.
12341         (alphaev4_next_group): Likewise for return type and param 1
12342         "insn".
12343         (alphaev5_next_group): Likewise.
12344         (alpha_align_insns_1): Likewise for return type and param 1 of
12345         callback param "next_group", and for locals "i", "next", "prev",
12346         "where", "where2", "insn".
12347
12348 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
12349
12350         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
12351         rather than modifying the stmt.
12352
12353 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
12354
12355         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
12356         cgraph_state conversion.
12357
12358 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
12359
12360         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
12361         Strengthen local "insns" from rtx to rtx_insn *.
12362         (aarch64_set_frame_expr): Likewise for local "insn".
12363         (aarch64_save_or_restore_fprs): Likewise.
12364         (aarch64_save_or_restore_callee_save_registers): Likewise.
12365         (aarch64_expand_prologue): Likewise.
12366         (aarch64_expand_epilogue): Likewise.
12367         (aarch64_output_mi_thunk): Likewise.
12368         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
12369         "label2" from rtx to rtx_code_label *.
12370         (aarch64_split_atomic_op): Likewise for local "label".
12371
12372 2014-08-25  Martin Liska  <mliska@suse.cz>
12373
12374         * cgraph.h (symtab_node):
12375         (bool needed_p (void)): created from decide_is_symbol_needed
12376         (bool referred_to_p (void)): created from referred_to_p
12377         (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
12378         * cgraph.h (cgraph_node):
12379         (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
12380         (void expand (void)): created from expand_function
12381         (static void finalize_function (tree, bool)): created from cgraph_finalize_function
12382         (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
12383         (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
12384         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
12385         * cgraph.h (varpool_node):
12386         (static void add (tree decl): created from varpool_add_new_variable
12387         * cgraph.h (cgraph_edge):
12388         void remove (void);
12389         (void remove_caller (void)): created from cgraph_edge_remove_caller
12390         (void remove_callee (void)): created from cgraph_edge_remove_callee
12391         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
12392           created from cgraph_set_call_stmt
12393         (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
12394         (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
12395         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
12396           gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
12397         (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
12398           created from cgraph_speculative_call_info
12399         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
12400           int freq_scale, bool update_original)): created from cgraph_clone_edge
12401         (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
12402         (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
12403         (bool recursive_p (void)): created from cgraph_edge_recursive_p
12404         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
12405         (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
12406         (static void rebuild_references (void)): created from cgraph_rebuild_references
12407         * cgraph.h (symbol_table):
12408         (create_reference): renamed from add_reference
12409         (maybe_create_reference): renamed from maybe_add_reference
12410         (void register_symbol (symtab_node *node)): new function
12411         (void clear_asm_symbols (void)): new function
12412         (void unregister (symtab_node *node)): new function
12413         (void release_symbol (cgraph_node *node, int uid)): new function
12414         (cgraph_node * allocate_cgraph_symbol (void)): new function
12415         (void initialize (void)): created from cgraph_init
12416         (symtab_node *first_symbol (void)):new function
12417         (asm_node *first_asm_symbol (void)):new function
12418         (symtab_node *first_defined_symbol (void)):new function
12419         (varpool_node *first_variable (void)):new function
12420         (varpool_node *next_variable (varpool_node *node)):new function
12421         (varpool_node *first_static_initializer (void)):new function
12422         (varpool_node *next_static_initializer (varpool_node *node)):new function
12423         (varpool_node *first_defined_variable (void)):new function
12424         (varpool_node *next_defined_variable (varpool_node *node)):new function
12425         (cgraph_node *first_defined_function (void)):new function
12426         (cgraph_node *next_defined_function (cgraph_node *node)):new function
12427         (cgraph_node *first_function (void)):new function
12428         (cgraph_node *next_function (cgraph_node *node)):new function
12429         (cgraph_node *first_function_with_gimple_body (void)):new function
12430         (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
12431         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
12432           created from symtab_remove_unreachable_nodes
12433         (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
12434         (void process_new_functions (void)): created from cgraph_process_new_functions
12435         (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
12436         (bool output_variables (void)): created from varpool_node::output_variables
12437         (void output_asm_statements (void)): created from output_asm_statements
12438         (void finalize_compilation_unit (void)): created from finalize_compilation_unit
12439         (void compile (void)): created from compile
12440         (void output_weakrefs (void)): created from output_weakrefs
12441         (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
12442         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
12443           gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
12444         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
12445         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
12446           created from cgraph_next_function_with_gimple_body
12447         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
12448           created from cgraph_remove_edge_removal_hook
12449         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
12450           created from cgraph_add_node_removal_hook
12451         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
12452           created from cgraph_remove_node_removal_hook
12453         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
12454           created from varpool_add_node_removal_hook
12455         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
12456           created from varpool_remove_node_removal_hook
12457         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
12458           created from cgraph_add_function_insertion_hook
12459         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
12460           created from cgraph_remove_function_insertion_hook
12461         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
12462           created from varpool_add_variable_insertion_hook
12463         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
12464           created from varpool_remove_variable_insertion_hook
12465         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
12466           created from cgraph_add_edge_duplication_hook
12467         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
12468           created from cgraph_remove_edge_duplication_hook
12469         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
12470           created from cgraph_add_node_duplication_hook
12471         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
12472           created from cgraph_remove_node_duplication_hook
12473         (void call_edge_removal_hooks (cgraph_edge *e)):
12474           created from cgraph_call_edge_removal_hooks
12475         (void call_cgraph_insertion_hooks (cgraph_node *node)):
12476           created from call_function_insertion_hooks
12477         (void call_cgraph_removal_hooks (cgraph_node *node)):
12478           created from cgraph_call_node_removal_hooks
12479         (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
12480           created from cgraph_node::call_duplication_hooks
12481         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
12482           created from cgraph_call_edge_duplication_hooks
12483         (void call_varpool_removal_hooks (varpool_node *node)):
12484           created from varpool_call_node_removal_hooks
12485         (void call_varpool_insertion_hooks (varpool_node *node)):
12486           created from varpool_call_variable_insertion_hooks
12487         (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
12488           created from insert_to_assembler_name_hash
12489         (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
12490           created from unlink_from_assembler_name_hash
12491         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
12492           created from symtab_prevail_in_asm_name_hash
12493         (void symtab_initialize_asm_name_hash (void)):
12494           created from symtab_initialize_asm_name_hash
12495         (void change_decl_assembler_name (tree decl, tree name)):
12496           created from change_decl_assembler_name
12497         (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
12498         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
12499           created from decl_assembler_name_hash
12500         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
12501           created from decl_assembler_name_equal
12502         (static hashval_t hash_node_by_assembler_name (const void *p)):
12503           created from hash_node_by_assembler_name
12504         (static int eq_assembler_name (const void *p1, const void *p2)):
12505           created from eq_assembler_name
12506
12507 2014-08-25  Marek Polacek  <polacek@redhat.com>
12508
12509         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
12510
12511 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
12512
12513         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
12514         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
12515         SWI1248_AVX512BW mode iterator.
12516
12517 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
12518
12519         PR target/62111
12520         * config/sh/predicates.md (general_extend_operand): Disable
12521         TRUNCATE before reload completes.
12522
12523 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
12524
12525         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
12526
12527 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
12528
12529         PR target/61996
12530         * config/sh/sh.opt (musermode): Allow negative form.
12531         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
12532         targets that don't support it.
12533         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
12534         Document -mno-usermode option.
12535
12536 2014-08-24  Kito Cheng  <kito@0xlab.org>
12537
12538         * system.h (CALLER_SAVE_PROFITABLE): Poison.
12539         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
12540         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
12541         * doc/tm.texi: Regenerate.
12542
12543 2014-08-24  Kito Cheng  <kito@0xlab.org>
12544
12545         * ira.c: Fix typo in comment.
12546
12547 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
12548
12549         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
12550         Deprecate c++1y. Change language to reflect greater confidence in C++14.
12551
12552 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
12553
12554         PR target/62038
12555         * config/pa/pa.c (pa_output_function_epilogue): Don't set
12556         last_address when the current function is a thunk.
12557         (pa_asm_output_mi_thunk): When we don't have named sections or they
12558         are not being used, check that thunk can reach the stub table with a
12559         short branch.
12560
12561 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12562
12563         * web.c (union_match_dups): Strengthen param "insn" from rtx to
12564         rtx_insn *.
12565         (pass_web::execute): Likewise for local "insn".
12566
12567 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12568
12569         * var-tracking.c (struct micro_operation_def): Strengthen field
12570         "insn" from rtx to rtx_insn *.
12571         (struct emit_note_data_def): Likewise.
12572         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
12573         (vt_stack_adjustments): Likewise for local "insn".
12574         (adjust_insn): Likewise for param "insn".
12575         (val_store): Likewise.
12576         (val_resolve): Likewise.
12577         (struct count_use_info): Likewise for field "insn".
12578         (log_op_type): Likewise for param "insn".
12579         (reverse_op): Likewise.
12580         (prepare_call_arguments): Likewise.
12581         (add_with_sets):  The initial param takes an insn, but we can't
12582         yet strengthen it from rtx to rtx_insn * since it's used as a
12583         cselib_record_sets_hook callback.  For now rename initial param
12584         from "insn" to "uncast_insn", and introduce a local "insn" of
12585         the stronger rtx_insn * type, with a checked cast.
12586         (compute_bb_dataflow): Strengthen local "insn" from rtx to
12587         rtx_insn *.
12588         (emit_note_insn_var_location): Likewise.
12589         (emit_notes_for_changes): Likewise.
12590         (emit_notes_for_differences): Likewise.
12591         (next_non_note_insn_var_location): Likewise for return type and
12592         for param "insn".
12593         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
12594         (vt_initialize): Likewise for local "insn".
12595         (delete_debug_insns): Likewise for locals "insn" and "next".
12596
12597 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12598
12599         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
12600         rtx_insn *.
12601         (mark_constant_pool): Likewise for local "insn".
12602
12603 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12604
12605         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
12606         rtx to rtx_insn *.
12607         (dead_debug_promote_uses): Likewise.
12608         (dead_debug_insert_temp): Likewise.
12609
12610 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
12611
12612         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
12613         from const_rtx to const rtx_insn *.
12614         (store_killed_after): Likewise.  Strengthen locals "last", "act"
12615         from rtx to rtx_insn *.
12616         (store_killed_before): Strengthen param "insn" from const_rtx to
12617         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
12618         (find_moveable_store): Strengthen param "insn" from rtx to
12619         rtx_insn *.
12620         (compute_store_table): Likewise for local "insn".
12621         (insert_insn_start_basic_block): Likewise for param "insn" and
12622         locals "prev", "before", "insn".
12623         (insert_store): For now, add a checked cast to rtx_insn * on the
12624         result of gen_move_insn.
12625         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
12626         to rtx_insn *.
12627         (replace_store_insn): Likewise.  For now, add a checked cast to
12628         rtx_insn * on the result of gen_move_insn.
12629
12630 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12631
12632         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
12633         rtx_insn *.
12634         (expand_sjlj_dispatch_table): Likewise.
12635
12636 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12637
12638         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
12639         "insn" from rtx to rtx_insn *.
12640
12641 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12642
12643         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
12644         "insn" from rtx to rtx_insn *.
12645         (dup_block_and_redirect): Likewise for param 3 "before".
12646
12647         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
12648         from rtx to rtx_insn *.
12649         (move_insn_for_shrink_wrap): Likewise.
12650         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
12651         (dup_block_and_redirect): Likewise for param "before" and local
12652         "insn".
12653         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
12654         "end".
12655         (convert_to_simple_return): Likewise for local "start".
12656
12657         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
12658         Strengthen local "insn" from rtx to rtx_insn *, for use when
12659         invoking requires_stack_frame_p.
12660
12661 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12662
12663         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
12664         rtx_insn *.
12665         (speculate_expr): Likewise for locals "orig_insn_rtx",
12666         "spec_insn_rtx".
12667         (eq_transformed_insns): Likewise for locals "i1", "i2".
12668         (check_for_new_jump): Likewise for return type and local "end".
12669         (find_new_jump): Likewise for return type and local "jump".
12670         (sel_split_edge): Likewise for local "jump".
12671         (sel_create_recovery_block): Likewise.
12672         (sel_redirect_edge_and_branch_force): Likewise.
12673         (sel_redirect_edge_and_branch): Likewise.
12674
12675 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12676
12677         * sel-sched.c (substitute_reg_in_expr): Strengthen local
12678         "new_insn" from rtx to rtx_insn *.
12679         (create_insn_rtx_with_rhs): Likewise for return type and for local
12680         "insn_rtx".
12681         (create_insn_rtx_with_lhs): Likewise.
12682         (create_speculation_check): Likewise for local "insn_rtx".
12683         (implicit_clobber_conflict_p): Likewise for local "insn".
12684         (get_expr_cost): Likewise.
12685         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
12686         (move_cond_jump): Likewise for locals "next", "prev", "link",
12687         "head", "from", "to".
12688
12689 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12690
12691         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
12692         "next" from rtx to rtx_insn *.
12693         (find_conditional_protection): Likewise for local "next".
12694         (is_conditionally_protected): Likewise for local "insn1".
12695         (is_pfree): Likewise for locals "insn1", "insn2".
12696
12697 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12698
12699         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
12700         from rtx to rtx_insn *.
12701
12702         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
12703         locals "insn1", "insn2" from rtx to rtx_insn *.
12704         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
12705         locals "insn", "prev", "last_jump", "next_tail".
12706         (schedule_ebb): Likewise for params "head", "tail".
12707         (schedule_ebbs): Likewise for locals "tail", "head".
12708
12709         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
12710         to rtx_insn on "last_insn" in one of the invocations of
12711         schedule_ebb.
12712
12713 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12714
12715         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
12716         "elem", "insn" from rtx to rtx_insn *.
12717         (change_spec_dep_to_hard): Likewise.
12718         (get_back_and_forw_lists): Likewise for local "con".
12719         (sd_add_dep): Likewise for locals "elem", "insn".
12720         (sd_resolve_dep): Likewise for locals "pro", "con".
12721         (sd_unresolve_dep): Likewise.
12722         (sd_delete_dep): Likewise.
12723         (chain_to_prev_insn): Likewise for local "pro".
12724         (find_inc): Likewise for locals "pro", "con".
12725
12726 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12727
12728         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
12729         to rtx_insn *.
12730         (reg_set_between_p): Strengthen local "insn" from const_rtx to
12731         const rtx_insn *.
12732         (modified_between_p): Strengthen local "insn" from rtx to
12733         rtx_insn *.
12734         (remove_reg_equal_equiv_notes_for_regno): Likewise.
12735         (keep_with_call_p): Strengthen local "i2" from const_rtx to
12736         const rtx_insn *.
12737
12738 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12739
12740         * resource.c (next_insn_no_annul): Strengthen local "next" from
12741         rtx to rtx_insn *.
12742         (mark_referenced_resources): Likewise for local "insn".
12743
12744 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12745
12746         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
12747         to rtx_insn *.
12748         (find_reloads): Likewise for param 1.
12749         (subst_reloads): Likewise for sole param.
12750         (find_equiv_reg): Likwise for param 2.
12751         (regno_clobbered_p): Likwise for param 2.
12752         (reload): Likewise for param 1.
12753
12754         * caller-save.c (save_call_clobbered_regs): Strengthen local
12755         "insn" from rtx to rtx_insn *.
12756         (insert_one_insn): Likewise for local "insn".
12757
12758         * reload.c (this_insn): Likewise for this global.
12759         (find_reloads): Likewise for param "insn".
12760         (find_reloads_toplev): Likewise.
12761         (find_reloads_address): Likewise.
12762         (subst_reg_equivs): Likewise.
12763         (update_auto_inc_notes): Likewise.
12764         (find_reloads_address_1): Likewise.
12765         (find_reloads_subreg_address): Likewise.
12766         (subst_reloads): Likewise.
12767         (find_equiv_reg): Likewise, also for local "p".
12768         (regno_clobbered_p): Likewise for param "insn".
12769
12770         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
12771         array.
12772         (spill_reg_store): Likewise for the elements of this array.
12773         (remove_init_insns): Likewise for local "equiv_insn".
12774         (will_delete_init_insn_p): Likewise for param "insn".
12775         (reload): Likewise for param ""first" and local "insn".
12776         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
12777         rtx_insn *.
12778         (calculate_elim_costs_all_insns): Likewise.
12779         (delete_caller_save_insns): Likewise.
12780         (spill_failure): Likewise for param "insn".
12781         (delete_dead_insn): Likewise.
12782         (set_label_offsets): Likewise.
12783         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
12784         "prev_insn".
12785         (elimination_costs_in_insn): Likewise for param "insn".
12786         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
12787         when referring to an insn.
12788         (set_initial_label_offsets): Likewise.
12789         (set_offsets_for_label): Strengthen param "insn" from rtx to
12790         rtx_insn *.
12791         (init_eliminable_invariants): Likewise for param "first" and local
12792         "insn".
12793         (fixup_eh_region_note): Likewise for param "insn".
12794         (reload_as_needed): Likewise for locals "prev", "insn",
12795         "old_next", "old_prev", "next".
12796         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
12797         "last".
12798         (reload_inheritance_insn): Strengthen elements of this array from
12799         rtx to rtx_insn *.
12800         (failed_reload): Likewise for param "insn".
12801         (choose_reload_regs): Likewise for local "insn".  Replace use of
12802         NULL_RTX with NULL when referring to an insn.
12803         (input_reload_insns): Strengthen elements of this array from rtx
12804         to rtx_insn *.
12805         (other_input_address_reload_insns): Likewise for this global.
12806         (other_input_reload_insns): Likewise for this global.
12807         (input_address_reload_insns): Likwise for the elements of this
12808         array.
12809         (inpaddr_address_reload_insns): Likwise for the elements of this
12810         array.
12811         (output_reload_insns): Likewise for the elements of this array.
12812         (output_address_reload_insns): Likewise for the elements of this
12813         array.
12814         (outaddr_address_reload_insns): Likewise for the elements of this
12815         array.
12816         (operand_reload_insns): Likewise for this global.
12817         (other_operand_reload_insns): Likewise for this global.
12818         (other_output_reload_insns): Likewise for the elements of this
12819         array.
12820         (new_spill_reg_store): Likewise for the elements of this
12821         array.
12822         (emit_input_reload_insns): Likewise for locals "insn", "temp".
12823         Strengthen local "where" from rtx * to rtx_insn **.
12824         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
12825         from rtx to rtx_insn *.
12826         (do_input_reload): Likewise for local "insn".
12827         (do_output_reload): Likewise for local "insn".
12828         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
12829         (emit_insn_if_valid_for_reload): Likewise for return type and local
12830         "last".  Add checked cast to rtx_insn when returning "insn" since
12831         this has been through emit_insn.
12832         (gen_reload): Strengthen return type and locals "last", "insn", "set"
12833         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
12834         returning "insn" since it's been through
12835         emit_insn_if_valid_for_reload at this point.
12836         (delete_output_reload): Strengthen param "insn" and locals
12837         "output_reload_insn", "i2" from rtx to rtx_insn *.
12838         (delete_address_reloads): Likewise for params "dead_insn",
12839         "current_insn" and locals "prev", "next".
12840         (delete_address_reloads_1): Likewise for params "dead_insn",
12841         "current_insn" and locals "prev", "i2".
12842         (inc_for_reload): Likewise for locals "last", "add_insn".
12843         (add_auto_inc_notes): Strengthen param "insn" from rtx to
12844         rtx_insn *.
12845
12846         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
12847         param of this duplicate of the prototype from reload.h
12848
12849 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12850
12851         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
12852         rtx to rtx_insn *.
12853         (regstat_bb_compute_calls_crossed): Likewise.
12854
12855 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12856
12857         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
12858         to rtx_insn *.
12859         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
12860         with an insn.
12861         (regrename_analyze): Strengthen local "insn" from rtx to
12862         rtx_insn *.
12863         (scan_rtx_reg): Likewise for param "insn".
12864         (scan_rtx_address): Likewise.
12865         (scan_rtx): Likewise.
12866         (restore_operands): Likewise.
12867         (record_out_operands): Likewise.
12868         (build_def_use): Likewise for local "insn".  Replace use of
12869         NULL_RTX with NULL when dealing with an insn.
12870
12871 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12872
12873         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
12874         * reginfo.c (reg_scan): Likewise, also for local "insn".
12875         (reg_scan_mark_refs): Likewise for param "insn".
12876         (init_subregs_of_mode): Likewise for local "insn".
12877
12878 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12879
12880         * regcprop.c (struct queued_debug_insn_change): Strengthen field
12881         "insn" from rtx to rtx_insn *.
12882         (replace_oldest_value_reg): Likewise for param "insn".
12883         (replace_oldest_value_addr): Likewise.
12884         (replace_oldest_value_mem): Likewise.
12885         (apply_debug_insn_changes): Likewise for local "last_insn".
12886         (copyprop_hardreg_forward_1): Likewise for local "insn".
12887
12888 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12889
12890         * reg-stack.c (next_flags_user): Strengthen return type and param
12891         "insn" from rtx to rtx_insn *.
12892         (straighten_stack): Likewise for param "insn".
12893         (check_asm_stack_operands): Likewise.
12894         (remove_regno_note): Likewise.
12895         (emit_pop_insn): Likewise for return type, param "insn", local
12896         "pop_insn".
12897         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
12898         "limit" from rtx to rtx_insn *.
12899         (swap_to_top): Likewise for param "insn".
12900         (move_for_stack_reg): Likewise.
12901         (move_nan_for_stack_reg): Likewise.
12902         (swap_rtx_condition): Likewise.
12903         (compare_for_stack_reg): Likewise.
12904         (subst_all_stack_regs_in_debug_insn): Likewise.
12905         (subst_stack_regs_pat): Likewise, and local "insn2".
12906         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
12907         rtx_insn *.
12908         (subst_stack_regs): Likewise.
12909         (change_stack): Likewise.
12910         (convert_regs_1): Likewise for locals "insn", "next".
12911
12912 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12913
12914         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
12915         rtx_insn *.
12916         (combine_set_extension): Likewise for param "curr_insn".
12917         (transform_ifelse): Likewise for param "def_insn".
12918         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
12919         from vec<rtx> * to vec<rtx_insn *> *.
12920         (is_cond_copy_insn): Likewise for param "insn".
12921         (struct ext_state): Strengthen the four vec fields from vec<rtx>
12922         to vec<rtx_insn *>.
12923         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
12924         local "def_insn" from rtx to rtx_insn *.
12925         (get_sub_rtx): Likewise for param "def_insn".
12926         (merge_def_and_ext): Likewise.
12927         (combine_reaching_defs): Likewise.
12928         (add_removable_extension): Likewise for param "insn".
12929         (find_removable_extensions): Likewise for local "insn".
12930         (find_and_remove_re): Likewise for locals "curr_insn" and
12931         "def_insn".  Strengthen locals "reinsn_del_list" and
12932         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
12933
12934 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12935
12936         * recog.c (split_insn): Strengthen param "insn" and locals
12937         "first", "last" from rtx to rtx_insn *.
12938         (split_all_insns): Likewise for locals "insn", "next".
12939         (split_all_insns_noflow): Likewise.
12940
12941 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12942
12943         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
12944         const rtx_insn *.
12945         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
12946         (debug_rtx_find): Likewise for param 1 "x".
12947
12948         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
12949         const_rtx to const rtx_insn *.  Likewise for local "insn".
12950         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
12951         (debug_rtx_find): Likewise for param 1 "x".
12952         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
12953         from const_rtx to const rtx_insn * within the appropriate cases of
12954         the switch statement.
12955
12956         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
12957         Strengthen local "insns" from rtx to rtx_insn * since this is
12958         passed to a call to debug_rtx_list.
12959
12960 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12961
12962         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
12963         to rtx_insn *.
12964
12965         * function.c (stack_protect_epilogue): Add checked cast to
12966         rtx_insn for now when invoking predict_insn_def.
12967
12968         * predict.c (predict_insn): Strengthen param "insn" from rtx to
12969         rtx_insn *.
12970         (predict_insn_def): Likewise.
12971         (rtl_predict_edge): Likewise for local "last_insn".
12972         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
12973         const rtx_insn *.
12974         (combine_predictions_for_insn): Strengthen param "insn" from rtx
12975         to rtx_insn *.
12976         (bb_estimate_probability_locally): Likewise for local "last_insn".
12977         (expensive_function_p): Likewise for local "insn".
12978
12979         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
12980         local "jmp", since this is used when invoking predict_insn_def.
12981
12982 2014-08-22  Marek Polacek  <polacek@redhat.com>
12983
12984         PR c++/62199
12985         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
12986
12987 2014-08-22  Marek Polacek  <polacek@redhat.com>
12988
12989         PR c/61271
12990         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
12991         a comparison in parens.
12992         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
12993         in parens.
12994
12995 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
12996
12997         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
12998         rtx_insn *.
12999
13000         * cprop.c (fis_get_condition): Likewise.
13001
13002         * postreload.c (reload_cse_regs): Likewise for param "first".
13003         (reload_cse_simplify): Likewise for param "insn".
13004         (reload_cse_regs_1): Likewise for local "insn".
13005         (reload_cse_simplify_set): Likewise for param "insn".
13006         (reload_cse_simplify_operands): Likewise.
13007         (struct reg_use): Likewise for field "insn".
13008         (reload_combine_purge_insn_uses): Likewise for param "insn".
13009         (fixup_debug_insns): Likewise for params "from", "to" and local
13010         "insn".
13011         (try_replace_in_use): Likewise for local "use_insn".
13012         (reload_combine_recognize_const_pattern): Likewise for param
13013         "insn" and locals "add_moved_after_insn", "use_insn".
13014         (reload_combine_recognize_pattern): Likewise for param "insn" and
13015         local "prev".
13016         (reload_combine): Likewise for locals "insn", "prev".
13017         (reload_combine_note_use): Likewise for param "insn".
13018         (move2add_use_add2_insn): Likewise.
13019         (move2add_use_add3_insn): Likewise.
13020         (reload_cse_move2add): Likewise, also for local "next".
13021         (move2add_note_store): Likewise for local "insn".
13022
13023 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13024
13025         * postreload-gcse.c (struct occr): Strengthen field "insn" from
13026         rtx to rtx_insn *.
13027         (struct unoccr): Likewise.
13028         (struct modifies_mem): Likewise.
13029         (alloc_mem): Likewise for local "insn".
13030         (insert_expr_in_table): Likewise for param "insn".
13031         (dump_expr_hash_table_entry): Likewise for local "insn".
13032         (oprs_unchanged_p): Likewise for param "insn".
13033         (load_killed_in_block_p): Likewise for local "setter".
13034         (record_last_reg_set_info): Likewise for param "insn".
13035         (record_last_reg_set_info_regno): Likewise.
13036         (record_last_mem_set_info): Likewise.
13037         (record_last_set_info): Likewise for local "last_set_insn".
13038         (record_opr_changes): Likewise for param "insn".
13039         (hash_scan_set): Likewise.
13040         (compute_hash_table): Likewise for local "insn".
13041         (get_avail_load_store_reg): Likewise for param "insn".
13042         (eliminate_partially_redundant_load): Likewise, also for locals
13043         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
13044         RTX for insns.
13045         (eliminate_partially_redundant_loads): Likewise for local "insn".
13046
13047 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13048
13049         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
13050         rtx to rtx_insn *.
13051         (expand_binop): Likewise for locals "entry_last", "last", "insns"
13052         (expand_twoval_unop): Likewise for locals entry_last", "last".
13053         (expand_twoval_binop): Likewise.
13054         (expand_twoval_binop_libfunc): Likewise for local "insns".
13055         (widen_leading): Likewise for local "last".
13056         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
13057         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
13058         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
13059         (expand_parity): Likewise for locals "last" and "seq".
13060         (expand_ffs): Likewise for local "seq".  Strengthen local
13061         "nonzero_label" from rtx to rtx_code_label *.
13062         (expand_absneg_bit): Strengthen local "insns" from rtx to
13063         rtx_insn *.
13064         (expand_unop_direct): Likewise for local "last".
13065         (expand_unop): Likewise for locals "last", "insns".
13066         (expand_abs_nojump): Likewise for local "last".
13067         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
13068         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
13069         rtx_insn *.
13070         (expand_copysign_absneg): Strengthen local "label" from rtx to
13071         rtx_code_label *.
13072         (expand_copysign_bit): Strengthen local "insns" from rtx to
13073         rtx_insn *.
13074         (struct no_conflict_data): Likewise for fields "first", "insn".
13075         (emit_libcall_block_1): Likewise for param "insns" and locals
13076         "next", "last", "insn".
13077         (emit_libcall_block): For now, add a checked cast to rtx_insn *
13078         on "insns" when invoking emit_libcall_block_1.  Ultimately we
13079         want to strengthen insns itself.
13080         (prepare_cmp_insn): Strengthen local "last" from rtx to
13081         rtx_insn *.
13082         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
13083         (prepare_float_lib_cmp): Likewise for local "insns".
13084         (emit_conditional_move): Likewise for local "last".
13085         (emit_conditional_add): Likewise.
13086         (have_sub2_insn): Likewise for local "seq".
13087         (expand_float): Likewise for local "insns".  Strengthen locals
13088         "label", "neglabel" from rtx to rtx_code_label *.
13089         (expand_fix): Likewise for locals "last", "insn", "insns" (to
13090         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
13091         (expand_fixed_convert): Likewise for local "insns" (to
13092         rtx_insn *).
13093         (expand_sfix_optab): Likewise for local "last".
13094         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
13095         to rtx_code_label *.
13096         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
13097         from rtx to rtx_insn *.
13098         (expand_atomic_fetch_op): Likewise for local "insn".
13099         (maybe_legitimize_operand_same_code): Likewise for local "last".
13100         (maybe_legitimize_operands): Likewise.
13101
13102 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13103
13104         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
13105         "insn" from rtx to rtx_insn *.
13106         (ps_rtl_insn): Likewise for return type.
13107         (doloop_register_get): Likewise for params "head", "tail" and
13108         locals "insn", "first_insn_not_to_check".
13109         (schedule_reg_move): Likewise for local "this_insn".
13110         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
13111         of gen_move_insn for now.
13112         (reset_sched_times): Strengthen local "insn" from rtx to
13113         rtx_insn *.
13114         (permute_partial_schedule): Likewise.
13115         (duplicate_insns_of_cycles): Likewise for local "u_insn".
13116         (dump_insn_location): Likewise for param "insn".
13117         (loop_canon_p): Likewise for local "insn".
13118         (sms_schedule): Likewise.
13119         (print_partial_schedule): Likewise.
13120         (ps_has_conflicts): Likewise.
13121
13122 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13123
13124         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
13125         "tailp" from rtx * to rtx_insn **.
13126
13127         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
13128         from rtx to rtx_insn *.
13129         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
13130         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
13131         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
13132         rtx to rtx_insn *.
13133         * modulo-sched.c (const_iteration_count): Strengthen return type
13134         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
13135         use of NULL_RTX with NULL when working with insns.
13136         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
13137         to rtx_insn *.
13138         (sms_schedule): Likewise.
13139         * sched-rgn.c (init_ready_list): Likewise, also for locals
13140         "src_head" and "src_next_tail".
13141         (compute_block_dependences): Likewise.
13142         (free_block_dependencies): Likewise.
13143         (debug_rgn_dependencies): Likewise.
13144         (free_rgn_deps): Likewise.
13145         (compute_priorities): Likewise.
13146         (schedule_region): Likewise.
13147         * sel-sched.c (find_ebb_boundaries): Likewise.
13148
13149         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
13150         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
13151
13152 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13153
13154         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
13155         from rtx to rtx_insn *.
13156         (new_seginfo): Likewise for param "insn".
13157         (create_pre_exit): Likewise for locals "last_insn",
13158         "before_return_copy", "return_copy".
13159         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
13160         "mode_set".
13161
13162 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13163
13164         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
13165         from rtx to rtx_insn *.
13166         (lra_push_insn): Likewise for 1st param.
13167         (lra_push_insn_and_update_insn_regno_info): Likewise.
13168         (lra_pop_insn): Likewise for return type.
13169         (lra_invalidate_insn_data): Likewise for 1st param.
13170         (lra_set_insn_deleted): Likewise.
13171         (lra_delete_dead_insn): Likewise.
13172         (lra_process_new_insns): Likewise for first 3 params.
13173         (lra_set_insn_recog_data): Likewise for 1st param.
13174         (lra_update_insn_recog_data): Likewise.
13175         (lra_set_used_insn_alternative): Likewise.
13176         (lra_invalidate_insn_regno_info): Likewise.
13177         (lra_update_insn_regno_info): Likewise.
13178         (lra_former_scratch_operand_p): Likewise.
13179         (lra_eliminate_regs_1): Likewise.
13180         (lra_get_insn_recog_data): Likewise.
13181
13182         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
13183         rtx to rtx_insn *.
13184
13185         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
13186         "mv1" and "mv2".
13187         (substitute_within_insn): New.
13188         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
13189         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
13190         Replace call to "substitute" with call to substitute_within_insn.
13191
13192         * lra-constraints.c (curr_insn): Strengthen from rtx to
13193         rtx_insn *.
13194         (get_equiv_with_elimination): Likewise for param "insn".
13195         (match_reload): Strengthen params "before" and "after" from rtx *
13196         to rtx_insn **.
13197         (emit_spill_move): Likewise for return type.  Add a checked cast
13198         to rtx_insn * on result of gen_move_insn for now.
13199         (check_and_process_move): Likewise for local "before".  Replace
13200         NULL_RTX with NULL when referring to insns.
13201         (process_addr_reg): Strengthen params "before" and "after" from
13202         rtx * to rtx_insn **.
13203         (insert_move_for_subreg): Likewise.
13204         (simplify_operand_subreg): Strengthen locals "before" and "after"
13205         from rtx to rtx_insn *.
13206         (process_address_1): Strengthen params "before" and "after" from
13207         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
13208         rtx to rtx_insn *.
13209         (process_address): Strengthen params "before" and "after" from
13210         rtx * to rtx_insn **.
13211         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
13212         (curr_insn_transform): Strengthen locals "before" and "after"
13213         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
13214         to insns.
13215         (loc_equivalence_callback): Update cast of "data", changing
13216         resulting type from rtx to rtx_insn *.
13217         (substitute_pseudo_within_insn): New.
13218         (inherit_reload_reg): Strengthen param "insn" from rtx to
13219         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
13220         NULL when referring to insns.  Add a checked cast to rtx_insn *
13221         when using usage_insn to invoke lra_update_insn_regno_info.
13222         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
13223         likewise for locals "restore", "save".  Add checked casts to
13224         rtx_insn * when using usage_insn to invoke
13225         lra_update_insn_regno_info and lra_process_new_insns.  Replace
13226         NULL_RTX with NULL when referring to insns.
13227         (split_if_necessary): Strengthen param "insn" from rtx to
13228         rtx_insn *.
13229         (update_ebb_live_info): Likewise for params "head", "tail" and local
13230         "prev_insn".
13231         (get_last_insertion_point): Likewise for return type and local "insn".
13232         (get_live_on_other_edges): Likewise for local "last".
13233         (inherit_in_ebb): Likewise for params "head", "tail" and locals
13234         "prev_insn", "next_insn", "restore".
13235         (remove_inheritance_pseudos): Likewise for local "prev_insn".
13236         (undo_optional_reloads): Likewise for local "insn".
13237
13238         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
13239         "insn".
13240         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
13241         insns.
13242         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
13243         rtx_insn *.
13244         (spill_pseudos): Likewise for local "insn".
13245         (init_elimination): Likewise.
13246         (process_insn_for_elimination): Likewise for param "insn".
13247
13248         * lra-lives.c (curr_insn): Likewise.;
13249
13250         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
13251         (remove_pseudos): Likewise for param "insn".
13252         (spill_pseudos): Likewise for local "insn".
13253         (lra_final_code_change): Likewise for locals "insn", "curr".
13254
13255         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
13256         (lra_set_insn_deleted): Likewise.
13257         (lra_delete_dead_insn): Likewise, and for local "prev".
13258         (new_insn_reg): Likewise for param "insn".
13259         (lra_set_insn_recog_data): Likewise.
13260         (lra_update_insn_recog_data): Likewise.
13261         (lra_set_used_insn_alternative): Likewise.
13262         (get_insn_freq): Likewise.
13263         (invalidate_insn_data_regno_info): Likewise.
13264         (lra_invalidate_insn_regno_info): Likewise.
13265         (lra_update_insn_regno_info): Likewise.
13266         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
13267         vec<rtx_insn *>.
13268         (lra_push_insn_1): Strengthen param "insn" from rtx to
13269         rtx_insn *.
13270         (lra_push_insn): Likewise.
13271         (lra_push_insn_and_update_insn_regno_info): Likewise.
13272         (lra_pop_insn): Likewise for return type and local "insn".
13273         (push_insns): Likewise for params "from", "to", and local "insn".
13274         (setup_sp_offset): Likewise for params "from", "last" and locals
13275         "before", "insn".
13276         (lra_process_new_insns): Likewise for params "insn", "before",
13277         "after" and local "last".
13278         (struct sloc): Likewise for field "insn".
13279         (lra_former_scratch_operand_p): Likewise for param "insn".
13280         (remove_scratches): Likewise for locals "insn", "last".
13281         (check_rtl): Likewise for local "insn".
13282         (add_auto_inc_notes): Likewise for param "insn".
13283         (update_inc_notes): Likewise for local "insn".
13284         (lra): Replace NULL_RTX with NULL when referring to insn.
13285
13286 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13287
13288         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
13289         to rtx_insn *.
13290         (resolve_reg_notes): Likewise.
13291         (resolve_simple_move): Likewise for return type, param "insn", and
13292         locals "insns", "minsn".
13293         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
13294         (resolve_use): Likewise.
13295         (resolve_debug): Likewise.
13296         (find_decomposable_shift_zext): Likewise.
13297         (resolve_shift_zext): Likewise for return type, param "insn", and
13298         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
13299         (decompose_multiword_subregs): Likewise for local "insn",
13300         "orig_insn", "decomposed_shift", "end".
13301
13302 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13303
13304         * basic-block.h (basic_block split_edge_and_insert): Strengthen
13305         param "insns" from rtx to rtx_insn *.
13306
13307         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
13308         rtx to rtx_insn *.
13309         (struct iv_to_split): Likewise.
13310         (loop_exit_at_end_p): Likewise for local "insn".
13311         (split_edge_and_insert): Likewise for param "insns".
13312         (compare_and_jump_seq): Likewise for return type, param "cinsn",
13313         and locals "seq", "jump".
13314         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
13315         "branch_code"; update invocations of compare_and_jump_seq to
13316         eliminate NULL_RTX in favor of NULL.
13317         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
13318         rtx to rtx_insn *.
13319         (reset_debug_uses_in_loop): Likewise.
13320         (analyze_insn_to_expand_var): Likewise for param "insn".
13321         (analyze_iv_to_split_insn): Likewise.
13322         (analyze_insns_in_loop): Likewise for local "insn".
13323         (insert_base_initialization): Likewise for param
13324         "insn" and local "seq".
13325         (split_iv): Likewise for param "insn" and local "seq".
13326         (expand_var_during_unrolling): Likewise for param "insn".
13327         (insert_var_expansion_initialization): Likewise for local "seq".
13328         (combine_var_copies_in_loop_exit): Likewise.
13329         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
13330         "insn".
13331         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
13332         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
13333         "next".
13334
13335 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13336
13337         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
13338         rtx_insn *.
13339         (iv_analyze_result): Likewise.
13340         (iv_analyze_expr): Likewise.
13341         (biv_p): Likewise.
13342
13343         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
13344         local "def_insn" from rtx to rtx_insn *.
13345         (get_biv_step_1): Likewise for local "insn".
13346         (iv_analyze_expr): Likewise for param "insn".
13347         (iv_analyze_def): Likewise for local "insn".
13348         (iv_analyze_op): Likewise for param "insn".
13349         (iv_analyze): Likewise.
13350         (iv_analyze_result): Likewise.
13351         (biv_p): Likewise.
13352         (suitable_set_for_replacement): Likewise.
13353         (simplify_using_initial_values): Likewise for local "insn".
13354         (iv_number_of_iterations): Likewise for param "insn".
13355         (check_simple_exit): Add checked cast to rtx_insn when invoking
13356         iv_number_of_iterations for now (until get_condition is
13357         strengthened).
13358
13359         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
13360         "insn" from rtx to rtx_insn *.
13361         (analyze_insns_in_loop): Likewise for local "insn".
13362
13363 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13364
13365         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
13366         to rtx_insn *.
13367         (struct invariant): Likewise.
13368         (hash_invariant_expr_1): Likewise for param "insn".
13369         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
13370         (find_exits): Likewise for local "insn".
13371         (create_new_invariant): Likewise for param "insn".
13372         (check_dependencies): Likewise.
13373         (find_invariant_insn): Likewise.
13374         (record_uses): Likewise.
13375         (find_invariants_insn): Likewise.
13376         (find_invariants_bb): Likewise for local "insn".
13377         (get_pressure_class_and_nregs): Likewise for param "insn".
13378         (calculate_loop_reg_pressure): Likewise for local "insn".
13379
13380 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13381
13382         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
13383         to rtx_insn *.
13384         (add_test): Likewise for locals "seq", "jump".
13385         (doloop_modify): Likewise for locals "sequence", "jump_insn".
13386
13387 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13388
13389         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
13390         rtx_insn *.
13391         (rebuild_jump_labels_chain): Likewise for param "chain".
13392
13393         * cfgexpand.c (pass_expand::execute): Add checked cast to
13394         rtx_insn * when calling rebuild_jump_labels_chain in region where
13395         we know e->insns.r is non-NULL.
13396
13397         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
13398         rtx_insn *.
13399         (rebuild_jump_labels): Likewise.
13400         (rebuild_jump_labels_chain): Likewise for param "chain".
13401         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
13402         (init_label_info): Likewise for param "f".
13403         (maybe_propagate_label_ref): Likewise for params "jump_insn",
13404         "prev_nonjump_insn".
13405         (mark_all_labels): Likewise for param "f" and locals "insn",
13406         "prev_nonjump_insn".
13407
13408 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13409
13410         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
13411         from rtx to rtx_insn *insn.
13412         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
13413         (ira_add_allocno_copy): Likewise.
13414         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
13415         rtx to rtx_insn *.
13416         (ira_create_copy): Likewise.
13417         (ira_add_allocno_copy): Likewise.
13418         (create_bb_allocnos): Likewise for local "insn".
13419         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
13420         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
13421         process_regs_for_copy for rtx_insn * param.
13422         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
13423         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
13424         process_regs_for_copy for rtx_insn * param.
13425         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
13426         * ira-costs.c (record_reg_classes): Likewise for param "insn".
13427         (record_operand_costs): Likewise.
13428         (scan_one_insn): Likewise for return type, and for param "insn".
13429         (process_bb_for_costs): Likewise for local "insn".
13430         (process_bb_node_for_hard_reg_moves): Likewise.
13431         * ira-emit.c (struct move): Likewise for field "insn".
13432         (create_move): Eliminate use of NULL_RTX when dealing with an
13433         rtx_insn *.
13434         (emit_move_list): Strengthen return type and locals "result",
13435         "insn" from rtx to rtx_insn *insn.
13436         (emit_moves): Likewise for locals "insns", "tmp".
13437         (ira_emit): Likewise for local "insn".
13438         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
13439         "insn".
13440         (find_call_crossed_cheap_reg): Likewise.
13441         (process_bb_node_lives): Likewise for local "insn".
13442         * ira.c (decrease_live_ranges_number): Likewise.
13443         (compute_regs_asm_clobbered): Likewise.
13444         (build_insn_chain): Likewise.
13445         (find_moveable_pseudos): Likewise, also locals "def_insn",
13446         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
13447         to rtx_insn **.  Add a checked cast when assigning from
13448         "closest_use" into closest_uses array in a region where we know
13449         it's a non-NULL insn.
13450         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
13451         to rtx_insn *.
13452         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
13453         "last_interesting_insn", "uin".
13454         (move_unallocated_pseudos): Likewise for locals "def_insn",
13455         "move_insn", "newinsn".
13456
13457 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13458
13459         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
13460         Strengthen locals "done_label", "do_error" from rtx to
13461         rtx_code_label *.
13462         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
13463         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
13464         rtx_code_label *.
13465         (ubsan_expand_si_overflow_neg_check): Likewise for locals
13466         "done_label", "do_error" to rtx_code_label * and local  "last" to
13467         rtx_insn *.
13468         (ubsan_expand_si_overflow_mul_check): Likewise for locals
13469         "done_label", "do_error", "large_op0", "small_op0_large_op1",
13470         "one_small_one_large", "both_ops_large", "after_hipart_neg",
13471         "after_lopart_neg", "do_overflow", "hipart_different"  to
13472         rtx_code_label * and local  "last" to rtx_insn *.
13473
13474 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13475
13476         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
13477         "insn" and "move_insn" from rtx to rtx_insn *.
13478
13479 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13480
13481         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
13482         rtx_insn *.
13483         (cheap_bb_rtx_cost_p): Likewise.
13484         (first_active_insn): Likewise for return type and local "insn".
13485         (last_active_insn):  Likewise for return type and locals "insn",
13486         "head".
13487         (struct noce_if_info): Likewise for fields "jump", "insn_a",
13488         "insn_b".
13489         (end_ifcvt_sequence): Likewise for return type and locals "insn",
13490         "seq".
13491         (noce_try_move): Likewise for local "seq".
13492         (noce_try_store_flag): Likewise.
13493         (noce_try_store_flag_constants): Likewise.
13494         (noce_try_addcc): Likewise.
13495         (noce_try_store_flag_mask): Likewise.
13496         (noce_try_cmove): Likewise.
13497         (noce_try_minmax): Likewise.
13498         (noce_try_abs): Likewise.
13499         (noce_try_sign_mask): Likewise.
13500         (noce_try_bitop): Likewise.
13501         (noce_can_store_speculate_p): Likewise for local "insn".
13502         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
13503         seq".
13504         (check_cond_move_block): Likewise for local "insn".
13505         (cond_move_convert_if_block): Likewise.
13506         (cond_move_process_if_block): Likewise for locals "seq",
13507         "loc_insn".
13508         (noce_find_if_block): Likewise for local "jump".
13509         (merge_if_block): Likewise for local "last".
13510         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
13511         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
13512         (block_has_only_trap): Likewise for return type and local "trap".
13513         (find_if_case_1): Likewise for local "jump".
13514         (dead_or_predicable): Likewise for locals "head", "end", "jump",
13515         "insn".
13516
13517 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13518
13519         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
13520         "last_insn", "loop_end" from rtx to rtx_insn *.
13521
13522         * hw-doloop.c (scan_loop): Likewise for local "insn".
13523         (discover_loop): Likewise for param "tail_insn".
13524         (discover_loops): Likewise for local "tail".
13525
13526         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
13527         cast to rtx_insn * when assigning from an rtx local to a
13528         hwloop_info's "last_insn" field.
13529
13530 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13531
13532         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
13533         (add_delay_dependencies): Strengthen local "pro" from rtx to
13534         rtx_insn *.
13535         (recompute_todo_spec): Likewise.
13536         (dep_cost_1): Likewise for locals "insn", "used".
13537         (schedule_insn): Likewise for local "dbg".
13538         (schedule_insn): Likewise for locals "pro", "next".
13539         (unschedule_insns_until): Likewise for local "con".
13540         (restore_pattern): Likewise for local "next".
13541         (estimate_insn_tick): Likewise for local "pro".
13542         (resolve_dependencies): Likewise for local "next".
13543         (fix_inter_tick): Likewise.
13544         (fix_tick_ready): Likewise for local "pro".
13545         (add_to_speculative_block): Likewise for locals "check", "twin",
13546         "pro".
13547         (sched_extend_bb): Likewise for locals "end", "insn".
13548         (init_before_recovery): Likewise for local "x".
13549         (sched_create_recovery_block): Likewise for local "barrier".
13550         (create_check_block_twin): Likewise for local "pro".
13551         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
13552         "consumer".
13553         (unlink_bb_notes): Update for change to type of bb_header.
13554         Strengthen locals "prev", "label", "note", "next" from rtx to
13555         rtx_insn *.
13556         (clear_priorities): Likewise for local "pro".
13557
13558 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13559
13560         * gcse.c (struct occr): Strengthen field "insn" from rtx to
13561         rtx_insn *.
13562         (test_insn): Likewise for this global.
13563         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
13564         const rtx_insn *.
13565         (oprs_anticipatable_p): Likewise.
13566         (oprs_available_p): Likewise.
13567         (insert_expr_in_table): Strengthen param "insn" from  rtx to
13568         rtx_insn *.
13569         (hash_scan_set): Likewise.
13570         (hash_scan_clobber): Likewise.
13571         (hash_scan_call): Likewise.
13572         (hash_scan_insn): Likewise.
13573         (compute_hash_table_work): Likewise for local "insn".
13574         (process_insert_insn): Likewise for return type and local "pat".
13575         (insert_insn_end_basic_block): Likewise for locals "new_insn",
13576         "pat", "pat_end", "maybe_cc0_setter".
13577         (pre_edge_insert): Likewise for local "insn".
13578         (pre_insert_copy_insn): Likewise for param "insn".
13579         (pre_insert_copies): Likewise for local "insn".
13580         (struct set_data): Likewise for field "insn".
13581         (single_set_gcse): Likewise for param "insn".
13582         (gcse_emit_move_after): Likewise.
13583         (pre_delete): Likewise for local "insn".
13584         (update_bb_reg_pressure): Likewise for param "from" and local
13585         "insn".
13586         (should_hoist_expr_to_dom): Likewise for param "from".
13587         (hoist_code): Likewise for local "insn".
13588         (get_pressure_class_and_nregs): Likewise for param "insn".
13589         (calculate_bb_reg_pressure): Likewise for local "insn".
13590         (compute_ld_motion_mems): Likewise.
13591
13592 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13593
13594         * genpeep.c (main): Rename param back from "uncast_ins1" to
13595         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
13596         checked cast.
13597
13598         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
13599
13600 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
13601
13602         PR target/62195
13603         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
13604         documentation to state it is only for VSX operations.
13605
13606         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
13607         constraint only active if VSX.
13608
13609         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
13610         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
13611         (lfiwzx): Likewise.
13612
13613 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13614
13615         * fwprop.c (single_def_use_dom_walker::before_dom_children):
13616         Strengthen local "insn" from rtx to rtx_insn *.
13617         (use_killed_between): Likewise for param "target_insn".
13618         (all_uses_available_at): Likewise for param "target_insn" and
13619         local "next".
13620         (update_df_init): Likewise for params "def_insn", "insn".
13621         (update_df): Likewise for param "insn".
13622         (try_fwprop_subst): Likewise for param "def_insn" and local
13623         "insn".
13624         (free_load_extend): Likewise for param "insn".
13625         (forward_propagate_subreg): Likewise for param "def_insn" and
13626         local "use_insn".
13627         (forward_propagate_asm): Likewise for param "def_insn" and local
13628         "use_insn".
13629         (forward_propagate_and_simplify): Likewise for param "def_insn"
13630         and local "use_insn".
13631         (forward_propagate_into): Likewise for locals "def_insn" and
13632         "use_insn".
13633
13634 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13635
13636         * function.c (emit_initial_value_sets): Strengthen local "seq"
13637         from rtx to rtx_insn *.
13638         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
13639         local "seq".
13640         (instantiate_virtual_regs): Likewise for local "insn".
13641         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
13642         (reorder_blocks_1): Likewise for param "insns" and local "insn".
13643         (expand_function_end): Likewise for locals "insn" and "seq".
13644         (epilogue_done): Likewise for local "insn".
13645         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
13646         "last", "trial".
13647         (reposition_prologue_and_epilogue_notes): Likewise for locals
13648         "insn", "last", "note", "first".
13649         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
13650         (pass_match_asm_constraints::execute): Likewise for local "insn".
13651
13652 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13653
13654         * output.h (final_scan_insn): Strengthen return type from rtx to
13655         rtx_insn *.
13656         (final_forward_branch_p): Likewise for param.
13657         (current_output_insn): Likewise for this global.
13658
13659         * final.c (rtx debug_insn): Likewise for this variable.
13660         (current_output_insn): Likewise.
13661         (get_attr_length_1): Rename param "insn" to "uncast_insn",
13662         adding "insn" back in as an rtx_insn * with a checked cast, so
13663         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
13664         first param.
13665         (compute_alignments): Strengthen local "label" from rtx to
13666         rtx_insn *.
13667         (shorten_branches): Rename param from "first" to "uncast_first",
13668         introducing a new local rtx_insn * "first" using a checked cast to
13669         effectively strengthen "first" from rtx to rtx_insn * without
13670         affecting the type signature.  Strengthen locals "insn", "seq",
13671         "next", "label" from rtx to rtx_insn *.
13672         (change_scope): Strengthen param "orig_insn" and local "insn" from
13673         rtx to rtx_insn *.
13674         (final_start_function): Rename param from "first" to "uncast_first",
13675         introducing a new local rtx_insn * "first" using a checked cast to
13676         effectively strengthen "first" from rtx to rtx_insn * without
13677         affecting the type signature.  Strengthen local "insn" from rtx to
13678         rtx_insn *.
13679         (dump_basic_block_info): Strengthen param "insn" from rtx to
13680         rtx_insn *.
13681         (final): Rename param from "first" to "uncast_first",
13682         introducing a new local rtx_insn * "first" using a checked cast to
13683         effectively strengthen "first" from rtx to rtx_insn * without
13684         affecting the type signature.  Strengthen locals "insn", "next"
13685         from rtx to rtx_insn *.
13686         (output_alternate_entry_point): Strengthen param "insn" from rtx to
13687         rtx_insn *.
13688         (call_from_call_insn): Strengthen param "insn" from rtx to
13689         rtx_call_insn *.
13690         (final_scan_insn): Rename param from "insn" to "uncast_insn",
13691         introducing a new local rtx_insn * "insn" using a checked cast to
13692         effectively strengthen "insn" from rtx to rtx_insn * without
13693         affecting the type signature.  Strengthen return type and locals
13694         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
13695         now-redundant checked cast to rtx_insn * from both invocations of
13696         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
13697         introducing a local "call_insn" for use when invoking
13698         call_from_call_insn.
13699         (notice_source_line): Strengthen param "insn" from rtx to
13700         rtx_insn *.
13701         (leaf_function_p): Likewise for local "insn".
13702         (final_forward_branch_p): Likewise.
13703         (leaf_renumber_regs): Likewise for param "first".
13704         (rest_of_clean_state): Likewise for locals "insn" and "next".
13705         (self_recursive_call_p): Likewise for param "insn".
13706         (collect_fn_hard_reg_usage): Likewise for local "insn".
13707         (get_call_fndecl): Likewise for param "insn".
13708         (get_call_cgraph_rtl_info): Likewise.
13709         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
13710         introducing a new local rtx_insn * "insn" using a checked cast to
13711         effectively strengthen "insn" from rtx to rtx_insn * without
13712         affecting the type signature.
13713
13714         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
13715         cast when assigning from param "insn" to current_output_insn.
13716         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
13717         so that we can assign it back to current_output_insn.
13718
13719 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
13720
13721         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
13722         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
13723         atmxt540s and atmxt540sreva devices.
13724         * config/avr/avr-tables.opt: Regenerate.
13725         * config/avr/t-multilib: Regenerate.
13726         * doc/avr-mmcu.texi: Regenerate.
13727
13728 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13729
13730         * expr.c (convert_move): Strengthen local "insns" from rtx to
13731         rtx_insn *.
13732         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
13733         "top_label" from rtx to rtx_code_label *.
13734         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
13735         rtx_insn *.
13736         (emit_single_push_insn): Likewise for locals "prev", "last".
13737         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
13738         to rtx_code_label *.
13739         (store_constructor): Likewise for locals "loop_start", "loop_end".
13740         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
13741         rtx_insn *.
13742         (expand_expr_real_2): Likewise.
13743         (expand_expr_real_1): Strengthen local "label" from rtx to
13744         rtx_code_label *.
13745
13746 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13747
13748         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
13749         from rtx to rtx_insn *.
13750         (store_bit_field_1): Likewise.
13751         (extract_bit_field_1): Likewise.
13752         (expand_mult_const): Likewise for local "insns".
13753         (expmed_mult_highpart): Strengthen local "label" from rtx to
13754         rtx_code_label *.
13755         (expand_smod_pow2): Likewise.
13756         (expand_sdiv_pow2): Likewise.
13757         (expand_divmod): Strengthen locals "last", "insn" from rtx to
13758         rtx_insn *.  Strengthen locals "label", "label1", "label2",
13759         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
13760         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
13761         (emit_store_flag): Likewise.
13762         (emit_store_flag_force): Strengthen local "label" from rtx to
13763         rtx_code_label *.
13764         (do_cmp_and_jump): Likewise for param "label".
13765
13766 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13767
13768         * explow.c (force_reg): Strengthen local "insn" from rtx to
13769         rtx_insn *.
13770         (adjust_stack_1): Likewise.
13771         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
13772         "final_label", "available_label", "space_available" from rtx to
13773         rtx_code_label *.
13774         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
13775         (anti_adjust_stack_and_probe): Likewise.
13776
13777 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13778
13779         * except.h (sjlj_emit_function_exit_after): Strengthen param
13780         "after" from rtx to rtx_insn *.  This is only called with
13781         result of get_last_insn (in function.c) so type-change should be
13782         self-contained.
13783
13784         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
13785         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
13786         to rtx_insn *.  These fields are only used from except.c so this
13787         type-change should be self-contained to this patch.
13788
13789         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
13790         local "last" from rtx to rtx_insn *.
13791         (dw2_build_landing_pads): Likewise for local "seq".
13792         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
13793         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
13794         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
13795         rtx to rtx_insn *.
13796         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
13797         to rtx_insn *.
13798         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
13799         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
13800         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
13801         referring to an insn.  Strengthen local "dispatch_label" from
13802         rtx to rtx_code_label *.
13803         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
13804         rtx_insn *.
13805         (expand_eh_return): Strengthen local "around_label" from
13806         rtx to rtx_code_label *.
13807         (convert_to_eh_region_ranges): Strengthen locals "iter",
13808         "last_action_insn", "first_no_action_insn",
13809         "first_no_action_insn_before_switch",
13810         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
13811
13812 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13813
13814         * dwarf2out.c (last_var_location_insn): Strengthen this variable
13815         from rtx to rtx_insn *.
13816         (cached_next_real_insn): Likewise.
13817         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
13818         working with insns.
13819         (dwarf2out_var_location): Strengthen locals "next_real",
13820         "next_note", "expected_next_loc_note", "last_start", "insn" from
13821         rtx to rtx_insn *.
13822
13823 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13824
13825         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
13826         from rtx to rtx_insn *.
13827         (create_pseudo_cfg): Likewise for local "insn".
13828
13829 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13830
13831         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
13832         from rtx to rtx_insn *.
13833         (df_bb_regno_last_def_find): Likewise.
13834
13835         * df-problems.c (df_rd_bb_local_compute): Likewise.
13836         (df_lr_bb_local_compute): Likewise.
13837         (df_live_bb_local_compute): Likewise.
13838         (df_chain_remove_problem): Likewise.
13839         (df_chain_create_bb): Likewise.
13840         (df_word_lr_bb_local_compute): Likewise.
13841         (df_remove_dead_eq_notes): Likewise for param "insn".
13842         (df_note_bb_compute): Likewise for local "insn".
13843         (simulate_backwards_to_point): Likewise.
13844         (df_md_bb_local_compute): Likewise.
13845
13846         * df-scan.c (df_scan_free_bb_info): Likewise.
13847         (df_scan_start_dump): Likewise.
13848         (df_scan_start_block): Likewise.
13849         (df_install_ref_incremental): Likewise for local "insn".
13850         (df_insn_rescan_all): Likewise.
13851         (df_reorganize_refs_by_reg_by_insn): Likewise.
13852         (df_reorganize_refs_by_insn_bb): Likewise.
13853         (df_recompute_luids): Likewise.
13854         (df_bb_refs_record): Likewise.
13855         (df_update_entry_exit_and_calls): Likewise.
13856         (df_bb_verify): Likewise.
13857
13858 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13859
13860         * ddg.h (struct ddg_node): Strengthen fields "insn" and
13861         "first_note" from rtx to rtx_insn *.
13862         (get_node_of_insn): Likewise for param 2 "insn".
13863         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
13864
13865         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
13866         rtx_insn *.
13867         (mem_write_insn_p): Likewise.
13868         (mem_access_insn_p): Likewise.
13869         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
13870         (def_has_ccmode_p): Likewise for param "insn".
13871         (add_cross_iteration_register_deps): Likewise for locals
13872         "def_insn" and "use_insn".
13873         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
13874         (build_intra_loop_deps): Likewise for local "src_insn".
13875         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
13876         to rtx_insn *.
13877         (get_node_of_insn): Likewise for param "insn".
13878
13879 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13880
13881         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
13882         (deletable_insn_p): Strengthen param "insn" from rtx to
13883         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
13884         find_call_stack_args, since this is guarded by CALL_P (insn).
13885         (marked_insn_p): Strengthen param "insn" from rtx to
13886         rtx_insn *.
13887         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
13888         invoking find_call_stack_args, since this is guarded by
13889         CALL_P (insn).
13890         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
13891         rtx_insn *; we know this is an insn since this was called by
13892         mark_nonreg_stores.
13893         (mark_nonreg_stores_2): Likewise.
13894         (mark_nonreg_stores): Strengthen param "insn" from rtx to
13895         rtx_insn *.
13896         (find_call_stack_args): Strengthen param "call_insn" from rtx to
13897         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
13898         to rtx_insn *.
13899         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
13900         from rtx to rtx_insn *.
13901         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
13902         "next", "ref_insn".
13903         (delete_unmarked_insns): Likewise for locals "insn", "next".
13904         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
13905         (mark_reg_dependencies): Likewise for param "insn".
13906         (rest_of_handle_ud_dce): Likewise for local "insn".
13907         (word_dce_process_block): Likewise.
13908         (dce_process_block): Likewise.
13909
13910 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
13911
13912         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
13913         from rtx to rtx_insn *.
13914         (struct change_cc_mode_args): Likewise for field "insn".
13915         (this_insn): Strengthen from rtx to rtx_insn *.
13916         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
13917         with insn.
13918         (validate_canon_reg): Strengthen param "insn" from rtx to
13919         rtx_insn *.
13920         (canon_reg): Likewise.
13921         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
13922         dealing with insn.
13923         (record_jump_equiv): Strengthen param "insn" from rtx to
13924         rtx_insn *.
13925         (try_back_substitute_reg): Likewise, also for locals "prev",
13926         "bb_head".
13927         (find_sets_in_insn): Likewise for param "insn".
13928         (canonicalize_insn): Likewise.
13929         (cse_insn): Likewise.  Add a checked cast.
13930         (invalidate_from_clobbers): Likewise for param "insn".
13931         (invalidate_from_sets_and_clobbers): Likewise.
13932         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
13933         dealing with insn.
13934         (cse_prescan_path): Strengthen local "insn" from rtx to
13935         rtx_insn *.
13936         (cse_extended_basic_block): Likewise for locals "insn" and
13937         "prev_insn".
13938         (cse_main): Likewise for param "f".
13939         (check_for_label_ref): Likewise for local "insn".
13940         (set_live_p): Likewise for second param ("insn").
13941         (insn_live_p): Likewise for first param ("insn") and for local
13942         "next".
13943         (cse_change_cc_mode_insn): Likewise for first param "insn".
13944         (cse_change_cc_mode_insns): Likewise for first and second params
13945         "start" and "end".
13946         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
13947         and "end".
13948         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
13949         "cc_src_insn".
13950
13951 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13952             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13953             Anna Tikhonova  <anna.tikhonova@intel.com>
13954             Ilya Tocar  <ilya.tocar@intel.com>
13955             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13956             Ilya Verbin  <ilya.verbin@intel.com>
13957             Kirill Yukhin  <kirill.yukhin@intel.com>
13958             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13959
13960         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
13961         New.
13962         * config/i386/sse.md
13963         (define_mode_iterator VI248_AVX2): Delete.
13964         (define_mode_iterator VI2_AVX2_AVX512BW): New.
13965         (define_mode_iterator VI48_AVX2): Ditto.
13966         (define_insn <shift_insn><mode>3): Delete.
13967         (define_insn "<shift_insn><mode>3<mask_name>" with
13968         VI2_AVX2_AVX512BW): New.
13969         (define_insn "<shift_insn><mode>3<mask_name>" with
13970         VI48_AVX2): Ditto.
13971
13972 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13973             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13974             Anna Tikhonova  <anna.tikhonova@intel.com>
13975             Ilya Tocar  <ilya.tocar@intel.com>
13976             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13977             Ilya Verbin  <ilya.verbin@intel.com>
13978             Kirill Yukhin  <kirill.yukhin@intel.com>
13979             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13980
13981         * config/i386/sse.md
13982         (define_mode_iterator VI4F_BRCST32x2): New.
13983         (define_mode_attr 64x2_mode): Ditto.
13984         (define_mode_attr 32x2mode): Ditto.
13985         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
13986         with VI4F_BRCST32x2): Ditto.
13987         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
13988         with V16FI mode iterator): Ditto.
13989         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
13990         with V16FI): Ditto.
13991         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
13992         with VI8F_BRCST64x2): Ditto.
13993
13994 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13995             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13996             Anna Tikhonova  <anna.tikhonova@intel.com>
13997             Ilya Tocar  <ilya.tocar@intel.com>
13998             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13999             Ilya Verbin  <ilya.verbin@intel.com>
14000             Kirill Yukhin  <kirill.yukhin@intel.com>
14001             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14002
14003         * config/i386/sse.md
14004         (define_mode_iterator VI8_AVX512VL): New.
14005         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
14006
14007 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
14008
14009         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
14010         (define_mode_iterator V48_AVX512VL): New.
14011         (define_mode_iterator V12_AVX512VL): Ditto.
14012         (define_insn <avx512>_load<mode>_mask): Split into two similar
14013         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
14014         Refactor output template.
14015         (define_insn "<avx512>_store<mode>_mask"): Ditto.
14016
14017 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
14018
14019         * cprop.c (struct occr): Strengthen field "insn" from rtx to
14020         rtx_insn *.
14021         (reg_available_p): Likewise for param "insn".
14022         (insert_set_in_table): Likewise.
14023         (hash_scan_set): Likewise.
14024         (hash_scan_insn): Likewise.
14025         (make_set_regs_unavailable): Likewise.
14026         (compute_hash_table_work): Likewise for local "insn".
14027         (reg_not_set_p): Strengthen param "insn" from const_rtx to
14028         const rtx_insn *.
14029         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
14030         (try_replace_reg): Likewise.
14031         (find_avail_set): Likewise.
14032         (cprop_jump): Likewise for params "setcc", "jump".
14033         (constprop_register): Likewise for param "insn".
14034         (cprop_insn): Likewise.
14035         (do_local_cprop): Likewise.
14036         (local_cprop_pass): Likewise for local "insn".
14037         (bypass_block): Likewise for params "setcc" and "jump".
14038         (bypass_conditional_jumps): Likewise for locals "setcc" and
14039         "insn".
14040         (one_cprop_pass): Likewise for local "insn".
14041
14042 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
14043
14044         * compare-elim.c (struct comparison_use): Strengthen field "insn"
14045         from rtx to rtx_insn *.
14046         (struct comparison): Likewise, also for field "prev_clobber".
14047         (conforming_compare): Likewise for param "insn".
14048         (arithmetic_flags_clobber_p): Likewise.
14049         (find_flags_uses_in_insn): Likewise.
14050         (find_comparison_dom_walker::before_dom_children): Likewise for
14051         locals "insn", "next", "last_clobber".
14052         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
14053
14054 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
14055
14056         * combine-stack-adj.c (struct csa_reflist): Strengthen field
14057         "insn" from rtx to rtx_insn *.
14058         (single_set_for_csa): Likewise for param "insn".
14059         (record_one_stack_ref): Likewise.
14060         (try_apply_stack_adjustment): Likewise.
14061         (struct record_stack_refs_data): Likewise for field "insn".
14062         (maybe_move_args_size_note): Likewise for params "last" and "insn".
14063         (prev_active_insn_bb): Likewise for return type and param "insn".
14064         (next_active_insn_bb): Likewise.
14065         (force_move_args_size_note): Likewise for params "prev" and "last"
14066         and locals "test", "next_candidate", "prev_candidate".
14067         (combine_stack_adjustments_for_block): Strengthen locals
14068         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
14069         rtx_insn *.
14070
14071 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14072
14073         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
14074         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
14075         (subst_insn): Likewise for this variable.
14076         (added_links_insn): Likewise.
14077         (struct insn_link): Likewise for field "insn".
14078         (alloc_insn_link): Likewise for param "insn".
14079         (struct undobuf): Likewise for field "other_insn".
14080         (find_single_use): Likewise for param "insn" and local "next".
14081         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
14082         (delete_noop_moves): Likewise for locals "insn", "next".
14083         (create_log_links): Likewise for locals "insn", "use_insn".
14084         Strengthen local "next_use" from rtx * to rtx_insn **.
14085         (insn_a_feeds_b): Likewise for params "a", "b".
14086         (combine_instructions): Likewise for param "f" and locals "insn",
14087         "next", "prev", "first", "last_combined_insn", "link", "link1",
14088         "temp".  Replace use of NULL_RTX with NULL when referring to
14089         insns.
14090         (setup_incoming_promotions): Likewise for param "first"
14091         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
14092         (can_combine_p): Likewise for params "insn", "i3", "pred",
14093         "pred2", "succ", "succ2" and for local "p".
14094         (combinable_i3pat): Likewise for param "i3".
14095         (cant_combine_insn_p): Likewise for param "insn".
14096         (likely_spilled_retval_p): Likewise.
14097         (adjust_for_new_dest): Likewise.
14098         (update_cfg_for_uncondjump): Likewise, also for local "insn".
14099         (try_combine): Likewise for return type and for params "i3", "i2",
14100         "i1", "i0", "last_combined_insn", and for locals "insn",
14101         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
14102         "i0_insn".  Eliminate local "tem" in favor of new locals
14103         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
14104         checked cast for now to rtx_insn * on the return type of
14105         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
14106         insns.
14107         (find_split_point): Strengthen param "insn" from rtx to
14108         rtx_insn *.
14109         (simplify_set): Likewise for local "other_insn".
14110         (recog_for_combine): Likewise for param "insn".
14111         (record_value_for_reg): Likewise.
14112         (record_dead_and_set_regs_1): Likewise for local
14113         "record_dead_insn".
14114         (record_dead_and_set_regs): Likewise for param "insn".
14115         (record_promoted_value): Likewise.
14116         (check_promoted_subreg): Likewise.
14117         (get_last_value_validate): Likewise.
14118         (reg_dead_at_p): Likewise.
14119         (move_deaths): Likewise for param "to_insn".
14120         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
14121         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
14122         in favor of new locals "tem_note" and "tem_insn", the latter being
14123         an rtx_insn *.
14124         (distribute_links): Strengthen locals "place", "insn" from rtx to
14125         rtx_insn *.
14126
14127 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14128
14129         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
14130         than a const_rtx.
14131         (can_delete_label_p): Require a const rtx_code_label * rather than
14132         a const_rtx.
14133         (delete_insn): Add checked cast to rtx_code_label * when we know
14134         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
14135         rtx to rtx_insn *.
14136         (delete_insn_chain): Strengthen locals "prev" and "current" from
14137         rtx to rtx_insn *.  Add a checked cast when assigning from
14138         "finish" (strengthening the params will come later).  Add a
14139         checked cast to rtx_note * in region where we know
14140         NOTE_P (current).
14141         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
14142         rtx_insn *.
14143         (compute_bb_for_insn): Likewise.
14144         (free_bb_for_insn): Likewise for local "insn".
14145         (compute_bb_for_insn): Likewise.
14146         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
14147         local "insn" from rtx to rtx_insn *
14148         (flow_active_insn_p): Require a const rtx_insn * rather than a
14149         const_rtx.
14150         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
14151         rtx_insn *.
14152         (can_fallthru): Likewise for locals "insn" and "insn2".
14153         (bb_note): Likewise for local "note".
14154         (first_insn_after_basic_block_note): Likewise for local "note" and
14155         for return type.
14156         (rtl_split_block): Likewise for locals "insn" and "next".
14157         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
14158         "end".
14159         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
14160         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
14161         "prev", "tmp".
14162         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
14163         them), "kill_from", "barrier", "new_insn".
14164         (patch_jump_insn): Likewise for params "insn", "old_label".
14165         (redirect_branch_edge): Likewise for locals "old_label", "insn".
14166         (force_nonfallthru_and_redirect): Likewise for locals "insn",
14167         "old_label", "new_label".
14168         (rtl_tidy_fallthru_edge): Likewise for local "q".
14169         (rtl_split_edge): Likewise for locals "before", "last".
14170         (commit_one_edge_insertion): Likewise for locals "before",
14171         "after", "insns", "tmp", "last", adding a checked cast where
14172         currently necessary.
14173         (commit_edge_insertions): Likewise.
14174         (rtl_dump_bb): Likewise for locals "insn", "last".
14175         (print_rtl_with_bb): Likewise for local "x".
14176         (rtl_verify_bb_insns): Likewise for local "x".
14177         (rtl_verify_bb_pointers): Likewise for local "insn".
14178         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
14179         "head", "end".
14180         (rtl_verify_fallthru): Likewise for local "insn".
14181         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
14182         (purge_dead_edges): Likewise for local "insn".
14183         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
14184         (skip_insns_after_block): Likewise for return type and for locals
14185         "insn", "last_insn", "next_head", "prev".
14186         (record_effective_endpoints): Likewise for locals "next_insn",
14187         "insn", "end".
14188         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
14189         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
14190         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
14191         (duplicate_insn_chain): For now, add checked cast from rtx to
14192         rtx_insn * when returning insn.
14193         (cfg_layout_duplicate_bb): Likewise for local "insn".
14194         (cfg_layout_delete_block): Likewise for locals "insn", "next",
14195         "prev", "remaints".
14196         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
14197         (rtl_block_empty_p): Likewise.
14198         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
14199         "split_point", "last".
14200         (rtl_block_ends_with_call_p): Likewise for local "insn".
14201         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
14202         const rtx_insn *.
14203         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
14204         "split_at_insn" from rtx to rtx_insn *.
14205         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
14206         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
14207         to const rtx_insn *.
14208         (rtl_account_profile_record): Likewise.
14209
14210 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14211
14212         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
14213         rtx to rtx_insn *.
14214         (average_num_loop_insns): Likewise.
14215         (init_set_costs): Likewise for local "seq".
14216         (seq_cost): Likewise for param "seq", from const_rtx to const
14217         rtx_insn *.
14218
14219 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14220
14221         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
14222         rtx to rtx_insn *.
14223
14224 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14225
14226         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
14227         "f1" and "f2" from rtx * to rtx_insn **.
14228         (flow_find_head_matching_sequence): Likewise.
14229
14230         * cfgcleanup.c (try_simplify_condjump): Strengthen local
14231         "cbranch_insn" from rtx to rtx_insn *.
14232         (thread_jump): Likewise for local "insn".
14233         (try_forward_edges): Likewise for local "last".
14234         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
14235         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
14236         "real_b_end".
14237         (can_replace_by): Likewise for params "i1", "i2".
14238         (old_insns_match_p): Likewise.
14239         (merge_notes): Likewise.
14240         (walk_to_nondebug_insn): Likewise for param "i1".
14241         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
14242         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
14243         "afterlast1", "afterlast2" from rtx to rtx_insn *.
14244         (flow_find_head_matching_sequence): Strengthen params "f1" and
14245         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
14246         "last1", "last2", "beforelast1", "beforelast2" from rtx to
14247         rtx_insn *.
14248         (outgoing_edges_match): Likewise for locals "last1", "last2".
14249         (try_crossjump_to_edge): Likewise for local "insn".
14250         Replace call to for_each_rtx with for_each_rtx_in_insn.
14251
14252         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
14253         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
14254         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
14255         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
14256         (try_optimize_cfg): Strengthen local "last" from rtx to
14257         rtx_insn *.
14258         (delete_dead_jumptables): Likewise for locals "insn", "next",
14259         "label".
14260
14261         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
14262         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
14263         "rtx else_first_tail", to reflect the basic-block.h changes above.
14264
14265 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14266
14267         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
14268         rtx_insn *.
14269         (purge_dead_tablejump_edges): Likewise.
14270         (find_bb_boundaries): Likewise for locals "insn", "end",
14271         "flow_transfer_insn".
14272
14273 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14274
14275         * caller-save.c (save_call_clobbered_regs): Strengthen locals
14276         "ins" and "prev" from rtx to rtx_insn *.
14277
14278 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14279
14280         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
14281         rtx_insn *.
14282         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
14283         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
14284         "scan_start".
14285         (load_register_parameters): Likewise for local "before_arg".
14286         (check_sibcall_argument_overlap): Likewise for param "insn".
14287         (expand_call): Likewise for locals "normal_call_insns",
14288         "tail_call_insns", "insns", "before_call", "after_args",
14289         "before_arg", "last", "prev".  Strengthen one of the "last" from
14290         rtx to rtx_call_insn *.
14291         (fixup_tail_calls): Strengthen local "insn" from rtx to
14292         rtx_insn *.
14293         (emit_library_call_value_1): Likewise for locals "before_call" and
14294         "last".
14295
14296 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14297
14298         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
14299         and "last" from rtx to rtx_insn *.
14300         (expand_builtin_nonlocal_goto): Likewise for local "insn".
14301         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
14302         rtx_call_insn *.
14303         (expand_errno_check): Strengthen local "lab" from rtx to
14304         rtx_code_label *.
14305         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
14306         rtx_insn *.
14307         (expand_builtin_mathfn_2): Likewise.
14308         (expand_builtin_mathfn_ternary): Likewise.
14309         (expand_builtin_mathfn_3): Likewise.
14310         (expand_builtin_interclass_mathfn): Likewise for local "last".
14311         (expand_builtin_int_roundingfn): Likewise for local "insns".
14312         (expand_builtin_int_roundingfn_2): Likewise.
14313         (expand_builtin_strlen): Likewise for local "before_strlen".
14314         (expand_builtin_strncmp): Likewise for local "seq".
14315         (expand_builtin_signbit): Likewise for local "last".
14316         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
14317         from rtx to rtx_code_label *.
14318         (expand_stack_restore):  Strengthen local "prev" from rtx to
14319         rtx_insn *.
14320
14321 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14322
14323         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
14324         to rtx_insn *.
14325         (struct btr_def_s): Likewise.
14326         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
14327         const rtx_insn *.
14328         (add_btr_def): Likewise.
14329         (new_btr_user): Likewise.
14330         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
14331         rtx to rtx_insn *.
14332         (link_btr_uses): Likewise.
14333         (move_btr_def): Likewise for locals "insp", "old_insn",
14334         "new_insn".  Add checked cast to rtx_insn * for now on result of
14335         gen_move_insn.
14336         (can_move_up): Strengthen param "insn" from const_rtx to
14337         const rtx_insn *.
14338
14339 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14340
14341         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
14342         rtx_insn *.
14343         (get_uncond_jump_length): Likewise for locals "label", "jump".
14344         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
14345         "jump", "insn".
14346         (add_labels_and_missing_jumps): Likewise for local "new_jump".
14347         (fix_up_fall_thru_edges): Likewise for local "old_jump".
14348         (find_jump_block): Likewise for local "insn".
14349         (fix_crossing_conditional_branches): Likewise for locals
14350         "old_jump", "new_jump".
14351         (fix_crossing_unconditional_branches): Likewise for locals
14352         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
14353         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
14354
14355 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14356
14357         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
14358         rtx to rtx_insn *.
14359         (struct mem_insn): Likewise for field "insn".
14360         (reg_next_use): Strengthen from rtx * to rtx_insn **.
14361         (reg_next_inc_use): Likewise.
14362         (reg_next_def): Likewise.
14363         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
14364         from rtx to rtx_insn *.
14365         (move_insn_before): Likewise for param "next_insn" and local "insns".
14366         (attempt_change): Likewise for local "mov_insn".
14367         (try_merge): Likewise for param "last_insn".
14368         (get_next_ref): Likewise for return type and local "insn".
14369         Strengthen param "next_array" from rtx * to rtx_insn **.
14370         (parse_add_or_inc): Strengthen param "insn" from rtx to
14371         rtx_insn *.
14372         (find_inc): Likewise for locals "insn" and "other_insn" (three of
14373         the latter).
14374         (merge_in_block): Likewise for locals "insn", "curr",
14375         "other_insn".
14376         (pass_inc_dec::execute): Update allocations of the arrays to
14377         reflect the stronger types.
14378
14379 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14380
14381         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
14382         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
14383         from rtx to rtx_code_label *.
14384
14385 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14386
14387         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
14388         to rtx_insn *.
14389
14390 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
14391
14392         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
14393         generated a warning and prevented bootstrapping the compiler.
14394
14395 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14396
14397         * rtl.h (delete_related_insns): Strengthen return type from rtx to
14398         rtx_insn *.
14399
14400         * jump.c (delete_related_insns): Likewise, also for locals "next"
14401         and "prev".
14402
14403 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14404
14405         * genautomata.c (output_internal_insn_latency_func): When writing
14406         the function "internal_insn_latency" to insn-automata.c,
14407         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
14408         allowing the optional guard function of (define_bypass) clauses to
14409         expect a pair of rtx_insn *, rather than a pair of rtx.
14410         (output_insn_latency_func): When writing the function
14411         "insn_latency", add an "uncast_" prefix to params "insn" and
14412         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
14413         using checked casts from the params, thus enabling the above
14414         change to the generated "internal_insn_latency" function.
14415
14416 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
14417
14418         PR tree-optimization/62091
14419         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
14420         handle correctly arrays.
14421         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
14422         inheritance binfos.
14423         (record_known_type): Walk into inner type.
14424         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
14425         condition on no type changes.
14426
14427 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14428
14429         * genattrtab.c (write_attr_get): Within the generated get_attr_
14430         functions, rename param "insn" to "uncast_insn" and reintroduce
14431         "insn" as an local rtx_insn * using a checked cast, so that "insn"
14432         is an rtx_insn * within insn-attrtab.c
14433
14434 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14435
14436         * output.h (peephole): Strengthen return type from rtx to
14437         rtx_insn *.
14438         * rtl.h (delete_for_peephole): Likewise for both params.
14439         * genpeep.c (main): In generated "peephole" function, strengthen
14440         return type and local "insn" from rtx to rtx_insn *.  For now,
14441         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
14442         rtx_insn *, with a checked cast.
14443         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
14444         locals "insn", "next", "prev" from rtx to rtx_insn *.
14445
14446 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
14447
14448         PR tree-optimization/62112
14449         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
14450         * gimple-iterator.h (gsi_replace): Return bool.
14451         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
14452         moved from ref_may_alias_global_p.
14453         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
14454         New overloads.
14455         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
14456         (stmt_kills_ref_p_1): Rename...
14457         (stmt_kills_ref_p): ... to this.
14458         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
14459         stmt_kills_ref_p): Declare.
14460         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
14461         Move the self-assignment case...
14462         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
14463
14464 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14465
14466         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
14467
14468         * emit-rtl.c (try_split): Likewise, also for locals "before" and
14469         "after".  For now, don't strengthen param "trial", which requires
14470         adding checked casts when returning it.
14471
14472 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14473
14474         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
14475         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
14476         "var_location" hook from rtx to rtx_insn *.
14477         (debug_nothing_rtx): Delete in favor of...
14478         (debug_nothing_rtx_code_label): New prototype.
14479         (debug_nothing_rtx_rtx): Delete unused prototype.
14480         (debug_nothing_rtx_insn): New prototype.
14481
14482         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
14483         invoking debug_hooks->var_location (in two places, one in a NOTE
14484         case of a switch statement, the other guarded by a CALL_P
14485         conditional.  Add checked cast to rtx_code_label * when invoking
14486         debug_hooks->label (within CODE_LABEL case of switch statement).
14487
14488         * dbxout.c (dbx_debug_hooks): Update "label" hook from
14489         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
14490         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
14491         (xcoff_debug_hooks): Likewise.
14492         * debug.c (do_nothing_debug_hooks): Likewise.
14493         (debug_nothing_rtx): Delete in favor of...
14494         (debug_nothing_rtx_insn): New function.
14495         (debug_nothing_rtx_rtx): Delete unused function.
14496         (debug_nothing_rtx_code_label): New function.
14497         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
14498         debug_nothing_rtx to debug_nothing_rtx_code_label.
14499         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
14500         to rtx_insn *.
14501         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
14502         debug_nothing_rtx to debug_nothing_rtx_insn.
14503         (sdbout_label): Strengthen param "insn" from rtx to
14504         rtx_code_label *.
14505         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
14506         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
14507         "var_location" hook from debug_nothing_rtx to
14508         debug_nothing_rtx_insn.
14509
14510 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14511
14512         * recog.h (insn_output_fn): Update this function typedef to match
14513         the changes below to the generated output functions, strengthening
14514         the 2nd param from rtx to rtx_insn *.
14515
14516         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
14517         insn when invoking an output function, to match the new signature
14518         of insn_output_fn with a stronger second param.
14519
14520         * genconditions.c (write_header): In the generated code for
14521         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
14522         to match the other changes in this patch.
14523
14524         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
14525         the generated "gen_" functions from rtx to rtx_insn * within their
14526         implementations.
14527
14528         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
14529         the subfunctions within the generated "recog_", "split", "peephole2"
14530         function trees from rtx to rtx_insn *.  For now, the top-level
14531         generated functions ("recog", "split", "peephole2") continue to
14532         take a plain rtx for "insn", to avoid introducing dependencies on
14533         other patches.  Rename this 2nd param from "insn" to
14534         "uncast_insn", and reintroduce "insn" as a local variable of type
14535         rtx_insn *, initialized at the top of the generated function with
14536         a checked cast on "uncast_insn".
14537         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
14538         the generated "gen_" functions from rtx to rtx_insn * within their
14539         prototypes.
14540
14541         * genoutput.c (process_template): Strengthen the 2nd param within
14542         the generated "output_" functions "insn" from rtx to rtx_insn *.
14543
14544 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
14545
14546         * tree-profile.c (tree_profiling): Skip external functions
14547         when doing coverage instrumentation.
14548         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
14549
14550 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14551
14552         * config/rs6000/altivec.h (vec_cpsgn): New #define.
14553         (vec_mergee): Likewise.
14554         (vec_mergeo): Likewise.
14555         (vec_cntlz): Likewise.
14556         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
14557         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
14558         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
14559         VMRGEW, and VMRGOW.
14560         * doc/extend.texi: Document various forms of vec_cpsgn,
14561         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
14562         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
14563         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
14564         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
14565         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
14566
14567 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14568
14569         * config/rs6000/rs6000.c (context.h): New include.
14570         (tree-pass.h): Likewise.
14571         (make_pass_analyze_swaps): New decl.
14572         (rs6000_option_override): Register pass_analyze_swaps.
14573         (swap_web_entry): New subsclass of web_entry_base (df.h).
14574         (special_handling_values): New enum.
14575         (union_defs): New function.
14576         (union_uses): Likewise.
14577         (insn_is_load_p): Likewise.
14578         (insn_is_store_p): Likewise.
14579         (insn_is_swap_p): Likewise.
14580         (rtx_is_swappable_p): Likewise.
14581         (insn_is_swappable_p): Likewise.
14582         (chain_purpose): New enum.
14583         (chain_contains_only_swaps): New function.
14584         (mark_swaps_for_removal): Likewise.
14585         (swap_const_vector_halves): Likewise.
14586         (adjust_subreg_index): Likewise.
14587         (permute_load): Likewise.
14588         (permute_store): Likewise.
14589         (handle_special_swappables): Likewise.
14590         (replace_swap_with_copy): Likewise.
14591         (dump_swap_insn_table): Likewise.
14592         (rs6000_analyze_swaps): Likewise.
14593         (pass_data_analyze_swaps): New pass_data.
14594         (pass_analyze_swaps): New rtl_opt_pass.
14595         (make_pass_analyze_swaps): New function.
14596         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
14597
14598 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14599
14600         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
14601         type from rtx to rtx_insn *.
14602         (create_copy_of_insn_rtx): Likewise.
14603         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
14604         (create_copy_of_insn_rtx): Likewise, also for local "res".
14605
14606 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14607
14608         * rtl.h (find_first_parameter_load): Strengthen return type from
14609         rtx to rtx_insn *.
14610         * rtlanal.c (find_first_parameter_load): Strengthen return type
14611         from rtx to rtx_insn *.  Add checked cast for now, to postpone
14612         strengthening the params.
14613
14614 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14615
14616         PR fortran/44054
14617         * diagnostic.c: Set default caret.
14618         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
14619         line is needed.
14620         * diagnostic.h (struct diagnostic_context):
14621
14622 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14623
14624         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
14625         (sel_bb_head): Strengthen return type insn_t (currently just an
14626         rtx) to rtx_insn *.
14627         (sel_bb_end): Likewise.
14628
14629         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
14630         (sel_bb_head): Strengthen return type and local "head" from
14631         insn_t (currently just an rtx) to rtx_insn *.
14632         (sel_bb_end): Likewise for return type.
14633         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
14634         working with insn.
14635
14636 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
14637
14638         * basic-block.h (get_last_bb_insn): Strengthen return type from
14639         rtx to rtx_insn *.
14640         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
14641         end".
14642
14643 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14644
14645         PR fortran/44054
14646         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
14647         to here ...
14648         (diagnostic_report_diagnostic): ... from here.
14649         * toplev.c (general_init): Move code to c-family.
14650
14651 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14652
14653         * df.h (web_entry_base): Replace existing struct web_entry with a
14654         new class web_entry_base with only the predecessor member.
14655         (unionfind_root): Remove declaration and move to class member.
14656         (unionfind_union): Remove declaration and move to friend
14657         function.
14658         (union_defs): Remove declaration.
14659         * web.c (web_entry_base::unionfind_root): Modify to be member
14660         function and adjust accessors.
14661         (unionfind_union): Modify to be friend function and adjust
14662         accessors.
14663         (web_entry): New subclass of web_entry_base containing the reg
14664         member.
14665         (union_match_dups): Modify for struct -> class changes.
14666         (union_defs): Likewise.
14667         (entry_register): Likewise.
14668         (pass_web::execute): Likewise.
14669
14670 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
14671
14672         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
14673         builtin define __VEC_ELEMENT_REG_ORDER__.
14674
14675 2014-08-20  Martin Jambor  <mjambor@suse.cz>
14676             Wei Mi  <wmi@google.com>
14677
14678         PR ipa/60449
14679         PR middle-end/61776
14680         * tree-ssa-operands.c (update_stmt_operands): Remove
14681         MODIFIED_NORETURN_CALLS.
14682         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
14683         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
14684         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
14685         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
14686         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
14687         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
14688         (gimple_call_set_ctrl_altering): New func.
14689         (gimple_call_ctrl_altering_p): Ditto.
14690         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
14691         (make_blocks): Use gimple_call_initialize_ctrl_altering.
14692         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
14693         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
14694         remove MODIFIED_NORETURN_CALLS.
14695
14696 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
14697
14698         * coverage.c (coverage_compute_profile_id): Return non-0;
14699         also handle symbols with unique name.
14700         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
14701
14702 2014-08-20  Steve Ellcey  <sellcey@mips.com>
14703
14704         PR middle-end/49191
14705         * doc/sourcebuild.texi (non_strict_align): New.
14706
14707 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
14708
14709         * cgraphunit.c (ipa_passes, compile): Reshedule
14710         symtab_remove_unreachable_nodes passes; update comments.
14711         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
14712         TODO_remove_functions before the pass; the functions ought to be
14713         already removed.
14714         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
14715         TODO_remove_functions.
14716         * passes.c (pass_data_early_local_passes): Do not schedule function
14717         removal.
14718         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
14719
14720 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14721
14722         PR c/59304
14723         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
14724         before setting the option.
14725         * diagnostic.c (diagnostic_classify_diagnostic): Record
14726         command-line status.
14727
14728 2014-08-20  Richard Biener  <rguenther@suse.de>
14729
14730         PR lto/62190
14731         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
14732         to build uint{16,32,64}_type_node.
14733
14734 2014-08-20  Terry Guo  <terry.guo@arm.com>
14735
14736         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
14737         with immediate_operand.
14738
14739 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
14740
14741         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
14742         "insn" from an as_a to a safe_as_a, for the case when "insn" is
14743         NULL.
14744
14745 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14746
14747         PR preprocessor/51303
14748         * incpath.c (remove_duplicates): Use cpp_warning.
14749
14750 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14751
14752         PR c/60975
14753         PR c/53063
14754         * doc/options.texi (CPP): Document it.
14755         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
14756         * optc-gen.awk: Handle CPP.
14757         * opth-gen.awk: Likewise.
14758
14759 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14760
14761         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
14762         rtx_insn *.
14763         (duplicate_insn_chain): Likewise.
14764         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
14765         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
14766         checked cast for now (until we can strengthen the params in the
14767         same way).
14768         (duplicate_insn_chain): Likewise.
14769
14770 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14771
14772         * rtl.h (next_cc0_user): Strengthen return type from rtx to
14773         rtx_insn *.
14774         (prev_cc0_setter): Likewise.
14775
14776         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
14777         rtx_insn *, adding checked casts for now as necessary.
14778         (prev_cc0_setter): Likewise.
14779
14780 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14781
14782         * expr.h (emit_move_insn): Strengthen return type from rtx to
14783         rtx_insn *.
14784         (emit_move_insn_1): Likewise.
14785         (emit_move_complex_push): Likewise.
14786         (emit_move_complex_parts): Likewise.
14787
14788         * expr.c (emit_move_via_integer): Strengthen return type from rtx
14789         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
14790         with insns.
14791         (emit_move_complex_push): Strengthen return type from rtx to
14792         rtx_insn *.
14793         (emit_move_complex): Likewise, also for local "ret".
14794         (emit_move_ccmode): Likewise.
14795         (emit_move_multi_word): Likewise for return type and locals
14796         "last_insn", "seq".
14797         (emit_move_insn_1): Likewise for return type and locals "result",
14798         "ret".
14799         (emit_move_insn): Likewise for return type and local "last_insn".
14800         (compress_float_constant): Likewise.
14801
14802 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14803
14804         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
14805         from rtx to rtx_insn *.
14806
14807         * rtl.h (emit_insn_before): Likewise.
14808         (emit_insn_before_noloc): Likewise.
14809         (emit_insn_before_setloc): Likewise.
14810         (emit_jump_insn_before): Likewise.
14811         (emit_jump_insn_before_noloc): Likewise.
14812         (emit_jump_insn_before_setloc): Likewise.
14813         (emit_call_insn_before): Likewise.
14814         (emit_call_insn_before_noloc): Likewise.
14815         (emit_call_insn_before_setloc): Likewise.
14816         (emit_debug_insn_before): Likewise.
14817         (emit_debug_insn_before_noloc): Likewise.
14818         (emit_debug_insn_before_setloc): Likewise.
14819         (emit_label_before): Likewise.
14820         (emit_insn_after): Likewise.
14821         (emit_insn_after_noloc): Likewise.
14822         (emit_insn_after_setloc): Likewise.
14823         (emit_jump_insn_after): Likewise.
14824         (emit_jump_insn_after_noloc): Likewise.
14825         (emit_jump_insn_after_setloc): Likewise.
14826         (emit_call_insn_after): Likewise.
14827         (emit_call_insn_after_noloc): Likewise.
14828         (emit_call_insn_after_setloc): Likewise.
14829         (emit_debug_insn_after): Likewise.
14830         (emit_debug_insn_after_noloc): Likewise.
14831         (emit_debug_insn_after_setloc): Likewise.
14832         (emit_label_after): Likewise.
14833         (emit_insn): Likewise.
14834         (emit_debug_insn): Likewise.
14835         (emit_jump_insn): Likewise.
14836         (emit_call_insn): Likewise.
14837         (emit_label): Likewise.
14838         (gen_clobber): Likewise.
14839         (emit_clobber): Likewise.
14840         (gen_use): Likewise.
14841         (emit_use): Likewise.
14842         (emit): Likewise.
14843
14844         (emit_barrier_before): Strengthen return type from rtx to
14845         rtx_barrier *.
14846         (emit_barrier_after): Likewise.
14847         (emit_barrier): Likewise.
14848
14849         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
14850         from rtx to rtx_insn *.  Add checked casts for now when converting
14851         "last" from rtx to rtx_insn *.
14852         (emit_insn_before_noloc): Likewise for return type.
14853         (emit_jump_insn_before_noloc): Likewise.
14854         (emit_call_insn_before_noloc): Likewise.
14855         (emit_debug_insn_before_noloc): Likewise.
14856         (emit_barrier_before): Strengthen return type and local "insn"
14857         from rtx to rtx_barrier *.
14858         (emit_label_before): Strengthen return type from rtx to
14859         rtx_insn *.  Add checked cast for now when returning param
14860         (emit_pattern_after_noloc): Strengthen return type from rtx to
14861         rtx_insn *.  Add checked casts for now when converting "last" from
14862         rtx to rtx_insn *.
14863         (emit_insn_after_noloc): Strengthen return type from rtx to
14864         rtx_insn *.
14865         (emit_jump_insn_after_noloc): Likewise.
14866         (emit_call_insn_after_noloc): Likewise.
14867         (emit_debug_insn_after_noloc): Likewise.
14868         (emit_barrier_after): Strengthen return type from rtx to
14869         rtx_barrier *.
14870         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
14871         Add checked cast for now when converting "label" from rtx to
14872         rtx_insn *.
14873         (emit_pattern_after_setloc): Strengthen return type from rtx to
14874         rtx_insn *.  Add checked casts for now when converting "last" from
14875         rtx to rtx_insn *.
14876         (emit_pattern_after): Strengthen return type from rtx to
14877         rtx_insn *.
14878         (emit_insn_after_setloc): Likewise.
14879         (emit_insn_after): Likewise.
14880         (emit_jump_insn_after_setloc): Likewise.
14881         (emit_jump_insn_after): Likewise.
14882         (emit_call_insn_after_setloc): Likewise.
14883         (emit_call_insn_after): Likewise.
14884         (emit_debug_insn_after_setloc): Likewise.
14885         (emit_debug_insn_after): Likewise.
14886         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
14887         when converting "last" from rtx to rtx_insn *.
14888         (emit_pattern_before): Strengthen return type from rtx to
14889         rtx_insn *.
14890         (emit_insn_before_setloc): Likewise.
14891         (emit_insn_before): Likewise.
14892         (emit_jump_insn_before_setloc): Likewise.
14893         (emit_jump_insn_before): Likewise.
14894         (emit_call_insn_before_setloc): Likewise.
14895         (emit_call_insn_before): Likewise.
14896         (emit_debug_insn_before_setloc): Likewise.
14897         (emit_debug_insn_before): Likewise.
14898         (emit_insn): Strengthen return type and locals "last", "insn",
14899         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
14900         within cases where we know we have an insn.
14901         (emit_debug_insn): Likewise.
14902         (emit_jump_insn): Likewise.
14903         (emit_call_insn): Strengthen return type and local "insn" from rtx
14904         to rtx_insn *.
14905         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
14906         a checked cast to rtx_insn * for now on "label".
14907         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
14908         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
14909         (emit_use): Likewise.
14910         (gen_use): Likewise, also for local "seq".
14911         (emit): Likewise for return type and local "insn".
14912         (rtx_insn): Likewise for return type and local "new_rtx".
14913
14914         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
14915         from rtx to rtx_barrier *.
14916
14917         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
14918         changed return type from rtx to rtx_insn *, we must update
14919         "emit_fn" type, and this in turn means updating...
14920         (frame_insn): ...this.  Strengthen return type from rtx to
14921         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
14922
14923 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14924
14925         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
14926         rtx to rtx_jump_table_data *.  Also for local.
14927         * rtl.h (emit_jump_table_data): Likewise.
14928
14929 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14930
14931         * basic-block.h (create_basic_block_structure): Strengthen third
14932         param "bb_note" from rtx to rtx_note *.
14933         * rtl.h (emit_note_before): Strengthen return type from rtx to
14934         rtx_note *.
14935         (emit_note_after): Likewise.
14936         (emit_note): Likewise.
14937         (emit_note_copy): Likewise.  Also, strengthen param similarly.
14938         * function.h (struct rtl_data): Strengthen field
14939         "x_stack_check_probe_note" from rtx to rtx_note *.
14940
14941         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
14942         from rtx to rtx_note *.
14943         * cfgrtl.c (create_basic_block_structure): Strengthen third param
14944         "bb_note" from rtx to rtx_note *.
14945         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
14946         when calling emit_note_copy.
14947         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
14948         rtx_note *.
14949         (emit_note_after): Likewise.
14950         (emit_note_before): Likewise.
14951         (emit_note_copy): Likewise.  Also, strengthen param similarly.
14952         (emit_note): Likewise.
14953         * except.c (emit_note_eh_region_end): Likewise for return type.
14954         Strengthen local "next" from rtx to rtx_insn *.
14955         (convert_to_eh_region_ranges): Strengthen local "note"
14956         from rtx to rtx_note *.
14957         * final.c (change_scope): Likewise.
14958         (reemit_insn_block_notes): Likewise, for both locals named "note".
14959         Also, strengthen local "insn" from rtx to rtx_insn *.
14960         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
14961         rtx to rtx_note *.
14962         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
14963         strengthen local "seq" from rtx to rtx_insn *.
14964         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
14965         to rtx_note *.
14966         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
14967         vec<rtx_note *>.
14968         (get_bb_note_from_pool): Strengthen return type from rtx to
14969         rtx_note *.
14970         (sel_create_basic_block): Strengthen local "new_bb_note" from
14971         insn_t to rtx_note *.
14972         * var-tracking.c (emit_note_insn_var_location): Strengthen local
14973         "note" from rtx to rtx_note *.
14974         (emit_notes_in_bb): Likewise.
14975
14976 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14977
14978         * function.h (struct rtl_data): Strengthen field
14979         "x_parm_birth_insn" from rtx to rtx_insn *.
14980         * function.c (struct assign_parm_data_all): Strengthen fields
14981         "first_conversion_insn" and "last_conversion_insn" from rtx to
14982         rtx_insn *.
14983
14984 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
14985
14986         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
14987         to rtx_insn *; also for local "var_end_seq".
14988         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
14989         (maybe_cleanup_end_of_block): Likewise for param "last" and local
14990         "insn".
14991         (expand_gimple_cond): Likewise for locals "last2" and "last".
14992         (mark_transaction_restart_calls): Likewise for local "insn".
14993         (expand_gimple_stmt): Likewise for return type and locals "last"
14994         and "insn".
14995         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
14996         (avoid_complex_debug_insns): Likewise for param "insn".
14997         (expand_debug_locations): Likewise for locals "insn", "last",
14998         "prev_insn" and "insn2".
14999         (expand_gimple_basic_block): Likewise for local "last".
15000         (construct_exit_block): Likewise for locals "head", "end",
15001         "orig_end".
15002         (pass_expand::execute): Likewise for locals "var_seq",
15003         "var_ret_seq", "next".
15004
15005 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15006
15007         * asan.h (asan_emit_stack_protection): Strengthen return type from
15008         rtx to rtx_insn *.
15009         * asan.c (asan_emit_stack_protection): Likewise.  Add local
15010         "insns" to hold the return value.
15011
15012 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15013
15014         * basic-block.h (bb_note): Strengthen return type from rtx to
15015         rtx_note *.
15016         * sched-int.h (bb_note): Likewise.
15017         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
15018
15019 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15020
15021         * rtl.h (make_insn_raw): Strengthen return type from rtx to
15022         rtx_insn *.
15023
15024         * emit-rtl.c (make_insn_raw): Strengthen return type and local
15025         "insn" from rtx to rtx_insn *.
15026         (make_debug_insn_raw): Strengthen return type from rtx to
15027         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
15028         (make_jump_insn_raw):  Strengthen return type from rtx to
15029         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
15030         (make_call_insn_raw):  Strengthen return type from rtx to
15031         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
15032         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
15033         callback from rtx to rtx_insn *; likewise for local "insn" and
15034         "next", adding a checked cast to rtx_insn in the relevant cases of
15035         the switch statement.
15036         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
15037         callback from rtx to rtx_insn *.
15038         (emit_pattern_after_setloc): Likewise.
15039         (emit_pattern_after): Likewise.
15040         (emit_pattern_before_setloc): Likewise.
15041         (emit_pattern_before): Likewise.
15042
15043 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15044
15045         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
15046         rtx_call_insn *.
15047         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
15048         accepting an rtx_insn *.
15049         (last_call_insn): Strengthen return type from rtx to
15050         rtx_call_insn *.
15051
15052 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15053
15054         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
15055         "insns" from rtx to rtx_insn *.
15056         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
15057         locals "insn" and "prev".
15058
15059 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15060
15061         * rtl.h (tablejump_p): Strengthen third param from rtx * to
15062         rtx_jump_table_data **.
15063
15064         * cfgbuild.c (make_edges): Introduce local "table", using it in
15065         place of "tmp" for jump table data.
15066         (find_bb_boundaries): Strengthen local "table" from rtx to
15067         rtx_jump_table_data *.
15068         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
15069         (outgoing_edges_match): Likewise for locals "table1" and "table2".
15070         (try_crossjump_to_edge): Likewise.
15071         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
15072         "table".
15073         (patch_jump_insn): Introduce local "table", using it in place of
15074         "tmp" for jump table data.
15075         (force_nonfallthru_and_redirect): Introduce local "table", so that
15076         call to tablejump_p can receive an rtx_jump_table_data **.  Update
15077         logic around the call to overwrite "note" appropriately if
15078         tablejump_p returns non-zero.
15079         (get_last_bb_insn): Introduce local "table", using it in place of
15080         "tmp" for jump table data.
15081         * dwarf2cfi.c (create_trace_edges): Likewise.
15082
15083         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
15084         from rtx to rtx_jump_table_data *.
15085         (create_fix_barrier): Strengthen local "tmp" from rtx to
15086         rtx_jump_table_data *.
15087         (arm_reorg): Likewise for local "table".
15088
15089         * config/s390/s390.c (s390_chunkify_start): Likewise.
15090
15091         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
15092
15093         * jump.c (delete_related_insns): Strengthen local "lab_next" from
15094         rtx to rtx_jump_table_data *.
15095
15096         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
15097         rtx_jump_table_data **.  Add a checked cast when writing through
15098         the pointer: we know there that local "table" is non-NULL and that
15099         JUMP_TABLE_DATA_P (table) holds.
15100         (label_is_jump_target_p): Introduce local "table", using it in
15101         place of "tmp" for jump table data.
15102
15103 2014-08-19  Marek Polacek  <polacek@redhat.com>
15104
15105         PR c++/62153
15106         * doc/invoke.texi: Document -Wbool-compare.
15107
15108 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15109
15110         * rtl.h (entry_of_function): Strengthen return type from rtx to
15111         rtx_insn *.
15112         * cfgrtl.c (entry_of_function): Likewise.
15113
15114 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15115
15116         * emit-rtl.h (get_insns): Strengthen return type from rtx to
15117         rtx_insn *, adding a checked cast for now.
15118         (get_last_insn): Likewise.
15119
15120 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15121
15122         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
15123         rtx_code_label *.
15124
15125         * emit-rtl.c (gen_label_rtx): Likewise.
15126
15127 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15128
15129         * rtl.h (previous_insn): Strengthen return type from rtx to
15130         rtx_insn *.
15131         (next_insn): Likewise.
15132         (prev_nonnote_insn): Likewise.
15133         (prev_nonnote_insn_bb): Likewise.
15134         (next_nonnote_insn): Likewise.
15135         (next_nonnote_insn_bb): Likewise.
15136         (prev_nondebug_insn): Likewise.
15137         (next_nondebug_insn): Likewise.
15138         (prev_nonnote_nondebug_insn): Likewise.
15139         (next_nonnote_nondebug_insn): Likewise.
15140         (prev_real_insn): Likewise.
15141         (next_real_insn): Likewise.
15142         (prev_active_insn): Likewise.
15143         (next_active_insn): Likewise.
15144
15145         * emit-rtl.c (next_insn): Strengthen return type from rtx to
15146         rtx_insn *, adding a checked cast.
15147         (previous_insn): Likewise.
15148         (next_nonnote_insn): Likewise.
15149         (next_nonnote_insn_bb): Likewise.
15150         (prev_nonnote_insn): Likewise.
15151         (prev_nonnote_insn_bb): Likewise.
15152         (next_nondebug_insn): Likewise.
15153         (prev_nondebug_insn): Likewise.
15154         (next_nonnote_nondebug_insn): Likewise.
15155         (prev_nonnote_nondebug_insn): Likewise.
15156         (next_real_insn): Likewise.
15157         (prev_real_insn): Likewise.
15158         (next_active_insn): Likewise.
15159         (prev_active_insn): Likewise.
15160
15161         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
15162         param "stepfunc" so that it returns an rtx_insn * rather than an
15163         rtx, to track the change to prev_nonnote_insn_bb, which is the
15164         only function this is called with.
15165         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
15166
15167 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
15168
15169         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
15170         assert.
15171
15172 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15173
15174         * coretypes.h (class rtx_debug_insn): Add forward declaration.
15175         (class rtx_nonjump_insn): Likewise.
15176         (class rtx_jump_insn): Likewise.
15177         (class rtx_call_insn): Likewise.
15178         (class rtx_jump_table_data): Likewise.
15179         (class rtx_barrier): Likewise.
15180         (class rtx_code_label): Likewise.
15181         (class rtx_note): Likewise.
15182
15183         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
15184         adding the invariant DEBUG_INSN_P (X).
15185         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
15186         the invariant NONJUMP_INSN_P (X).
15187         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
15188         the invariant JUMP_P (X).
15189         (class rtx_call_insn): New, a subclass of rtx_insn, adding
15190         the invariant CALL_P (X).
15191         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
15192         invariant JUMP_TABLE_DATA_P (X).
15193         (class rtx_barrier): New, a subclass of rtx_insn, adding the
15194         invariant BARRIER_P (X).
15195         (class rtx_code_label): New, a subclass of rtx_insn, adding
15196         the invariant LABEL_P (X).
15197         (class rtx_note): New, a subclass of rtx_insn, adding
15198         the invariant NOTE_P(X).
15199         (is_a_helper <rtx_debug_insn *>::test): New.
15200         (is_a_helper <rtx_nonjump_insn *>::test): New.
15201         (is_a_helper <rtx_jump_insn *>::test): New.
15202         (is_a_helper <rtx_call_insn *>::test): New.
15203         (is_a_helper <rtx_jump_table_data *>::test): New functions,
15204         overloaded for both rtx and rtx_insn *.
15205         (is_a_helper <rtx_barrier *>::test): New.
15206         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
15207         for both rtx and rtx_insn *.
15208         (is_a_helper <rtx_note *>::test): New.
15209
15210 2014-08-19  Marek Polacek  <polacek@redhat.com>
15211
15212         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
15213         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
15214         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
15215         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
15216
15217 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15218
15219         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
15220         rtx_insn *.  To help with transition, for now, convert from an
15221         access macro into a pair of functions: BND_TO, returning an
15222         rtx_insn *, and...
15223         (SET_BND_TO): New function, for use where BND_TO is used as an
15224         lvalue.
15225
15226         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
15227         SET_BND_TO.
15228         (BND_TO): New function, adding a checked cast.
15229         (SET_BND_TO): New function.
15230
15231         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
15232         SET_BND_TO.
15233         (compute_av_set_on_boundaries): Likewise.
15234
15235 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
15236
15237         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
15238         destination if it is used in source.
15239         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
15240         (*popcount<mode>2_falsedep_1): Likewise.
15241
15242 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
15243
15244         PR other/62168
15245         * configure.ac: Set install_gold_as_default to no first.
15246         * configure: Regenerated.
15247
15248 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15249
15250         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
15251         "note_list" field will eventually be an rtx_insn *.  To help with
15252         transition, for now, convert from an access macro into a pair of
15253         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
15254         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
15255         used as an lvalue.
15256
15257         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
15258         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
15259
15260         * sel-sched-ir.c (init_bb): Likewise.
15261         (sel_restore_notes): Likewise.
15262         (move_bb_info): Likewise.
15263         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
15264         (SET_BB_NOTE_LIST): New function.
15265
15266 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15267
15268         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
15269         field will eventually be an rtx_insn *.  To help with transition,
15270         for now, convert from an access macro into a pair of functions:
15271         VINSN_INSN_RTX, returning an rtx_insn *, and...
15272         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
15273         is used as an lvalue.
15274
15275         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
15276         SET_VINSN_INSN_RTX where it's used as an lvalue.
15277         (VINSN_INSN_RTX): New function.
15278         (SET_VINSN_INSN_RTX): New function.
15279
15280 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15281
15282         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
15283         eventually be rtx_insn *, but to help with transition, for now,
15284         convert from an access macro into a pair of functions: DEP_PRO
15285         returning an rtx_insn * and...
15286         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
15287         lvalue, returning an rtx&.
15288         (DEP_CON): Analogous changes to DEP_PRO above.
15289         (SET_DEP_CON): Likewise.
15290
15291         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
15292         an lvalue to SET_DEP_CON.
15293         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
15294         (sd_copy_back_deps): Likewise for DEP_CON.
15295         (DEP_PRO): New function, adding a checked cast for now.
15296         (DEP_CON): Likewise.
15297         (SET_DEP_PRO): New function.
15298         (SET_DEP_CON): Likewise.
15299
15300 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
15301
15302         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
15303         (extra_options): Add i386/cygwin.opt.
15304         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
15305         (CPP_SPEC): Accept -pthread.
15306         (LINK_SPEC): Ditto.
15307         (GOMP_SELF_SPECS): Update comment.
15308         * config/i386/cygwin.opt: New file for -pthread flag.
15309
15310 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15311
15312         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
15313         * df.h (DF_REF_INSN): Convert from a macro to a function, so
15314         that we can return an rtx_insn *.
15315
15316 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
15317
15318         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
15319         when building executables, not DLLs.  Add --large-address-aware
15320         under the same conditions.
15321         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
15322         when building executables, not DLLs.  Add --large-address-aware
15323         under the same conditions when using -m32.
15324
15325         * config/i386/cygwin-stdint.h: Throughout, make type
15326         definitions dependent on target architecture, not host.
15327
15328 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15329
15330         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
15331         the return type from rtx to rtx_insn *,  which will enable various
15332         conversions in followup patches.  For now this is is done by a
15333         checked cast.
15334         (NEXT_INSN): Likewise.
15335         (SET_PREV_INSN): Convert to an inline function.  This is intended
15336         for use as an lvalue, and so returns an rtx& to allow in-place
15337         modification.
15338         (SET_NEXT_INSN): Likewise.
15339
15340 2014-07-08  Mark Wielaard  <mjw@redhat.com>
15341
15342         PR debug/59051
15343         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
15344
15345 2014-08-19  Marek Polacek  <polacek@redhat.com>
15346
15347         PR c/61271
15348         * cgraphunit.c (handle_alias_pairs): Fix condition.
15349
15350 2014-08-19  Richard Biener  <rguenther@suse.de>
15351
15352         * gimple-fold.c (fold_gimple_assign): Properly build a
15353         null-pointer constant when devirtualizing addresses.
15354
15355 2014-07-07  Mark Wielaard  <mjw@redhat.com>
15356
15357         * dwarf2out.c (decl_quals): New function.
15358         (modified_type_die): Take one cv_quals argument instead of two,
15359         one for const and one for volatile.
15360         (add_type_attribute): Likewise.
15361         (generic_parameter_die): Call add_type_attribute with one modifier
15362         argument.
15363         (base_type_for_mode): Likewise.
15364         (add_bounds_info): Likewise.
15365         (add_subscript_info): Likewise.
15366         (gen_array_type_die): Likewise.
15367         (gen_descr_array_type_die): Likewise.
15368         (gen_entry_point_die): Likewise.
15369         (gen_enumeration_type_die): Likewise.
15370         (gen_formal_parameter_die): Likewise.
15371         (gen_subprogram_die): Likewise.
15372         (gen_variable_die): Likewise.
15373         (gen_const_die): Likewise.
15374         (gen_field_die): Likewise.
15375         (gen_pointer_type_die): Likewise.
15376         (gen_reference_type_die): Likewise.
15377         (gen_ptr_to_mbr_type_die): Likewise.
15378         (gen_inheritance_die): Likewise.
15379         (gen_subroutine_type_die): Likewise.
15380         (gen_typedef_die): Likewise.
15381         (force_type_die): Likewise.
15382
15383 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15384
15385         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
15386         if unset.
15387         * configure: Regenerate.
15388
15389 2014-08-19  Richard Biener  <rguenther@suse.de>
15390
15391         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
15392         DECL_EXTERNALs in BLOCKs as non-references.
15393         * tree-streamer-out.c (streamer_write_chain): Likewise.
15394
15395 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15396             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15397             Anna Tikhonova  <anna.tikhonova@intel.com>
15398             Ilya Tocar  <ilya.tocar@intel.com>
15399             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15400             Ilya Verbin  <ilya.verbin@intel.com>
15401             Kirill Yukhin  <kirill.yukhin@intel.com>
15402             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15403
15404         * config/i386/sse.md
15405         (define_mode_iterator VI48_AVX512F): Delete.
15406         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
15407         (define_mode_iterator VI2_AVX512VL): Ditto.
15408         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
15409         Delete.
15410         (define_insn
15411         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
15412         New.
15413         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
15414         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
15415         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
15416         with VI48_AVX512F_AVX512VL): New.
15417         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
15418         with VI2_AVX512VL): Ditto.
15419
15420 2014-08-19  Marek Polacek  <polacek@redhat.com>
15421
15422         * doc/invoke.texi: Document -Wc99-c11-compat.
15423
15424 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15425
15426         * rtl.h (PREV_INSN): Split macro in two: the existing one,
15427         for rvalues, and...
15428         (SET_PREV_INSN): New macro, for use as an lvalue.
15429         (NEXT_INSN, SET_NEXT_INSN): Likewise.
15430
15431         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
15432         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
15433         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
15434         (fixup_abnormal_edges): Likewise.
15435         (unlink_insn_chain): Likewise.
15436         (fixup_reorder_chain): Likewise.
15437         (cfg_layout_delete_block): Likewise.
15438         (cfg_layout_merge_blocks): Likewise.
15439         * combine.c (update_cfg_for_uncondjump): Likewise.
15440         * emit-rtl.c (link_insn_into_chain): Likewise.
15441         (remove_insn): Likewise.
15442         (delete_insns_since): Likewise.
15443         (reorder_insns_nobb): Likewise.
15444         (emit_insn_after_1): Likewise.
15445         * final.c (rest_of_clean_state): Likewise.
15446         (final_scan_insn): Likewise.
15447         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
15448         * haifa-sched.c (concat_note_lists): Likewise.
15449         (remove_notes): Likewise.
15450         (restore_other_notes): Likewise.
15451         (move_insn): Likewise.
15452         (unlink_bb_notes): Likewise.
15453         (restore_bb_notes): Likewise.
15454         * jump.c (delete_for_peephole): Likewise.
15455         * optabs.c (emit_libcall_block_1): Likewise.
15456         * reorg.c (emit_delay_sequence): Likewise.
15457         (fill_simple_delay_slots): Likewise.
15458         * sel-sched-ir.c (sel_move_insn): Likewise.
15459         (sel_remove_insn): Likewise.
15460         (get_bb_note_from_pool): Likewise.
15461         * sel-sched.c (move_nop_to_previous_block): Likewise.
15462
15463         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
15464         * config/c6x/c6x.c (gen_one_bundle): Likewise.
15465         (c6x_gen_bundles): Likewise.
15466         (hwloop_optimize): Likewise.
15467         * config/frv/frv.c (frv_function_prologue): Likewise.
15468         (frv_register_nop): Likewise.
15469         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
15470         (ia64_reorg): Likewise.
15471         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
15472         (mep_make_bundle): Likewise.
15473         (mep_bundle_insns): Likewise.
15474         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
15475         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
15476         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
15477
15478 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
15479
15480         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
15481         return type from rtx to rtx_insn *.
15482         (BB_END): Likewise.
15483         (BB_HEADER): Likewise.
15484         (BB_FOOTER): Likewise.
15485         (SET_BB_HEAD): Convert to a function.
15486         (SET_BB_END): Likewise.
15487         (SET_BB_HEADER): Likewise.
15488         (SET_BB_FOOTER): Likewise.
15489
15490         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
15491         Strengthen the return type from rtx to rtx_insn *.  For now, this
15492         is done by adding a checked cast, but this will eventually
15493         become a field lookup.
15494         (BB_END): Likewise.
15495         (BB_HEADER): Likewise.
15496         (BB_FOOTER): Likewise.
15497         (SET_BB_HEAD): New function, from macro of same name.  This is
15498         intended for use as an lvalue, and so returns an rtx& to allow
15499         in-place modification.
15500         (SET_BB_END): Likewise.
15501         (SET_BB_HEADER): Likewise.
15502         (SET_BB_FOOTER): Likewise.
15503
15504 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15505
15506         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
15507         for rvalues, and...
15508         (SET_BB_HEAD): New macro, for use as a lvalue.
15509         (BB_END, SET_BB_END): Likewise.
15510         (BB_HEADER, SET_BB_HEADER): Likewise.
15511         (BB_FOOTER, SET_BB_FOOTER): Likewise.
15512
15513         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
15514         of BB_* macros into SET_BB_* macros.
15515         (fix_crossing_unconditional_branches): Likewise.
15516         * caller-save.c (save_call_clobbered_regs): Likewise.
15517         (insert_one_insn): Likewise.
15518         * cfgbuild.c (find_bb_boundaries): Likewise.
15519         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
15520         (outgoing_edges_match): Likewise.
15521         (try_optimize_cfg): Likewise.
15522         * cfgexpand.c (expand_gimple_cond): Likewise.
15523         (expand_gimple_tailcall): Likewise.
15524         (expand_gimple_basic_block): Likewise.
15525         (construct_exit_block): Likewise.
15526         * cfgrtl.c (delete_insn): Likewise.
15527         (create_basic_block_structure): Likewise.
15528         (rtl_delete_block): Likewise.
15529         (rtl_split_block): Likewise.
15530         (emit_nop_for_unique_locus_between): Likewise.
15531         (rtl_merge_blocks): Likewise.
15532         (block_label): Likewise.
15533         (try_redirect_by_replacing_jump): Likewise.
15534         (emit_barrier_after_bb): Likewise.
15535         (fixup_abnormal_edges): Likewise.
15536         (record_effective_endpoints): Likewise.
15537         (relink_block_chain): Likewise.
15538         (fixup_reorder_chain): Likewise.
15539         (fixup_fallthru_exit_predecessor): Likewise.
15540         (cfg_layout_duplicate_bb): Likewise.
15541         (cfg_layout_split_block): Likewise.
15542         (cfg_layout_delete_block): Likewise.
15543         (cfg_layout_merge_blocks): Likewise.
15544         * combine.c (update_cfg_for_uncondjump): Likewise.
15545         * emit-rtl.c (add_insn_after): Likewise.
15546         (remove_insn): Likewise.
15547         (reorder_insns): Likewise.
15548         (emit_insn_after_1): Likewise.
15549         * haifa-sched.c (get_ebb_head_tail): Likewise.
15550         (restore_other_notes): Likewise.
15551         (move_insn): Likewise.
15552         (sched_extend_bb): Likewise.
15553         (fix_jump_move): Likewise.
15554         * ifcvt.c (noce_process_if_block): Likewise.
15555         (dead_or_predicable): Likewise.
15556         * ira.c (update_equiv_regs): Likewise.
15557         * reg-stack.c (change_stack): Likewise.
15558         * sel-sched-ir.c (sel_move_insn): Likewise.
15559         * sel-sched.c (move_nop_to_previous_block): Likewise.
15560
15561         * config/c6x/c6x.c (hwloop_optimize): Likewise.
15562         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
15563
15564 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15565
15566         * rtl.h (for_each_rtx_in_insn): New function.
15567         * rtlanal.c (for_each_rtx_in_insn): Likewise.
15568
15569 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15570
15571         * coretypes.h (class rtx_insn): Add forward declaration.
15572
15573         * rtl.h: Include is-a.h.
15574         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
15575         workaround to ensure gengtype knows inheritance is occurring,
15576         whilst continuing to use the pre-existing special-casing for
15577         rtx_def.
15578         (class rtx_insn): New subclass of rtx_def, adding the
15579         invariant that we're dealing with something we can sanely use
15580         INSN_UID, NEXT_INSN, PREV_INSN on.
15581         (is_a_helper <rtx_insn *>::test): New.
15582         (is_a_helper <const rtx_insn *>::test): New.
15583
15584 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
15585
15586         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
15587
15588 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
15589
15590         * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
15591         comdats as extern.
15592
15593 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
15594
15595         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
15596         to BUILT_IN_UNREACHABLE.
15597
15598 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
15599
15600         PR target/62011
15601         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
15602         New tune flag.
15603         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
15604         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
15605         (ffs<mode>2): Do not expand with tzcnt for
15606         TARGET_AVOID_FALSE_DEP_FOR_BMI.
15607         (ffssi2_no_cmove): Ditto.
15608         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
15609         (ctz<mode>2): New expander.
15610         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
15611         (*ctz<mode>2_falsedep): New insn.
15612         (*ctz<mode>2): Rename from ctz<mode>2.
15613         (clz<mode>2_lzcnt): New expander.
15614         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
15615         (*clz<mode>2_lzcnt_falsedep): New insn.
15616         (*clz<mode>2): Rename from ctz<mode>2.
15617         (popcount<mode>2): New expander.
15618         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
15619         (*popcount<mode>2_falsedep): New insn.
15620         (*popcount<mode>2): Rename from ctz<mode>2.
15621         (*popcount<mode>2_cmp): Remove.
15622         (*popcountsi2_cmp_zext): Ditto.
15623
15624 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
15625
15626         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
15627         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
15628         * config/microblaze/microblaze.h
15629         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
15630
15631 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
15632
15633         PR other/62168
15634         * configure.ac: Set install_gold_as_default to no for
15635         --enable-gold=no.
15636         * configure: Regenerated.
15637
15638 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
15639
15640         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
15641         * config.in: Add undef of HAVE_isl.
15642         * configure: Regenerate.
15643         * configure.ac: Add definition of HAVE_isl.
15644         * graphite-blocking.c: Add checking of HAVE_isl.
15645         * graphite-dependences.c: Likewise.
15646         * graphite-interchange.c: Likewise.
15647         * graphite-isl-ast-to-gimple.c: Likewise.
15648         * graphite-optimize-isl.c: Likewise.
15649         * graphite-poly.c: Likewise.
15650         * graphite-scop-detection.c: Likewise.
15651         * graphite-sese-to-poly.c: Likewise.
15652         * graphite.c: Likewise.
15653         * toplev.c: Replace the checking of HAVE_cloog with the checking
15654         of HAVE_isl.
15655
15656 2014-08-18  Richard Biener  <rguenther@suse.de>
15657
15658         PR tree-optimization/62090
15659         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
15660         (fold_builtin_3): Do not fold snprintf.
15661         (fold_builtin_4): Likewise.
15662         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
15663         moved from builtins.c.
15664         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
15665         (gimple_fold_builtin): Do not fold sprintf here.
15666
15667 2014-08-18  Richard Biener  <rguenther@suse.de>
15668
15669         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
15670         code to ...
15671         (maybe_canonicalize_mem_ref_addr): ... this function.
15672         (fold_stmt_1): Apply it here before all simplification.
15673
15674 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
15675
15676         PR ipa/61800
15677         * cgraph.h (cgraph_node::create_indirect_edge): Add
15678         compute_indirect_info param.
15679         * cgraph.c (cgraph_node::create_indirect_edge): Compute
15680         indirect_info only when it is required.
15681         * cgraphclones.c (cgraph_clone_edge): Do not recompute
15682         indirect_info fore cloned indirect edge.
15683
15684 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15685             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15686             Anna Tikhonova  <anna.tikhonova@intel.com>
15687             Ilya Tocar  <ilya.tocar@intel.com>
15688             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15689             Ilya Verbin  <ilya.verbin@intel.com>
15690             Kirill Yukhin  <kirill.yukhin@intel.com>
15691             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15692
15693         * config/i386/sse.md
15694         (define_mode_iterator VI8_AVX2_AVX512BW): New.
15695         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
15696
15697 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15698             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15699             Anna Tikhonova  <anna.tikhonova@intel.com>
15700             Ilya Tocar  <ilya.tocar@intel.com>
15701             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15702             Ilya Verbin  <ilya.verbin@intel.com>
15703             Kirill Yukhin  <kirill.yukhin@intel.com>
15704             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15705
15706         * config/i386/sse.md
15707         (define_mode_iterator VF1_AVX512VL): New.
15708         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
15709         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
15710         New.
15711
15712 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15713             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15714             Anna Tikhonova  <anna.tikhonova@intel.com>
15715             Ilya Tocar  <ilya.tocar@intel.com>
15716             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15717             Ilya Verbin  <ilya.verbin@intel.com>
15718             Kirill Yukhin  <kirill.yukhin@intel.com>
15719             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15720
15721         * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
15722         * config/i386/i386.md
15723         (define_code_iterator any_float): New.
15724         (define_code_attr floatsuffix): New.
15725         * config/i386/sse.md
15726         (define_mode_iterator VF1_128_256VL): New.
15727         (define_mode_iterator VF2_512_256VL): New.
15728         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
15729         TARGET check.
15730         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
15731         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
15732         New.
15733         (define_mode_attr qq2pssuff): New.
15734         (define_mode_attr sselongvecmode): New.
15735         (define_mode_attr sselongvecmodelower): New.
15736         (define_mode_attr sseintvecmode3): New.
15737         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
15738         New.
15739         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
15740         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
15741         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
15742         (define_insn "ufloatv2siv2df2<mask_name>"): New.
15743
15744 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15745             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15746             Anna Tikhonova  <anna.tikhonova@intel.com>
15747             Ilya Tocar  <ilya.tocar@intel.com>
15748             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15749             Ilya Verbin  <ilya.verbin@intel.com>
15750             Kirill Yukhin  <kirill.yukhin@intel.com>
15751             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15752
15753         * config/i386/sse.md
15754         (define_mode_iterator VF2_AVX512VL): New.
15755         (define_mode_attr sseintvecmode2): New.
15756         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
15757         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
15758         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
15759         (define_insn
15760         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
15761         Ditto.
15762         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
15763         Ditto.
15764         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
15765         Ditto.
15766
15767 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15768             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15769             Anna Tikhonova  <anna.tikhonova@intel.com>
15770             Ilya Tocar  <ilya.tocar@intel.com>
15771             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15772             Ilya Verbin  <ilya.verbin@intel.com>
15773             Kirill Yukhin  <kirill.yukhin@intel.com>
15774             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15775
15776         * config/i386/i386.md
15777         (define_insn "*movoi_internal_avx"): Add evex version.
15778         (define_insn "*movti_internal"): Ditto.
15779
15780 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15781             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15782             Anna Tikhonova  <anna.tikhonova@intel.com>
15783             Ilya Tocar  <ilya.tocar@intel.com>
15784             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15785             Ilya Verbin  <ilya.verbin@intel.com>
15786             Kirill Yukhin  <kirill.yukhin@intel.com>
15787             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15788
15789         * config/i386/i386.md
15790         (define_attr "isa"): Add avx512dq, noavx512dq.
15791         (define_attr "enabled"): Ditto.
15792         * config/i386/sse.md
15793         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
15794
15795 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15796             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15797             Anna Tikhonova  <anna.tikhonova@intel.com>
15798             Ilya Tocar  <ilya.tocar@intel.com>
15799             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15800             Ilya Verbin  <ilya.verbin@intel.com>
15801             Kirill Yukhin  <kirill.yukhin@intel.com>
15802             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15803
15804         * config/i386/i386.c
15805         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
15806         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
15807         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
15808         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
15809         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
15810         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
15811         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
15812         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
15813         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
15814         * config/i386/sse.md
15815         (define_mode_iterator VMOVE): Allow V4TI mode.
15816         (define_mode_iterator V_AVX512VL): New.
15817         (define_mode_iterator V): New handling for AVX512VL.
15818         (define_insn "avx512f_load<mode>_mask"): Delete.
15819         (define_insn "<avx512>_load<mode>_mask"): New.
15820         (define_insn "avx512f_store<mode>_mask"): Delete.
15821         (define_insn "<avx512>_store<mode>_mask"): New.
15822
15823
15824 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
15825
15826         PR sanitizer/62089
15827         * asan.c (instrument_derefs): Fix bitfield check.
15828
15829 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15830
15831         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
15832         * config/rs6000/htm.md (ttest): Remove clobber.
15833         * config/rs6000/predicates.md (any_mask_operand): New predicate.
15834         (and_operand): Reformat.
15835         (and_2rld_operand): New predicate.
15836         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
15837         parameter.
15838         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
15839         parameter.  Handle AND directly.
15840         (rs6000_split_logical_di): Remove last parameter.
15841         (rs6000_split_logical): Remove last parameter.  Remove obsolete
15842         comment.
15843         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
15844         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
15845         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
15846         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
15847         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
15848         and 5 anonymous splitters):  Delete.
15849         (and<mode>3): New expander.
15850         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
15851         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
15852         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
15853         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
15854         (floatdisf2_internal1): Remove clobbers.
15855         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
15856         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
15857         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
15858         (and<mode>3 for BOOL_128): Remove clobber.
15859         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
15860         rs6000_split_logical.
15861         (*bool<mode>3_internal for BOOL_128): Adjust call of
15862         rs6000_split_logical.
15863         (*boolc<mode>3_internal1 for BOOL_128,
15864         *boolc<mode>3_internal2 for BOOL_128,
15865         *boolcc<mode>3_internal1 for BOOL_128,
15866         *boolcc<mode>3_internal2 for BOOL_128,
15867         *eqv<mode>3_internal1 for BOOL_128,
15868         *eqv<mode>3_internal2 for BOOL_128,
15869         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
15870         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
15871         clobber.
15872         (*vec_reload_and_reg_<mptrsize>): Delete.
15873
15874 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15875
15876         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
15877         and split, *boolccsi3_internal3 and split): Delete.
15878         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
15879         *boolccdi3_internal3 and split): Delete.
15880         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
15881         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
15882
15883 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15884
15885         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
15886         and split, *boolcsi3_internal3 and split): Delete.
15887         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
15888         *boolcdi3_internal3 and split): Delete.
15889         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
15890
15891 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
15892
15893         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
15894         <'u'>: Also support printing the low-order 16 bits.
15895         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
15896         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
15897         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
15898         *booldi3_internal3 and split): Delete.
15899         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
15900         *bool<mode>3_dot2): New.
15901         (two anonymous define_splits for non_logical_cint_operand): Merge.
15902
15903 2014-08-17  Marek Polacek  <polacek@redhat.com>
15904             Manuel López-Ibáñez  <manu@gcc.gnu.org>
15905
15906         PR c/62059
15907         * diagnostic.c (adjust_line): Add gcc_checking_assert.
15908         (diagnostic_show_locus): Don't print caret diagnostic
15909         if a column is larger than the line_width.
15910
15911 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
15912
15913         * common.opt: Make the ISL AST generator to be the main code generator
15914         of Graphite.
15915
15916 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
15917
15918         * wide-int.h (generic_wide_int): Declare as class instead of struct.
15919
15920 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
15921
15922         PR target/61641
15923         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
15924         Declare.
15925         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
15926         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
15927         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
15928         Define.
15929         * config/pa/pa.md (begin_brtab): Delete insn.
15930         (end_brtab): Likewise.
15931
15932 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15933
15934         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
15935
15936 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
15937
15938         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
15939         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
15940         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
15941         (get_dynamic_type): Remove.
15942         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
15943         (clear_speculation): Bring to ipa-deivrt.h
15944         (get_class_context): Rename to ...
15945         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
15946         (contains_type_p): Update.
15947         (get_dynamic_type): Rename to ...
15948         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
15949         (possible_polymorphic_call_targets): UPdate.
15950         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
15951         * ipa-prop.c (ipa_analyze_call_uses): Update.
15952
15953 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
15954
15955         * doc/invoke.texi (SH options): Document missing processor variant
15956         options.  Remove references to Hitachi.  Undocument deprecated mspace
15957         option.
15958
15959 2014-08-15  Jason Merrill  <jason@redhat.com>
15960
15961         * tree.c (type_hash_canon): Uncomment assert.
15962
15963 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15964
15965         * input.h (in_system_header_at): Add comment.
15966
15967 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15968
15969         PR fortran/44054
15970         * diagnostic.c (build_message_string): Make it extern.
15971         * diagnostic.h (build_message_string): Make it extern.
15972
15973 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
15974
15975         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
15976         load/store from/to non-floating class pseudo.
15977
15978 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15979
15980         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
15981
15982 2014-08-15  Richard Biener  <rguenther@suse.de>
15983
15984         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
15985         (get_constraint_for_ssa_var): Remove dead code.
15986         (get_constraint_for_1): Adjust.
15987         (find_what_var_points_to): Likewise.
15988         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
15989
15990 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
15991
15992         PR target/61878
15993         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
15994         (_mm512_mask_cmpge_epu32_mask): Ditto.
15995         (_mm512_cmpge_epu32_mask): Ditto.
15996         (_mm512_mask_cmpge_epi64_mask): Ditto.
15997         (_mm512_cmpge_epi64_mask): Ditto.
15998         (_mm512_mask_cmpge_epu64_mask): Ditto.
15999         (_mm512_cmpge_epu64_mask): Ditto.
16000         (_mm512_mask_cmple_epi32_mask): Ditto.
16001         (_mm512_cmple_epi32_mask): Ditto.
16002         (_mm512_mask_cmple_epu32_mask): Ditto.
16003         (_mm512_cmple_epu32_mask): Ditto.
16004         (_mm512_mask_cmple_epi64_mask): Ditto.
16005         (_mm512_cmple_epi64_mask): Ditto.
16006         (_mm512_mask_cmple_epu64_mask): Ditto.
16007         (_mm512_cmple_epu64_mask): Ditto.
16008         (_mm512_mask_cmplt_epi32_mask): Ditto.
16009         (_mm512_cmplt_epi32_mask): Ditto.
16010         (_mm512_mask_cmplt_epu32_mask): Ditto.
16011         (_mm512_cmplt_epu32_mask): Ditto.
16012         (_mm512_mask_cmplt_epi64_mask): Ditto.
16013         (_mm512_cmplt_epi64_mask): Ditto.
16014         (_mm512_mask_cmplt_epu64_mask): Ditto.
16015         (_mm512_cmplt_epu64_mask): Ditto.
16016         (_mm512_mask_cmpneq_epi32_mask): Ditto.
16017         (_mm512_mask_cmpneq_epu32_mask): Ditto.
16018         (_mm512_cmpneq_epu32_mask): Ditto.
16019         (_mm512_mask_cmpneq_epi64_mask): Ditto.
16020         (_mm512_cmpneq_epi64_mask): Ditto.
16021         (_mm512_mask_cmpneq_epu64_mask): Ditto.
16022         (_mm512_cmpneq_epu64_mask): Ditto.
16023         (_mm512_castpd_ps): Ditto.
16024         (_mm512_castpd_si512): Ditto.
16025         (_mm512_castps_pd): Ditto.
16026         (_mm512_castps_si512): Ditto.
16027         (_mm512_castsi512_ps): Ditto.
16028         (_mm512_castsi512_pd): Ditto.
16029         (_mm512_castpd512_pd128): Ditto.
16030         (_mm512_castps512_ps128): Ditto.
16031         (_mm512_castsi512_si128): Ditto.
16032         (_mm512_castpd512_pd256): Ditto.
16033         (_mm512_castps512_ps256): Ditto.
16034         (_mm512_castsi512_si256): Ditto.
16035         (_mm512_castpd128_pd512): Ditto.
16036         (_mm512_castps128_ps512): Ditto.
16037         (_mm512_castsi128_si512): Ditto.
16038         (_mm512_castpd256_pd512): Ditto.
16039         (_mm512_castps256_ps512): Ditto.
16040         (_mm512_castsi256_si512): Ditto.
16041         (_mm512_cmpeq_epu32_mask): Ditto.
16042         (_mm512_mask_cmpeq_epu32_mask): Ditto.
16043         (_mm512_mask_cmpeq_epu64_mask): Ditto.
16044         (_mm512_cmpeq_epu64_mask): Ditto.
16045         (_mm512_cmpgt_epu32_mask): Ditto.
16046         (_mm512_mask_cmpgt_epu32_mask): Ditto.
16047         (_mm512_mask_cmpgt_epu64_mask): Ditto.
16048         (_mm512_cmpgt_epu64_mask): Ditto.
16049         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
16050         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
16051         * config/i386/i386.c (enum ix86_builtins): Add
16052         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
16053         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
16054         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
16055         (bdesc_args): Add __builtin_ia32_si512_256si,
16056         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
16057         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
16058         __builtin_ia32_pd512_pd.
16059         (ix86_expand_args_builtin): Handle new FTYPEs.
16060         * config/i386/sse.md (castmode): Add 512-bit modes.
16061         (AVX512MODE2P): New.
16062         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
16063         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
16064
16065 2014-08-15  Richard Biener  <rguenther@suse.de>
16066
16067         * fold-const.c (tree_swap_operands_p): Put all constants
16068         last, also strip sign-changing NOPs when considering further
16069         canonicalization.  Canonicalize also when optimizing for size.
16070
16071 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16072
16073         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
16074         one_match > zero_match case to just before simple_sequence.
16075
16076 2014-08-15  Richard Biener  <rguenther@suse.de>
16077
16078         * data-streamer.h (streamer_string_index, string_for_index):
16079         Remove.
16080         * data-streamer-out.c (streamer_string_index): Make static.
16081         * data-streamer-in.c (string_for_index): Likewise.
16082         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
16083         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
16084
16085 2014-08-15  Richard Biener  <rguenther@suse.de>
16086
16087         PR tree-optimization/62031
16088         * tree-data-ref.c (dr_analyze_indices): Do not set
16089         DR_UNCONSTRAINED_BASE.
16090         (dr_may_alias_p): All indirect accesses have to go the
16091         formerly DR_UNCONSTRAINED_BASE path.
16092         * tree-data-ref.h (struct indices): Remove
16093         unconstrained_base member.
16094         (DR_UNCONSTRAINED_BASE): Remove.
16095
16096 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
16097
16098         PR middle-end/62092
16099         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
16100         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
16101         in OMP_CLAUSE_MAP in some outer target region.
16102
16103 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
16104
16105         * tree-ssa-loop-ivopts.c (ivopts_data): New field
16106         name_expansion_cache.
16107         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
16108         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
16109         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
16110         (difference_cannot_overflow_p): New parameter.  Use affine
16111         expansion for equality check.
16112         (iv_elimination_compare_lt): Pass new argument.
16113
16114 2014-08-14  DJ Delorie  <dj@redhat.com>
16115
16116         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
16117         variables to the accumulator.
16118
16119         * config/rl78/predicates.md (rl78_near_mem_operand): New.
16120         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
16121         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
16122         with far-far moves.
16123
16124         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
16125         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
16126         (umulqihi3_virt): Likewise.
16127         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
16128         (umulqihi3_real): Likewise.
16129
16130         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
16131
16132 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
16133
16134         PR tree-optimization/62091
16135         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
16136         function_entry_reached.
16137         (walk_aliased_vdefs): Clear it here.
16138         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
16139
16140 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
16141
16142         * ipa-utils.h (compare_virtual_tables): Declare.
16143         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
16144
16145 2014-08-14  Marek Polacek  <polacek@redhat.com>
16146
16147         DR 458
16148         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
16149         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
16150
16151 2014-08-14  Tom de Vries  <tom@codesourcery.com>
16152
16153         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
16154
16155 2014-08-14  Tom de Vries  <tom@codesourcery.com>
16156
16157         PR rtl-optimization/62004
16158         PR rtl-optimization/62030
16159         * ifcvt.c (rtx_interchangeable_p): New function.
16160         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
16161         * emit-rtl.h (mem_attrs_eq_p): Declare.
16162
16163 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
16164
16165         * graphite-scop-detection.c:
16166         Add inclusion of cp-tree.h.
16167         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
16168         in case they are pointers to object types
16169
16170 2014-08-14  Richard Biener  <rguenther@suse.de>
16171
16172         * BASE-VER: Change to 5.0.0
16173
16174 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16175             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16176             Anna Tikhonova  <anna.tikhonova@intel.com>
16177             Ilya Tocar  <ilya.tocar@intel.com>
16178             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16179             Ilya Verbin  <ilya.verbin@intel.com>
16180             Kirill Yukhin  <kirill.yukhin@intel.com>
16181             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16182
16183         * config/i386/sse.md (define_mode_attr avx512): New.
16184         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
16185         V4DI modes.
16186         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
16187         (define_mode_attr ssse3_avx2): Ditto.
16188         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
16189         (define_mode_attr avx2_avx512bw): New.
16190         (define_mode_attr ssedoublemodelower): New.
16191         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
16192         V32HI, V64QI modes.
16193         (define_mode_attr ssebytemode): Allow V8DI modes.
16194         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
16195         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
16196         (define_mode_attr ssePSmode2): New.
16197         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
16198         V16HI, V32HI modes.
16199         (define_mode_attr dbpsadbwmode): New.
16200         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
16201         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
16202         (vi8_sse4_1_avx2_avx512): New.
16203         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
16204         mode attribute.
16205         (define_mode_attr blendbits): Move before its immediate use.
16206
16207 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16208             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16209             Anna Tikhonova  <anna.tikhonova@intel.com>
16210             Ilya Tocar  <ilya.tocar@intel.com>
16211             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16212             Ilya Verbin  <ilya.verbin@intel.com>
16213             Kirill Yukhin  <kirill.yukhin@intel.com>
16214             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16215
16216         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
16217         * config/i386/subst.md
16218         (define_mode_iterator SUBST_V): Update.
16219         (define_mode_iterator SUBST_A): Ditto.
16220         (define_subst_attr "mask_operand7"): New.
16221         (define_subst_attr "mask_operand10"): New.
16222         (define_subst_attr "mask_operand_arg34") : New.
16223         (define_subst_attr "mask_expand_op3"): New.
16224         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
16225         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
16226         (define_subst_attr "mask_avx512vl_condition"): New.
16227         (define_subst_attr "round_mask_operand4"): Ditto.
16228         (define_subst_attr "round_mask_scalar_op3"): Delete.
16229         (define_subst_attr "round_mask_op4"): New.
16230         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
16231         V16SImode.
16232         (define_subst_attr "round_modev8sf_condition"): New.
16233         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
16234         <MODE>mode.
16235         (define_subst_attr "round_saeonly_mask_operand4"): New.
16236         (define_subst_attr "round_saeonly_mask_op4"): New.
16237         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
16238         V8DImode, V16SImode.
16239         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
16240         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
16241         (define_subst_attr "mask_expand4_args"): New.
16242         (define_subst "mask_expand4"): New.
16243
16244 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16245             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16246             Anna Tikhonova  <anna.tikhonova@intel.com>
16247             Ilya Tocar  <ilya.tocar@intel.com>
16248             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16249             Ilya Verbin  <ilya.verbin@intel.com>
16250             Kirill Yukhin  <kirill.yukhin@intel.com>
16251             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16252
16253         * config/i386/i386.md
16254         (define_attr "isa"): Add avx512bw,noavx512bw.
16255         (define_attr "enabled"): Ditto.
16256         (define_split): Add 32/64-bit mask logic.
16257         (define_insn "*k<logic>qi"): New.
16258         (define_insn "*k<logic>hi"): New.
16259         (define_insn "*anddi_1"): Add mask version.
16260         (define_insn "*andsi_1"): Ditto.
16261         (define_insn "*<code><mode>_1"): Ditto.
16262         (define_insn "*<code>hi_1"): Ditto.
16263         (define_insn "kxnor<mode>"): New.
16264         (define_insn "kunpcksi"): New.
16265         (define_insn "kunpckdi"): New.
16266         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
16267         (define_insn "*one_cmplhi2_1"): Ditto.
16268
16269 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16270             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16271             Anna Tikhonova  <anna.tikhonova@intel.com>
16272             Ilya Tocar  <ilya.tocar@intel.com>
16273             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16274             Ilya Verbin  <ilya.verbin@intel.com>
16275             Kirill Yukhin  <kirill.yukhin@intel.com>
16276             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16277
16278         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
16279         V32HImode.
16280
16281 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16282             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16283             Anna Tikhonova  <anna.tikhonova@intel.com>
16284             Ilya Tocar  <ilya.tocar@intel.com>
16285             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16286             Ilya Verbin  <ilya.verbin@intel.com>
16287             Kirill Yukhin  <kirill.yukhin@intel.com>
16288             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16289
16290         * config/i386/i386.c (print_reg): Ð¡orrectly print 64-bit mask
16291         registers.
16292         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
16293         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
16294         xmm/ymm16+ when availble.
16295         * config/i386/i386.h
16296         (HARD_REGNO_NREGS): Add mask regs.
16297         (VALID_AVX512F_REG_MODE): Ditto.
16298         (VALID_AVX512F_REG_MODE) : Define.
16299         (VALID_MASK_AVX512BW_MODE): Ditto.
16300         (reg_class) (MASK_REG_P(X)): Define.
16301         * config/i386/i386.md: Do not split long moves with mask register,
16302         use kmovb if avx512bw is availible.
16303         (movdi_internal): Handle mask registers.
16304
16305 2014-08-14  Richard Biener  <rguenther@suse.de>
16306
16307         PR tree-optimization/62081
16308         * tree-ssa-loop.c (pass_fix_loops): New pass.
16309         (pass_tree_loop::gate):  Do not fixup loops here.
16310         * tree-pass.h (make_pass_fix_loops): Declare.
16311         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
16312
16313 2014-08-14  Richard Biener  <rguenther@suse.de>
16314
16315         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
16316         (type_hash_canon): ... this and avoid 2nd lookup for the add.
16317
16318 2014-08-14  Richard Biener  <rguenther@suse.de>
16319
16320         PR tree-optimization/62090
16321         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
16322         (fold_builtin_2): Do not fold sprintf.
16323         (fold_builtin_3): Likewise.
16324         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
16325         moved from builtins.c.
16326         (gimple_fold_builtin): Fold sprintf.
16327
16328 2014-08-14  Richard Biener  <rguenther@suse.de>
16329
16330         PR rtl-optimization/62079
16331         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
16332         run cleanup_cfg.
16333
16334 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
16335
16336         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
16337         current_function_decl.
16338
16339 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
16340
16341         * cgraph.c (cgraph_node::function_symbol): Fix wrong
16342         cgraph_function_node to cgraph_node::function_symbol
16343         refactoring.
16344
16345 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16346
16347         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
16348         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
16349
16350 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
16351
16352         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
16353         warning.
16354
16355 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
16356
16357         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
16358         generator.
16359
16360 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
16361
16362         PR target/62025
16363         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
16364         any registers that are used in mem_insn.
16365
16366 2014-08-12  Steve Ellcey  <sellcey@mips.com>
16367
16368         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
16369
16370 2014-08-12  Steve Ellcey  <sellcey@mips.com>
16371
16372         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
16373         (MULTILIB_DIRNAMES): Ditto.
16374         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
16375         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
16376         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
16377         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
16378         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
16379         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
16380
16381 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16382
16383         PR target/61413
16384         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
16385         of __ARM_SIZEOF_WCHAR_T.
16386
16387 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16388
16389         PR target/62098
16390         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
16391         Remove unnecessary attributes.
16392
16393 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
16394
16395         * internal-fn.c (init_internal_fns): Fix off-by-one.
16396
16397 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16398             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16399             Anna Tikhonova  <anna.tikhonova@intel.com>
16400             Ilya Tocar  <ilya.tocar@intel.com>
16401             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16402             Ilya Verbin  <ilya.verbin@intel.com>
16403             Kirill Yukhin  <kirill.yukhin@intel.com>
16404             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16405
16406         * config/i386/i386.c (standard_sse_constant_opcode): Use
16407         vpxord/vpternlog if avx512 is availible.
16408
16409 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16410
16411         PR middle-end/62103
16412         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
16413         bitfields, that is when size doesn't match the size of type or the
16414         size of the constructor.
16415
16416 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
16417
16418         * config/rs6000/constraints.md (wh constraint): New constraint,
16419         for FP registers if direct move is available.
16420         (wi constraint): New constraint, for VSX/FP registers that can
16421         handle 64-bit integers.
16422         (wj constraint): New constraint for VSX/FP registers that can
16423         handle 64-bit integers for direct moves.
16424         (wk constraint): New constraint for VSX/FP registers that can
16425         handle 64-bit doubles for direct moves.
16426         (wy constraint): Make documentation match implementation.
16427
16428         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
16429         scalar_in_vmx_p field to simplify tests of whether SFmode or
16430         DFmode can go in the Altivec registers.
16431         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
16432         (rs6000_setup_reg_addr_masks): Likewise.
16433         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
16434         field, and wh/wi/wj/wk constraints.
16435         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
16436         the wh/wi/wj/wk constraints.
16437         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
16438         upper registers, prefer VSX registers unless the operation is a
16439         memory operation with REG+OFFSET addressing.
16440
16441         * config/rs6000/vsx.md (VSr mode attribute): Add support for
16442         DImode.  Change SFmode to use ww constraint instead of d to allow
16443         SF registers in the upper registers.
16444         (VSr2): Likewise.
16445         (VSr3): Likewise.
16446         (VSr5): Fix thinko in comment.
16447         (VSa): New mode attribute that is an alternative to wa, that
16448         returns the VSX register class that a mode can go in, but may not
16449         be the preferred register class.
16450         (VS_64dm): New mode attribute for appropriate register classes for
16451         referencing 64-bit elements of vectors for direct moves and normal
16452         moves.
16453         (VS_64reg): Likewise.
16454         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
16455         register allocator to only registers the data type can handle.
16456         (vsx_le_perm_load_<mode>): Likewise.
16457         (vsx_le_perm_store_<mode>): Likewise.
16458         (vsx_xxpermdi2_le_<mode>): Likewise.
16459         (vsx_xxpermdi4_le_<mode>): Likewise.
16460         (vsx_lxvd2x2_le_<mode>): Likewise.
16461         (vsx_lxvd2x4_le_<mode>): Likewise.
16462         (vsx_stxvd2x2_le_<mode>): Likewise.
16463         (vsx_add<mode>3): Likewise.
16464         (vsx_sub<mode>3): Likewise.
16465         (vsx_mul<mode>3): Likewise.
16466         (vsx_div<mode>3): Likewise.
16467         (vsx_tdiv<mode>3_internal): Likewise.
16468         (vsx_fre<mode>2): Likewise.
16469         (vsx_neg<mode>2): Likewise.
16470         (vsx_abs<mode>2): Likewise.
16471         (vsx_nabs<mode>2): Likewise.
16472         (vsx_smax<mode>3): Likewise.
16473         (vsx_smin<mode>3): Likewise.
16474         (vsx_sqrt<mode>2): Likewise.
16475         (vsx_rsqrte<mode>2): Likewise.
16476         (vsx_tsqrt<mode>2_internal): Likewise.
16477         (vsx_fms<mode>4): Likewise.
16478         (vsx_nfma<mode>4): Likewise.
16479         (vsx_eq<mode>): Likewise.
16480         (vsx_gt<mode>): Likewise.
16481         (vsx_ge<mode>): Likewise.
16482         (vsx_eq<mode>_p): Likewise.
16483         (vsx_gt<mode>_p): Likewise.
16484         (vsx_ge<mode>_p): Likewise.
16485         (vsx_xxsel<mode>): Likewise.
16486         (vsx_xxsel<mode>_uns): Likewise.
16487         (vsx_copysign<mode>3): Likewise.
16488         (vsx_float<VSi><mode>2): Likewise.
16489         (vsx_floatuns<VSi><mode>2): Likewise.
16490         (vsx_fix_trunc<mode><VSi>2): Likewise.
16491         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
16492         (vsx_x<VSv>r<VSs>i): Likewise.
16493         (vsx_x<VSv>r<VSs>ic): Likewise.
16494         (vsx_btrunc<mode>2): Likewise.
16495         (vsx_b2trunc<mode>2): Likewise.
16496         (vsx_floor<mode>2): Likewise.
16497         (vsx_ceil<mode>2): Likewise.
16498         (vsx_<VS_spdp_insn>): Likewise.
16499         (vsx_xscvspdp): Likewise.
16500         (vsx_xvcvspuxds): Likewise.
16501         (vsx_float_fix_<mode>2): Likewise.
16502         (vsx_set_<mode>): Likewise.
16503         (vsx_extract_<mode>_internal1): Likewise.
16504         (vsx_extract_<mode>_internal2): Likewise.
16505         (vsx_extract_<mode>_load): Likewise.
16506         (vsx_extract_<mode>_store): Likewise.
16507         (vsx_splat_<mode>): Likewise.
16508         (vsx_xxspltw_<mode>): Likewise.
16509         (vsx_xxspltw_<mode>_direct): Likewise.
16510         (vsx_xxmrghw_<mode>): Likewise.
16511         (vsx_xxmrglw_<mode>): Likewise.
16512         (vsx_xxsldwi_<mode>): Likewise.
16513         (vsx_xscvdpspn): Tighten constraints to only use register classes
16514         the types use.
16515         (vsx_xscvspdpn): Likewise.
16516         (vsx_xscvdpspn_scalar): Likewise.
16517
16518         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
16519         wj, and wk constraints.
16520         (GPR_REG_CLASS_P): New helper macro for register classes targeting
16521         general purpose registers.
16522
16523         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
16524         direct moves.
16525         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
16526         DImode instead of wm.  Use wk constraint for direct move of DFmode
16527         instead of wm.
16528         (extendsidi2_lfiwax): Likewise.
16529         (lfiwax): Likewise.
16530         (lfiwzx): Likewise.
16531         (movdi_internal64): Likewise.
16532
16533         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
16534         wk constraints. Make the wy constraint documentation match them
16535         implementation.
16536
16537 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
16538
16539         Replacement of isl_int by isl_val
16540         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
16541         (compute_bounds_for_param): use isl_val instead of isl_int
16542         (compute_bounds_for_loop): likewise
16543         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
16544         (build_linearized_memory_access): use isl_val instead of isl_int
16545         (pdr_stride_in_loop): likewise
16546         * graphite-optimize-isl.c:
16547         (getPrevectorMap): use isl_val instead of isl_int
16548         * graphite-poly.c:
16549         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
16550         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
16551         (extern the_isl_ctx): declare
16552         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
16553         (extract_affine_gmp): likewise
16554         (wrap): likewise
16555         (build_loop_iteration_domains): likewise
16556         (add_param_constraints): likewise
16557
16558 2014-08-11  Richard Biener  <rguenther@suse.de>
16559
16560         PR tree-optimization/62075
16561         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
16562         handle uses in patterns.
16563
16564 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16565             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16566             Anna Tikhonova  <anna.tikhonova@intel.com>
16567             Ilya Tocar  <ilya.tocar@intel.com>
16568             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16569             Ilya Verbin  <ilya.verbin@intel.com>
16570             Kirill Yukhin  <kirill.yukhin@intel.com>
16571             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16572
16573         * common/config/i386/i386-common.c
16574         (OPTION_MASK_ISA_AVX512VL_SET): Define.
16575         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
16576         (ix86_handle_option): Handle OPT_mavx512vl.
16577         * config/i386/cpuid.h (bit_AVX512VL): Define.
16578         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
16579         set -mavx512vl accordingly.
16580         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16581         OPTION_MASK_ISA_AVX512VL.
16582         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
16583         (ix86_option_override_internal): Define PTA_AVX512VL, handle
16584         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
16585         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
16586         * config/i386/i386.h (TARGET_AVX512VL): Define.
16587         (TARGET_AVX512VL_P(x)): Ditto.
16588         * config/i386/i386.opt: Add mavx512vl.
16589
16590 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
16591
16592         PR tree-optimization/62073
16593         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
16594         a basic block.
16595
16596 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16597             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16598             Anna Tikhonova  <anna.tikhonova@intel.com>
16599             Ilya Tocar  <ilya.tocar@intel.com>
16600             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16601             Ilya Verbin  <ilya.verbin@intel.com>
16602             Kirill Yukhin  <kirill.yukhin@intel.com>
16603             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16604
16605         * common/config/i386/i386-common.c
16606         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
16607         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
16608         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
16609         (ix86_handle_option): Handle OPT_mavx512bw.
16610         * config/i386/cpuid.h (bit_AVX512BW): Define.
16611         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
16612         set -mavx512bw accordingly.
16613         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16614         OPTION_MASK_ISA_AVX512BW.
16615         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
16616         (ix86_option_override_internal): Define PTA_AVX512BW, handle
16617         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
16618         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
16619         * config/i386/i386.h (TARGET_AVX512BW): Define.
16620         (TARGET_AVX512BW_P(x)): Ditto.
16621         * config/i386/i386.opt: Add mavx512bw.
16622
16623 2014-08-11  Richard Biener  <rguenther@suse.de>
16624
16625         PR tree-optimization/62070
16626         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
16627         Remove SSA checking.
16628
16629 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
16630
16631         * asan.c (asan_check_flags): New enum.
16632         (build_check_stmt_with_calls): Removed function.
16633         (build_check_stmt): Split inlining logic to
16634         asan_expand_check_ifn.
16635         (instrument_derefs): Rename parameter.
16636         (instrument_mem_region_access): Rename parameter.
16637         (instrument_strlen_call): Likewise.
16638         (asan_expand_check_ifn): New function.
16639         (asan_instrument): Remove old code.
16640         (pass_sanopt::execute): Change handling of
16641         asan-instrumentation-with-call-threshold.
16642         (asan_clear_shadow): Fix formatting.
16643         (asan_function_start): Likewise.
16644         (asan_emit_stack_protection): Likewise.
16645         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
16646         Update description.
16647         * internal-fn.c (expand_ASAN_CHECK): New function.
16648         * internal-fn.def (ASAN_CHECK): New internal function.
16649         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
16650         Update description.
16651         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
16652         * tree.c: Small comment fix.
16653
16654 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
16655
16656         * gimple.c (gimple_call_fnspec): Support internal functions.
16657         (gimple_call_return_flags): Use const.
16658         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
16659         * internal-fn.def: Add fnspec information.
16660         * internal-fn.h (internal_fn_fnspec): New function.
16661         (init_internal_fns): Declare new function.
16662         * internal-fn.c (internal_fn_fnspec_array): New global variable.
16663         (init_internal_fns): New function.
16664         * tree-core.h: Update macro call.
16665         * tree.c (build_common_builtin_nodes): Initialize internal fns.
16666
16667 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
16668
16669         * lto-streamer.h (struct output_block::symbol): Change from
16670         struct symtab_node to plain symtab_node.
16671         (referenced_from_this_partition_p): Change first parameter
16672         from struct symtab_node to plain symtab_node.
16673
16674 2014-08-10  Marek Polacek  <polacek@redhat.com>
16675
16676         PR c/51849
16677         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
16678
16679 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
16680
16681         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
16682         DECL correctly; do not give up on types in static storage.
16683
16684 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
16685
16686         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
16687
16688 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
16689
16690         * graphite-isl-ast-to-gimple.c:
16691         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
16692
16693         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
16694
16695 2014-08-08  Guozhi Wei  <carrot@google.com>
16696
16697         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
16698
16699 2014-08-08  Cary Coutant  <ccoutant@google.com>
16700
16701         * dwarf2out.c (get_skeleton_type_unit): Remove.
16702         (output_skeleton_debug_sections): Remove skeleton type units.
16703         (output_comdat_type_unit): Likewise.
16704         (dwarf2out_finish): Likewise.
16705
16706 2014-08-07  Yi Yang  <ahyangyi@google.com>
16707
16708         * predict.c (expr_expected_value_1): Remove the redundant assignment.
16709
16710 2014-08-08  Richard Biener  <rguenther@suse.de>
16711
16712         * lto-streamer.h (struct lto_input_block): Make it a class
16713         with a constructor.
16714         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
16715         (struct lto_function_header, struct lto_simple_header,
16716         struct lto_simple_header_with_strings,
16717         struct lto_decl_header, struct lto_function_header): Make
16718         a simple inheritance hieararchy.  Remove unused fields.
16719         (struct lto_asm_header): Remove.
16720         * lto-streamer-out.c (produce_asm): Adjust.
16721         (lto_output_toplevel_asms): Likewise.
16722         (produce_asm_for_decls): Likewise.
16723         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
16724         * data-streamer-in.c (string_for_index): Likewise.
16725         * ipa-inline-analysis.c (inline_read_section): Likewise.
16726         * ipa-prop.c (ipa_prop_read_section): Likewise.
16727         (read_replacements_section): Likewise.
16728         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
16729         * lto-section-in.c (lto_create_simple_input_block): Likewise.
16730         (lto_destroy_simple_input_block): Likewise.
16731         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
16732         (lto_input_toplevel_asms): Likewise.
16733
16734 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16735             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16736             Anna Tikhonova  <anna.tikhonova@intel.com>
16737             Ilya Tocar  <ilya.tocar@intel.com>
16738             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16739             Ilya Verbin  <ilya.verbin@intel.com>
16740             Kirill Yukhin  <kirill.yukhin@intel.com>
16741             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16742
16743         * common/config/i386/i386-common.c
16744         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
16745         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
16746         (ix86_handle_option): Handle OPT_mavx512dq.
16747         * config/i386/cpuid.h (bit_AVX512DQ): Define.
16748         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
16749         set -mavx512dq accordingly.
16750         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16751         OPTION_MASK_ISA_AVX512DQ.
16752         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
16753         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
16754         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
16755         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
16756         * config/i386/i386.h (TARGET_AVX512DQ): Define.
16757         (TARGET_AVX512DQ_P(x)): Ditto.
16758         * config/i386/i386.opt: Add mavx512dq.
16759
16760 2014-08-08  Richard Biener  <rguenther@suse.de>
16761
16762         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
16763         target_percent, target_percent_s): Export.
16764         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
16765         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
16766         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
16767         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
16768         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
16769         Move to gimple-fold.c.
16770         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
16771         strcat and strcpy.
16772         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
16773         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
16774         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
16775         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
16776         (rewrite_call_expr_array): Remove.
16777         (fold_builtin_sprintf_chk): Likewise.
16778         (fold_builtin_snprintf_chk): Likewise.
16779         (fold_builtin_varargs): Remove handling of sprintf_chk,
16780         vsprintf_chk, snprintf_chk and vsnprintf_chk.
16781         (gimple_fold_builtin_sprintf_chk): Remove.
16782         (gimple_fold_builtin_snprintf_chk): Likewise.
16783         (gimple_fold_builtin_varargs): Likewise.
16784         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
16785         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
16786         * gimple.c (gimple_seq_add_seq_without_update): New function.
16787         * gimple.h (gimple_seq_add_seq_without_update): Declare.
16788         * gimple-fold.c: Include output.h.
16789         (gsi_replace_with_seq_vops): New function, split out from ...
16790         (gimplify_and_update_call_from_tree): ... here.
16791         (replace_call_with_value): New function.
16792         (replace_call_with_call_and_fold): Likewise.
16793         (var_decl_component_p): Moved from builtins.c.
16794         (gimple_fold_builtin_memory_op): Moved from builtins.c
16795         fold_builtin_memory_op and rewritten to GIMPLE.
16796         (gimple_fold_builtin_memset): Likewise.
16797         (gimple_fold_builtin_strcpy): Likewise.
16798         (gimple_fold_builtin_strncpy): Likewise.
16799         (gimple_fold_builtin_strcat): Likewise.
16800         (gimple_fold_builtin_fputs): Likewise.
16801         (gimple_fold_builtin_memory_chk): Likewise.
16802         (gimple_fold_builtin_stxcpy_chk): Likewise.
16803         (gimple_fold_builtin_stxncpy_chk): Likewise.
16804         (gimple_fold_builtin_snprintf_chk): Likewise.
16805         (gimple_fold_builtin_sprintf_chk): Likewise.
16806         (gimple_fold_builtin_strlen): New function.
16807         (gimple_fold_builtin_with_strlen): New function split out from
16808         gimple_fold_builtin.
16809         (gimple_fold_builtin): Change signature and handle
16810         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
16811         here.  Call gimple_fold_builtin_with_strlen.
16812         (gimple_fold_call): Adjust.
16813
16814 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
16815
16816         * calls.c (precompute_arguments): Check
16817         promoted_for_signed_and_unsigned_p and set the promoted mode.
16818         (promoted_for_signed_and_unsigned_p): New function.
16819         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
16820         and set the promoted mode.
16821         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
16822         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
16823         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
16824
16825
16826 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
16827
16828         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
16829         instead of SUBREG_PROMOTED_UNSIGNED_SET.
16830         (expand_call): Likewise.
16831         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
16832         to get promoted mode.
16833         * combine.c (record_promoted_value): Skip > 0 comparison with
16834         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
16835         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
16836         of SUBREG_PROMOTED_UNSIGNED_P.
16837         (convert_modes): Likewise.
16838         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
16839         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
16840         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
16841         SUBREG_PROMOTED_UNSIGNED_SET.
16842         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
16843         instead of SUBREG_PROMOTED_UNSIGNED_SET.
16844         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
16845         SUBREG_PROMOTED_SET.
16846         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
16847         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
16848         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
16849         of SUBREG_PROMOTED_UNSIGNED_P.
16850         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
16851         (SUBREG_PROMOTED_SET): New define.
16852         (SUBREG_PROMOTED_GET): Likewise.
16853         (SUBREG_PROMOTED_SIGN): Likewise.
16854         (SUBREG_PROMOTED_SIGNED_P): Likewise.
16855         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
16856         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
16857         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
16858         instead of SUBREG_PROMOTED_UNSIGNED_GET.
16859         (nonzero_bits1): Skip > 0 comparison with the results as
16860         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
16861         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
16862         of !SUBREG_PROMOTED_UNSIGNED_P.
16863         * simplify-rtx.c (simplify_unary_operation_1): Use new
16864         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
16865         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
16866         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
16867         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
16868
16869 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
16870
16871         * ipa-devirt.c: Include gimple-pretty-print.h
16872         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
16873         further tests.
16874         (decl_maybe_in_construction_p): Fix conditional on cdtor check
16875         (get_polymorphic_call_info): Fix return value
16876         (type_change_info): New sturcture based on ipa-prop
16877         variant.
16878         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
16879         based on ipa-prop variant.
16880         (extr_type_from_vtbl_ptr_store): New function
16881         based on ipa-prop variant.
16882         (record_known_type): New function.
16883         (check_stmt_for_type_change): New function.
16884         (get_dynamic_type): New function.
16885         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
16886         * tree-ssa-pre.c: ipa-utils.h
16887         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
16888         machinery; sanity check with ipa-prop devirtualization.
16889         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
16890         polymorphic flag.
16891
16892 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
16893
16894         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
16895         * alias.c, cfgexpand.c, cgraphbuild.c,
16896         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
16897         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
16898         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
16899         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
16900         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
16901         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
16902         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
16903         dse.c, except.c, gengtype.c, gimple-expr.c,
16904         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
16905         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
16906         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
16907         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
16908         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
16909         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
16910         pointer-set.h.
16911         * pointer-set.c: Remove file.
16912         * pointer-set.h: Remove file.
16913
16914 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16915
16916         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
16917         * config/arm/types.md (f_sels, f_seld): Delete.
16918
16919 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16920
16921         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
16922         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
16923         (aarch64_movdi_<mode>high): Likewise.
16924         (aarch64_mov<mode>high_di): Likewise.
16925         (aarch64_movdi_<mode>low): Likewise.
16926         (aarch64_mov<mode>low_di): Likewise.
16927         (aarch64_movtilow_tilow): Likewise.
16928         Add comment explaining usage of fp,simd attributes and of
16929         TARGET_FLOAT and TARGET_SIMD.
16930
16931 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
16932             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16933
16934         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
16935         Use MOVN when one of the half-words is 0xffff.
16936
16937 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
16938
16939         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
16940
16941 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
16942
16943         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
16944         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
16945         (rfs_str): String corresponding to RFS_* constants.
16946         (rank_for_schedule_stats_t): New typedef.
16947         (rank_for_schedule_stats): New static variable.
16948         (rfs_result): New static function.
16949         (rank_for_schedule): Track statistics for deciding heuristics.
16950         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
16951         static functions.
16952         (ready_sort): Use them for debug printouts.
16953         (schedule_block): Init statistics state.  Print statistics on
16954         rank_for_schedule decisions.
16955
16956 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
16957
16958         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
16959
16960 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
16961
16962         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
16963         constraint.
16964
16965 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
16966
16967         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
16968         function to not conflict.
16969         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
16970         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
16971         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
16972         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
16973         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
16974         of pointer_map.
16975
16976 2014-08-07  Marek Polacek  <polacek@redhat.com>
16977
16978         * fold-const.c (fold_binary_loc): Add folding of
16979         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
16980
16981 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
16982
16983         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
16984         instead of type size.
16985         (ASM_FINISH_DECLARE_OBJECT): Likewise.
16986
16987 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
16988
16989         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
16990         (*thumb1_movqi_insn): Likewise.
16991         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
16992
16993 2014-08-07  Tom de Vries  <tom@codesourcery.com>
16994
16995         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
16996         (glibc_2_11_or_earlier): Remove effective-target keywords.
16997
16998 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
16999
17000         * config/arm/arm.c (bdesc_2arg): Fix typo.
17001         (arm_atomic_assign_expand_fenv): Remove The default implementation.
17002
17003 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
17004
17005         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
17006
17007 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
17008
17009         PR debug/61923
17010         * haifa-sched.c (advance_one_cycle): Fix dump.
17011         (schedule_block): Don't advance cycle if we are already at the
17012         beginning of the cycle.
17013
17014 2014-08-06  Martin Jambor  <mjambor@suse.cz>
17015
17016         PR ipa/61393
17017         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
17018
17019 2014-08-06  Richard Biener  <rguenther@suse.de>
17020
17021         PR lto/62034
17022         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
17023         SCCs here.
17024         (lto_input_tree): Pop SCCs here.
17025
17026 2014-08-06  Richard Biener  <rguenther@suse.de>
17027
17028         PR tree-optimization/61320
17029         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
17030         handle misaligned loads.
17031
17032 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
17033
17034         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
17035         (aarch64_expand_vec_perm_const): Check for dup before zip.
17036
17037 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17038
17039         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
17040         CONST_INT_P instead of GET_CODE and compare.
17041         (aarch64_select_cc_mode): Likewise.
17042         (aarch64_print_operand): Likewise.
17043         (aarch64_rtx_costs): Likewise.
17044         (aarch64_simd_valid_immediate): Likewise.
17045         (aarch64_simd_check_vect_par_cnst_half): Likewise.
17046         (aarch64_simd_emit_pair_result_insn): Likewise.
17047
17048 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
17049
17050         * gdbhooks.py (find_gcc_source_dir): New helper function.
17051         (class PassNames): New class, locating and parsing passes.def.
17052         (class BreakOnPass): New command "break-on-pass".
17053
17054 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
17055
17056         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
17057         getting olde.
17058
17059 2014-08-05  Richard Biener  <rguenther@suse.de>
17060
17061         PR rtl-optimization/61672
17062         * emit-rtl.h (mem_attrs_eq_p): Declare.
17063         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
17064         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
17065         * cfgcleanup.c (merge_memattrs): Likewise.
17066         Include emit-rtl.h.
17067
17068 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17069
17070         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
17071         rather than singleton vectors.
17072         (vqdmlsls_lane_s32): Likewise.
17073
17074 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17075
17076         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
17077         Use VSDQ_HSI mode iterator.
17078         (aarch64_sqrdmulh_laneq<mode>): Likewise.
17079         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
17080         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
17081         Use BUILTIN_VDQHS macro.
17082         (sqrdmulh_laneq): Likewise.
17083         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
17084         (vqdmlals_laneq_s32): Likewise.
17085         (vqdmlslh_laneq_s16): Likewise.
17086         (vqdmlsls_laneq_s32): Likewise.
17087         (vqdmulhh_laneq_s16): Likewise.
17088         (vqdmulhs_laneq_s32): Likewise.
17089         (vqrdmulhh_laneq_s16): Likewise.
17090         (vqrdmulhs_laneq_s32): Likewise.
17091
17092 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17093
17094         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
17095         (vmuld_laneq_f64): Likewise.
17096         (vmuls_laneq_f32): Likewise.
17097         (vmul_n_f64): Likewise.
17098         (vmuld_lane_f64): Reimplement in C.
17099         (vmuls_lane_f32): Likewise.
17100
17101 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17102
17103         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
17104         to reservation.
17105         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
17106
17107 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17108
17109         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
17110         (rbitsi2): Likewise.
17111         (*arm_rev): Set predicable and predicable_short_it attributes.
17112
17113 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17114
17115         * convert.c (convert_to_integer): Guard transformation to lrint by
17116         -fno-math-errno.
17117
17118 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
17119
17120         * config/aarch64/aarch64-builtins.c
17121         (aarch64_simd_builtin_type_mode): Delete.
17122         (v8qi_UP): Remap to V8QImode.
17123         (v4hi_UP): Remap to V4HImode.
17124         (v2si_UP): Remap to V2SImode.
17125         (v2sf_UP): Remap to V2SFmode.
17126         (v1df_UP): Remap to V1DFmode.
17127         (di_UP): Remap to DImode.
17128         (df_UP): Remap to DFmode.
17129         (v16qi_UP):V16QImode.
17130         (v8hi_UP): Remap to V8HImode.
17131         (v4si_UP): Remap to V4SImode.
17132         (v4sf_UP): Remap to V4SFmode.
17133         (v2di_UP): Remap to V2DImode.
17134         (v2df_UP): Remap to V2DFmode.
17135         (ti_UP): Remap to TImode.
17136         (ei_UP): Remap to EImode.
17137         (oi_UP): Remap to OImode.
17138         (ci_UP): Map to CImode.
17139         (xi_UP): Remap to XImode.
17140         (si_UP): Remap to SImode.
17141         (sf_UP): Remap to SFmode.
17142         (hi_UP): Remap to HImode.
17143         (qi_UP): Remap to QImode.
17144         (aarch64_simd_builtin_datum): Make mode a machine_mode.
17145         (VAR1): Build builtin name.
17146         (aarch64_init_simd_builtins): Remove dead code.
17147
17148 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
17149
17150         * graphite-isl-ast-to-gimple.c:
17151         (set_options): New function.
17152         (scop_to_isl_ast): Add calling of set_options.
17153
17154 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
17155
17156         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
17157         (analyze_iv_to_split_insn): Don't initialize them.
17158         (get_ivts_expr): Removed.
17159         (allocate_basic_variable, insert_base_initialization): Use
17160         SET_SRC instead of *get_ivts_expr.
17161         (split_iv): Use &SET_SRC instead of get_ivts_expr.
17162
17163 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
17164
17165         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
17166         (translate_isl_ast_for_loop): Add checking of the
17167         flag_loop_parallelize_all.
17168         (ast_build_before_for): New function.
17169         (scop_to_isl_ast): Add checking of the
17170         flag_loop_parallelize_all.
17171         * graphite-dependences.c: Move the defenition of the
17172         scop_get_dependences from graphite-optimize-isl.c to this file.
17173         (apply_schedule_on_deps): Add checking of the ux's emptiness.
17174         (carries_deps): Add checking of the x's value.
17175         * graphite-optimize-isl.c: Move the defenition of the
17176         scop_get_dependences to graphite-dependences.c.
17177         * graphite-poly.h: Add declarations of scop_get_dependences
17178         and carries_deps.
17179
17180 2014-08-04  Rohit  <rohitarulraj@freescale.com>
17181
17182         PR target/60102
17183         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
17184         names.
17185         (alt_reg_names): Likewise.
17186         (rs6000_dwarf_register_span): For SPE high registers, replace
17187         dwarf register numbers with GCC hard register numbers.
17188         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
17189         (rs6000_dbx_register_number): For SPE high registers, return dwarf
17190         register number for the corresponding GCC hard register number.
17191         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
17192         newly added GCC hard register numbers for SPE high registers.
17193         (DWARF_FRAME_REGISTERS):  Likewise.
17194         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
17195         (DWARF_FRAME_REGNUM): Likewise.
17196         (FIXED_REGISTERS): Likewise.
17197         (CALL_USED_REGISTERS): Likewise.
17198         (CALL_REALLY_USED_REGISTERS): Likewise.
17199         (REG_ALLOC_ORDER): Likewise.
17200         (enum reg_class): Likewise.
17201         (REG_CLASS_NAMES): Likewise.
17202         (REG_CLASS_CONTENTS): Likewise.
17203         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
17204
17205 2014-08-04  Richard Biener  <rguenther@suse.de>
17206
17207         * gimple-fold.h (gimple_fold_builtin): Remove.
17208         * gimple-fold.c (gimple_fold_builtin): Make static.
17209         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
17210         fold_stmt, not gimple_fold_builtin.
17211
17212 2014-08-04  Martin Liska <mliska@suse.cz>
17213
17214         * cgraph.h (csi_end_p): Removed.
17215         (csi_next): Likewise.
17216         (csi_node): Likewise.
17217         (csi_start): Likewise.
17218         (cgraph_node_in_set_p): Likewise.
17219         (cgraph_node_set_size): Likewise.
17220         (vsi_end_p): Likewise.
17221         (vsi_next): Likewise.
17222         (vsi_node): Likewise.
17223         (vsi_start): Likewise.
17224         (varpool_node_set_size): Likewise.
17225         (cgraph_node_set_nonempty_p): Likewise.
17226         (varpool_node_set_nonempty_p): Likewise.
17227         * cgraphunit.c (cgraph_process_new_functions): vec replaces
17228         cgraph_node_set.
17229         * ipa-inline-transform.c: Likewise.
17230         * ipa-utils.c (cgraph_node_set_new): Removed.
17231         (cgraph_node_set_add): Likewise.
17232         (cgraph_node_set_remove): Likewise.
17233         (cgraph_node_set_find): Likewise.
17234         (dump_cgraph_node_set): Likewise.
17235         (debug_cgraph_node_set): Likewise.
17236         (free_cgraph_node_set): Likewise.
17237         (varpool_node_set_new): Likewise.
17238         (varpool_node_set_add): Likewise.
17239         (varpool_node_set_remove): Likewise.
17240         (varpool_node_set_find): Likewise.
17241         (dump_varpool_node_set): Likewise.
17242         (free_varpool_node_set): Likewise.
17243         (debug_varpool_node_set): Likewise.
17244         * tree-emutls.c (struct tls_var_data):
17245         (emutls_index): Removed.
17246         (emutls_decl): Likewise.
17247         (gen_emutls_addr): Function implementation uses newly added
17248         hash_map<varpool_node *, tls_var_data>.
17249         (clear_access_vars): Likewise.
17250         (create_emultls_var): Likewise.
17251         (ipa_lower_emutls): Likewise.
17252         (reset_access): New function.
17253
17254 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
17255
17256         * config/i386/i386.c (ix86_option_override_internal): Add
17257         PTA_RDRND and PTA_MOVBE for bdver4.
17258
17259 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17260             James Greenhalgh  <james.greenhalgh@arm.com>
17261
17262         * doc/md.texi (clrsb): Document.
17263         (clz): Change reference to x into operand 1.
17264         (ctz): Likewise.
17265         (popcount): Likewise.
17266
17267 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17268
17269         PR target/61713
17270         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
17271         move to subtarget in serial version if result is ignored.
17272
17273 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17274             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17275
17276         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
17277         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
17278         (sched_analyze_insn): Update use of try_group_insn to
17279         sched_macro_fuse_insns.
17280         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
17281         arguments that are not conditional jumps.
17282
17283 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
17284
17285         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
17286         family information. Handle BTVER2 cpu with cpuid family value.
17287
17288 2014-08-04  Tom de Vries  <tom@codesourcery.com>
17289
17290         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
17291         (glibc_2_11_or_earlier): Document effective-target keywords.
17292
17293 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
17294
17295         * ipa-devirt.c (odr_type_warn_count): Add type.
17296         (possible_polymorphic_call_targets): Set it.
17297         (ipa_devirt): Use it.
17298
17299 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
17300
17301         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
17302         Document.
17303         * ipa-devirt.c: Include hash-map.h
17304         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
17305         (clear_speculation): Break out of ...
17306         (get_class_context): ... here; speed up handling obviously useless
17307         speculations.
17308         (odr_type_warn_count, decl_warn_count): New structures.
17309         (final_warning_record): New structure.
17310         (final_warning_records): New static variable.
17311         (possible_polymorphic_call_targets): Cleanup handling of
17312         speculative info; do not build speculation when user do not care;
17313         record info about warnings when asked for.
17314         (add_decl_warning): New function.
17315         (type_warning_cmp): New function.
17316         (decl_warning_cmp): New function.
17317         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
17318         (gate): Enable pass when warnings are requested.
17319         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
17320         options.
17321
17322 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
17323
17324         * hash-map.h (default_hashmap_traits::mark_key_deleted):
17325         Fix cast.
17326         (hash_map::remove): New method.
17327         (hash_map::traverse): New method.
17328         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
17329         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
17330         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
17331         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
17332         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
17333         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
17334         pointer_map.
17335
17336 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
17337
17338         * hash-set.h: new File.
17339         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
17340         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
17341         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
17342         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
17343         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
17344         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
17345         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
17346         varpool.c: Use hash_set instead of pointer_set.
17347
17348 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
17349
17350         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
17351
17352 2014-08-01  Jiong Wang <jiong.wang@arm.com>
17353
17354         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
17355         for frame access when strict_p is false.
17356
17357 2014-08-01  Renlin Li <renlin.li@arm.com>
17358 2014-08-01  Jiong Wang <jiong.wang@arm.com>
17359
17360         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
17361         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
17362         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
17363         Declaration.
17364         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
17365         predicate.
17366         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
17367         aarch64_mem_pair_offset.
17368
17369 2014-08-01  Jiong Wang <jiong.wang@arm.com>
17370
17371         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
17372         offset.
17373         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
17374         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
17375
17376 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
17377
17378         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
17379
17380 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
17381
17382         PR regression/61510
17383         * cgraphunit.c (analyze_functions): Use get_create rather than get
17384         for decls which are clones of abstract functions.
17385
17386 2014-08-01  Martin Liska  <mliska@suse.cz>
17387
17388         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
17389         * ipa-prop.h (count_formal_params): Global function created from static.
17390         * ipa-prop.c (count_formal_params): Likewise.
17391         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
17392         profiles for semantically equivalent functions.
17393         * passes.c (do_per_function): If we load body of a function
17394         during WPA, this condition should behave same.
17395         * varpool.c (ctor_for_folding): More tolerant assert for variable
17396         aliases created during WPA.
17397
17398 2014-08-01  Martin Liska  <mliska@suse.cz>
17399
17400         * doc/invoke.texi (Options That Control Optimization): Documentation
17401         for -foptimize-strlen introduced. Optimization levels default options
17402         fixed.
17403
17404 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
17405
17406         * opts.c (common_handle_option): Handle -fsanitize=alignment.
17407         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
17408         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
17409         type to bool.
17410         * stor-layout.h (min_align_of_type): New prototype.
17411         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
17412         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
17413         check.
17414         * ubsan.c: Include builtins.h.
17415         (ubsan_expand_bounds_ifn): Change return type to bool,
17416         always return true.
17417         (ubsan_expand_null_ifn): Change return type to bool, change
17418         argument to gimple_stmt_iterator *.  Handle both null and alignment
17419         sanitization, take type from ckind argument's type rather than
17420         first argument.
17421         (instrument_member_call): Removed.
17422         (instrument_mem_ref): Remove t argument, add mem and base arguments.
17423         Handle both null and alignment sanitization, don't say whole
17424         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
17425         call instead of 2 argument.
17426         (instrument_null): Adjust instrument_mem_ref caller.  Don't
17427         instrument calls here.
17428         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
17429         like SANITIZE_NULL.
17430         * stor-layout.c (min_align_of_type): New function.
17431         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
17432         Or it into SANITIZE_UNDEFINED.
17433         * doc/invoke.texi (-fsanitize=alignment): Document.
17434
17435 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17436
17437         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
17438
17439 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17440
17441         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
17442         inchash.
17443         (vn_reference_compute_hash): Dito.
17444         (vn_nary_op_compute_hash): Dito.
17445         (vn_phi_compute_hash): Dito.
17446         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
17447
17448 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17449
17450         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
17451         Rename to inchash:add_expr_commutative. Convert to inchash.
17452         (iterative_hash_hashable_expr): Rename to
17453         inchash:add_hashable_expr. Convert to inchash.
17454         (avail_expr_hash): Dito.
17455
17456 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17457
17458         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
17459         Convert to inchash.
17460
17461 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17462
17463         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
17464
17465 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17466
17467         * Makefile.in (OBJS): Add rtlhash.o
17468         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
17469         (loc_checksum): Dito.
17470         (loc_checksum_ordered): Dito.
17471         (hash_loc_operands): Dito.
17472         (hash_locs): Dito.
17473         (hash_loc_list): Dito.
17474         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
17475         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
17476         * rtlhash.c: New file.
17477         * rtlhash.h: New file.
17478
17479 2014-07-31  Andi Kleen  <ak@linux.intel.com>
17480
17481         * inchash.h (inchash): Change inchash class to namespace.
17482         (class hash): ... Rename from inchash.
17483         (add_object): Move from macro to class template.
17484         * lto-streamer-out.c (hash_tree): Change inchash
17485         to inchash::hash.
17486         * tree.c (build_type_attribute_qual_variant): Dito.
17487         (type_hash_list): Dito.
17488         (attribute_hash_list): Dito.
17489         (iterative_hstate_expr): Rename to inchash::add_expr
17490         (build_range_type_1): Change inchash to inchash::hash
17491         and use hash::add_expr.
17492         (build_array_type_1): Dito.
17493         (build_function_type): Dito
17494         (build_method_type_directly): Dito.
17495         (build_offset_type): Dito.
17496         (build_complex_type): Dito.
17497         (make_vector_type): Dito.
17498         * tree.h (iterative_hash_expr): Dito.
17499
17500 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
17501
17502         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
17503
17504 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
17505
17506         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
17507         correct alphabetical position.
17508         (vpaddd_f64): Rewrite using builtins.
17509         (vpaddd_s64): Move to correct alphabetical position.
17510         (vpaddd_u64): New.
17511
17512 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
17513
17514         PR target/61844
17515         * config/sh/sh.c (sh_legitimate_address_p,
17516         sh_legitimize_reload_address): Handle reg+reg address modes when
17517         ALLOW_INDEXED_ADDRESS is false.
17518         * config/sh/predicates.md (general_movsrc_operand,
17519         general_movdst_operand): Likewise.
17520
17521 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
17522
17523         * config/aarch64/aarch64-builtins.c
17524         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
17525         BYTES_BIG_ENDIAN.
17526
17527 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
17528
17529         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
17530         the generated mask based on BYTES_BIG_ENDIAN.
17531         (aarch64_simd_check_vect_par_cnst_half): New.
17532         * config/aarch64/aarch64-protos.h
17533         (aarch64_simd_check_vect_par_cnst_half): New.
17534         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
17535         the check out to aarch64_simd_check_vect_par_cnst_half.
17536         (vect_par_cnst_lo_half): Likewise.
17537         * config/aarch64/aarch64-simd.md
17538         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
17539         (move_hi_quad_<mode>): Always generate a low mask.
17540
17541 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
17542
17543         * doc/invoke.texi (AVR Options): Add documentation about
17544         __AVR_DEVICE_NAME__ built-in macro.
17545
17546 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
17547
17548         PR target/61948
17549         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
17550         constraints are satisfied.
17551         (<shift>di3_neon): Likewise.
17552
17553 2014-07-31  Richard Biener  <rguenther@suse.de>
17554
17555         PR tree-optimization/61964
17556         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
17557         by structural equality.
17558
17559 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
17560
17561         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
17562         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
17563         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
17564         New enums.
17565         * gcc.c (sanitize_spec_function): Support new option.
17566         (SANITIZER_SPEC): Remove now redundant check.
17567         * opts.c (common_handle_option): Support new option.
17568         (finish_options): Check for incompatibilities.
17569         * toplev.c (process_options): Split userspace-specific checks.
17570
17571 2014-07-31  Richard Biener  <rguenther@suse.de>
17572
17573         * lto-streamer.h (struct output_block): Remove global.
17574         (struct data_in): Remove labels, num_named_labels and
17575         num_unnamed_labels.
17576         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
17577         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
17578
17579 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
17580
17581         PR c++/60517
17582         * common.opt (-Wreturn-local-addr): Moved from c.opt.
17583         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
17584         (isolate_path): New argument to avoid inserting a trap.
17585         (find_implicit_erroneous_behaviour): Handle returning the address
17586         of a local variable.
17587         (find_explicit_erroneous_behaviour): Likewise.
17588
17589 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
17590
17591         PR lto/61868
17592         * toplev.c (init_random_seed): Move piece of code never called to
17593         set_random_seed.
17594         (set_random_seed): see above.
17595
17596 2014-07-31  Tom de Vries  <tom@codesourcery.com>
17597
17598         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
17599
17600 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
17601
17602         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
17603         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
17604
17605 2014-07-31  Richard Biener  <rguenther@suse.de>
17606
17607         * data-streamer.h (streamer_write_data_stream): Declare here,
17608         renamed from ...
17609         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
17610         * lto-cgraph.c (lto_output_node): Adjust.
17611         (lto_output_varpool_node): Likewise.
17612         * data-streamer-out.c (streamer_string_index): Likewise.
17613         (streamer_write_data_stream, lto_append_block): Move from ...
17614         * lto-section-out.c (lto_output_data_stream,
17615         lto_append_block): ... here.
17616
17617 2014-07-30  Mike Stump  <mikestump@comcast.net>
17618
17619         * configure.ac: Also check for popen.
17620         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
17621         * configure: Regenerate.
17622         * config.in:  Regenerate.
17623
17624 2014-07-30  Martin Jambor  <mjambor@suse.cz>
17625
17626         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
17627         parameter to gimple.
17628
17629 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17630
17631         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
17632         address as second parameter to __tpf_eh_return routine.
17633
17634 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
17635
17636         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
17637         Thumb2.
17638
17639 2014-07-30  Tom Tromey  <tromey@redhat.com>
17640
17641         PR c/59855
17642         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
17643         * doc/extend.texi (Type Attributes): Document designated_init
17644         attribute.
17645
17646 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
17647
17648         * graphite-isl-ast-to-gimple.c:
17649         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
17650         (gcc_expression_from_isl_expression): Pass type to
17651         gcc_expression_from_isl_ast_expr_id.
17652
17653 2014-07-30  Richard Biener  <rguenther@suse.de>
17654
17655         * lto-streamer.h (lto_write_data): New function.
17656         * langhooks.c (lhd_append_data): Do not free block.
17657         * lto-section-out.c (lto_write_data): New function writing
17658         raw data to the current section.
17659         (lto_write_stream): Adjust for langhook semantic change.
17660         (lto_destroy_simple_output_block): Write header directly.
17661         * lto-opts.c (lto_write_options): Write options directly.
17662         * lto-streamer-out.c (produce_asm): Write heaeder directly.
17663         (lto_output_toplevel_asms): Likewise.
17664         (copy_function_or_variable): Copy data directly.
17665         (write_global_references): Output index table directly.
17666         (lto_output_decl_state_refs): Likewise.
17667         (write_symbol): Write data directly.
17668         (produce_symtab): Adjust.
17669         (produce_asm_for_decls): Output header and refs directly.
17670
17671 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
17672
17673         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
17674         to speculative_targets
17675         (get_class_context): Fix handling of contextes without outer type;
17676         avoid matching non-polymorphic types in LTO.
17677         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
17678         parameter to speculative_targetsp; handle speculation.
17679         (dump_possible_polymorphic_call_targets): Update dumping.
17680
17681 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
17682
17683         * common.opt (Wodr): Enable by default.
17684
17685 2014-07-29  Olivier Hainque  <hainque@adacore.com>
17686
17687         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
17688
17689 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
17690
17691         PR bootstrap/61914
17692         * gengtype.c (strtoken): New function.
17693         (create_user_defined_type): Replace strtok with strtoken.
17694
17695 2014-07-29  Nathan Sidwell  <nathan@acm.org>
17696
17697         * gcov-io.c (gcov_var): Make hidden.
17698         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
17699         (gcov_do_dump): Declare.
17700         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
17701
17702 2014-07-29  Martin Jambor  <mjambor@suse.cz>
17703
17704         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
17705         parameter to gimple.
17706         (sra_modify_assign): Likewise.
17707
17708 2014-07-29  Richard Biener  <rguenther@suse.de>
17709
17710         PR middle-end/52478
17711         * expr.c (expand_expr_real_2): Revert last change.
17712
17713 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
17714
17715         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
17716         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
17717         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
17718         call.
17719         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
17720         (contains_type_p): Forward declare.
17721         (polymorphic_call_target_hasher::hash): Hash speculative info.
17722         (polymorphic_call_target_hasher::equal): Compare speculative info.
17723         (get_class_context): Handle speuclation.
17724         (contains_type_p): Update.
17725         (get_polymorphic_call_info_for_decl): Update.
17726         (walk_ssa_copies): Break out from ...
17727         (get_polymorphic_call_info): ... here; set speculative context
17728         before giving up.
17729         * ipa-prop.c (ipa_write_indirect_edge_info,
17730         ipa_read_indirect_edge_info): Stream speculative context.
17731         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
17732         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
17733         SPECULATIVE_MAYBE_DERIVED_TYPE).
17734         (possible_polymorphic_call_targets overriders): Update.
17735         (dump_possible_polymorphic_call_targets overriders): Update.
17736         (dump_possible_polymorphic_call_target_p overriders): Update.
17737
17738 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
17739
17740         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
17741         ipa-devirt path; fix thinko there.
17742
17743 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
17744
17745         * config/i386/i386.c (ix86_return_in_memory): Replace one
17746         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
17747
17748 2014-07-28  Marek Polacek  <polacek@redhat.com>
17749
17750         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
17751
17752 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
17753
17754         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
17755         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
17756         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
17757         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
17758         (USE_LD_AS_NEEDED): Likewise.
17759         (ASM_APP_ON): Likewise.
17760         (ASM_APP_OFF): Likewise.
17761         (TARGET_POSIX_IO): Likewise.
17762         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
17763         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
17764         (USE_LD_AS_NEEDED): Likewise.
17765         (ASM_APP_ON): Likewise.
17766         (ASM_APP_OFF): Likewise.
17767         (TARGET_POSIX_IO): Likewise.
17768
17769 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
17770
17771         PR middle-end/61734
17772         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
17773         operators other than the equality operators.
17774
17775 2014-07-28  Richard Biener  <rguenther@suse.de>
17776
17777         PR middle-end/52478
17778         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
17779         sure to register SImode ones, not only >= word_mode ones.
17780         * expr.c (expand_expr_real_2): When expanding -ftrapv
17781         binops do not use OPTAB_LIB_WIDEN.
17782
17783 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
17784
17785         PR middle-end/61919
17786         * tree-outof-ssa.c (insert_partition_copy_on_edge)
17787         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
17788         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
17789         inserting them in the insn stream.
17790
17791 2014-07-28  Marek Polacek  <polacek@redhat.com>
17792
17793         PR middle-end/61913
17794         * common.opt (Wodr): Add Var.
17795
17796 2014-07-28  Richard Biener  <rguenther@suse.de>
17797
17798         PR tree-optimization/61921
17799         * tree-ssa-structalias.c (create_variable_info_for_1): Check
17800         if there is a varpool node before dereferencing it.
17801
17802 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
17803
17804         * graphite-sese-to-poly.c:
17805         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
17806         id of the pbb), which contains pointer to the pbb1.
17807
17808         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
17809
17810 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
17811
17812         * graphite-isl-ast-to-gimple.c:
17813         (graphite_create_new_guard): New function.
17814         (translate_isl_ast_node_if): New function.
17815         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
17816
17817         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
17818
17819 2014-07-27  Anthony Green  <green@moxielogic.com>
17820
17821         * config.gcc: Add moxie-*-moxiebox* configuration.
17822         * config/moxie/moxiebox.h: New file.
17823
17824 2014-07-26  Andrew Pinski  <apinski@cavium.com>
17825
17826         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
17827         from the read only register.
17828
17829 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
17830
17831         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
17832         as the allocation class if it isn't likely to be spilled.
17833
17834 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
17835
17836         * rtl.h (tls_referenced_p): Declare.
17837         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
17838         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
17839         (mips_cannot_force_const_mem): Use tls_referenced_p.
17840         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
17841         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
17842         instead of pa_tls_referenced_p.
17843         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
17844         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
17845         (pa_legitimate_constant_p): Likewise.
17846         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
17847         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
17848         (rs6000_cannot_force_const_mem, rs6000_emit_move)
17849         (rs6000_address_for_altivec): Use tls_referenced_p instead of
17850         rs6000_tls_referenced_p.
17851         (rs6000_tls_symbol_ref_1): Delete.
17852
17853 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
17854
17855         PR target/44551
17856         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
17857         Optimize inverse of a VEC_CONCAT.
17858
17859 2014-07-25  Xinliang David Li  <davidxl@google.com>
17860
17861         * params.def: New parameter.
17862         * coverage.c (get_coverage_counts): Check new flag.
17863         (coverage_compute_profile_id): Check new flag.
17864         (coverage_begin_function): Check new flag.
17865         (coverage_end_function): Check new flag.
17866         * value-prof.c (coverage_node_map_initialized_p): New function.
17867         (init_node_map): Populate map with all functions.
17868         * doc/invoke.texi: Document new parameter.
17869
17870 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
17871             Richard Biener <rguenther@suse.de>
17872
17873         * lto-streamer-out.c (struct sccs): Turn to ...
17874         (class DFS): ... this one; refactor the DFS walk so it can
17875         be re-done on per-SCC basis.
17876         (DFS::DFS): New constructor.
17877         (DFS::~DFS): New destructor.
17878         (hash_tree): Add new MAP argument holding in-SCC hash values;
17879         remove POINTER_TYPE hashing hack.
17880         (scc_entry_compare): Rename to ...
17881         (DFS::scc_entry_compare): ... this one.
17882         (hash_scc): Rename to ...
17883         (DFS::hash_scc): ... this one; pass output_block instead
17884         of streamer_cache; work harder to get unique and stable SCC
17885         hashes.
17886         (DFS_write_tree): Rename to ...
17887         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
17888         (lto_output_tree): Update.
17889
17890 2014-07-25  Andi Kleen  <ak@linux.intel.com>
17891
17892         * lto-streamer-out.c (hash_tree): Convert to inchash.
17893
17894 2014-07-25  Andi Kleen  <ak@linux.intel.com>
17895
17896         * tree.c (build_type_attribute_qual_variant): Use inchash.
17897         (type_hash_list): Dito.
17898         (attribute_hash_list): Dito
17899         (iterative_hstate_expr): Dito.
17900         (iterative_hash_expr): Dito.
17901         (build_range_type_1): Dito.
17902         (build_array_type_1): Dito.
17903         (build_function_type): Dito.
17904         (build_method_type_directly): Dito.
17905         (build_offset_type): Dito.
17906         (build_complex_type): Dito.
17907         (make_vector_type): Dito.
17908         * tree.h (iterative_hash_expr): Add compat wrapper.
17909         (iterative_hstate_expr): Add.
17910
17911 2014-07-25  Andi Kleen  <ak@linux.intel.com>
17912
17913         * Makefile.in (OBJS): Add inchash.o.
17914         (PLUGIN_HEADERS): Add inchash.h.
17915         * ipa-devirt.c: Include inchash.h.
17916         * lto-streamer-out.c: Dito.
17917         * tree-ssa-dom.c: Dito.
17918         * tree-ssa-pre.c: Dito.
17919         * tree-ssa-sccvn.c: Dito.
17920         * tree-ssa-tail-merge.c: Dito.
17921         * asan.c: Dito.
17922         * tree.c (iterative_hash_hashval_t): Move to ...
17923         (iterative_hash_host_wide_int): Move to ...
17924         * inchash.c: Here. New file.
17925         * tree.h (iterative_hash_hashval_t): Move to ...
17926         (iterative_hash_host_wide_int): Move to ...
17927         * inchash.h: Here. New file.
17928
17929 2014-07-25  Richard Biener  <rguenther@suse.de>
17930
17931         PR middle-end/61762
17932         PR middle-end/61894
17933         * fold-const.c (native_encode_int): Add and handle offset
17934         parameter to do partial encodings of expr.
17935         (native_encode_fixed): Likewise.
17936         (native_encode_real): Likewise.
17937         (native_encode_complex): Likewise.
17938         (native_encode_vector): Likewise.
17939         (native_encode_string): Likewise.
17940         (native_encode_expr): Likewise.
17941         * fold-const.c (native_encode_expr): Add offset parameter
17942         defaulting to -1.
17943         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
17944         (fold_ctor_reference): Handle all reads from tcc_constant
17945         ctors.
17946
17947 2014-07-25  Richard Biener  <rguenther@suse.de>
17948
17949         * tree-inline.c (estimate_move_cost): Mark speed_p argument
17950         as possibly unused.
17951
17952 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
17953
17954         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
17955
17956 2014-07-24  Kyle McMartin  <kyle@redhat.com>
17957
17958         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
17959
17960 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17961
17962         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
17963         Add prototype.
17964         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
17965         function.
17966         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
17967         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
17968         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
17969
17970 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17971
17972         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
17973         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
17974         aggregate types.  Instead, *all* aggregate types, except for single-
17975         element or homogeneous float/vector aggregates, are quadword-aligned
17976         if required by their type alignment.  Issue -Wpsabi note when a type
17977         is now treated differently than before.
17978
17979 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17980
17981         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
17982         does not fit fully into floating-point registers, and there is still
17983         space in the register parameter area, use GPRs to pass those parts
17984         of the argument.  Issue -Wpsabi note if any parameter is now treated
17985         differently than before.
17986         (rs6000_arg_partial_bytes): Update.
17987
17988 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
17989
17990         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
17991
17992 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
17993
17994         * rtl.h (target_rtl): Remove lang_dependent_initialized.
17995         * toplev.c (initialize_rtl): Don't use it.  Move previously
17996         "language-dependent" calls to...
17997         (backend_init): ...here.
17998         (lang_dependent_init_target): Don't set lang_dependent_initialized.
17999         Assert that RTL initialization hasn't happend yet.
18000
18001 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
18002
18003         PR rtl-optimization/61629
18004         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
18005         they have already been initialized.
18006
18007 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
18008
18009         PR middle-end/61268
18010         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
18011         DECL_INCOMING_RTL and entry_parm.
18012         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
18013         * calls.c (load_register_parameters): Likewise argument values.
18014         (emit_library_call_value_1, store_one_arg): Likewise argument
18015         save areas.
18016         * config/i386/i386.c (assign_386_stack_local): Likewise the local
18017         stack slot.
18018         * explow.c (validize_mem): Modify the argument in-place.
18019
18020 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
18021
18022         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
18023         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
18024
18025 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
18026
18027         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
18028         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
18029
18030 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
18031
18032         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
18033         (aarch64_save_callee_saves): New parameter "skip_wb".
18034         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
18035
18036 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
18037
18038         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
18039         "wb_candidate2".
18040         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
18041
18042 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
18043
18044         * graphite-isl-ast-to-gimple.c:
18045         (graphite_create_new_loop): Add calling of isl_id_free to properly
18046         decrement reference counts.
18047
18048         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
18049
18050 2014-07-24  Martin Liska  <mliska@suse.cz>
18051         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
18052         function used.
18053         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
18054         (rs6000_code_end): Likewise.
18055
18056 2014-07-24  Martin Liska  <mliska@suse.cz>
18057
18058         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
18059         symtab_node funtion used.
18060         (rs6000_xcoff_declare_object_name): Likewise.
18061
18062 2014-07-24  Martin Liska  <mliska@suse.cz>
18063
18064         * cgraphunit.c (compile): Correct function used.
18065
18066 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
18067
18068         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
18069         as non-indexable.
18070
18071 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
18072
18073         PR lto/61802
18074         * varasm.c (bss_initializer_p): Handle offlined ctors.
18075         (align_variable, get_variable_align): Likewise.
18076         (make_decl_one_only): Likewise.
18077         (default_binds_local_p_1): Likewise.
18078         (decl_binds_to_current_def_p): Likewise.
18079         (get_variable_section): Get constructor if it is offlined.
18080         (assemble_variable_contents): Sanity check that the caller
18081         streamed in the ctor in LTO.
18082
18083 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
18084
18085         * graphite-isl-ast-to-gimple.c:
18086         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
18087         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
18088         isl_ast_op_pdiv_r to the different case.
18089
18090         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
18091
18092 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18093
18094         PR middle-end/61876
18095         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
18096         when flag_errno_math is on.
18097
18098 2014-07-24  Martin Liska  <mliska@suse.cz>
18099
18100         * cgraph.h (varpool_node):
18101         (availability get_availability (void)):
18102         created from cgraph_variable_initializer_availability
18103         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
18104         created from: cgraph_variable_initializer_availability
18105         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
18106         (void finalize_named_section_flags (void)):
18107         created from varpool_finalize_named_section_flags
18108         (bool assemble_decl (void)): created from varpool_assemble_decl
18109         (void analyze (void)): created from varpool_analyze_node
18110         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
18111         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
18112         (void remove_initializer (void)): created from varpool_remove_initializer
18113         (tree get_constructor (void)): created from varpool_get_constructor
18114         (bool externally_visible_p (void)): created from varpool_externally_visible_p
18115         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
18116         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
18117         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
18118         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
18119         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
18120         (static bool output_variables (void)): created from varpool_output_variables
18121         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
18122         created from varpool_extra_name_alias
18123         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
18124         (static void dump_varpool (FILE *f)): created from dump_varpool
18125         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
18126         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
18127         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
18128         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
18129         (void assemble_aliases (void)): created from assemble_aliases
18130
18131 2014-07-24  Martin Liska  <mliska@suse.cz>
18132
18133         * cgraph.h (symtab_node):
18134         (void register_symbol (void)): created from symtab_register_node
18135         (void remove (void)): created from symtab_remove_node
18136         (void dump (FILE *f)): created from dump_symtab_node
18137         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
18138         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
18139         (struct ipa_ref *add_reference (symtab_node *referred_node,
18140         enum ipa_ref_use use_type)): created from add_reference
18141         (struct ipa_ref *add_reference (symtab_node *referred_node,
18142         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
18143         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
18144         gimple stmt)): created from maybe_add_reference
18145         (bool semantically_equivalent_p (symtab_node *target)): created from
18146         symtab_semantically_equivalent_p
18147         (void remove_from_same_comdat_group (void)): created from
18148         remove_from_same_comdat_group
18149         (void add_to_same_comdat_group (symtab_node *old_node)): created from
18150         symtab_add_to_same_comdat_group
18151         (void dissolve_same_comdat_group_list (void)): created from
18152         symtab_dissolve_same_comdat_group_list
18153         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
18154         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
18155         created from symtab_alias_ultimate_target
18156         (inline symtab_node *next_defined_symbol (void)): created from
18157         symtab_next_defined_symbol
18158         (bool resolve_alias (symtab_node *target)): created from
18159         symtab_resolve_alias
18160         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
18161         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
18162         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
18163         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
18164         (void set_section (const char *section)): created from set_section_1
18165         (enum availability get_availability (void)): created from symtab_node_availability
18166         (void make_decl_local (void)): created from symtab_make_decl_local
18167         (bool real_symbol_p (void)): created from symtab_read_node
18168         (can_be_discarded_p (void)): created from symtab_can_be_discarded
18169         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
18170         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
18171         symtab_in_same_comdat_p;
18172         (bool address_taken_from_non_vtable_p (void)): created from
18173         address_taken_from_non_vtable_p
18174         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
18175         (static void dump_table (FILE *)): created from dump_symtab
18176         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
18177         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
18178         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
18179         symtab_used_from_object_file_p
18180         (void dump_base (FILE *)): created from dump_symtab_base
18181         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
18182         (void unregister (void)): created from symtab_unregister_node
18183         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
18184         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
18185         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
18186         symtab_nonoverwritable_alias_1
18187         * cgraph.h (cgraph_node):
18188         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
18189         created from cgraph_remove_node_and_inline_clones
18190         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
18191         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
18192         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
18193         (cgraph_node *function_symbol (enum availability *avail = NULL)):
18194         created from cgraph_function_node
18195         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
18196         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
18197         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
18198         created from cgraph_create_clone
18199         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
18200         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
18201         created from cgraph_create_virtual_clone
18202         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
18203         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
18204         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
18205         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
18206         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
18207         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
18208         created from cgraph_function_version_info
18209         (struct cgraph_function_version_info *insert_new_function_version (void)):
18210         created from insert_new_cgraph_node_version
18211         (struct cgraph_function_version_info *function_version (void)): created from
18212         get_cgraph_node_version
18213         (void analyze (void)): created from analyze_function
18214         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
18215         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
18216         tree real_alias) cgraph_add_thunk
18217         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
18218         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
18219         created from cgraph_function_or_thunk_node
18220         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
18221         created from expand_thunk
18222         (void reset (void)): created from cgraph_reset_node
18223         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
18224         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
18225         (void remove (void)): created from cgraph_remove_node
18226         (void dump (FILE *f)): created from dump_cgraph_node
18227         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
18228         (bool get_body (void)): created from cgraph_get_body
18229         (void release_body (void)): created from cgraph_release_function_body
18230         (void unnest (void)): created from cgraph_unnest_node
18231         (void make_local (void)): created from cgraph_make_node_local
18232         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
18233         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
18234         gcov_type count, int freq)): created from cgraph_create_edge
18235         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
18236         gcov_type count, int freq)): created from cgraph_create_indirect_edge
18237         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
18238         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
18239         created from cgraph_create_edge_including_clones
18240         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
18241         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
18242         (void remove_callers (void)): created from cgraph_node_remove_callers
18243         (void remove_callees (void)): created from cgraph_node_remove_callees
18244         (enum availability get_availability (void)): created from cgraph_function_body_availability
18245         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
18246         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
18247         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
18248         (void call_duplication_hooks (cgraph_node *node2)): created from
18249         cgraph_call_node_duplication_hooks
18250         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
18251         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
18252         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
18253         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
18254         (void call_function_insertion_hooks (void)):
18255         created from cgraph_call_function_insertion_hooks
18256         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
18257         (bool local_p (void)): created from cgraph_local_node
18258         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
18259         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
18260         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
18261         (inline bool only_called_directly_or_aliased_p (void)):
18262         created from cgraph_only_called_directly_or_aliased_p
18263         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
18264         created from cgraph_will_be_removed_from_program_if_no_direct_calls
18265         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
18266         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
18267         (bool can_remove_if_no_direct_calls_p (void)):
18268         created from cgraph_can_remove_if_no_direct_calls_p
18269         (inline bool has_gimple_body_p (void)):
18270         created from cgraph_function_with_gimple_body_p
18271         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
18272         (static void dump_cgraph (FILE *f)): created from dump_cgraph
18273         (static inline void debug_cgraph (void)): created from debug_cgraph
18274         (static void record_function_versions (tree decl1, tree decl2)):
18275         created from record_function_versions
18276         (static void delete_function_version (tree decl)):
18277         created from delete_function_version
18278         (static void add_new_function (tree fndecl, bool lowered)):
18279         created from cgraph_add_new_function
18280         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
18281         (static cgraph_node * create (tree decl)): created from cgraph_create_node
18282         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
18283         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
18284         (static cgraph_node *get_for_asmname (tree asmname)):
18285         created from cgraph_node_for_asm
18286         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
18287         created from cgraph_same_body_alias
18288         (static bool used_from_object_file_p_worker (cgraph_node *node,
18289         void *): new function
18290         (static bool non_local_p (cgraph_node *node, void *)):
18291         created from cgraph_non_local_node_p_1
18292         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
18293         created from verify_cgraph
18294         (static bool make_local (cgraph_node *node, void *)):
18295         created from cgraph_make_node_local
18296         (static cgraph_node *create_alias (tree alias, tree target)):
18297         created from cgraph_create_function_alias
18298         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
18299         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
18300         created from cgraph_create_edge_1
18301         * cgraph.h (varpool_node):
18302         (void remove (void)): created from varpool_remove_node
18303         (void dump (FILE *f)): created from dump_varpool_node
18304
18305 2014-07-24  Richard Biener  <rguenther@suse.de>
18306
18307         PR ipa/61823
18308         * tree-ssa-structalias.c (create_variable_info_for_1):
18309         Use varpool_get_constructor.
18310         (create_variable_info_for): Likewise.
18311
18312 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
18313
18314         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
18315         subtract outgoing area size when restoring stack_pointer_rtx.
18316
18317 2014-07-24  Nick Clifton  <nickc@redhat.com>
18318
18319         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
18320         that operations are taking place in parallel.
18321         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
18322
18323 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
18324
18325         * omp-low.c (extract_omp_for_data): Add missing break statement.
18326
18327 2014-07-24  Richard Biener  <rguenther@suse.de>
18328
18329         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
18330         * tree-inline.c (estimate_move_cost): Add speed_p parameter
18331         and adjust MOVE_RATIO query accordingly.
18332         (estimate_num_insns): Adjust callers.
18333         * ipa-prop.c (ipa_populate_param_decls): Likewise.
18334         * ipa-cp.c (gather_context_independent_values,
18335         estimate_local_effects): Likewise.
18336         * ipa-split.c (consider_split): Likewise.
18337
18338 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
18339
18340         * config/i386/driver-i386.c: Remove names of unused arguments and
18341         unnecessary unused attributes.
18342         * config/i386/host-mingw32.c: Likewise.
18343         * config/i386/i386.c: Likewise.
18344         * config/i386/winnt-stubs.c: Likewise.
18345         * config/i386/winnt.c: Likewise.
18346
18347 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18348
18349         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
18350         (aarch64_gen_loadwb_pair): New helper function.
18351         (aarch64_expand_epilogue): Simplify code using new helper functions.
18352         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
18353
18354 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18355
18356         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
18357         (aarch64_gen_storewb_pair): New helper function.
18358         (aarch64_expand_prologue): Simplify code using new helper functions.
18359         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
18360
18361 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18362
18363         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
18364         Rename to aarch64_save_callee_saves, remove restore code.
18365         (aarch64_restore_callee_saves): New function.
18366
18367 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18368
18369         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
18370         (aarch64_save_callee_saves): New function to handle reg save
18371         for both core and vectore regs.
18372
18373 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18374
18375         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
18376         (aarch64_gen_store_pair): New helper function.
18377         (aarch64_save_or_restore_callee_save_registers)
18378         (aarch64_save_or_restore_fprs): Use new helper functions.
18379
18380 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18381
18382         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
18383         (aarch64_save_or_restore_callee_save_registers)
18384         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
18385
18386 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18387
18388         * config/aarch64/aarch64.c
18389         (aarch64_save_or_restore_callee_save_registers)
18390         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
18391
18392 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18393
18394         * config/aarch64/aarch64.c
18395         (aarch64_save_or_restore_callee_save_registers)
18396         (aarch64_save_or_restore_fprs): Remove 'increment'.
18397
18398 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18399
18400         * config/aarch64/aarch64.c
18401         (aarch64_save_or_restore_callee_save_registers)
18402         (aarch64_save_or_restore_fprs): Use register offset in
18403         cfun->machine->frame.reg_offset.
18404
18405 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18406
18407         * config/aarch64/aarch64.c
18408         (aarch64_save_or_restore_callee_save_registers)
18409         (aarch64_save_or_restore_fprs): Remove base_rtx.
18410
18411 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18412
18413         * config/aarch64/aarch64.c
18414         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
18415         to 'start_offset'.  Remove local variable 'start_offset'.
18416
18417 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18418
18419         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
18420         type to HOST_WIDE_INT.
18421
18422 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18423
18424         * config/aarch64/aarch64.c (aarch64_expand_prologue)
18425         (aarch64_save_or_restore_fprs)
18426         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
18427
18428 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18429
18430         * config/arm/t-rtems-eabi: Add
18431         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
18432         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
18433         mbig-endian/mthumb/march=armv7-r, and
18434         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
18435         multilibs.
18436
18437 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18438             Chris Johns <chrisj@rtems.org>
18439             Joel Sherrill <joel.sherrill@oarcorp.com>
18440
18441         * config.gcc: Add nios2-*-rtems*.
18442         * config/nios2/rtems.h: New file.
18443         * gcc/config/nios2/t-rtems: New file.
18444
18445 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
18446
18447         PR target/61396
18448         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
18449         constant numbers, not general constants.
18450         (rs6000_expand_vector_init): Ditto.
18451
18452 2014-07-23  Nathan Sidwell  <nathan@acm.org>
18453
18454         * gcov-tool.c (gcov_list): Declare here.
18455         (set_gcov_list): Remove.
18456         (gcov_output_files): Set gcov_list directly.
18457
18458 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
18459
18460         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
18461
18462 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
18463
18464         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
18465         callee-saved registers are available for padding purpose
18466         and r3 is not mandatory, then prefer use those callee-saved
18467         instead of r3.
18468
18469 2014-07-23  Richard Biener  <rguenther@suse.de>
18470
18471         * params.def (PARAM_MAX_COMBINE_INSNS): New.
18472         * combine.c: Include statistics.h and params.h.
18473         (combine_instructions): Guard three and four insn combines
18474         with max-combine-insns value.  Record statistics for combines
18475         performed.
18476         * doc/invoke.texi (max-combine-insns): Document new param.
18477
18478 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
18479
18480         * graphite-isl-ast-to-gimple.c:
18481         (translate_isl_ast_node_block): New function.
18482         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
18483
18484         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
18485         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
18486
18487 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
18488
18489         * graphite-isl-ast-to-gimple.c:
18490         (get_max_schedule_dimensions): New function.
18491         (extend_schedule): Likewise.
18492         (generate_isl_schedule): Add calling of extend_schedule and
18493         get_max_schedule_dimensions.
18494
18495 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18496
18497         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
18498         (case UNSPEC): Handle UNSPEC_RBIT.
18499
18500 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18501
18502         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
18503         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
18504
18505 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18506
18507         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
18508
18509 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
18510
18511         * graphite-isl-ast-to-gimple.c:
18512         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
18513         (ivs_params_clear):
18514         (build_iv_mapping): New function.
18515         (translate_isl_ast_node_user): Likewise.
18516         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
18517
18518         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
18519         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
18520         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
18521
18522 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
18523
18524         PR target/55701
18525         * config/arm/arm.md (setmem): New pattern.
18526         * config/arm/arm-protos.h (struct tune_params): New fields.
18527         (arm_gen_setmem): New prototype.
18528         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
18529         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
18530         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
18531         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
18532         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
18533         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
18534         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
18535         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
18536         (arm_const_inline_cost): New function.
18537         (arm_block_set_max_insns): New function.
18538         (arm_block_set_non_vect_profit_p): New function.
18539         (arm_block_set_vect_profit_p): New function.
18540         (arm_block_set_unaligned_vect): New function.
18541         (arm_block_set_aligned_vect): New function.
18542         (arm_block_set_unaligned_non_vect): New function.
18543         (arm_block_set_aligned_non_vect): New function.
18544         (arm_block_set_vect, arm_gen_setmem): New functions.
18545
18546 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
18547
18548         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
18549
18550 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
18551
18552         PR target/61855
18553         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
18554         out of #ifdef __OPTIMIZE__.
18555
18556 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
18557
18558         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
18559         different trapping status if -fnon-call-exceptions is enabled.
18560
18561 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
18562
18563         * expr.c (store_field): Handle VOIDmode for calls that return values
18564         in multiple locations.
18565
18566 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18567
18568         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
18569         (altivec_vsldoi_<mode>): Likewise.
18570
18571 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
18572
18573         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
18574         to the number of characters in the line.
18575
18576 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
18577
18578         * graphite-isl-ast-to-gimple.c: Add using of
18579         build_nonstandard_integer_type instead of int128_integer_type_node.
18580
18581 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
18582
18583         * toplev.c (output_stack_usage): Adjust the location of the warning.
18584
18585 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
18586
18587         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
18588         (*membar_storeload): Disable for LEON3.
18589
18590 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18591
18592         PR rtl-optimization/61461
18593         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
18594
18595 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
18596
18597         PR target/61794
18598         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
18599         Fix instruction constraint.
18600         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
18601
18602 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
18603
18604         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
18605
18606 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
18607
18608         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
18609         GNU coding standards.
18610         (nds32_register_move_cost): Likewise.
18611         (nds32_memory_move_cost): Likewise.
18612         (nds32_address_cost): Likewise.
18613
18614 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
18615
18616         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
18617
18618 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
18619
18620         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
18621         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
18622         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
18623         (HAVE_sync_compare_and_swapqi): Define.
18624         (HAVE_sync_compare_and_swaphi): Likewise.
18625         (HAVE_sync_compare_and_swapsi): Likewise.
18626
18627 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
18628
18629         * config/mips/p5600.md: Add missing cpu tests.
18630
18631 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18632
18633         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
18634         (vmla_f64): Likewise.
18635         (vfms_f64): Likewise.
18636         (vmls_f64): Likewise.
18637
18638 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18639
18640         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
18641         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
18642
18643 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18644
18645         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
18646         (vmlal_high_lane_s32): Likewise.
18647         (vmlal_high_lane_u16): Likewise.
18648         (vmlal_high_lane_u32): Likewise.
18649         (vmlsl_high_lane_s16): Likewise.
18650         (vmlsl_high_lane_s32): Likewise.
18651         (vmlsl_high_lane_u16): Likewise.
18652         (vmlsl_high_lane_u32): Likewise.
18653
18654 2014-07-17  Terry Guo  <terry.guo@arm.com>
18655
18656         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
18657         (alus_reg): Renamed to alus_sreg.
18658         * config/arm/arm-fixed.md: Change type of non-dsp instructions
18659         from alu_reg to alu_sreg.  Change type of dsp instructions from
18660         alu_reg to alu_dsp_reg.
18661         * config/arm/thumb1.md: Likewise.
18662         * config/arm/thumb2.md: Likewise.
18663         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
18664         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
18665         with alu_sreg and alus_sreg.
18666         * config/arm/arm1026ejs.md (alu_op): Likewise.
18667         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
18668         * config/arm/arm926ejs.md (9_alu_op): Likewise.
18669         * config/arm/fa526.md (526_alu_op): Likewise.
18670         * config/arm/fa606te.md (606te_alu_op): Likewise.
18671         * config/arm/fa626te.md (626te_alu_op): Likewise.
18672         * config/arm/fa726te.md (726te_alu_op): Likewise.
18673         * config/arm/fmp626.md (mp626_alu_op): Likewise.
18674         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
18675         alu_sreg, alu_dsp_reg and alus_sreg.
18676         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
18677         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
18678         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
18679         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
18680         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
18681         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
18682         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
18683         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
18684         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
18685         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
18686         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
18687         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
18688         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
18689         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
18690         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
18691         alus_reg to alus_sreg.
18692
18693 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
18694
18695         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
18696         infinity format.
18697
18698 2014-07-17  Richard Biener  <rguenther@suse.de>
18699
18700         PR rtl-optimization/61801
18701         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
18702         don't set reg_pending_barrier if it appears in a debug-insn.
18703
18704 2014-07-16  DJ Delorie  <dj@redhat.com>
18705
18706         * config/rx/rx.c (rx_option_override): Fix alignment values.
18707         (rx_align_for_label): Likewise.
18708
18709 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
18710
18711         PR target/61737.
18712         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
18713         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
18714         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
18715         functions.
18716         (cris_print_index, cris_print_operand, cris_constant_index_p)
18717         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
18718         (cris_address_cost): Ditto last CONSTANT_P.
18719         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
18720         callers changed.  Yield cris_offsettable_symbol for non-PIC
18721         constant symbolic expressions including labels.  Yield cris_unspec
18722         for all unspecs.
18723         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
18724         target to pic_offset_table_rtx for calls that will likely go
18725         through PLT, const0_rtx when they can't.  All callers changed.
18726         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
18727         symbolic expressions to be PICified.  Remove second, redundant,
18728         assert on can_create_pseudo_p returning non-zero.  Use
18729         replace_equiv_address_nv, not replace_equiv_address, for final
18730         operand update.
18731         * config/cris/cris.md ("movsi"): Move variable t to pattern
18732         toplevel. Adjust assert for new cris_symbol_type member.  Use
18733         CONSTANT_P instead of CONSTANT_ADDRESS_P.
18734         ("*movsi_internal") <case 9>: Make check for valid unspec operands
18735         for lapc stricter.
18736         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
18737         ("call", "call_value"): Use second incoming operand as a marker
18738         for pic-offset-table-register being used.
18739         ("*expanded_call_non_v32", "*expanded_call_v32")
18740         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
18741         second incoming operand to CALL, match cris_call_type_marker.
18742         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
18743         ("*expanded_call_side"): Ditto.  Fix typo in comment.
18744         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
18745         CONSTANT_P.
18746         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
18747         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
18748         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
18749         users changed.  Add members cris_offsettable_symbol and cris_unspec.
18750         (cris_symbol_type): Rename from cris_pic_symbol_type.
18751         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
18752         just CONSTANT_P.
18753         * config/cris/cris-protos.h (cris_symbol_type_of,
18754         cris_expand_pic_call_address): Adjust prototypes.
18755         (cris_legitimate_constant_p): New prototype.
18756
18757         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
18758         an existing tmake_file.  Don't add t-slibgcc and t-linux.
18759
18760 2014-07-17  Jason Merrill  <jason@redhat.com>
18761
18762         PR c++/61623
18763         * symtab.c (symtab_remove_from_same_comdat_group): Also
18764         set_comdat_group to NULL_TREE.
18765         (verify_symtab): Fix diagnostic.
18766
18767 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
18768
18769         PR target/61662
18770         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
18771
18772 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
18773
18774         Support location tracking for built-in macro tokens
18775         * input.h (is_location_from_builtin_token): New function declaration.
18776         * input.c (is_location_from_builtin_token): New function definition.
18777         * toplev.c (general_init): Tell libcpp what the pre-defined
18778         spelling location for built-in tokens is.
18779
18780 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
18781
18782         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
18783         on the FUNCTION_DECL.
18784
18785 2014-07-16  Richard Biener  <rguenther@suse.de>
18786
18787         PR other/61782
18788         * doc/extend.texi (always_inline): Clarify.
18789
18790 2014-07-15  Eric Christopher  <echristo@gmail.com>
18791
18792         * doc/invoke.texi (Link Options): Document -z option.
18793
18794 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
18795
18796         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
18797         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
18798
18799 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
18800
18801         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
18802
18803 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
18804
18805         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
18806         varpool_assemble_decl.
18807         * varpool.c (varpool_assemble_decl): Assert that node->definition is
18808         true.
18809
18810 2014-07-15  Michael Matz  <matz@suse.de>
18811
18812         PR rtl-optimization/61772
18813         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
18814
18815 2014-07-15  Richard Biener  <rguenther@suse.de>
18816
18817         * opts.c (default_options_table): Disable bit-ccp at -Og.
18818
18819 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
18820
18821         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
18822
18823 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
18824
18825         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
18826         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
18827         call langhook for unknown declaration.
18828         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
18829         * tree.h (DECL_ARGUMENTS): Update.
18830         * print-tree.c (print_node): Update.
18831         * tree-core.h (tree_decl_non_common): Remove arguments.
18832         (tree_function_decl): Add arguments.
18833
18834 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
18835
18836         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
18837
18838 2014-07-14  Richard Biener  <rguenther@suse.de>
18839
18840         PR tree-optimization/61779
18841         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
18842         simplifying a condition.
18843
18844 2014-07-14  Richard Biener  <rguenther@suse.de>
18845
18846         * builtins.c (c_strlen): Make only_value == 2 really only
18847         affect warning generation.
18848
18849 2014-07-14  Richard Biener  <rguenther@suse.de>
18850
18851         PR tree-optimization/61757
18852         PR tree-optimization/61783
18853         PR tree-optimization/61787
18854         * tree-ssa-dom.c (record_equality): Revert canonicalization
18855         change and add comment.
18856         (propagate_rhs_into_lhs): Revert previous fix, removing
18857         loop depth restriction again.
18858
18859 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18860
18861         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
18862         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
18863         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
18864         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
18865         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
18866         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
18867         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
18868
18869 2014-07-14  Richard Biener  <rguenther@suse.de>
18870
18871         * cgraph.h (decl_in_symtab_p): Make inline.
18872
18873 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
18874
18875         PR middle-end/61294
18876         * doc/invoke.texi (-Wmemset-transposed-args): Document.
18877
18878         PR target/61656
18879         * config/i386/i386.c (classify_argument): Don't merge classes above
18880         number of words.
18881
18882 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
18883
18884         * cgraph.h (symtab_node): Add nonzero_address.
18885         (decl_in_symtab_p): Break out from ...
18886         (symtab_get_node): ... here.
18887         * fold-const.c: Include cgraph.h
18888         (tree_single_nonzero_warnv_p): Use symtab to determine
18889         if symbol is non-zero.
18890         * symtab.c (symtab_node::nonzero_address): New method.
18891
18892 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
18893
18894         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
18895         forgotten in previous commit.
18896
18897 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
18898
18899         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
18900         on builtin types.
18901         * ipa-devirt.c: Include stor-layout.h and intl.h
18902         (odr_subtypes_equivalent_p): New function.
18903         (warn_odr): New function.
18904         (warn_type_mismatch): New function.
18905         (odr_types_equivalent_p): New function.
18906         (add_type_duplicate): Use it.
18907         * common.opt (Wodr): New flag.
18908         * doc/invoke.texi (Wodr): Document new warning.
18909
18910 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
18911
18912         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
18913         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
18914         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
18915         (varpool_get_constructor): Push CTORS_IN timevar.
18916         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
18917
18918 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
18919
18920         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
18921         Remove VOID_FTYPE_PUSHORT.
18922         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
18923         Change code to USHORT_FTYPE_VOID.
18924         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
18925         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
18926         (ix86_atomic_assign_expand_fenv): Update for
18927         __builtin_ia32_fnstsw changes.
18928         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
18929         (fnstsw): Change operand 0 to nonimmediate operand.
18930
18931 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
18932
18933         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
18934         (varpool_get_constructor): New function.
18935         (varpool_ctor_useable_for_folding_p): Break out from ...
18936         (ctor_for_folding): ... here; use varpool_get_constructor.
18937         (varpool_assemble_decl): Likewise.
18938         * lto-streamer.h (struct output_block): Turn cgraph_node
18939         to symbol filed.
18940         (lto_input_variable_constructor): Declare.
18941         * ipa-visibility.c (function_and_variable_visibility): Use
18942         varpool_get_constructor.
18943         * cgraph.h (varpool_get_constructor): Declare.
18944         (varpool_ctor_useable_for_folding_p): New function.
18945         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
18946         parameter; return error_mark_node for non-trivial constructors.
18947         (lto_write_tree_1, DFS_write_tree): Update use of
18948         get_symbol_initial_value.
18949         (output_function): Update initialization of symbol.
18950         (output_constructor): New function.
18951         (copy_function): Rename to ..
18952         (copy_function_or_variable): ... this one; handle vars too.
18953         (lto_output): Output variable sections.
18954         * lto-streamer-in.c (input_constructor): New function.
18955         (lto_read_body): Rename from ...
18956         (lto_read_body_or_constructor): ... this one; handle vars too.
18957         (lto_input_variable_constructor): New function.
18958         * ipa-prop.c (ipa_prop_write_jump_functions,
18959         ipa_prop_write_all_agg_replacement): Update.
18960         * lto-cgraph.c (compute_ltrans_boundary): Use it.
18961         (output_cgraph_opt_summary): Set symbol to NULL.
18962
18963 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
18964
18965         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
18966         non-polymorphic types.
18967         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
18968         * ipa-devirt.c (types_same_for_odr): Do not explode when one
18969         of types is not polymorphic.
18970
18971 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
18972
18973         * lra-constraints.c (remove_inheritance_pseudos): Process
18974         destination pseudo too.
18975
18976 2014-07-11  Rong Xu  <xur@google.com>
18977
18978         * gcov-tool.c (gcov_output_files): Fix build error introduced in
18979         commit r212448.
18980
18981 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
18982
18983         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
18984         * config/avr/avr-devices.c (AVR_MCU): Same.
18985         (avr_mcu_types): add text start value to end of device list.
18986         * config/avr/avr-mcus.def: Add text section start for all devices.
18987         (ata5782): Add new avr5 device.
18988         (ata5831): Same.
18989         * config/avr/avr-tables.opt: Regenerate.
18990         * config/avr/avr.h: Add declaration for text section start handler.
18991         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
18992         SPEC functions.
18993         (LINK_SPEC): Include text section start handler to linker spec.
18994         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
18995         pass -Ttext option to linker if the text section start for the device
18996         is not zero.
18997         * config/avr/t-multilib: Regenerate.
18998         * doc/avr-mmcu.texi: Regenerate.
18999
19000 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
19001
19002         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
19003         * config/rs6000/aix52.h (LINK_SPEC): Same.
19004         * config/rs6000/aix53.h (LINK_SPEC): Same.
19005         * config/rs6000/aix61.h (LINK_SPEC): Same.
19006         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
19007
19008 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
19009
19010         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
19011         (graphite_verify): New function.
19012         (ivs_params_clear): New function.
19013         (gcc_expression_from_isl_ast_expr_id): New function.
19014         (gcc_expression_from_isl_expr_int): New function.
19015         (binary_op_to_tree): New function.
19016         (ternary_op_to_tree): New function.
19017         (unary_op_to_tree): New function.
19018         (nary_op_to_tree): New function.
19019         (gcc_expression_from_isl_expr_op): New function.
19020         (gcc_expression_from_isl_expression): New function.
19021         (graphite_create_new_loop): New function.
19022         (translate_isl_ast_for_loop): New function.
19023         (get_upper_bound): New function.
19024         (graphite_create_new_loop_guard): New function.
19025         (translate_isl_ast_node_for): New function.
19026         (translate_isl_ast): New function.
19027         (add_parameters_to_ivs_params): New function.
19028         (scop_to_isl_ast): New parameter ip.
19029         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
19030
19031 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
19032
19033         * config/xtensa/predicates.md (call expander): Update for
19034         DECL_SECTION_NAME being string.
19035
19036 2014-07-11  Richard Biener  <rguenther@suse.de>
19037
19038         PR middle-end/61473
19039         * builtins.c (fold_builtin_memory_op): Inline memory moves that
19040         can be implemented with a single load followed by a single store.
19041         (c_strlen): Only warn when only_value is not 2.
19042
19043 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
19044
19045         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
19046
19047 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
19048
19049         PR target/61561
19050         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
19051         (*movhi_bytes): Likewise.
19052         (*arm_movqi_insn): Likewise.
19053
19054 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
19055
19056         PR target/56858
19057         * config/alpha/alpha.c: Include tree-pass.h, context.h
19058         and pass_manager.h.
19059         (pass_data_handle_trap_shadows): New pass.
19060         (pass_handle_trap_shadows::gate): New pass gate function.
19061         (make_pass_handle_trap_shadows): New function.
19062         (rest_of_handle_trap_shadows): Ditto.
19063
19064         (alpha_align_insns_1): Rename from alpha_align_insns.
19065         (pass_data_align_insns): New pass.
19066         (pass_align_insns::gate): New pass gate function.
19067         (make_pass_aling_insns): New function.
19068         (rest_of_align_insns): Ditto.
19069         (alpha_align_insns): Ditto.
19070
19071         (alpha_option_override): Declare handle_trap_shadows info
19072         and align_insns_info.  Register handle_trap_shadows and align_insns
19073         passes here.
19074         (alpha_reorg): Do not call alpha_trap_shadows and
19075         alpha_align_insn from here.
19076
19077         (alpha_pad_function_end): Do not skip BARRIERs.
19078
19079 2014-07-10  Rong Xu  <xur@google.com>
19080
19081         Add gcov-tool: an offline gcda profile processing tool support.
19082         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
19083         (gcov_is_error): Ditto.
19084         (gcov_read_string): Ditto.
19085         (gcov_read_sync): Ditto.
19086         * gcov-io.h: Move counter defines to gcov-counter.def.
19087         * gcov-dump.c (tag_counters): Use gcov-counter.def.
19088         * coverage.c: Ditto.
19089         * gcov-tool.c: Offline gcda profile processing tool.
19090         (unlink_gcda_file): Remove one gcda file.
19091         (unlink_profile_dir): Remove gcda files from the profile path.
19092         (gcov_output_files): Output gcda files to an output dir.
19093         (profile_merge): Merge two profiles in directory.
19094         (print_merge_usage_message): Print merge usage.
19095         (merge_usage): Print merge usage and exit.
19096         (do_merge): Driver for profile merge sub-command.
19097         (profile_rewrite): Rewrite profile.
19098         (print_rewrite_usage_message): Print rewrite usage.
19099         (rewrite_usage): Print rewrite usage and exit.
19100         (do_rewrite): Driver for profile rewrite sub-command.
19101         (print_usage): Print gcov-info usage and exit.
19102         (print_version): Print gcov-info version.
19103         (process_args): Process arguments.
19104         (main): Main routine for gcov-tool.
19105         * Makefile.in: Build and install gcov-tool.
19106         * gcov-counter.def: New file split from gcov-io.h.
19107         * doc/gcc.texi: Include gcov-tool.texi.
19108         * doc/gcov-tool.texi: Document for gcov-tool.
19109
19110 2014-07-10  Richard Biener  <rguenther@suse.de>
19111
19112         PR tree-optimization/61757
19113         * tree-ssa-dom.c (loop_depth_of_name): Restore.
19114         (propagate_rhs_into_lhs): Revert part of last change.
19115
19116 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
19117
19118         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
19119         FUNCTION_DECLs.
19120
19121 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
19122
19123         PR middle-end/53590
19124         * function.c (allocate_struct_function): Revert r188667 change.
19125
19126         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
19127
19128 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
19129
19130         * doc/install.texi: Remove links to defunct package providers for
19131         Solaris.
19132
19133 2014-07-09  Tom de Vries  <tom@codesourcery.com>
19134
19135         * final.c (get_call_fndecl): Declare.
19136         (self_recursive_call_p): New function.
19137         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
19138
19139 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19140
19141         * ipa-devirt.c (record_node): Walk through aliases.
19142
19143 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19144
19145         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
19146
19147 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19148
19149         Revert:
19150         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
19151
19152 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19153
19154         * ipa-visibility.c (function_and_variable_visibility): Remove
19155         temporary hack disabling local aliases on AIX.
19156
19157 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19158
19159         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
19160         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
19161
19162 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19163
19164         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
19165         * rs6000/rs6000.c: Inline output of .set instruction.
19166         (declare_alias_data): New struct.
19167         (rs6000_declare_alias): New function.
19168         (rs6000_xcoff_declare_function_name): Use it.
19169         (rs6000_xcoff_declare_object_name): New function.
19170         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
19171         (ASM_OUTPUT_DEF): Turn to empty definition.
19172
19173 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
19174
19175         PR bootstrap/61679
19176         * hash-table.h: use hash_table::value_type instead of
19177         Descriptor::value_type in the return types of several methods.
19178
19179 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
19180
19181         * tree-pass.h (pass_data): Remove has_execute member.
19182         * passes.c (execute_one_pass): Don't check pass->has_execute.
19183         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
19184         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
19185         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
19186         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
19187         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
19188         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
19189         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
19190         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
19191         gimple-low.c, gimple-ssa-isolate-paths.c,
19192         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
19193         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
19194         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
19195         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
19196         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
19197         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
19198         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
19199         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
19200         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
19201         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
19202         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
19203         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
19204         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
19205         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
19206         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
19207         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
19208         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
19209         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
19210         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
19211         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
19212         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
19213         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
19214         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
19215         web.c: Remove initializer for pass_data::has_execute.
19216
19217 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
19218
19219         * graphite-htab.h: Use hash_map instead of hash_table.
19220         * graphite-clast-to-gimple.c: Adjust.
19221         * passes.c: Use hash_map instead of hash_table.
19222         * sese.c: Likewise.
19223         * sese.h: Remove now unused code.
19224
19225 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
19226
19227         PR target/61599
19228         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
19229         than zero.
19230
19231 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
19232
19233         PR rtl-optimization/61673
19234         * combine.c (simplify_comparison): Test just mode's sign bit
19235         in tmode rather than the sign bit and any bits above it.
19236
19237 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
19238
19239         * graphite-isl-ast-to-gimple.c (generate_isl_context):
19240         Add __isl_give to the declaration.
19241         (generate_isl_schedule): Likewise.
19242         (scop_to_isl_ast): Likewise.
19243
19244 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19245
19246         * config/arm/arm.c (cortexa5_extra_costs): New table.
19247         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
19248
19249 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
19250
19251         PR tree-optimization/61725
19252         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
19253         range, use range_includes_zerop_p instead of integer_zerop on
19254         vr0->min, only use log2 of max if min is not negative.
19255
19256 2014-07-08  Richard Biener  <rguenther@suse.de>
19257
19258         * tree-ssa-dom.h (loop_depth_of_name): Remove.
19259         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
19260         restriction on loop depth difference.
19261         (record_equality): Likewise.
19262         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
19263         (loop_depth_of_name): Remove.
19264         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
19265         restriction on loop depth difference.
19266         (init_copy_prop): Likewise.
19267
19268 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
19269
19270         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
19271         parameter.
19272         (walk_aliased_vdefs): Likewise.
19273         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
19274         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
19275         (detect_type_change_from_memory_writes): Check if entry was reached.
19276
19277 2014-07-08  Richard Biener  <rguenther@suse.de>
19278
19279         PR tree-optimization/61681
19280         * tree-ssa-structalias.c (find_what_var_points_to): Expand
19281         NONLOCAL inside ESCAPED.
19282
19283 2014-07-08  Richard Biener  <rguenther@suse.de>
19284
19285         PR tree-optimization/61680
19286         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
19287         Handle properly all read-write dependences with group accesses.
19288
19289 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
19290
19291         PR tree-optimization/61576
19292         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
19293         block containing reduction statement is predecessor of phi basi block.
19294
19295 2014-07-08  Marek Polacek  <polacek@redhat.com>
19296
19297         PR c/60226
19298         * fold-const.c (round_up_loc): Change the parameter type.
19299         Remove assert.
19300         * fold-const.h (round_up_loc): Adjust declaration.
19301         * stor-layout.c (finalize_record_size): Check for too large types.
19302
19303 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
19304
19305         * symtab.c: Include calls.h.
19306         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
19307
19308 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
19309
19310         * config/rs6000/rs6000.c (output_vec_const_move): Handle
19311         little-endian code generation.
19312         * config/rs6000/spe.md (spe_evmergehi): Rename to...
19313         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
19314         (spe_evmergehilo): Rename to...
19315         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
19316         (spe_evmergelo): Rename to...
19317         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
19318         (spe_evmergelohi): Rename to...
19319         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
19320         (spe_evmergehi, spe_evmergehilo): New expanders.
19321         (spe_evmergelo, spe_evmergelohi): Likewise.
19322         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
19323         (*frob_tf_ti): Likewise.
19324         (*frob_<mode>_di_2): Likewise.
19325         (*frob_tf_di_8_2): Likewise.
19326         (*frob_di_<mode>): Likewise.
19327         (*frob_ti_tf): Likewise.
19328         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
19329         (*frob_ti_<mode>_8_2): Likewise.
19330         (*frob_ti_tf_2): Likewise.
19331         (mov_si<mode>_e500_subreg0): Rename to...
19332         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
19333         endianness only.
19334         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
19335         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
19336         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
19337         the big endianness only.
19338         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
19339         (*mov_si<mode>_e500_subreg0_2): Rename to...
19340         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
19341         big big endianness only.
19342         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
19343         (*mov_si<mode>_e500_subreg4): Rename to...
19344         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
19345         endianness only.
19346         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
19347         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
19348         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
19349         the big endianness only.
19350         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
19351         pattern.
19352         (*mov_si<mode>_e500_subreg4_2): Rename to...
19353         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
19354         endianness only.
19355         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
19356         (*mov_sitf_e500_subreg8): Rename to...
19357         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
19358         endianness only.
19359         (*mov_sitf_e500_subreg8_le): New instruction pattern.
19360         (*mov_sitf_e500_subreg8_2): Rename to...
19361         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
19362         endianness only.
19363         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
19364         (*mov_sitf_e500_subreg12): Rename to...
19365         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
19366         endianness only.
19367         (*mov_sitf_e500_subreg12_le): New instruction pattern.
19368         (*mov_sitf_e500_subreg12_2): Rename to...
19369         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
19370         endianness only.
19371         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
19372
19373 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
19374
19375         * asan.c (instrument_strlen_call): Do not instrument first byte
19376         in strlen if already instrumented.
19377
19378 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19379
19380         * config/arm/arm.opt (mwords-little-endian): Delete.
19381         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
19382         of TARGET_LITTLE_WORDS.
19383         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
19384         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
19385         warning.
19386         * doc/invoke.texi: Remove references to -mwords-little-endian.
19387
19388 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
19389
19390         * expmed.c (struct init_expmed_rtl): Change all fields but
19391         pow2 and cint from struct rtx_def to rtx.
19392         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
19393         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
19394         at the end again.
19395
19396 2014-07-06  Marek Polacek  <polacek@redhat.com>
19397
19398         PR c/6940
19399         * doc/invoke.texi: Document -Wsizeof-array-argument.
19400
19401 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
19402
19403         * wide-int.h (wide_int_storage): Change declaration from struct
19404         to class.
19405
19406 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
19407
19408         * cgraph.c (cgraph_create_indirect_edge): Update call of
19409         get_polymorphic_call_info.
19410         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
19411         (possible_polymorphic_call_targets): Add parameter call.
19412         (decl_maybe_in_construction_p): New predicate.
19413         (get_polymorphic_call_info): Add parameter call;
19414         use decl_maybe_in_construction_p.
19415         * gimple-fold.c (fold_gimple_assign): Update use of
19416         possible_polymorphic_call_targets.
19417         (gimple_fold_call): Likewise.
19418         * ipa-prop.c: Inlcude calls.h
19419         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
19420         (param_type_may_change_p): New predicate.
19421         (detect_type_change_from_memory_writes): Break out from ...
19422         (detect_type_change): ... this one; use param_type_may_change_p.
19423         (detect_type_change_ssa): Use param_type_may_change_p.
19424         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
19425
19426 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
19427
19428         PR target/49423
19429         * config/arm/arm-protos.h (arm_legitimate_address_p,
19430         arm_is_constant_pool_ref): Add prototypes.
19431         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
19432         (arm_is_constant_pool_ref) New function.
19433         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
19434         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
19435         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
19436         operand. Remove pool_range and neg_pool_range attributes.
19437         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
19438         pool_range and neg_pool_range attributes.
19439         * config/arm/constraints.md (Uh): New constraint.
19440         (Uq): Don't allow constant pool references.
19441
19442 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
19443
19444         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
19445         (move_lo_quad_internal_be_<mode>): Likewise.
19446         (move_lo_quad_<mode>): Convert to define_expand.
19447         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
19448         (aarch64_simd_move_hi_quad_be_<mode>): New.
19449         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
19450         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
19451         (aarch64_combinez_be<mode>): New.
19452         (aarch64_combine<mode>): Convert to define_expand.
19453         (aarch64_combine_internal<mode>): New.
19454         (aarch64_simd_combine<mode>): Remove bogus RTL description.
19455
19456 2014-07-04  Tom de Vries  <tom@codesourcery.com>
19457
19458         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
19459         combination of earlyclobber and read/write modifiers.
19460
19461 2014-07-04  Tom de Vries  <tom@codesourcery.com>
19462
19463         * config/aarch64/aarch64-simd.md
19464         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
19465
19466 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
19467
19468         PR target/61714
19469         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
19470
19471 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
19472
19473         PR middle-end/61654
19474         * cgraphunit.c (expand_thunk): Call free_dominance_info.
19475
19476         PR tree-optimization/61684
19477         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
19478         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
19479
19480 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19481             Kito Cheng  <kito@0xlab.org>
19482             Monk Chiang  <sh.chiang04@gmail.com>
19483
19484         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
19485         (nds32_symbol_load_store_p): Move to ...
19486         (nds32_fp_as_gp_check_available): Move to ...
19487         * config/nds32/nds32-fp-as-gp.c: ... here.
19488         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
19489         extern declaration.
19490
19491 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19492             Kito Cheng  <kito@0xlab.org>
19493             Monk Chiang  <sh.chiang04@gmail.com>
19494
19495         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
19496         (nds32_expand_store_multiple): Move to ...
19497         (nds32_expand_movmemqi): Move to ...
19498         * config/nds32/nds32-memory-manipulation.c: ... here.
19499
19500 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19501             Kito Cheng  <kito@0xlab.org>
19502             Monk Chiang  <sh.chiang04@gmail.com>
19503
19504         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
19505         (nds32_output_casesi_pc_relative): Move to ...
19506         (nds32_output_casesi): Move to ...
19507         (nds32_mem_format): Move to ...
19508         (nds32_output_16bit_store): Move to ...
19509         (nds32_output_16bit_load): Move to ...
19510         (nds32_output_32bit_store): Move to ...
19511         (nds32_output_32bit_load): Move to ...
19512         (nds32_output_32bit_load_s): Move to ...
19513         (nds32_output_stack_push): Move to ...
19514         (nds32_output_stack_pop): Move to ...
19515         * config/nds32/nds32-md-auxiliary.c: ... here.
19516
19517 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19518             Ling-Hua Tseng  <uranus@tinlans.org>
19519
19520         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
19521         the purpose of this file.
19522
19523 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19524             Kito Cheng  <kito@0xlab.org>
19525             Monk Chiang  <sh.chiang04@gmail.com>
19526
19527         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
19528         (nds32_address_cost): Move implementation to ...
19529         * config/nds32/nds32-cost.c: ... here.
19530         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
19531         (nds32_address_cost_impl): Declare.
19532
19533 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19534             Kito Cheng  <kito@0xlab.org>
19535             Monk Chiang  <sh.chiang04@gmail.com>
19536
19537         * config/nds32/nds32.c
19538         (nds32_consecutive_registers_load_store_p): Move to ...
19539         (nds32_valid_multiple_load_store): Move to ...
19540         (nds32_valid_stack_push_pop): Move to ...
19541         (nds32_can_use_bclr_p): Move to ...
19542         (nds32_can_use_bset_p): Move to ...
19543         (nds32_can_use_btgl_p): Move to ...
19544         (nds32_can_use_bitci_p): Move to ...
19545         * config/nds32/nds32-predicates.c: ... here.
19546
19547 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19548             Kito Cheng  <kito@0xlab.org>
19549             Monk Chiang  <sh.chiang04@gmail.com>
19550
19551         * config/nds32/nds32.c
19552         (nds32_expand_builtin_null_ftype_reg): Move to ...
19553         (nds32_expand_builtin_reg_ftype_imm): Move to ...
19554         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
19555         (nds32_init_builtins): Move implementation to ...
19556         (nds32_expand_builtin): Move implementation to ...
19557         * config/nds32/nds32-intrinsic.c: ... here.
19558         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
19559         (nds32_expand_builtin_impl): Declare.
19560
19561 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19562             Kito Cheng  <kito@0xlab.org>
19563             Monk Chiang  <sh.chiang04@gmail.com>
19564
19565         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
19566         (nds32_emit_section_tail_template): Move to ...
19567         (nds32_emit_isr_jmptbl_section): Move to ...
19568         (nds32_emit_isr_vector_section): Move to ...
19569         (nds32_emit_isr_reset_conten): Move to ...
19570         (nds32_check_isr_attrs_conflict): Move to ...
19571         (nds32_construct_isr_vectors_information): Move to ...
19572         (nds32_asm_file_start): Move implementation to ...
19573         (nds32_asm_file_end): Move implementation to ...
19574         * config/nds32/nds32-isr.c: ... here.
19575         * config/nds32/nds32-protos.h
19576         (nds32_check_isr_attrs_conflict): Declare.
19577         (nds32_construct_isr_vectors_information): Declare.
19578         (nds32_asm_file_start_for_isr): Declare.
19579         (nds32_asm_file_end_for_isr): Declare.
19580
19581 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
19582             Kito Cheng  <kito@0xlab.org>
19583             Monk Chiang  <sh.chiang04@gmail.com>
19584
19585         * config.gcc (nds32*): Add new modules to extra_objs.
19586         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
19587         (nds32be-*-*): Likewise.
19588         * config/nds32/nds32-cost.c: New file.
19589         * config/nds32/nds32-fp-as-gp.c: New file.
19590         * config/nds32/nds32-intrinsic.c: New file.
19591         * config/nds32/nds32-isr.c: New file.
19592         * config/nds32/nds32-md-auxiliary.c: New file.
19593         * config/nds32/nds32-memory-manipulation.c: New file.
19594         * config/nds32/nds32-pipelines-auxiliary.c: New file.
19595         * config/nds32/nds32-predicates.c: New file.
19596         * config/nds32/t-nds32: New file.
19597
19598 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
19599
19600         PR tree-optimization/61682
19601         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
19602         using cases and when one of the operands is equal to 1.
19603
19604 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
19605
19606         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
19607         ashr<mode>3): Correct mode of operands[2].
19608         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
19609         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
19610         Correct mode of operands[2].  Fix split condition.
19611
19612 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
19613
19614         * arm.md (arch): Add armv6_or_vfpv3.
19615         (arch_enabled): Add test for the above.
19616         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
19617         on VFP9.
19618         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
19619
19620 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
19621
19622         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
19623         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
19624         HWI 1 and negate the unsigned value.
19625         * expmed.c (expand_sdiv_pow2): For modes wider than word always
19626         use AND instead of shift.
19627         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
19628
19629 2014-07-03  Marek Polacek  <polacek@redhat.com>
19630
19631         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
19632         (-fsanitize=float-divide-by-zero): Move to the table with
19633         -fsanitize=undefined suboptions.
19634         (-fsanitize=float-cast-overflow): Likewise.
19635
19636 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
19637
19638         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
19639         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
19640         endianness.
19641
19642 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19643
19644         * loop-invariant.c (struct invariant): Add a new member: eqno;
19645         (find_identical_invariants): Update eqno;
19646         (create_new_invariant): Init eqno;
19647         (get_inv_cost): Compute comp_cost with eqno;
19648
19649 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
19650
19651         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
19652         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
19653         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
19654         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
19655         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
19656
19657 2014-07-02  Christian Bruel  <christian.bruel@st.com>
19658
19659         PR target/29349
19660         PR target/53513
19661         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
19662         (make_preds_opaque): Delete.
19663         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
19664         (commit_mode_sets): New function.
19665         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
19666         Process all modes at once.
19667         * basic-block.h (pre_edge_lcm_avs): Declare.
19668         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
19669         Call clear_aux_for_edges. Fix comments.
19670         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
19671         (pre_edge_rev_lcm): Idem.
19672         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
19673         parameter.
19674         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
19675         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
19676         Idem.
19677         * config/i386/i386.c (x96_emit_mode_set): Idem.
19678         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
19679         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
19680         (fpscr_toggle) Disallow from delay slot.
19681         * target.def (emit_mode_set): Add prev_mode parameter.
19682         * doc/tm.texi: Regenerate.
19683
19684 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19685
19686         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
19687         variable i.
19688
19689 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
19690
19691         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
19692         vtable_pointer_value_to_vtable): Constify.
19693         (contains_polymorphic_type_p): Declare.
19694         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
19695         vtable_pointer_value_to_vtable): Constify.
19696         (contains_polymorphic_type_p): New predicate.
19697         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
19698         polymorphic types.
19699         (ipa_set_ancestor_jf): Likewise.
19700         (detect_type_change): Return false in easy cases.
19701         (compute_complex_assign_jump_func): Require type to contain
19702         polymorphic type.
19703         (compute_known_type_jump_func): Likewise.
19704
19705 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
19706
19707         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
19708         Remove.
19709         (type_in_anonymous_namespace_p): Constify argument.
19710         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
19711         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
19712         (main_odr_variant): New function.
19713         (hash_type_name): Make static; update assert; do not ICE on
19714         non-records.
19715         (types_same_for_odr): Bring here from tree.c; simplify and remove
19716         old structural comparing code that doesn't work for templates.
19717         (odr_hasher::equal): Update assert.
19718         (add_type_duplicate): Return true when bases should be computed;
19719         replace incomplete loader by complete; do not output duplicated
19720         warnings; do not ICE on non-records; set odr_violated flag.
19721         (get_odr_type): Be ready to replace incomplete type by complete
19722         one; work on ODR variants instead of main variants; reorder item
19723         in array so bases have still smaller indexes.
19724         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
19725         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
19726
19727 2014-07-01  Cary Coutant  <ccoutant@google.com>
19728
19729         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
19730         lookup.
19731         (resolve_addr_in_expr): When replacing the rtx in a location list
19732         entry, get a new address table entry.
19733         (dwarf2out_finish): Call index_location_lists even if there are no
19734         addr_index_table entries yet.
19735
19736 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
19737
19738         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
19739         change for not being obvious.
19740
19741 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
19742
19743         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
19744         unused argument.
19745
19746 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19747
19748         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
19749         (vcagt_f64): Likewise.
19750         (vcale_f64): Likewise.
19751         (vcaled_f64): Likewise.
19752         (vcales_f32): Likewise.
19753         (vcalt_f64): Likewise.
19754         (vcaltd_f64): Likewise.
19755         (vcalts_f32): Likewise.
19756
19757 2014-07-01  Marek Polacek  <polacek@redhat.com>
19758
19759         * doc/invoke.texi: Document -Wint-conversion.
19760
19761 2014-07-01  Marek Polacek  <polacek@redhat.com>
19762
19763         PR c/58286
19764         * doc/invoke.texi: Document -Wincompatible-pointer-types.
19765
19766 2014-07-01  Martin Liska  <mliska@suse.cz>
19767
19768         IPA REF alias refactoring
19769         * cgraph.h (iterate_direct_aliases): New function.
19770         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
19771         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
19772         FOR_EACH_ALIAS added.
19773         (cgraph_for_node_and_aliases): Likewise.
19774         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
19775         * ipa-inline.c (reset_edge_caches): Likewise.
19776         (update_caller_keys): Likewise.
19777         * trans-mem.c (ipa_tm_execute): Likewise.
19778         *varpool.c (varpool_analyze_node): Likewise.
19779         (varpool_for_node_and_aliases): Likewise.
19780         * ipa-ref.h (first_alias): New function.
19781         (last_alias): Likewise.
19782         (has_aliases_p): Likewise.
19783         * ipa-ref.c (ipa_ref::remove_reference): Removal function
19784         is sensitive to IPA_REF_ALIASes.
19785         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
19786         are put at the beginning of the list.
19787         (symtab_node::iterate_direct_aliases): New function.
19788
19789 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19790
19791         Revert:
19792         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
19793         type is complete.
19794         (write_ts_type_common_tree_pointers): Do not stream fields not set
19795         for incomplete types; do not stream duplicated fields for variants;
19796         sanity check that variant and type match.
19797         (write_ts_type_non_common_tree_pointers): Likewise.
19798         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
19799         TYPE_SIZE whether type is complete.
19800         (lto_input_ts_type_common_tree_pointers): Do same changes as in
19801         write_ts_type_common_tree_pointers
19802         (lto_input_ts_type_non_common_tree_pointers): Likewise.
19803
19804 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
19805
19806         * var-tracking.c (add_stores): Return instead of asserting if old
19807         and new values for conditional store are the same.
19808
19809 2014-06-30  Richard Henderson  <rth@redhat.com>
19810
19811         PR rtl-opt/61608
19812         PR target/39284
19813         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
19814         the cfg if there were any changes.
19815         * passes.def: Revert move of peephole2 after reorder_blocks;
19816         move duplicate_computed_gotos before peephole2.
19817
19818 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
19819
19820         * except.c (emit_note_eh_region_end): New helper function.
19821         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
19822         emit EH_REGION_END note.
19823         * jump.c (cleanup_barriers): Do not split a call and its
19824         corresponding CALL_ARG_LOCATION note.
19825
19826 2014-06-30  Jeff Law  <law@redhat.com>
19827
19828         PR tree-optimization/61607
19829         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
19830         deeper into the SSA_NAME_VALUE chain.
19831
19832 2014-06-30  Marek Polacek  <polacek@redhat.com>
19833
19834         * convert.c (convert_to_integer): Don't instrument conversions if the
19835         function has no_sanitize_undefined attribute.
19836         * ubsan.c: Don't run the ubsan pass if the function has
19837         no_sanitize_undefined attribute.
19838
19839 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
19840
19841         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
19842         -fsanitize=undefined suboptions.
19843
19844 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
19845
19846         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
19847         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
19848         against bigendian and adjust indices.
19849
19850 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
19851
19852         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
19853
19854 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
19855
19856         PR target/61633
19857         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
19858         Add alternative; make early clobber.  Adjust both split patterns
19859         to use operand 0 as the working register.
19860
19861 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
19862
19863         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
19864         as ira_object_id_map might be NULL, or 1.
19865
19866 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19867
19868         * loop-invariant.c (get_inv_cost): Handle register class.
19869         (gain_for_invariant): Check the register pressure of the inv
19870         and its overlapped register class, other than all.
19871
19872 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
19873
19874         * doc/invoke.texi (Optimize Options): Fix descriptions of
19875         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
19876
19877 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
19878
19879         * doc/extend.texi (Function Attributes): Update 'naked' attribute
19880         documentation.
19881
19882 2014-06-29  Tobias Grosser <tobias@grosser.es>
19883
19884         PR bootstrap/61650
19885         * graphite-isl-ast-to-gimple.c: Add missing guards.
19886
19887 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
19888
19889         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
19890         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
19891         * flag-types.h: Add new enum fgraphite_generator.
19892         * graphite-isl-ast-to-gimple.c: New.
19893         * graphite-isl-ast-to-gimple.h: New.
19894         * graphite.c (graphite_transform_loops): Add choice of Graphite
19895         code generator, which depends on flag_graphite_code_gen.
19896
19897 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
19898
19899         * graphite-dependences.c (subtract_commutative_associative_deps):
19900         Add NULL checking of the following variables: must_raw_no_source,
19901         may_raw_no_source, must_war_no_source, may_war_no_source,
19902         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
19903         must_war, may_war, must_waw, may_waw.
19904
19905 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
19906
19907         * graphite-clast-to-gimple.c: gloog is renamed to
19908         graphite_regenerate_ast_cloog.  gloog_error is renamed to
19909         graphite_regenerate_error.
19910         * graphite-clast-to-gimple.h: The definition of the struct
19911         bb_pbb_def is moved to graphite-htab.h.
19912         Add inclusion of the hash-table.h.
19913         * graphite-htab.h: The declaration of the function gloog is moved
19914         to graphite-clast-to-gimple.h and renamed to
19915         graphite_regenerate_ast_cloog.
19916         * graphite.c (graphite_transform_loops): gloog is renamed
19917         to graphite_regenerate_ast_cloog.
19918
19919 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19920
19921         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
19922         type is complete.
19923         (write_ts_type_common_tree_pointers): Do not stream fields not set
19924         for incomplete types; do not stream duplicated fields for variants;
19925         sanity check that variant and type match.
19926         (write_ts_type_non_common_tree_pointers): Likewise.
19927         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
19928         TYPE_SIZE whether type is complete.
19929         (lto_input_ts_type_common_tree_pointers): Do same changes as in
19930         write_ts_type_common_tree_pointers
19931         (lto_input_ts_type_non_common_tree_pointers): Likewise.
19932
19933 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19934
19935         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
19936
19937 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19938
19939         * tree-inline.c (remap_type_1): Do not duplicate fields
19940         that are shared in between type and its main variant.
19941
19942 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19943
19944         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
19945         of the type.
19946         (ipa_set_ancestor_jf) Likewise.
19947         (check_stmt_for_type_change): Check that we work on main variant.
19948         (detect_type_change): Look into main variant.
19949         (compute_known_type_jump_func): Check that main variant has BINFO.
19950
19951 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19952
19953         * ipa-devirt.c (set_type_binfo): New function.
19954         (add_type_duplicate): Use it.
19955         (get_odr_type): Sanity check that binfos points to main variants.
19956         (get_class_context): Be sure the context's outer_type is main variant.
19957         (contains_type_p): Walk main variant.
19958         (get_polymorphic_call_info_for_decl): Set outer_type to be
19959         main variant.
19960         (get_polymorphic_call_info): Likewise.
19961         (possible_polymorphic_call_targets): Sanity check that we operate
19962         on main variant.
19963
19964 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
19965
19966         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
19967
19968 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19969
19970         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
19971         accidental change due to wide-int branch merge.
19972
19973 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19974
19975         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
19976         compressed debug support.
19977         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
19978         * configure: Regenerate.
19979         * config.in: Regenerate.
19980         * common.opt (compressed_debug_sections): New enum.
19981         (gz, gz=): New options.
19982         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
19983         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
19984         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
19985         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
19986         LINK_COMPRESS_DEBUG_SPEC.
19987         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
19988         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
19989         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
19990         (Debugging Options): Document -gz[=type].
19991
19992 2014-06-27  Martin Jambor  <mjambor@suse.cz>
19993
19994         PR ipa/61160
19995         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
19996         args_to_skip, use those from node instead.  Copy args_to_skip and
19997         combined_args_to_skip from node to the new thunk.
19998         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
19999         (cgraph_create_virtual_clone): Moved computation of
20000         combined_args_to_skip...
20001         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
20002
20003 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
20004
20005         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
20006         redundant diagnostic machinary.
20007
20008 2014-06-27  Richard Biener  <rguenther@suse.de>
20009
20010         * tree-ssa-math-opts.c (bswap_replace): Fix
20011         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
20012
20013 2014-06-27  Martin Liska  <mliska@suse.cz>
20014
20015         * gimple.h (gimple_location_safe): New function introduced.
20016         * cgraphunit.c (walk_polymorphic_call_targets): Usage
20017         of gimple_location_safe replaces gimple_location.
20018         (gimple_fold_call): Likewise.
20019         * ipa-devirt.c (ipa_devirt): Likewise.
20020         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
20021         * ipa.c (walk_polymorphic_call_targets): Likewise.
20022         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
20023
20024 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
20025
20026         PR tree-optimization/57233
20027         PR tree-optimization/61299
20028         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
20029         functions.
20030         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
20031         would be lowered to scalar shifts, check if corresponding
20032         shifts and vector BIT_IOR_EXPR are supported and don't lower
20033         or lower just to narrower vector type in that case.
20034         * expmed.c (expand_shift_1): Fix up handling of vector
20035         shifts and rotates.
20036
20037 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
20038
20039         PR target/61586
20040         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
20041
20042 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
20043
20044         * doc/invoke.texi (-fsemantic-interposition): Document.
20045         * common.opt (fsemantic-interposition): New flag.
20046         * varasm.c (decl_replaceable_p): Use it.
20047
20048 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20049
20050         PR target/61542
20051         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
20052         extraction other than index 3.
20053
20054 2014-06-26  Teresa Johnson  <tejohnson@google.com>
20055
20056         * doc/invoke.texi: Fix typo.
20057         * dumpfile.c: Add support for documented -fdump-* options
20058         optimized/missed/note/optall.
20059
20060 2014-06-26  Martin Jambor  <mjambor@suse.cz>
20061
20062         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
20063         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
20064         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
20065         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
20066         * opts.c (default_options_optimization): Set
20067         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
20068         * doc/invoke.texi (allow-load-data-races)
20069         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
20070         (allow-store-data-races): Document the new default.
20071
20072 2014-06-26  Martin Jambor  <mjambor@suse.cz>
20073
20074         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
20075         renamed to ipa_impossible_devirt_target.  Fix typo.
20076         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
20077         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
20078         ipa_impossible_devirt_target.
20079
20080 2014-06-26  Richard Biener  <rguenther@suse.de>
20081
20082         PR tree-optimization/61607
20083         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
20084         explaining why we restrict copies on loop depth.
20085         * tree-ssa-dom.c (cprop_operand): Remove restriction on
20086         on loop depth.
20087         (record_equivalences_from_phis): Instead add it here.
20088
20089 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
20090
20091         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
20092         (LTO_WRAPPER_OBJS): New variable.
20093         (lto-wrapper$(exeext)): Use it.
20094         * collect2.c: Include "collect-utils.h".
20095         (verbose, debug): Remove variables.
20096         (at_file_supplied): No longer static.
20097         (tool_name): New variable.
20098         (do_wait, fork_execute, maybe_unlink): Don't declare.
20099         (tool_cleanup): No longer static.
20100         (notice): Remove function.
20101         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
20102         fork_execute calls.
20103         (collect_wait, do_wait, collect_execute): Remove functions.
20104         (maybe_unlink): No longer static.
20105         * collect2.h (verbose, debug): Don't declare.
20106         (at_file_supplied): Declare.
20107         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
20108         changed.
20109         (collect_execute): Replace with implementation from collect2, plus a
20110         new arg use_atfile.  All callers changed.
20111         (collect_wait): Replace with implementation from collect2.
20112         (maybe_unlink_file): Remove function.
20113         (fork_execute): Replace with implementation from collect2, plus a
20114         new arg use_atfile.  All callers changed.
20115         (do_wait): Add call to utils_cleanup to the error path.
20116         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
20117         (tool_cleanup): Adjust declarations.
20118         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
20119         * tlink.c: Include "collect-utils.h".
20120         (tlink_execute): New arg use_atfile.  All callers changed.
20121         (tlink_init, tlink_execute): Remove declarations.
20122
20123         * collect-utils.c (save_temps): New variable.
20124         (do_wait): Use it instead of debug.  Use fatal_error.
20125         * collect-utils.h (save_temps): Declare.
20126         * collect2.c (verbose): Rename from vflag.  All uses changed.
20127         (tool_cleanup): New function, copied from collect_atexit.
20128         (collect_atexit, handler): Just call it.
20129         * collect2.h (verbose): Declaration renamed from vflag.
20130         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
20131         debug.
20132
20133         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
20134         (lto-wrapper$(exeext)): Link with collect-utils.o.
20135         * collect-utils.c: New file.
20136         * collect-utils.h: New file.
20137         * lto-wrapper.c: Include "collect-utils.h".
20138         (args_name): Delete variable.
20139         (tool_name): New variable.
20140         (tool_cleanup): New function.
20141         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
20142         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
20143         (fork_execute): Remove functions.
20144
20145 2014-06-26  Nick Clifton  <nickc@redhat.com>
20146
20147         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
20148
20149         * doc/extend.texi (Function Attributes): Fix typo in description
20150         of RX vector attribute.
20151
20152 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
20153
20154         * config.gcc (supported_defaults): Error when passing either
20155         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
20156
20157 2014-06-26  Richard Biener  <rguenther@suse.de>
20158
20159         * tree-ssa-dom.c (cprop_operand): Remove restriction on
20160         propagating volatile pointers.
20161
20162 2014-06-26  Richard Biener  <rguenther@suse.de>
20163
20164         PR tree-optimization/61607
20165         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
20166         loop if we redirected its latch edge.
20167         (thread_block_1): Do not cancel loops prematurely.
20168
20169 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
20170
20171         * toplev.c (backend_init_target): Move init_emit_regs and
20172         init_regs to...
20173         (backend_init) ... here; skip ira_init_once and backend_init_target.
20174         (target_reinit) ... and here; clear
20175         this_target_rtl->lang_dependent_initialized.
20176         (lang_dependent_init_target): Clear
20177         this_target_rtl->lang_dependent_initialized;
20178         break out rtl initialization to ...
20179         (initialize_rtl): ... here; call also backend_init_target
20180         and ira_init_once.
20181         * toplev.h (initialize_rtl): New function.
20182         * function.c: Include toplev.h
20183         (init_function_start): Call initialize_rtl.
20184         * rtl.h (target_rtl): Add target_specific_initialized,
20185         lang_dependent_initialized.
20186
20187 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
20188             Jakub Jelinek  <jakub@redhat.com>
20189
20190         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
20191
20192 2014-06-25  Tom de Vries  <tom@codesourcery.com>
20193
20194         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
20195
20196 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20197
20198         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
20199         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
20200         Issue a strict overflow warning if appropriate.
20201
20202 2014-06-25  Martin Liska  <mliska@suse.cz>
20203
20204         IPA REF refactoring
20205         * Makefile.in: Removed header file (ipa-ref-inline.h).
20206         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
20207         called.
20208         (cgraph_speculative_call_info): Likewise.
20209         (cgraph_for_node_thunks_and_aliases): Likewise.
20210         (cgraph_for_node_and_aliases): Likewise.
20211         (verify_cgraph_node): Likewise.
20212         * cgraph.h: Batch of IPA REF functions become member functions of
20213         symtab_node: add_reference, maybe_add_reference, clone_references,
20214         clone_referring, clone_reference, find_reference,
20215         remove_stmt_references, remove_all_references,
20216         remove_all_referring, dump_references, dump_referring,
20217         has_alias_p, iterate_reference, iterate_referring.
20218         * cgraphbuild.c (record_reference): New IPA REF function used.
20219         (record_type_list): Likewise.
20220         (record_eh_tables): Likewise.
20221         (mark_address): Likewise.
20222         (mark_load): Likewise.
20223         (mark_store): Likewise.
20224         (pass_build_cgraph_edges): Likewise.
20225         (rebuild_cgraph_edge): Likewise.
20226         (cgraph_rebuild_references): Likewise.
20227         (pass_remove_cgraph_callee_edges): Likewise.
20228         * cgraphclones.c (cgraph_clone_node): Likewise.
20229         (cgraph_create_virtual_clone): Likewise.
20230         (cgraph_materialize_clone): Likewise.
20231         (cgraph_materialize_all_clones): Likewise.
20232         * cgraphunit.c (cgraph_reset_node): Likewise.
20233         (cgraph_reset_node): Likewise.
20234         (analyze_function): Likewise.
20235         (assemble_thunks_and_aliases): Likewise.
20236         (expand_function): Likewise.
20237         * ipa-comdats.c (propagate_comdat_group): Likewise.
20238         (enqueue_references): Likewise.
20239         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
20240         (create_specialized_node): Likewise.
20241         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
20242         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
20243         * ipa-inline.c (reset_edge_caches): Likewise.
20244         (update_caller_keys): Likewise.
20245         (execute): Likewise.
20246         * ipa-prop.c (remove_described_reference): Likewise.
20247         (propagate_controlled_uses): Likewise.
20248         (ipa_edge_duplication_hook): Likewise.
20249         (ipa_modify_call_arguments): Likewise.
20250         * ipa-pure-const.c (propagate_pure_const): Likewise.
20251         * ipa-ref-inline.h: Header file removed, functions moved
20252         to symtab_node class.
20253         * ipa-ref.c (remove_reference): New class member function.
20254         (cannot_lead_to_return): New class member function.
20255         (referring_ref_list): Likewise.
20256         (referred_ref_list): Likewise.
20257         Rest of functions moved to symtab_node class.
20258         * ipa-ref.h: New member functions remove_reference,
20259         cannot_lead_to_return, referring_ref_list, referred_ref_list added
20260         to ipa_ref class.
20261         ipa_ref_list class has new member functions: first_reference,
20262         first_referring, clear, nreferences.
20263         * ipa-reference.c (analyze_function): New IPA REF function used.
20264         (write_node_summary_p): Likewise.
20265         (ipa_reference_write_optimization_summary): Likewise.
20266         * ipa-split.c (split_function): Likewise.
20267         * ipa-utils.c (ipa_reverse_postorder): Likewise.
20268         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
20269         (function_and_variable_visibility): Likewise.
20270         * ipa.c (has_addr_references_p): Likewise.
20271         (process_references): Argument type changed.
20272         (symtab_remove_unreachable_nodes): New IPA REF function used.
20273         (process_references): Likewise.
20274         (set_writeonly_bit): Likewise.
20275         * lto-cgraph.c: Implementation of new symtab_node member functions
20276         that uses new IPA REF functions.
20277         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
20278         function used.
20279         * lto-streamer-out.c (output_symbol_p): Likewise.
20280         * lto-streamer.h (referenced_from_this_partition_p): Argument type
20281         changed.
20282         * symtab.c: Implementation of new IPA REF API.
20283         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
20284         (ipa_tm_create_version): Likewise.
20285         (ipa_tm_execute): Likewise.
20286         * tree-emutls.c (gen_emutls_addr): Likewise.
20287         * tree-inline.c (copy_bb): Likewise.
20288         (delete_unreachable_blocks_update_callgraph): Likewise.
20289         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
20290         (varpool_for_node_and_aliases): Likewise.
20291
20292 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
20293
20294         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
20295
20296 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
20297
20298         PR bootstrap/61598
20299         * fold-const.c (fold_checksum_tree): Use a hash_table of const
20300         tree_node * instead of tree_node *.
20301         (fold): Adjust.
20302         (print_fold_checksum): Likewise.
20303         (fold_check_failed): Likewise.
20304         (debug_fold_checksum): Likewise.
20305         (fold_build1_stat_loc): Likewise.
20306         (fold_build2_stat_loc): Likewise.
20307         (fold_build3_stat_loc): Likewise.
20308         (fold_build_call_array_loc): Likewise.
20309
20310 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
20311
20312         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
20313         implementation with call to...
20314         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
20315         function.
20316         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
20317         Declare.
20318
20319 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
20320
20321         PR tree-optimization/57742
20322         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
20323         after replacing the statement.
20324
20325 2014-06-25  Nick Clifton  <nickc@redhat.com>
20326
20327         * config/v850/v850.c (GHS_default_section_names): Change to const
20328         char * type.
20329         (GHS_current_section_names): Likewise.
20330         (v850_insert_attributes): Do not build strings, just assign the
20331         names directly.  Change the type of 'chosen_section' to const
20332         char*.
20333         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
20334         directly to the array entry.
20335         * config/v850/v850.h (GHS_default_section_names): Change to const
20336         char * type.
20337         (GHS_current_section_names): Likewise.
20338
20339 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
20340
20341         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
20342         (LANG_HOOKS_DECLS): Add it.
20343         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
20344         has correct type.
20345         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
20346         * langhooks.h (struct lang_hooks_for_decls): Add
20347         omp_clause_linear_ctor hook.
20348         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
20349         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
20350         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
20351         combined simd loop use omp_clause_linear_ctor hook.
20352
20353 2014-06-24  Cong Hou  <congh@google.com>
20354
20355         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
20356         pattern recognition.
20357         (type_conversion_p): PROMOTION is true if it's a type promotion
20358         conversion, and false otherwise.  Return true if the given expression
20359         is a type conversion one.
20360         * tree-vectorizer.h: Adjust the number of patterns.
20361         * tree.def: Add SAD_EXPR.
20362         * optabs.def: Add sad_optab.
20363         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
20364         * expr.c (expand_expr_real_2): Likewise.
20365         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
20366         * gimple.c (get_gimple_rhs_num_ops): Likewise.
20367         * optabs.c (optab_for_tree_code): Likewise.
20368         * tree-cfg.c (estimate_operator_cost): Likewise.
20369         * tree-ssa-operands.c (get_expr_operands): Likewise.
20370         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
20371         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
20372         * doc/generic.texi: Add document for SAD_EXPR.
20373         * doc/md.texi: Add document for ssad and usad.
20374
20375 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
20376
20377         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
20378         qualification in cast.
20379
20380 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
20381
20382         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
20383         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
20384         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
20385         (tree_function_decl): ... here.
20386         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
20387         streaming of vindex to ...
20388         (write_ts_function_decl_tree_pointers): ... here.
20389         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
20390         Do not stream DECL_VINDEX.
20391         (lto_input_ts_function_decl_tree_pointers): Stream it here.
20392
20393 2014-06-24  Catherine Moore  <clm@codesourcery.com>
20394             Sandra Loosemore  <sandra@codesourcery.com>
20395
20396         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
20397         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
20398         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
20399
20400 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
20401
20402         * doc/invoke.texi (Warning Options): Remove duplicated
20403         -Wmaybe-uninitialized.
20404
20405 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
20406
20407         PR tree-optimization/57742
20408         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
20409         (handle_builtin_malloc, handle_builtin_memset): New functions.
20410         (strlen_optimize_stmt): Call them.
20411         * passes.def: Move strlen after loop+dom but before vrp.
20412
20413 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
20414
20415         PR target/61570
20416         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
20417         model family 6 CPU with has_longmode never use a CPU without
20418         64-bit support.
20419
20420 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
20421
20422         PR target/61570
20423         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
20424         the last change.
20425
20426 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
20427
20428         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
20429         * dominance.c (iterate_fix_dominators): Use hash_map instead of
20430         pointer_map.
20431         * hash-map.h: New file.
20432         * ipa-comdats.c: Use hash_map instead of pointer_map.
20433         * ipa.c: Likewise.
20434         * lto-section-out.c: Adjust.
20435         * lto-streamer.h: Replace pointer_map with hash_map.
20436         * symtab.c (verify_symtab): Likewise.
20437         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
20438         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
20439         * tree-streamer.h: Likewise.
20440         * tree-streamer.c: Adjust.
20441         * pointer-set.h: Remove pointer_map.
20442
20443 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
20444
20445         * hash-table.h: Add a template arg to choose between storing values
20446         and storing pointers to values, and then provide partial
20447         specializations for both.
20448         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
20449         should store, not the type values should point to.
20450         * tree-into-ssa.c (var_info_hasher): Likewise.
20451         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
20452         * tree-complex.c: Adjust.
20453         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
20454         table instead of int_tree_map *.
20455         * tree-parloops.c: Adjust.
20456         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
20457         type is being stored.
20458         * tree-vectorizer.c: Adjust.
20459
20460 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
20461
20462         * hash-table.h: Remove a layer of indirection from hash_table so that
20463         it contains the hash table's data instead of a pointer to the data.
20464         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
20465         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
20466         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
20467         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
20468         fold-const.c, gcse.c, ggc-common.c,
20469         gimple-ssa-strength-reduction.c, gimplify.c,
20470         graphite-clast-to-gimple.c, graphite-dependences.c,
20471         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
20472         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
20473         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
20474         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
20475         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
20476         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
20477         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
20478         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
20479         tree-ssa-live.c, tree-ssa-loop-im.c,
20480         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
20481         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
20482         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
20483         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
20484         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
20485         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
20486         vtable-verify.c, vtable-verify.h: Adjust.
20487
20488 2014-06-24  Richard Biener  <rguenther@suse.de>
20489
20490         PR tree-optimization/61572
20491         * tree-ssa-sink.c (statement_sink_location): Do not sink
20492         loads from hard registers.
20493
20494 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
20495
20496         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
20497         not mentioned in clauses use private clause if the iterator is
20498         declared in #pragma omp for simd, and when adding lastprivate
20499         instead, add it to the outer #pragma omp for too.  Diagnose
20500         if the variable is private in outer context.  For simd collapse > 1
20501         loops, replace all iterators with temporaries.
20502         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
20503         same even in collapse > 1 loops.
20504
20505         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
20506         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
20507         non-NULL.
20508         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
20509         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
20510         non-NULL.
20511         (gimplify_adjust_omp_clauses): Likewise.
20512         * omp-low.c (lower_rec_simd_input_clauses,
20513         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
20514         safelen the same as safelen(1).
20515         * tree-nested.c (convert_nonlocal_omp_clauses,
20516         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
20517         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
20518         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
20519         Fixup handling of GIMPLE_OMP_TARGET.
20520         (convert_tramp_reference_stmt, convert_gimple_call): Handle
20521         GIMPLE_OMP_TARGET.
20522
20523 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
20524
20525         PR tree-optimization/61554
20526         * tree-ssa-propagate.c: Include "bitmap.h".
20527         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
20528         properly update constructor/destructor.
20529         (substitute_and_fold_dom_walker::before_dom_children):
20530         Remove call to gimple_purge_dead_eh_edges, add bb->index to
20531         need_eh_cleaup instead.
20532         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
20533         need_eh_cleanup.
20534
20535 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
20536
20537         * varpool.c (dump_varpool_node): Dump used_by_single_function.
20538         * tree-pass.h (make_pass_ipa_single_use): New pass.
20539         * cgraph.h (used_by_single_function): New flag.
20540         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
20541         Stream it.
20542         * passes.def (pass_ipa_single_use): Scedule.
20543         * ipa.c (BOTTOM): New macro.
20544         (meet): New function
20545         (propagate_single_user): New function.
20546         (ipa_single_use): New function.
20547         (pass_data_ipa_single_use): New pass.
20548         (pass_ipa_single_use): New pass.
20549         (pass_ipa_single_use::gate): New gate.
20550         (make_pass_ipa_single_use): New function.
20551
20552 2014-06-23  Kai Tietz  <ktietz@redhat.com>
20553
20554         PR target/39284
20555         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
20556         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
20557
20558 2014-06-23  Richard Biener  <rguenther@suse.de>
20559
20560         * tree-ssa-loop.c (gate_loop): New function.
20561         (pass_tree_loop::gate): Call it.
20562         (pass_data_tree_no_loop, pass_tree_no_loop,
20563         make_pass_tree_no_loop): New.
20564         * tree-vectorizer.c: Include tree-scalar-evolution.c
20565         (pass_slp_vectorize::execute): Initialize loops and SCEV if
20566         required.
20567         (pass_slp_vectorize::clone): New method.
20568         * timevar.def (TV_TREE_NOLOOP): New.
20569         * tree-pass.h (make_pass_tree_no_loop): Declare.
20570         * passes.def (pass_tree_no_loop): New pass group with
20571         SLP vectorizer.
20572
20573 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
20574
20575         PR target/61570
20576         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
20577         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
20578
20579 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
20580
20581         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
20582         "yes" where needed.
20583
20584 2014-06-23  Alan Modra  <amodra@gmail.com>
20585
20586         PR bootstrap/61583
20587         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
20588         to zero on debug statements.
20589
20590 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
20591
20592         PR target/60825
20593         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
20594         Ignore third operand if present by marking qualifier_internal.
20595
20596         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
20597
20598         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
20599         vector extension.
20600         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
20601         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
20602         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
20603         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
20604         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
20605         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
20606         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
20607         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
20608         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
20609         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
20610         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
20611         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
20612         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
20613         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
20614         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
20615         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
20616         logic in GCC vector extensions
20617
20618         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
20619         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
20620         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
20621         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
20622         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
20623         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
20624         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
20625         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
20626         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
20627         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
20628
20629         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
20630
20631         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
20632         extensions.
20633
20634         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
20635         (vget_low_s64): Use __GET_LOW macro.
20636         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
20637         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
20638         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
20639         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
20640         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
20641
20642         (vcombine_s64): Use GCC vector extensions; remove cast.
20643         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
20644         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
20645         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
20646         Fix type signature; remove cast.
20647
20648 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
20649
20650         PR target/60825
20651         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
20652         V1DFmode.
20653         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
20654         add V1DFmode
20655         (BUILTIN_VD1): New.
20656         (BUILTIN_VD_RE): Remove.
20657         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
20658         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
20659         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
20660         variant but not df.
20661         (vreinterpretv1df*, vreinterpret*v1df): New.
20662         (vreinterpretdf*, vreinterpret*df): Remove.
20663         * config/aarch64/aarch64-simd.md (aarch64_create,
20664         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
20665         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
20666         (VD1): New.
20667         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
20668         (vcreate_f64): Remove cast, use v1df builtin.
20669         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
20670         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
20671         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
20672         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
20673         vmov_n_f64, vst1_f64): Use gcc vector extensions.
20674         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
20675         add range check using __builtin_aarch64_im_lane_boundsi.
20676         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
20677         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
20678         type signature, use gcc vector extensions.
20679         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
20680         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
20681         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
20682         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
20683         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
20684         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
20685         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
20686         vreinterpret_u64_f64): Use v1df builtin not df.
20687
20688 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
20689
20690         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
20691         vector registers.
20692
20693 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
20694
20695         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
20696         priority directly.
20697
20698 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20699
20700         * loop-invariant.c (pre_check_invariant_p): New function.
20701         (find_invariant_insn): Call pre_check_invariant_p.
20702
20703 2014-06-22  Richard Henderson  <rth@redhat.com>
20704
20705         PR target/61565
20706         * compare-elim.c (struct comparison): Add eh_note.
20707         (find_comparison_dom_walker::before_dom_children): Don't eliminate
20708         a redundant comparison in a different EH region.  Purge EH edges if
20709         necessary.
20710
20711 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20712
20713         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
20714         (var_shift): Use it.
20715         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
20716         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
20717         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
20718         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
20719         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
20720         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
20721         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
20722         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
20723         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
20724         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
20725         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
20726         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
20727         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
20728         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
20729         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
20730         *rotldi3_internal15be): Use the new attribute.  Merge register and
20731         integer alternatives.
20732
20733 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20734
20735         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
20736         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
20737         split, *ashrdi3_internal3 and split): Delete, merge into...
20738         (ashr<mode>3): New expander.
20739         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
20740         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
20741
20742 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20743
20744         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
20745         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
20746         *rotldi3_internal3 and split): Delete, merge into...
20747         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
20748         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
20749         Use "rotlw" extended mnemonic.
20750
20751 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20752
20753         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
20754         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
20755         and split, *ashldi3_internal3 and split): Delete, merge into...
20756         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
20757         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
20758
20759 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20760
20761         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
20762         (lshrsi3, two anonymous define_insns and define_splits,
20763         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
20764         *lshrdi3_internal3 and split): Delete, merge into...
20765         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
20766         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
20767
20768 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
20769
20770         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
20771         Remove "O" alternative.
20772
20773 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
20774
20775         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
20776         (mips_move_from_gpr_cost): Likewise.
20777         (mips_register_move_cost): Update accordingly.
20778         (mips_secondary_reload_class): Remove name of in_p.
20779
20780 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
20781
20782         PR target/61503
20783         * config/i386/i386.md (x86_64_shrd, x86_shrd,
20784         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
20785
20786 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20787
20788         * config/nios2/nios2.c: Include "builtins.h".
20789
20790 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
20791
20792         * cgraph.h (tls_model_names): New variable.
20793         * print-tree.c (print_node): Simplify.
20794         * varpool.c (tls_model_names): New variable.
20795         (dump_varpool_node): Output tls model.
20796
20797 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
20798
20799         * ipa-visibility.c (function_and_variable_visibility): Disable
20800         temporarily local aliases for some targets.
20801
20802 2014-06-20  Marek Polacek  <polacek@redhat.com>
20803
20804         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
20805         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
20806         into SANITIZE_UNDEFINED.
20807         * doc/invoke.texi: Describe -fsanitize=bounds.
20808         * gimplify.c (gimplify_call_expr): Add gimplification of internal
20809         functions created in the FEs.
20810         * internal-fn.c: Move "internal-fn.h" after "tree.h".
20811         (expand_UBSAN_BOUNDS): New function.
20812         * internal-fn.def (UBSAN_BOUNDS): New internal function.
20813         * internal-fn.h: Don't define internal functions here.
20814         * opts.c (common_handle_option): Add -fsanitize=bounds.
20815         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
20816         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
20817         * tree-core.h: Define internal functions here.
20818         (struct tree_base): Add ifn field.
20819         * tree-pretty-print.c: Include "internal-fn.h".
20820         (dump_generic_node): Handle functions without CALL_EXPR_FN.
20821         * tree.c (get_callee_fndecl): Likewise.
20822         (build_call_expr_internal_loc): New function.
20823         * tree.def (CALL_EXPR): Update description.
20824         * tree.h (CALL_EXPR_IFN): Define.
20825         (build_call_expr_internal_loc): Declare.
20826         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
20827         types.
20828         (ubsan_type_descriptor): Change bool parameter to enum
20829         ubsan_print_style.  Adjust the code.  Add handling of
20830         UBSAN_PRINT_ARRAY.
20831         (ubsan_expand_bounds_ifn): New function.
20832         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
20833         (ubsan_build_overflow_builtin): Likewise.
20834         (instrument_bool_enum_load): Likewise.
20835         (ubsan_instrument_float_cast): Likewise.
20836         * ubsan.h (enum ubsan_print_style): New enum.
20837         (ubsan_expand_bounds_ifn): Declare.
20838         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
20839
20840 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
20841
20842         * config/rs6000/rs6000.md: Append `DONE' to preparation
20843         statements of `bswap' pattern splitters.
20844
20845 2014-06-20  Tom de Vries  <tom@codesourcery.com>
20846
20847         * target.def (call_fusage_contains_non_callee_clobbers): Update
20848         definition.
20849         * doc/tm.texi: Regenerate.
20850
20851 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
20852             Max Ostapenko  <m.ostapenko@partner.samsung.com>
20853
20854         PR sanitizer/61547
20855         * asan.c (instrument_strlen_call): Fixed instrumentation of
20856         trailing byte.
20857
20858 2014-06-20  Martin Jambor  <mjambor@suse.cz>
20859
20860         PR ipa/61540
20861         * ipa-prop.c (impossible_devirt_target): New function.
20862         (try_make_edge_direct_virtual_call): Use it, also instead of
20863         asserting.
20864
20865 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
20866             Max Ostapenko  <m.ostapenko@partner.samsung.com>
20867
20868         PR sanitizer/61530
20869         * asan.c (build_check_stmt): Add condition.
20870
20871 2014-06-20  Martin Jambor  <mjambor@suse.cz>
20872
20873         PR ipa/61211
20874         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
20875         expanded clones.
20876
20877 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20878
20879         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
20880         Update comments.
20881         (VCONQ): Make comment more helpful.
20882         (VCON): Delete.
20883         * config/aarch64/aarch64-simd.md
20884         (aarch64_sqdmulh_lane<mode>):
20885         Use VCOND for operands 2.  Update lane checking and flipping logic.
20886         (aarch64_sqrdmulh_lane<mode>): Likewise.
20887         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
20888         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
20889         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
20890         attribute of operand 3 to VCOND.
20891         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
20892         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
20893         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
20894         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
20895         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
20896         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
20897         define_insn.
20898         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
20899         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
20900         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
20901         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
20902         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
20903         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
20904         operand to VCOND.  Update lane flipping and bounds checking logic.
20905         (aarch64_sqdmlal2_lane<mode>): Likewise.
20906         (aarch64_sqdmlsl_lane<mode>): Likewise.
20907         (aarch64_sqdmull_lane<mode>): Likewise.
20908         (aarch64_sqdmull2_lane<mode>): Likewise.
20909         (aarch64_sqdmlal_laneq<mode>):
20910         Replace VCON usage with VCONQ.
20911         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
20912         (aarch64_sqdmlal2_laneq<mode>): Emit
20913         aarch64_sqdmlal2_laneq<mode>_internal insn.
20914         Replace VCON with VCONQ.
20915         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
20916         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
20917         (aarch64_sqdmull_laneq<mode>): Emit
20918         aarch64_sqdmull_laneq<mode>_internal insn.
20919         Replace VCON with VCONQ.
20920         (aarch64_sqdmull2_laneq<mode>): Emit
20921         aarch64_sqdmull2_laneq<mode>_internal insn.
20922         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
20923         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
20924         of 3rd argument to int16x4_t.
20925         (vqdmlalh_lane_s16): Likewise.
20926         (vqdmlslh_lane_s16): Likewise.
20927         (vqdmull_high_lane_s16): Likewise.
20928         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
20929         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
20930         (vqdmlsl_lane_s16): Likewise.
20931         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
20932         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
20933         (vqdmlals_lane_s32): Likewise.
20934         (vqdmlsls_lane_s32): Likewise.
20935         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
20936         (vqdmulls_lane_s32): Likewise.
20937         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
20938         (vqdmlsl_lane_s32): Likewise.
20939         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
20940         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
20941         (vqrdmulhh_lane_s16): Likewise.
20942         (vqdmlsl_high_lane_s16): Likewise.
20943         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
20944         (vqdmlsl_high_lane_s32): Likewise.
20945         (vqrdmulhs_lane_s32): Likewise.
20946
20947 2014-06-20  Tom de Vries  <tom@codesourcery.com>
20948
20949         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
20950         get_call_reg_set_usage.
20951
20952 2014-06-20  Tom de Vries  <tom@codesourcery.com>
20953
20954         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
20955         it contains all call_used_regs.
20956
20957 2014-06-20  Tom de Vries  <tom@codesourcery.com>
20958
20959         * final.c (collect_fn_hard_reg_usage): Add and use variable
20960         function_used_regs.
20961
20962 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
20963
20964         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
20965         (set_init_priority, get_init_priority, set_fini_priority,
20966         get_fini_priority): New methods.
20967         * tree.c (init_priority_for_decl): Remove.
20968         (init_ttree): Do not initialize init priority.
20969         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
20970         (decl_priority_info): Remove.
20971         (decl_init_priority_insert): Rewrite.
20972         (decl_fini_priority_insert): Rewrite.
20973         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
20974         tree_priority_map_marked_p): Remove.
20975         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
20976         * lto-streamer-out.c (hash_tree): Do not hash priorities.
20977         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
20978         not output priorities.
20979         (pack_ts_function_decl_value_fields): Likewise.
20980         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
20981         not input priorities.
20982         (unpack_ts_function_decl_value_fields): Likewise.
20983         * symtab.c (symbol_priority_map): Declare.
20984         (init_priority_hash): Declare.
20985         (symtab_unregister_node): Unregister from priority hash, too.
20986         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
20987         New methods.
20988         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
20989         (symbol_priority_info): New function.
20990         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
20991         New methods.
20992         * tree-core.h (tree_priority_map): Remove.
20993
20994 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
20995
20996         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
20997         0xff to uint64_t before shifting it up.
20998
20999 2014-06-20  Julian Brown  <julian@codesourcery.com>
21000             Chung-Lin Tang  <cltang@codesourcery.com>
21001
21002         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
21003         TARGET_THUMB1_ONLY. Add comments.
21004
21005 2014-06-19  Tom de Vries  <tom@codesourcery.com>
21006
21007         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
21008         return type to void.
21009         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
21010
21011 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
21012
21013         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
21014         as "move", from depends_on.
21015
21016 2014-06-19  Terry Guo  <terry.guo@arm.com>
21017
21018         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
21019         stage.
21020
21021 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
21022
21023         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
21024         Remove cr5.
21025         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
21026
21027 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
21028
21029         PR target/61550
21030         * config/sh/sh.c (prepare_move_operands): Don't process TLS
21031         addresses here if reload in progress or completed.
21032
21033 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
21034
21035         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
21036         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
21037         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
21038         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
21039         (mips_register_priority): New function that implements the target
21040         hook TARGET_REGISTER_PRIORITY.
21041         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
21042         (mips_lra_p): Likewise for TARGET_LRA_P.
21043         (TARGET_REGISTER_PRIORITY): Define macro.
21044         (TARGET_SPILL_CLASS): Likewise.
21045         (TARGET_LRA_P): Likewise.
21046         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
21047         classes.
21048         (REG_CLASS_NAMES): Likewise.
21049         (REG_CLASS_CONTENTS): Likewise.
21050         (BASE_REG_CLASS): Use M16_SP_REGS.
21051         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
21052         New set attribute to enable alternatives depending on the register
21053         allocator used.
21054         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
21055         (*lea64): Disable pattern for MIPS16.
21056         * config/mips/mips.opt (mlra): New option.
21057
21058 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
21059
21060         * lra-constraints.c (base_to_reg): New function.
21061         (process_address): Use new function.
21062
21063 2014-06-18  Tom de Vries  <tom@codesourcery.com>
21064
21065         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
21066         * config/aarch64/aarch64.c
21067         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
21068         (aarch64_emit_call_insn): New function.
21069         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
21070         of emit_call_insn.
21071         * config/aarch64/aarch64.md (define_expand "call_internal")
21072         (define_expand "call_value_internal", define_expand "sibcall_internal")
21073         (define_expand "sibcall_value_internal"): New.
21074         (define_expand "call", define_expand "call_value")
21075         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
21076         expand variant and aarch64_emit_call_insn.
21077
21078 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
21079             Tom de Vries  <tom@codesourcery.com>
21080
21081         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
21082         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
21083         Redefine to true.
21084         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
21085         clobbers to CALL_INSN_FUNCTION_USAGE.
21086         (define_expand "sibcall_internal")
21087         (define_expand "sibcall_value_internal"): New.
21088         (define_expand "call", define_expand "call_value"): Add argument to
21089         arm_emit_call_insn.
21090         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
21091         (define_expand "sibcall_value"): Use sibcall_value_internal and
21092         arm_emit_call_insn.
21093
21094 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21095
21096         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
21097
21098 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21099
21100         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
21101         __udivmoddi4.
21102
21103 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21104
21105         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
21106         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
21107         annotations. Fix DWARF information.
21108
21109 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21110
21111         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
21112         __udivmoddi4, and fixups for negative operands.
21113
21114 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21115
21116         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
21117
21118 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21119
21120         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
21121         to __udivmoddi4.
21122
21123 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21124
21125         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
21126         manipulation.
21127
21128 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21129
21130         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
21131         describing register usage on function entry and exit.
21132
21133 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21134
21135         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
21136         (__aeabi_ldivmod): Fix whitespace.
21137
21138 2014-06-18  Andreas Schwab  <schwab@suse.de>
21139
21140         * doc/md.texi (Standard Names): Use @itemx for grouped items.
21141         Remove blank line after @item.
21142
21143 2014-06-18  Richard Henderson  <rth@redhat.com>
21144
21145         PR target/61545
21146         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
21147
21148 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
21149
21150         * config/arm/arm.c (neon_vector_mem_operand): Allow register
21151         POST_MODIFY for neon loads and stores.
21152         (arm_print_operand): Output post-index register for neon loads and
21153         stores.
21154
21155 2014-06-18  Richard Biener  <rguenther@suse.de>
21156
21157         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
21158
21159 2014-06-18  Richard Biener  <rguenther@suse.de>
21160
21161         * tree-pass.h (make_pass_dce_loop): Remove.
21162         * passes.def: Replace pass_dce_loop with pass_dce.
21163         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
21164         changed free niter estimates and reset the scev cache.
21165         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
21166         make_pass_dce_loop): Remove.
21167         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
21168         (fini_copy_prop): Return whether something changed.  Always
21169         let substitute_and_fold perform DCE and free niter estimates
21170         and reset the scev cache if so.
21171         (execute_copy_prop): If sth changed schedule cleanup-cfg.
21172         (pass_data_copy_prop): Do not unconditionally schedule
21173         cleanup-cfg or update-ssa.
21174
21175 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
21176
21177         PR tree-optimization/61518
21178         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
21179         reduction var is used in reduction stmt or phi-function only.
21180
21181 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21182
21183         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
21184
21185 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21186
21187         PR tree-optimization/61517
21188         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
21189         whose rhs's first tree is the source expression instead of the
21190         expression itself.
21191         (find_bswap_or_nop): Likewise.
21192         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
21193         gimple stmt whose rhs's first tree is the source. In the memory source
21194         case, move the stmt to be replaced close to one of the original load to
21195         avoid the problem of a store between the load and the stmt's original
21196         location.
21197         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
21198         signature.
21199
21200 2014-06-18  Andreas Schwab  <schwab@suse.de>
21201
21202         PR rtl-optimization/54555
21203         * postreload.c (move2add_use_add2_insn): Substitute
21204         STRICT_LOW_PART only if it is cheaper.
21205
21206 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
21207
21208         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
21209         Do not use unspec as call operand.  Use memory_operand instead of
21210         memory_nox32_operand and add "m" operand constraint.  Disable
21211         pattern for TARGET_X32.
21212         (*sibcall_pop_memory): Ditto.
21213         (*sibcall_value_memory): Ditto.
21214         (*sibcall_value_pop_memory): Ditto.
21215         (sibcall peepholes): Merge SImode and DImode patterns using
21216         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
21217         Disable pattern for TARGET_X32.  Check if eliminated register is
21218         really dead after call insn.  Generate call RTX without unspec operand.
21219         (sibcall_value peepholes): Ditto.
21220         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
21221         instead of memory_nox32_operand.  Check if eliminated register is
21222         really dead after call insn. Generate call RTX without unspec operand.
21223         (sibcall_value_pop peepholes): Ditto.
21224         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
21225
21226 2014-06-18  Terry Guo  <terry.guo@arm.com>
21227
21228         PR target/61544
21229         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
21230         reach the head.
21231
21232 2014-06-18  Olivier Hainque  <hainque@adacore.com>
21233
21234         * tree-core.h (tree_block): Add an "end_locus" field, allowing
21235         memorization of the end of block source location.
21236         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
21237         * gimplify.c (gimplify_bind_expr): Propagate the block start and
21238         end source location info we have on the block entry/exit code we
21239         generate.
21240
21241 2014-06-18  Richard Biener  <rguenther@suse.de>
21242
21243         * common.opt (fssa-phiopt): New option.
21244         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
21245         but not with -Og.
21246         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
21247         * doc/invoke.texi (-fssa-phiopt): Document.
21248
21249 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21250
21251         * genattrtab.c (n_bypassed): New variable.
21252         (process_bypasses): Initialise n_bypassed.
21253         Count number of bypassed reservations.
21254         (make_automaton_attrs): Allocate space for bypassed reservations
21255         rather than number of bypasses.
21256
21257 2014-06-18  Richard Biener  <rguenther@suse.de>
21258
21259         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
21260         we propagated anything.
21261         (substitute_and_fold_dom_walker::before_dom_children): Something
21262         changed if we propagated into PHI arguments.
21263         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
21264         we removed a stmt.
21265
21266 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
21267
21268         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
21269         vector case.
21270         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
21271         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
21272         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
21273         Introduces alternative way of loads group permutaions.
21274         (vect_transform_grouped_load): Try alternative way of permutations.
21275
21276 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
21277
21278         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
21279         changed in ORT_TARGET region, don't jump to do_outer.
21280         (struct gimplify_adjust_omp_clauses_data): New type.
21281         (gimplify_adjust_omp_clauses_1): Adjust for data being
21282         a struct gimplify_adjust_omp_clauses_data pointer instead
21283         of tree *.  Pass pre_p as a new argument to
21284         lang_hooks.decls.omp_finish_clause hook.
21285         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
21286         splay_tree_foreach to pass both list_p and pre_p.
21287         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
21288         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
21289         gimplify_adjust_omp_clauses callers.
21290         * langhooks.c (lhd_omp_finish_clause): New function.
21291         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
21292         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
21293         * langhooks.h (struct lang_hooks_for_decls): Add a new
21294         gimple_seq * argument to omp_finish_clause hook.
21295         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
21296         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
21297         (scan_omp_parallel, lower_omp_for): When adding
21298         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
21299         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
21300         * tree-nested.c (convert_nonlocal_omp_clauses,
21301         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
21302         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
21303
21304 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
21305
21306         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
21307         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
21308
21309 2014-06-17  Xinliang David Li  <davidxl@google.com>
21310
21311         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
21312         * passes.c (pass_init_dump_file): Do not set initialize
21313         flag to false unconditionally.
21314
21315 2014-06-17  Richard Biener  <rguenther@suse.de>
21316
21317         * genopinit.c (main): Use vec<>::qsort method.
21318         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
21319         Likewise.
21320         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
21321
21322 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
21323
21324         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
21325         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
21326         (mips_move_to_gpr_cost): Remove ST_REGS case.
21327         (mips_move_from_gpr_cost): Likewise.
21328         (mips_register_move_cost): Likewise.
21329         (mips_secondary_reload_class): Likewise.
21330
21331 2014-06-17  Richard Biener  <rguenther@suse.de>
21332
21333         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
21334         (pass_all_optimizations): Move 3rd copy-prop pass from after
21335         fre to before ifcombine/phiopt.
21336
21337 2014-06-17  Richard Biener  <rguenther@suse.de>
21338
21339         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
21340         and allow all blocks to be forwarders.
21341
21342 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
21343
21344         PR target/61483
21345         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
21346         variable 'size'; calculate 'size' right in the front; use
21347         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
21348         pcum->aapcs_stack_words.
21349
21350 2014-06-17  Nick Clifton  <nickc@redhat.com>
21351
21352         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
21353         (umulhi3, mulsidi3, umulsidi3): Likewise.
21354
21355 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
21356
21357         PR middle-end/61508
21358         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
21359         check for section name.
21360
21361 2014-06-17  Richard Biener  <rguenther@suse.de>
21362
21363         * tree-ssa-propagate.c: Include domwalk.h.
21364         (substitute_and_fold): Outline main worker into a domwalker ...
21365         (substitute_and_fold_dom_walker::before_dom_children): ... here.
21366         Schedule stmts we can fully propagate for removal.  Remove
21367         poor-mans DCE.
21368         (substitute_and_fold): Apply a dominator walk to perform
21369         substitution.  Process stmts scheduled for removal here.
21370
21371 2014-06-17  Richard Biener  <rguenther@suse.de>
21372
21373         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
21374         of PHI node moving.
21375
21376 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
21377
21378         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
21379         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
21380         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
21381         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
21382         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
21383         TARGET_HARD_FLOAT.
21384         (get_fpscr) : Likewise.
21385
21386 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
21387
21388         PR rtl-optimization/61325
21389         * lra-constraints.c (valid_address_p): Add forward declaration.
21390         (simplify_operand_subreg): Check address validity before and after
21391         alter_reg of memory subreg.
21392
21393 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
21394
21395         * config/i386/i386.c (decide_alg): Correctly handle
21396         maximum size of stringop algorithm.
21397
21398 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
21399
21400         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
21401
21402 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
21403
21404         PR rtl-optimization/61522
21405         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
21406
21407 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
21408
21409         Revert:
21410         * symtab.c (symtab_node::reset_section): New method.
21411         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
21412         for localization.
21413         * cgraph.h (reset_section): Declare.
21414         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
21415         do not consider comdat locals.
21416         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
21417         for new symbol.
21418         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
21419         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
21420         reset sections of symbols dragged out of the comdats.
21421         (function_and_variable_visibility): Reset sections of
21422         localized symbols.
21423
21424 2014-06-16  Richard Biener  <rguenther@suse.de>
21425
21426         PR tree-optimization/61482
21427         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
21428         [-INF(OVF), +INF(OVF)] range.
21429
21430 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
21431
21432         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
21433         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
21434         handling 32-bit multiplication.
21435
21436 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
21437
21438         PR middle-end/61430
21439         * lra-lives.c (process_bb_lives): Skip creating copy during
21440         insn scan when src/dest has constrained to same regno.
21441
21442 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
21443
21444         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
21445         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
21446
21447 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
21448
21449         * asan.c (check_func): New function.
21450         (maybe_create_ssa_name): Likewise.
21451         (build_check_stmt_with_calls): Likewise.
21452         (use_calls_p): Likewise.
21453         (report_error_func): Change interface.
21454         (build_check_stmt): Allow non-integer lengths; add support
21455         for new parameter.
21456         (asan_instrument): Likewise.
21457         (instrument_mem_region_access): Moved code to build_check_stmt.
21458         (instrument_derefs): Likewise.
21459         (instrument_strlen_call): Likewise.
21460         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
21461         * doc/invoke.texi: Describe new parameter.
21462         * params.def: Define new parameter.
21463         * params.h: Likewise.
21464         * sanitizer.def: Describe new builtins.
21465
21466 2014-06-16  Richard Biener  <rguenther@suse.de>
21467
21468         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21469         Make all defs available at the end.
21470         (eliminate): If we remove a PHI node schedule cfg-cleanup.
21471
21472 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
21473
21474         PR plugins/45078
21475         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
21476
21477 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
21478
21479         PR bootstrap/61516
21480         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
21481         initialization.  Replace remaining use of uid.
21482
21483 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
21484
21485         * c-family/c-common.c (handle_tls_model_attribute): Use
21486         set_decl_tls_model.
21487         * c-family/c-common.c (handle_tls_model_attribute): Use
21488         set_decl_tls_model.
21489         * cgraph.h (struct varpool_node): Add tls_model.
21490         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
21491         * tree.h (DECL_TLS_MODEL): Update.
21492         (DECL_THREAD_LOCAL_P): Check that variable is static.
21493         (decl_tls_model): Declare.
21494         (set_decl_tls_model): Declare.
21495         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
21496         set symbol prorperties.
21497         (get_emutls_init_templ_addr): Cleanup.
21498         (new_emutls_decl): Update.
21499         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
21500         (lto_input_varpool_node): Likewise.
21501         * lto-streamer-out.c (hash_tree): Likewise.
21502         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
21503         not stream DECL_TLS_MODEL.
21504         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
21505         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
21506
21507 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21508
21509         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
21510
21511 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21512
21513         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
21514         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
21515         lists.
21516         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
21517         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
21518         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
21519         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
21520         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
21521         (df_get_artificial_defs, df_get_artificial_uses)
21522         (df_single_def, df_single_use): Update accordingly.
21523         (df_refs_chain_dump): Take the first element in a linked list as
21524         parameter, rather than a pointer to an array of pointers.
21525         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
21526         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
21527         (df_chain_create_bb_process_use): Likewise.
21528         (df_md_bb_local_compute_process_def): Likewise.
21529         * fwprop.c (process_defs, process_uses): Likewise.
21530         (register_active_defs, update_uses): Likewise.
21531         (forward_propagate_asm): Update for new df_ref linking.
21532         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
21533         (df_null_ref_rec, df_null_mw_rec): Likewise.
21534         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
21535         explicitly.
21536         (df_scan_free_bb_info): Remove check for null artificial_defs.
21537         (df_install_ref_incremental): Adjust for new df_ref linking.
21538         Use a single-element insertion rather than a full sort.
21539         (df_ref_chain_delete_du_chain): Take the first element
21540         in a linked list as parameter, rather than a pointer to an array of
21541         pointers.
21542         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
21543         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
21544         (df_insn_info_delete): Remove check for null defs and call to
21545         df_scan_free_mws_vec.
21546         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
21547         null rather than df_null_*_rec.
21548         (df_insn_rescan_debug_internal): Likewise, and update null
21549         checks in the same way.  Remove check for null defs.
21550         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
21551         Move a single element rather doing a full sort.
21552         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
21553         linking.
21554         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
21555         Initialize df_ref and df_mw_hardreg lists to null rather than
21556         df_null_*_rec.
21557         (df_ref_compare): Take df_refs as parameter, transferring the
21558         old interface to...
21559         (df_ref_ptr_compare): ...this new function.
21560         (df_sort_and_compress_refs): Update accordingly.
21561         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
21562         old interface to...
21563         (df_mw_ptr_compare): ...this new function.
21564         (df_sort_and_compress_mws): Update accordingly.
21565         (df_install_refs, df_install_mws): Return a linked list rather than
21566         an array of pointers.
21567         (df_refs_add_to_chains): Assert that old lists are empty rather
21568         than freeing them.
21569         (df_insn_refs_verify): Don't handle null defs speciailly.
21570         * web.c (union_match_dups): Update for new df_ref linking.
21571
21572 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21573
21574         * df.h (df_ref_create, df_ref_remove): Delete.
21575         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
21576         (df_ref_remove): Likewise.
21577
21578 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21579
21580         * df.h (df_single_def, df_single_use): New functions.
21581         * ira.c (find_moveable_pseudos): Use them.
21582
21583 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21584
21585         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
21586         * df-problems.c (df_note_bb_compute): Use it.
21587         * regstat.c (regstat_bb_compute_ri): Likewise.
21588
21589 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21590
21591         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
21592         * cse.c (cse_extended_basic_block): Use them.
21593         * dce.c (mark_artificial_use): Likewise.
21594         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
21595         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
21596         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
21597         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
21598         (df_simulate_initialize_backwards): Likewise.
21599         (df_simulate_finalize_backwards): Likewise.
21600         (df_simulate_initialize_forwards): Likewise.
21601         (df_md_simulate_artificial_defs_at_top): Likewise.
21602         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
21603         * regrename.c (init_rename_info): Likewise.
21604         * regstat.c (regstat_bb_compute_ri): Likewise.
21605         (regstat_bb_compute_calls_crossed): Likewise.
21606
21607 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
21608
21609         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
21610         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
21611         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
21612         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
21613         * combine.c (create_log_links): Likewise.
21614         * compare-elim.c (find_flags_uses_in_insn): Likewise.
21615         (try_eliminate_compare): Likewise.
21616         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
21617         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
21618         (remove_reg_equal_equiv_notes_for_defs): Likewise.
21619         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
21620         (word_dce_process_block, dce_process_block): Likewise.
21621         * ddg.c (def_has_ccmode_p): Likewise.
21622         * df-core.c (df_bb_regno_first_def_find): Likewise.
21623         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
21624         * df-problems.c (df_rd_simulate_one_insn): Likewise.
21625         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
21626         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
21627         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
21628         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
21629         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
21630         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
21631         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
21632         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
21633         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
21634         * fwprop.c (local_ref_killed_between_p): Likewise.
21635         (all_uses_available_at, free_load_extend): Likewise.
21636         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
21637         * hw-doloop.c (scan_loop): Likewise.
21638         * ifcvt.c (dead_or_predicable): Likewise.
21639         * init-regs.c (initialize_uninitialized_regs): Likewise.
21640         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
21641         (process_bb_node_lives): Likewise.
21642         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
21643         (find_moveable_pseudos): Likewise.
21644         * loop-invariant.c (check_dependencies, record_uses): Likewise.
21645         * recog.c (peep2_find_free_register): Likewise.
21646         * ree.c (get_defs): Likewise.
21647         * regstat.c (regstat_bb_compute_ri): Likewise.
21648         (regstat_bb_compute_calls_crossed): Likewise.
21649         * sched-deps.c (find_inc, find_mem): Likewise.
21650         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
21651         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
21652         * shrink-wrap.c (requires_stack_frame_p): Likewise.
21653         (prepare_shrink_wrap): Likewise.
21654         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
21655         * web.c (union_defs, pass_web::execute): Likewise.
21656         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
21657         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
21658
21659 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
21660
21661         * lra-assign.c (assign_by_spills): Add code to assign vector regs
21662         to inheritance pseudos.
21663         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
21664
21665 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
21666
21667         PR target/61415
21668         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
21669         (BU_MISC_2): Rename to ...
21670         (BU_LDBL128_2): ... this.
21671         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
21672         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
21673         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
21674         RS6000_BTM_LDBL128.
21675         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
21676         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
21677         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
21678         (unpacktf_1): Likewise.
21679         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
21680         (__builtin_longdouble_dw1): Likewise.
21681         * doc/sourcebuild.texi (longdouble128): Document.
21682
21683 2014-06-13  Jeff Law  <law@redhat.com>
21684
21685         PR rtl-optimization/61094
21686         PR rtl-optimization/61446
21687         * ree.c (combine_reaching_defs): Get the mode for the copy from
21688         the extension insn rather than the defining insn.
21689
21690 2014-06-13  Dehao Chen  <dehao@google.com>
21691
21692         * dwarf2out.c (add_linkage_name): Emit more linkage name.
21693
21694 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
21695
21696         * doc/install.texi (--enable-linker-plugin-configure-flags)
21697         (--enable-linker-plugin-flags): Document new flags.
21698
21699 2014-06-13  Martin Jambor  <mjambor@suse.cz>
21700
21701         PR ipa/61186
21702         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
21703         cache_token if returning early.
21704
21705 2014-06-13  Nick Clifton  <nickc@redhat.com>
21706
21707         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
21708         requested alignment is active.
21709         (LABEL_ALIGN): Likewise.
21710         (LOOP_ALIGN): Likewise.
21711
21712 2014-06-13  Richard Biener  <rguenther@suse.de>
21713
21714         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21715         Rewrite to propagate the VN result into all uses where
21716         possible and to remove stmts becoming dead because of that.
21717         (eliminate): Generalize stmt removal handling, remove in
21718         reverse dominator order to support proper debug stmt
21719         generation.  Update stmts before removing stmts.
21720         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
21721
21722 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21723
21724         PR tree-optimization/61375
21725         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
21726         symbolic number cannot be represented in an uint64_t.
21727         (find_bswap_or_nop_1): Likewise.
21728
21729 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
21730
21731         * symtab.c (symtab_node::reset_section): New method.
21732         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
21733         for localization.
21734         * cgraph.h (reset_section): Declare.
21735         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
21736         do not consider comdat locals.
21737         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
21738         for new symbol.
21739         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
21740         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
21741         reset sections of symbols dragged out of the comdats.
21742         (function_and_variable_visibility): Reset sections of
21743         localized symbols.
21744
21745 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
21746
21747         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
21748         to use symtab and decl_binds_to_current_def_p
21749         * tree-vectorizer.c (increase_alignment): Increase alignment
21750         of alias target, too.
21751
21752 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
21753
21754         PR middle-end/61486
21755         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
21756         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
21757         if outer combined construct is distribute.
21758         (gimplify_omp_for): For OMP_DISTRIBUTE set
21759         gimplify_omp_ctxp->distribute.
21760         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
21761         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
21762         mapping into decl map.
21763
21764 2014-06-12  Jason Merrill  <jason@redhat.com>
21765
21766         * common.opt (fabi-version): Change default to 0.
21767
21768 2014-06-12  Jason Merrill  <jason@redhat.com>
21769
21770         * toplev.c (process_options): Reject -fabi-version=1.
21771
21772 2014-06-12  Jeff Law  <law@redhat.com>
21773
21774         PR tree-optimization/61009
21775         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
21776         value when we stop processing a block due to problematic PHIs.
21777
21778 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
21779
21780         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
21781         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
21782         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
21783         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
21784         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
21785         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
21786         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
21787         are not in the spec.
21788
21789 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
21790
21791         PR target/59843
21792         * config/aarch64/aarch64-modes.def: Add V1DFmode.
21793         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
21794         Support V1DFmode.
21795
21796 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
21797
21798         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
21799
21800 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
21801
21802         PR target/61443
21803         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
21804         loading from address spaces.
21805
21806 2014-06-12  Martin Liska  <mliska@suse.cz>
21807
21808         PR ipa/61462
21809         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
21810         statement is reachable.
21811
21812 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
21813
21814         * symtab.c (section_hash): New hash.
21815         (symtab_unregister_node): Clear section before freeing.
21816         (hash_section_hash_entry): New haser.
21817         (eq_sections): New function.
21818         (symtab_node::set_section_for_node): New method.
21819         (set_section_1): Update.
21820         (symtab_node::set_section): Take string instead of tree as parameter.
21821         (symtab_resolve_alias): Update.
21822         * cgraph.h (section_hash_entry_d): New structure.
21823         (section_hash_entry): New typedef.
21824         (cgraph_node): Change comdat_group_ to x_comdat_group,
21825         change section_ to x_section and turn into section_hash_entry;
21826         update accestors; put set_section_for_node offline.
21827         * tree.c (decl_section_name): Turn into string.
21828         (set_decl_section_name): Change parameter to be string.
21829         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
21830         * sdbout.c (sdbout_one_type): Update.
21831         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
21832         * varasm.c (IN_NAMED_SECTION, get_named_section,
21833         resolve_unique_section, hot_function_section, get_named_text_section,
21834         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
21835         make_decl_rtl, default_unique_section): Update.
21836         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
21837         (c6x_elf_unique_section): Update.
21838         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
21839         * config/pa/pa.c (pa_function_section): Update.
21840         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
21841         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
21842         * config/arc/arc.c (arc_in_small_data_p): Update.
21843         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
21844         * config/mcore/mcore.c (mcore_unique_section): Update.
21845         * config/mips/mips.c (mips16_build_function_stub): Update.
21846         (mips16_build_call_stub): Update.
21847         (mips_function_rodata_section): Update.
21848         (mips_in_small_data_p): Update.
21849         * config/score/score.c (score_in_small_data_p): Update.
21850         * config/rx/rx.c (rx_in_small_data): Update.
21851         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
21852         (rs6000_xcoff_asm_named_section): Update.
21853         (rs6000_xcoff_unique_section): Update.
21854         * config/frv/frv.c (frv_string_begins_with): Update.
21855         (frv_in_small_data_p): Update.
21856         * config/v850/v850.c (v850_encode_data_area): Update.
21857         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
21858         (bfin_handle_l1_data_attribute): Update.
21859         (bfin_handle_l2_attribute): Update.
21860         * config/mep/mep.c (mep_unique_section): Update.
21861         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
21862         Update.
21863         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
21864         (h8300_handle_tiny_data_attribute): Update.
21865         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
21866         (m32r_in_small_data_p): Update.
21867         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
21868         * config/i386/i386.c (ix86_in_large_data_p): Update.
21869         * config/i386/winnt.c (i386_pe_unique_section): Update.
21870         * config/darwin.c (darwin_function_section): Update.
21871         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
21872         * tree-emutls.c (get_emutls_init_templ_addr): Update.
21873         (new_emutls_decl): Update.
21874         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
21875         input_varpool_node): Update.
21876         (ead_string_cst): Turn to ...
21877         (read_string): ... this one.
21878         * dwarf2out.c (secname_for_decl): Update.
21879         * asan.c (asan_protect_global): Update.
21880
21881 2014-06-11  DJ Delorie  <dj@redhat.com>
21882
21883         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
21884         cache lines.
21885         * config/rx/rx.c (rx_option_override): Likewise.
21886         (rx_align_for_label): Likewise.
21887
21888         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
21889
21890 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
21891
21892         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
21893         prototype.
21894
21895 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21896
21897         * common.md: New file.
21898         * doc/md.texi: Update description of generic, machine-independent
21899         constraints.
21900         * config/s390/constraints.md (e): Delete.
21901         * Makefile.in (md_file): Include common.md.
21902         * config/m32c/t-m32c (md_file): Likewise.
21903         * genpreds.c (general_mem): New array.
21904         (generic_constraint_letters): Remove constraints now defined by
21905         common.md.
21906         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
21907         Allow the first character to be '<' or '>' as well.
21908         * genoutput.c (general_mem): New array.
21909         (indep_constraints): Remove constraints now defined by common.md.
21910         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
21911         Remove special handling of 'm'.
21912         * ira-costs.c (record_reg_classes): Remove special handling of
21913         constraints now defined by common.md.
21914         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
21915         * ira-lives.c (single_reg_class): Likewise.
21916         (ira_implicitly_set_insn_hard_regs): Likewise.
21917         * lra-constraints.c (reg_class_from_constraints): Likewise.
21918         (process_alt_operands, process_address, curr_insn_transform): Likewise.
21919         * postreload.c (reload_cse_simplify_operands): Likewise.
21920         * reload.c (push_secondary_reload, scratch_reload_class)
21921         (find_reloads, alternative_allows_const_pool_ref): Likewise.
21922         * reload1.c (maybe_fix_stack_asms): Likewise.
21923         * targhooks.c (default_secondary_reload): Likewise.
21924         * stmt.c (parse_output_constraint): Likewise.
21925         * recog.c (preprocess_constraints): Likewise.
21926         (constrain_operands, peep2_find_free_register): Likewise.
21927         (asm_operand_ok): Likewise, but add a comment saying why 'o'
21928         must be handled specially.
21929
21930 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21931
21932         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
21933         * genpreds.c (have_const_dbl_constraints): Delete.
21934         (add_constraint): Don't set it.
21935         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
21936         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
21937         constraints using the lookup_constraint logic.
21938         * ira-lives.c (single_reg_class): Likewise.
21939         * ira.c (ira_setup_alts): Likewise.
21940         * lra-constraints.c (process_alt_operands): Likewise.
21941         * recog.c (asm_operand_ok, constrain_operands): Likewise.
21942         * reload.c (find_reloads): Likewise.
21943
21944 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21945
21946         * genpreds.c (const_int_start, const_int_end): New variables.
21947         (choose_enum_order): Output CONST_INT constraints before memory
21948         constraints.
21949         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
21950         Add CT_CONST_INT.
21951         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
21952         * ira.c (ira_setup_alts): Likewise.
21953         * lra-constraints.c (process_alt_operands): Likewise.
21954         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
21955         * reload.c (find_reloads): Likewise.
21956
21957 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21958
21959         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
21960         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
21961         * recog.c (preprocess_constraints): Update accordingly.
21962
21963 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21964
21965         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
21966         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
21967         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
21968         * genpreds.c (print_type_tree): New function.
21969         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
21970         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
21971         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
21972         Write out enum constraint_type and get_constraint_type.
21973         * lra-constraints.c (satisfies_memory_constraint_p): Take a
21974         constraint_num rather than a constraint string.
21975         (satisfies_address_constraint_p): Likewise.
21976         (reg_class_from_constraints): Avoid old constraint macros.
21977         (process_alt_operands, process_address_1): Likewise.
21978         (curr_insn_transform): Likewise.
21979         * ira-costs.c (record_reg_classes): Likewise.
21980         (record_operand_costs): Likewise.
21981         * ira-lives.c (single_reg_class): Likewise.
21982         (ira_implicitly_set_insn_hard_regs): Likewise.
21983         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
21984         * postreload.c (reload_cse_simplify_operands): Likewise.
21985         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
21986         (constrain_operands, peep2_find_free_register): Likewise.
21987         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
21988         (find_reloads, alternative_allows_const_pool_ref): Likewise.
21989         * reload1.c (maybe_fix_stack_asms): Likewise.
21990         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
21991         * targhooks.c (default_secondary_reload): Likewise.
21992         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
21993         to EXTRA_CONSTRAINT_STR.
21994         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
21995
21996 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
21997
21998         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
21999         (write_constraint_satisfied_p_array): ...this new function.
22000         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
22001         an array.
22002         (write_insn_preds_c): Update accordingly.
22003
22004 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
22005
22006         * genpreds.c (write_lookup_constraint): Rename to...
22007         (write_lookup_constraint_1): ...this.
22008         (write_lookup_constraint_array): New function.
22009         (write_tm_preds_h): Define lookup_constraint as an inline function
22010         that uses write_lookup_constraint_array where possible.
22011         (write_insn_preds_c): Update for the changes above.
22012
22013 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
22014
22015         * doc/md.texi (regclass_for_constraint): Rename to...
22016         (reg_class_for_constraint): ...this.
22017         * genpreds.c (num_constraints, enum_order, register_start)
22018         (register_end, satisfied_start, memory_start, memory_end)
22019         (address_start, address_end): New variables.
22020         (add_constraint): Count the number of constraints.
22021         (choose_enum_order): New function.
22022         (write_enum_constraint_num): Iterate over enum_order.
22023         (write_regclass_for_constraint): Rename to...
22024         (write_reg_class_for_constraint_1): ...this and update output
22025         accordingly.
22026         (write_constraint_satisfied_p): Rename to...
22027         (write_constraint_satisfied_p_1): ...this and update output
22028         accordingly.  Do nothing if all extra constraints are register
22029         constraints.
22030         (write_insn_extra_memory_constraint): Delete.
22031         (write_insn_extra_address_constraint): Delete.
22032         (write_range_function): New function.
22033         (write_tm_preds_h): Define constraint_satisfied_p and
22034         reg_class_for_constraint as inline functions that do a range check
22035         before calling the out-of-line function.  Use write_range_function
22036         to implement insn_extra_{register,memory,address}_constraint,
22037         the first of which is new.
22038         (write_insn_preds_c): Update after above changes to write_* functions.
22039         (main): Call choose_enum_order.
22040
22041 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22042
22043         PR tree-optimization/61306
22044         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
22045         expression instead of its size.
22046         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
22047         false to prevent optimization when the result is unpredictable due to
22048         arithmetic right shift of signed type with highest byte is set.
22049         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
22050         (init_symbolic_number): Likewise.
22051         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
22052         when the result is unpredictable due to sign extension.
22053
22054 2014-06-11  Terry Guo  <terry.guo@arm.com>
22055
22056         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
22057         (*thumb1_addsi3): Ditto.
22058         (*thumb_subdi3): Ditto.
22059         (thumb1_subsi3_insn): Ditto.
22060         (*thumb_mulsi3): Ditto.
22061         (*thumb_mulsi3_v6): Ditto.
22062         (*thumb1_andsi3_insn): Ditto.
22063         (thumb1_bicsi3): Ditto.
22064         (*thumb1_iorsi3_insn): Ditto.
22065         (*thumb1_xorsi3_insn): Ditto.
22066         (*thumb1_ashlsi3): Ditto.
22067         (*thumb1_ashrsi3): Ditto.
22068         (*thumb1_lshrsi3): Ditto.
22069         (*thumb1_rotrsi3): Ditto.
22070         (*thumb1_negdi2): Ditto.
22071         (*thumb1_negsi2): Ditto.
22072         (*thumb1_abssi2): Ditto.
22073         (*thumb1_neg_abssi2): Ditto.
22074         (*thumb1_one_cmplsi2): Ditto.
22075         (*thumb1_zero_extendhisi2): Ditto.
22076         (*thumb1_zero_extendqisi2): Ditto.
22077         (*thumb1_zero_extendqisi2_v6): Ditto.
22078         (thumb1_extendhisi2): Ditto.
22079         (thumb1_extendqisi2): Ditto.
22080         (*thumb1_movdi_insn): Ditto.
22081         (*thumb1_movsi_insn): Ditto.
22082         (*thumb1_movhi_insn): Ditto.
22083         (thumb_movhi_clobber): Ditto.
22084         (*thumb1_movqi_insn): Ditto.
22085         (*thumb1_movhf): Ditto.
22086         (*thumb1_movsf_insn): Ditto.
22087         (*thumb_movdf_insn): Ditto.
22088         (movmem12b): Ditto.
22089         (movmem8b): Ditto.
22090         (cbranchqi4): Ditto.
22091         (cbranchsi4_insn): Ditto.
22092         (cbranchsi4_scratch): Ditto.
22093         (*negated_cbranchsi4): Ditto.
22094         (*tbit_cbranch): Ditto.
22095         (*tlobits_cbranch): Ditto.
22096         (*tstsi3_cbranch): Ditto.
22097         (*cbranchne_decr1): Ditto.
22098         (*addsi3_cbranch): Ditto.
22099         (*addsi3_cbranch_scratch): Ditto.
22100         (*thumb_cmpdi_zero): Ditto.
22101         (cstoresi_eq0_thumb1): Ditto.
22102         (cstoresi_ne0_thumb1): Ditto.
22103         (*cstoresi_eq0_thumb1_insn): Ditto.
22104         (*cstoresi_ne0_thumb1_insn): Ditto.
22105         (cstoresi_nltu_thumb1): Ditto.
22106         (cstoresi_ltu_thumb1): Ditto.
22107         (thumb1_addsi3_addgeu): Ditto.
22108         (*thumb_jump): Ditto.
22109         (*call_reg_thumb1_v5): Ditto.
22110         (*call_reg_thumb1): Ditto.
22111         (*call_value_reg_thumb1_v5): Ditto.
22112         (*call_value_reg_thumb1): Ditto.
22113         (*call_insn): Ditto.
22114         (*call_value_insn): Ditto.
22115         (thumb1_casesi_internal_pic): Ditto.
22116         (thumb1_casesi_dispatch): Ditto.
22117         (*thumb1_indirect_jump): Ditto.
22118         (prologue_thumb1_interwork): Ditto.
22119         (*epilogue_insns): Ditto.
22120         (consttable_1): Ditto.
22121         (consttable_2): Ditto.
22122         (tablejump): Ditto.
22123         (*thumb1_tablejump): Ditto.
22124         (thumb_eh_return): Ditto.
22125         (define_peephole2): Two of them are thumb1 only and got moved into
22126         new file thumb1.md.
22127         (define_split): Six of them are thumb1 only and got moved into new
22128         file thumb1.md.
22129         * config/arm/thumb1.md: New file comprised of above thumb1 only
22130         patterns.
22131
22132 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22133
22134         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
22135         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
22136         dependencies.
22137         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
22138         (aarch64_crc_builtin_datum): New struct.
22139         (aarch64_crc_builtin_data): New.
22140         (aarch64_init_crc32_builtins): New function.
22141         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
22142         (aarch64_crc32_expand_builtin): New.
22143         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
22144         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
22145         __ARM_FEATURE_CRC32 when appropriate.
22146         (TARGET_CRC32): Define.
22147         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
22148         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
22149         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
22150         (aarch64_<crc_variant>): New pattern.
22151         * config/aarch64/arm_acle.h: New file.
22152         * config/aarch64/iterators.md (CRC): New int iterator.
22153         (crc_variant, crc_mode): New int attributes.
22154         * doc/aarch64-acle-intrinsics.texi: New file.
22155         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
22156         Include aarch64-acle-intrinsics.texi.
22157
22158 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
22159
22160         * tree-vect-data-refs.c (vect_grouped_store_supported): New
22161         check for stores group of length 3.
22162         (vect_permute_store_chain): New permutations for stores group of
22163         length 3.
22164         * tree-vect-stmts.c (vect_model_store_cost): Change cost
22165         of vec_perm_shuffle for the new permutations.
22166
22167 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
22168
22169         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
22170         table rewriting temporarily on targets not supporting ONE_ONLY.
22171
22172 2014-06-11  Richard Biener  <rguenther@suse.de>
22173
22174         PR middle-end/61437
22175         Revert
22176         2014-06-04  Richard Biener  <rguenther@suse.de>
22177
22178         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
22179         TREE_PUBLIC and DECL_EXTERNAL decls.
22180
22181 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
22182
22183         * varasm.c (set_implicit_section): New function.
22184         (resolve_unique_section): Use it to set implicit section
22185         for aliases, too.
22186         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
22187         (default_function_section): Likewise.
22188         (decl_binds_to_current_def_p): Constify argument.
22189         * varasm.h (decl_binds_to_current_def_p): Update prototype.
22190         * asan.c (asan_protect_global): Use
22191         symtab_get_node (decl)->implicit_section.
22192         * symtab.c (dump_symtab_base): Dump implicit sections.
22193         (verify_symtab_base): Verify sanity of sectoins and comdats.
22194         (symtab_resolve_alias): Alias share the section of its target.
22195         (set_section_1): New function.
22196         (symtab_node::set_section): Move here, recurse to aliases.
22197         (verify_symtab): Check for duplicated symtab lists.
22198         * tree-core.h (implicit_section_name_p): Remove.
22199         * tree-vect-data-refs.c: Include varasm.h.
22200         (vect_can_force_dr_alignment_p): Fix conditional on when
22201         decl bints to current definition; use
22202         symtab_get_node (decl)->implicit_section.
22203         * cgraph.c (cgraph_make_node_local_1): Fix section set.
22204         * cgraph.h (struct symtab_node): Add implicit_section.
22205         (set_section): Rename to ...
22206         (set_section_for_node): ... this one.
22207         (set_section): Declare.
22208         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
22209         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
22210         input_overwrite_node, input_varpool_node): Stream implicit_section.
22211         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
22212         removal; it will fail in LTO.
22213
22214 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22215
22216         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
22217         Change second alternative type to f_mcr.
22218         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
22219         and 12th alternatives' types to f_mcr and f_mrc.
22220         (*movdi_aarch64): Same for 12th and 13th alternatives.
22221         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
22222         (aarch64_movtilow_tilow): Change type to fmov.
22223
22224 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
22225
22226         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
22227         (aarch64_save_or_restore_callee_save_registers): Fix layout.
22228
22229 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22230
22231         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
22232         New expander.
22233         (aarch64_sqrdmulh_lane<mode>): Likewise.
22234         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
22235         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
22236         (aarch64_sqdmulh_laneq<mode>): New expander.
22237         (aarch64_sqrdmulh_laneq<mode>): Likewise.
22238         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
22239         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
22240         (aarch64_sqdmulh_lane<mode>): New expander.
22241         (aarch64_sqrdmulh_lane<mode>): Likewise.
22242         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
22243         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
22244         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
22245         (aarch64_sqdmlal_laneq<mode>): Likewise.
22246         (aarch64_sqdmlsl_lane<mode>): Likewise.
22247         (aarch64_sqdmlsl_laneq<mode>): Likewise.
22248         (aarch64_sqdmlal2_lane<mode>): Likewise.
22249         (aarch64_sqdmlal2_laneq<mode>): Likewise.
22250         (aarch64_sqdmlsl2_lane<mode>): Likewise.
22251         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
22252         (aarch64_sqdmull_lane<mode>): Likewise.
22253         (aarch64_sqdmull_laneq<mode>): Likewise.
22254         (aarch64_sqdmull2_lane<mode>): Likewise.
22255         (aarch64_sqdmull2_laneq<mode>): Likewise.
22256
22257 2014-06-10  Richard Biener  <rguenther@suse.de>
22258
22259         PR tree-optimization/61438
22260         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
22261         (eliminate_dom_walker::before_dom_children): Only try to inhibit
22262         insertion of IVs if running PRE.
22263         (eliminate): Adjust.
22264         (pass_pre::execute): Likewise.
22265         (pass_fre::execute): Likewise.
22266
22267 2014-06-10  Richard Biener  <rguenther@suse.de>
22268
22269         PR middle-end/61456
22270         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
22271         Do not use the main variant for the type comparison.
22272         (ncr_compar): Likewise.
22273         (nonoverlapping_component_refs_p): Likewise.
22274
22275 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22276
22277         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
22278         REG_CFA_RESTORE mode.
22279
22280 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
22281
22282         * config/i386/i386.c (expand_vec_perm_pblendv): New.
22283         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
22284         expand_vec_perm_pblendv.
22285
22286 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22287
22288         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
22289         available.
22290         Simplify description of __crc32d and __crc32cd intrinsics.
22291         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
22292         availability.
22293
22294 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
22295
22296         PR lto/61334
22297         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
22298         * config.in: Regenerate.
22299         * configure: Likewise.
22300
22301 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
22302
22303         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
22304         and public vars.
22305         (intersect_static_var_sets): Remove.
22306         (propagate): Do not prune local statics.
22307
22308 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
22309
22310         PR fortran/60928
22311         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
22312         Set lastprivate_firstprivate even if omp_private_outer_ref
22313         langhook returns true.
22314         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
22315         langhook, call unshare_expr on new_var and call
22316         build_outer_var_ref to get the last argument.
22317
22318 2014-06-10  Marek Polacek  <polacek@redhat.com>
22319
22320         PR c/60988
22321         * doc/extend.texi: Add cindex for transparent_union.
22322
22323 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22324
22325         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
22326         init_symbolic_number ().
22327
22328 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
22329
22330         PR middle-end/61141
22331         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
22332         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
22333         (verify_rtl_sharing): Likewise.
22334
22335 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
22336
22337         PR c++/54442
22338         * tree.c (build_qualified_type): Use a canonical type for
22339         TYPE_CANONICAL.
22340
22341 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22342
22343         * config/arm/arm-modes.def: Remove XFmode.
22344
22345 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
22346
22347         PR target/61062
22348         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
22349         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
22350         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
22351         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
22352         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
22353         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
22354         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
22355         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
22356         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
22357
22358 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
22359
22360         * tree-core.h (tree_decl_with_vis): Remove section_name.
22361
22362 2014-06-09  Kito Cheng  <kito@0xlab.org>
22363
22364         * ira.c (ira): Don't call init_caller_save if LRA enabled
22365         since LRA use its own infrastructure to handle that.
22366
22367 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
22368
22369         * symtab.c (dump_symtab_base): Update dumping.
22370         (symtab_make_decl_local): Clear only DECL_COMDAT.
22371         * tree-vect-data-refs.c (Check that variable is static before
22372         tampering with sections.
22373         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
22374         (cgraph_create_virtual_clone): Likewise.
22375         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
22376         (decl_section_name, set_decl_section_name): New accessors.
22377         (find_decls_types_r): Do not walk section name
22378         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
22379         (decl_comdat_group, decl_comdat_group_id): Constify.
22380         (decl_section_name, set_decl_section_name): Update.
22381         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
22382         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
22383         (cgraph_make_node_local_1): Clear section and comdat group.
22384         * cgraph.h (set_comdat_group): Sanity check.
22385         (get_section, set_section): New.
22386         * ipa-comdats.c (ipa_comdats): Use get_section.
22387         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
22388         * lto-streamer-out.c: Do not follow section names.
22389         * c-family/c-common.c (handle_section_attribute): Update.
22390         * lto-cgraph.c (lto_output_node): Output section.
22391         (lto_output_varpool_node): Likewise.
22392         (read_comdat_group): Rename to ...
22393         (read_identifier): ... this one.
22394         (read_string_cst): New function.
22395         (input_node, input_varpool_node): Input section names.
22396         * tree-emutls.c (get_emutls_init_templ_addr): Update.
22397         (new_emutls_decl): Update.
22398         (secname_for_decl): Check section names only of static vars.
22399         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
22400         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
22401         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
22402         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
22403         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
22404         * config/mcore/mcore.c (mcore_unique_section): Likewise.
22405         * config/mips/mips.c (mips16_build_function_stub): Likewise.
22406         * config/v850/v850.c (v850_insert_attributes): Likewise.
22407         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
22408         Likewise.
22409         (h8300_handle_tiny_data_attribute): Likewise.
22410         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
22411         (bfin_handle_l2_attribute): Likewise.
22412
22413 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
22414
22415         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
22416         remove static initializer.
22417
22418 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
22419
22420         * varasm.c (use_blocks_for_decl_p): Check symbol table
22421         instead of alias attribute.
22422         (place_block_symbol): Recurse on aliases.
22423
22424 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
22425
22426         * ipa-visibility.c: Include varasm.h
22427         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
22428
22429 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
22430
22431         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
22432         outputting aliases.
22433
22434 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
22435
22436         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
22437         from test_insn into GGC space escape via SET_SRC.
22438
22439 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
22440
22441         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
22442         call statement, if any.
22443         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
22444         statements, if any.  Tidy up.
22445
22446 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
22447
22448         PR target/61431
22449         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
22450         iterators, VSX_D that handles 64-bit types, and VSX_LE that
22451         handles swapping the two 64-bit double words on little endian
22452         systems.  Include V1TImode and optionally TImode in VSX_LE so that
22453         these types are properly swapped.  Change all of the insns and
22454         splits that do the 64-bit swaps to use VSX_LE.
22455         (vsx_le_perm_load_<mode>): Likewise.
22456         (vsx_le_perm_store_<mode>): Likewise.
22457         (splitters for little endian memory operations): Likewise.
22458         (vsx_xxpermdi2_le_<mode>): Likewise.
22459         (vsx_lxvd2x2_le_<mode>): Likewise.
22460         (vsx_stxvd2x2_le_<mode>): Likewise.
22461
22462 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
22463
22464         PR target/61423
22465         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
22466         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
22467         and corresponding splitters.  Zero extend general register
22468         or memory input operand to XMM temporary.  Enable for
22469         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
22470         (floatunssi<mode>2): Update expander predicate.
22471
22472 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
22473
22474         PR rtl-optimization/61325
22475         * lra-constraints.c (process_address_1): Check scale equal to one
22476         to prevent transformation: base + scale * index => base + new_reg.
22477
22478 2014-06-06  Richard Biener  <rguenther@suse.de>
22479
22480         PR tree-optimization/59299
22481         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
22482         a def operand.
22483         (nearest_common_dominator_of_uses): Likewise.
22484         (statement_sink_location): Adjust.  Support sinking loads.
22485
22486 2014-06-06  Martin Jambor  <mjambor@suse.cz>
22487
22488         * ipa-prop.c (get_place_in_agg_contents_list): New function.
22489         (build_agg_jump_func_from_list): Likewise.
22490         (determine_known_aggregate_parts): Renamed to
22491         determine_locally_known_aggregate_parts.  Moved some functionality
22492         to the two functions above, removed bound checks.
22493
22494 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
22495
22496         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
22497         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
22498         (aarch64_progress_pointer): Likewise.
22499         (aarch64_copy_one_part_and_move_pointers): Likewise.
22500         (aarch64_expand_movmen): Likewise.
22501         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
22502         * config/aarch64/aarch64.md (movmem<mode>): New.
22503
22504 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
22505
22506         * targhooks.c (default_add_stmt_cost): Call target specific
22507         hook instead of default one.
22508
22509 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22510
22511         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
22512         endianness instead of host endianness.
22513         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
22514         comments.
22515
22516 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22517
22518         PR debug/53927
22519         * function.c (instantiate_decls): Process the saved static chain.
22520         (expand_function_start): If not optimizing, save the static chain
22521         onto the stack.
22522         * tree-nested.c (convert_all_function_calls): Always create the static
22523         chain for nested functions if not optimizing.
22524
22525 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22526
22527         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
22528
22529 2014-06-06  Richard Biener  <rguenther@suse.de>
22530
22531         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
22532         (construct_init_block): Likewise.
22533         (construct_exit_block): Likewise.
22534         (pass_expand::execute): Likewise.
22535         * graphite.c (graphite_transforms): Replace check for current_loops
22536         with a check for > 1 loops.
22537         (pass_graphite_transforms::execute): Adjust.
22538         * ipa-split.c (split_function): Remove check for current_loops.
22539         * omp-low.c (expand_parallel_call): Likewise.
22540         (expand_omp_for_init_counts): Likewise.
22541         (extract_omp_for_update_vars): Likewise.
22542         (expand_omp_for_generic): Likewise.
22543         (expand_omp_sections): Likewise.
22544         (expand_omp_target): Likewise.
22545         * tracer.c (tail_duplicate): Likewise.
22546         (pass_tracer::execute): Likewise.
22547         * trans-mem.c (expand_transaction): Likewise.
22548         * tree-complex.c (expand_complex_div_wide): Likewise.
22549         * tree-eh.c (lower_resx): Likewise.
22550         (cleanup_empty_eh_merge_phis): Likewise.
22551         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
22552         current_loops with a check for > 1 loops.
22553         (pass_predcom::execute): Adjust.
22554         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
22555         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
22556         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
22557         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
22558         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
22559         * tree-switch-conversion.c (process_switch): Likewise.
22560         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
22561         * tree-vrp.c (vrp_visit_phi_node): Likewise.
22562         (execute_vrp): Likewise.
22563         * ubsan.c (ubsan_expand_null_ifn): Likewise.
22564
22565 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
22566
22567         * rtl.h (insn_location): Declare.
22568         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
22569         with UNKNOWN_LOCATION.
22570         * emit-rtl.c (insn_location): New function.
22571         * final.c (notice_source_line): Check that the instruction has a
22572         location before retrieving it and use insn_location.
22573         * modulo-sched.c (loop_single_full_bb_p): Likewise.
22574         * print-rtl.c (print_rtx): Likewise.
22575
22576 2014-06-06  Richard Biener  <rguenther@suse.de>
22577
22578         * passes.def: Move 2nd VRP pass before phi-only-cprop.
22579
22580 2014-06-06  Christian Bruel  <christian.bruel@st.com>
22581
22582         PR tree-optimization/43934
22583         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
22584         cost.
22585
22586 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
22587
22588         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
22589         return NO_REGS for extra address and memory constraints.  Handle
22590         operands that match (or are equivalent to something that matches)
22591         extra constant constraints.  Ignore other non-register operands.
22592
22593 2014-06-06  Alan Modra  <amodra@gmail.com>
22594
22595         PR target/61300
22596         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
22597         * doc/tm.texi: Regenerate.
22598         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
22599         Use throughout in place of REG_PARM_STACK_SPACE.
22600         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
22601         "incoming" param.  Pass to rs6000_function_parms_need_stack.
22602         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
22603         prototype_p when incoming.  Use function decl when incoming
22604         to handle K&R style functions.
22605         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
22606         (INCOMING_REG_PARM_STACK_SPACE): Define.
22607
22608 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
22609
22610         PR target/52472
22611         * cfgexpand.c (expand_debug_expr): Use address space of nested
22612         TREE_TYPE for ADDR_EXPR and MEM_REF.
22613
22614 2014-06-05  Jeff Law  <law@redhat.com>
22615
22616         PR tree-optimization/61289
22617         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
22618         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
22619         looking for those which match LHS.  All callers changed.
22620         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
22621         parameters and code which manipulated them.  All callers changed.
22622         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
22623         and DST_MAP parameters.  Simplify invalidation code by just calling
22624         invalidate_equivalences.  All callers changed.
22625         (thread_across_edge): Simplify now that we don't need to maintain
22626         the map of equivalences to invalidate.
22627
22628 2014-06-05  Kai Tietz  <ktietz@redhat.com>
22629             Richard Henderson  <rth@redhat.com>
22630
22631         PR target/46219
22632         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
22633         checking for !TARGET_X32.
22634         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
22635         (sibcall_intern): New define_insn, plus required peepholes.
22636         (sibcall_pop_intern): Likewise.
22637         (sibcall_value_intern): Likewise.
22638         (sibcall_value_pop_intern): Likewise.
22639
22640 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
22641
22642         * tree-inline.c (tree_function_versioning): Check DF info existence
22643         before accessing it.
22644
22645 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22646
22647         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
22648         frame_size.
22649         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
22650         aarch64_frame hard_fp_offset and frame_size.
22651         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
22652         frame_size; remove original_frame_size.
22653         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
22654         (aarch64_initial_elimination_offset): Remove frame_size and
22655         offset.  Use aarch64_frame frame_size.
22656
22657 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22658             Jiong Wang  <jiong.wang@arm.com>
22659             Renlin  <renlin.li@arm.com>
22660
22661         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
22662         initialization of R30 offset.  Update offset.  Iterate core
22663         regisers upto X30.  Remove X29, X30 specific code.
22664
22665 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22666             Jiong Wang  <jiong.wang@arm.com>
22667
22668         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
22669         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
22670         (aarch64_register_saved_on_entry): Adjust test.
22671
22672 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22673
22674         * config/aarch64/aarch64.h (machine_function): Move
22675         saved_varargs_size from here...
22676         (aarch64_frame): ... to here.
22677
22678         * config/aarch64/aarch64.c (aarch64_expand_prologue)
22679         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
22680         (aarch64_initial_elimination_offset)
22681         (aarch64_setup_incoming_varargs): Adjust location of
22682         saved_varargs_size.
22683
22684 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
22685
22686         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
22687         layout comment.
22688
22689 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
22690             Prachi Godbole  <Prachi.Godbole@imgtec.com>
22691
22692         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
22693         mips32r5 entry to use PROCESSOR_P5600.
22694         * config/mips/mips-tables.opt: Regenerate.
22695         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
22696         * config/mips/mips.c (mips_fmadd_bypass): New function.
22697         (mips_rtx_cost_data): Add costs for p5600.
22698         (mips_issue_rate): Add support for p5600.
22699         (mips_multipass_dfa_lookahead): Likewise.
22700         * config/mips/mips.h (TUNE_P5600): New define.
22701         (TUNE_MACC_CHAINS): Add TUNE_P5600.
22702         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
22703         * config/mips/mips.md: Include p5600.md.
22704         (processor): Add p5600.
22705         * config/mips/p5600.md: New file.
22706
22707 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
22708
22709         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
22710         * config/i386/predicates.md (palignr_operand): New.
22711         Indicates if permutation is suitable for palignr instruction.
22712
22713 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
22714
22715         PR tree-optimization/61319
22716         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
22717         stmt belongs to loop.
22718
22719 2014-06-05  Richard Biener  <rguenther@suse.de>
22720
22721         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
22722         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
22723         (lookup_tmp_var): Adjust.
22724         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
22725
22726 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22727
22728         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
22729
22730 2014-06-05  Marek Polacek  <polacek@redhat.com>
22731
22732         PR c/49706
22733         * doc/invoke.texi: Document -Wlogical-not-parentheses.
22734
22735 2014-06-04  Tom de Vries  <tom@codesourcery.com>
22736
22737         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
22738         CONST_INT.
22739
22740 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
22741
22742         PR tree-optimization/61385
22743         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
22744
22745 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
22746
22747         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
22748         changed to use fatal_error.
22749         (main): Ensure lto_wrapper_cleanup is run atexit.
22750
22751 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22752
22753         * lra-constraints.c (valid_address_p): Move earlier in file.
22754         (address_eliminator): New structure.
22755         (satisfies_memory_constraint_p): New function.
22756         (satisfies_address_constraint_p): Likewise.
22757         (process_alt_operands, process_address, curr_insn_transform): Use them.
22758
22759 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22760
22761         * lra-int.h (lra_static_insn_data): Make operand_alternative a
22762         const pointer.
22763         (target_lra_int, default_target_lra_int, this_target_lra_int)
22764         (op_alt_data): Delete.
22765         * lra.h (lra_init): Delete.
22766         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
22767         (init_insn_code_data_once): Remove op_alt_data handling.
22768         (finish_insn_code_data_once): Likewise.
22769         (init_op_alt_data): Delete.
22770         (get_static_insn_data): Initialize operand_alternative to null.
22771         (free_insn_recog_data): Cast operand_alternative before freeing it.
22772         (setup_operand_alternative): Take the operand_alternative as
22773         parameter and assume it isn't already cached in the static
22774         insn data.
22775         (lra_set_insn_recog_data): Update accordingly.
22776         (lra_init): Delete.
22777         * ira.c (ira_init): Don't call lra_init.
22778         * target-globals.h (this_target_lra_int): Declare.
22779         (target_globals): Remove lra_int.
22780         (restore_target_globals): Update accordingly.
22781         * target-globals.c: Don't include lra-int.h.
22782         (default_target_globals, save_target_globals): Remove lra_int.
22783
22784 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22785
22786         * recog.h (operand_alternative): Convert reg_class, reject,
22787         matched and matches into bitfields.
22788         (preprocess_constraints): New overload.
22789         (preprocess_insn_constraints): New function.
22790         (preprocess_constraints): Take the insn as parameter.
22791         (recog_op_alt): Change into a pointer.
22792         (target_recog): Add x_op_alt.
22793         * recog.c (asm_op_alt): New variable.
22794         (recog_op_alt): Change into a pointer.
22795         (preprocess_constraints): New overload, replacing the old function
22796         definition with one that doesn't use global state.
22797         (preprocess_insn_constraints): New function.
22798         (preprocess_constraints): Use them.  Take the insn as parameter.
22799         Use asm_op_alt for asms.
22800         (recog_init): Free existing x_op_alt entries.
22801         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
22802         pointer const.
22803         (make_early_clobber_and_input_conflicts): Likewise.
22804         (process_bb_node_lives): Pass the insn to process_constraints.
22805         * reg-stack.c (check_asm_stack_operands): Likewise.
22806         (subst_asm_stack_regs): Likewise.
22807         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
22808         * regrename.c (build_def_use): Likewise.
22809         * sched-deps.c (sched_analyze_insn): Likewise.
22810         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
22811         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
22812         (note_invalid_constants): Likewise.
22813         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22814         (ix86_legitimate_combined_insn): Make operand_alternative pointer
22815         const.
22816
22817 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22818
22819         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
22820         * ira-lives.c (check_and_make_def_conflict): Check for disabled
22821         alternatives.
22822         (make_early_clobber_and_input_conflicts): Likewise.
22823         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22824
22825 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22826
22827         * recog.h (alternative_class): New function.
22828         (which_op_alt): Return a const recog_op_alt.
22829         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
22830         (subst_asm_stack_regs): Likewise.
22831         * config/arm/arm.c (note_invalid_constants): Likewise.
22832         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
22833         the operand_alternative; use alternative class instead.
22834         * sel-sched.c (get_reg_class): Likewise.
22835         * regrename.c (build_def_use): Likewise.
22836         (hide_operands, restore_operands, record_out_operands): Update type
22837         accordingly.
22838
22839 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
22840
22841         * recog.h (recog_op_alt): Convert to a flat array.
22842         (which_op_alt): New function.
22843         * recog.c (recog_op_alt): Convert to a flat array.
22844         (preprocess_constraints): Update accordingly, grouping all
22845         operands of the same alternative together, rather than the
22846         other way around.
22847         * ira-lives.c (check_and_make_def_conflict): Likewise.
22848         (make_early_clobber_and_input_conflicts): Likewise.
22849         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22850         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
22851         (subst_asm_stack_regs): Likewise.
22852         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
22853         * regrename.c (hide_operands, record_out_operands): Likewise.
22854         (build_def_use): Likewise.
22855         * sel-sched.c (get_reg_class): Likewise.
22856         * config/arm/arm.c (note_invalid_constants): Likewise.
22857
22858 2014-06-04  Jason Merrill  <jason@redhat.com>
22859
22860         PR c++/51253
22861         PR c++/61382
22862         * gimplify.c (gimplify_arg): Non-static.
22863         * gimplify.h: Declare it.
22864
22865 2014-06-04  Richard Biener  <rguenther@suse.de>
22866
22867         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
22868         TREE_PUBLIC and DECL_EXTERNAL decls.
22869
22870 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
22871
22872         * regcprop.c (copyprop_hardreg_forward_1): Account for
22873         HARD_REGNO_CALL_PART_CLOBBERED.
22874
22875 2014-06-04  Richard Biener  <rguenther@suse.de>
22876
22877         * configure.ac: Check whether the underlying type of int64_t
22878         is long or long long.
22879         * configure: Regenerate.
22880         * config.in: Likewise.
22881         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
22882         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
22883
22884 2014-06-04  Richard Biener  <rguenther@suse.de>
22885
22886         PR tree-optimization/60098
22887         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
22888         we hit a kill.
22889         (dse_optimize_stmt): Simplify, now that we found a kill
22890         earlier.
22891
22892 2014-06-04  Richard Biener  <rguenther@suse.de>
22893
22894         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
22895         of accesses with non-invariant address.
22896
22897 2014-06-04  Martin Liska  <mliska@suse.cz>
22898
22899         * cgraph.h (cgraph_make_wrapper): New function introduced.
22900         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
22901         * ipa-inline.h (inline_analyze_function): The function is global.
22902         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
22903
22904 2014-06-04  Martin Liska  <mliska@suse.cz>
22905
22906         * tree.h (private_lookup_attribute_starting): New function.
22907         (lookup_attribute_starting): Likewise.
22908         * tree.c (private_lookup_attribute_starting): Likewise.
22909
22910 2014-06-04  Martin Liska  <mliska@suse.cz>
22911
22912         * cgraph.h (expand_thunk): New argument added.
22913         (address_taken_from_non_vtable_p): New global function.
22914         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
22915         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
22916         * cgraphunit.c (analyze_function): Likewise.
22917         (assemble_thunks_and_aliases): Argument added to call.
22918         (expand_thunk): New argument forces to produce GIMPLE thunk.
22919
22920 2014-06-04  Martin Liska  <mliska@suse.cz>
22921
22922         * coverage.h (coverage_compute_cfg_checksum): Argument added.
22923         * coverage.c (coverage_compute_cfg_checksum): Likewise.
22924         * profile.c (branch_prob): Likewise.
22925
22926 2014-06-04  Martin Jambor  <mjambor@suse.cz>
22927
22928         PR ipa/61340
22929         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
22930         handler for switch on an ipa_ref_use enum.
22931         * ipa-reference.c (analyze_function): Likewise.
22932
22933 2014-06-04  Kai Tietz  <ktietz@redhat.com>
22934
22935         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
22936         from old call-instruction.
22937
22938 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
22939
22940         * config/aarch64/aarch64.c (aarch64_classify_address)
22941         (aarch64_legitimize_reload_address): Support full addressing modes
22942         for vector modes.
22943         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
22944         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
22945
22946 2014-06-03  Andrew Pinski  <apinski@cavium.com>
22947
22948         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
22949         for OP0.
22950
22951 2014-06-03  Andrew Pinski  <apinski@cavium.com>
22952
22953         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
22954         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
22955
22956 2014-06-03  Kai Tietz  <ktietz@redhat.com>
22957
22958         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
22959         for 64-bit ms-abi.
22960
22961 2014-06-03  Dehao Chen  <dehao@google.com>
22962
22963         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
22964         the same loop.
22965
22966 2014-06-03  Marek Polacek  <polacek@redhat.com>
22967
22968         PR c/60439
22969         * doc/invoke.texi: Document -Wswitch-bool.
22970         * function.c (stack_protect_epilogue): Cast controlling expression of
22971         the switch to int.
22972         * gengtype.c (walk_type): Generate switch expression with its
22973         controlling expression cast to int.
22974
22975 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
22976
22977         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
22978         and attiny841.
22979         * config/avr/avr-tables.opt: Regenerate.
22980         * config/avr/t-multilib: Regenerate.
22981         * doc/avr-mmcu.texi: Regenerate.
22982
22983 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
22984             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
22985
22986         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
22987         (ata6617c, ata664251): Add new avr35 devices.
22988         (ata6612c): Add new avr4 device.
22989         (ata6613c, ata6614q): Add new avr5 devices.
22990         * config/avr/avr-tables.opt: Regenerate.
22991         * config/avr/t-multilib: Regenerate.
22992         * doc/avr-mmcu.texi: Regenerate.
22993
22994 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
22995
22996         * gcc/config/aarch64/aarch64-builtins.c
22997         (aarch64_types_binop_ssu_qualifiers): New static data.
22998         (TYPES_BINOP_SSU): Define.
22999         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
23000         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
23001         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
23002         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
23003         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
23004         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
23005         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
23006         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
23007         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
23008         suffix to builtin function name, remove cast.
23009         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
23010         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
23011         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
23012
23013 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
23014
23015         * gcc/config/aarch64/aarch64-builtins.c
23016         (aarch64_types_binop_uus_qualifiers,
23017         aarch64_types_shift_to_unsigned_qualifiers,
23018         aarch64_types_unsigned_shiftacc_qualifiers): Define.
23019         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
23020         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
23021         sqshlu_n, uqshl_n): Update qualifiers.
23022         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
23023         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
23024         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
23025         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
23026         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
23027         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
23028         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
23029         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
23030         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
23031         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
23032         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
23033         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
23034         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
23035         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
23036         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
23037         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
23038         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
23039         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
23040         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
23041         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
23042         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
23043         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
23044         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
23045         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
23046         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
23047         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
23048         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
23049
23050 2014-06-03  Teresa Johnson  <tejohnson@google.com>
23051
23052         * tree-sra.c (modify_function): Record caller nodes after rebuild.
23053
23054 2014-06-02  Jason Merrill  <jason@redhat.com>
23055
23056         PR c++/61020
23057         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
23058
23059 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
23060
23061         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
23062         location == 0.
23063
23064 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
23065
23066         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
23067         New pattern.
23068         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
23069         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
23070         * config/aarch64/iterators.md (REVERSE): New iterator.
23071         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
23072         (rev_op): New int_attribute.
23073         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
23074         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
23075         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
23076         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
23077         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
23078         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
23079         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
23080         Replace temporary __asm__ with __builtin_shuffle.
23081
23082 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
23083
23084         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
23085         mips64r5.
23086         * config/mips/mips-tables.opt: Regenerate.
23087         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
23088         to use mips_isa_rev rather than ISA_MIPS32R2.
23089         * config/mips/mips.h (ISA_MIPS32R3): New define.
23090         (ISA_MIPS32R5): New define.
23091         (ISA_MIPS64R3): New define.
23092         (ISA_MIPS64R5): New define.
23093         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
23094         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
23095         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
23096         and mips64r5.
23097         (MIPS_ISA_SYNCI_SPEC): Likewise.
23098         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
23099         (LINK_SPEC): Added mips32r3 and mips32r5.
23100         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
23101         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
23102         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
23103         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
23104         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
23105         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
23106         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
23107
23108 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
23109
23110         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
23111         options.
23112         * config/mips/mips.opt (mxpa): New option.
23113         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
23114         assembler.
23115
23116 2014-06-03  Martin Jambor  <mjambor@suse.cz>
23117
23118         PR ipa/61160
23119         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
23120         thunks.
23121
23122 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23123
23124         PR tree-optimization/61328
23125         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
23126         initialization from find_bswap_or_nop_1.
23127         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
23128         in source_expr2 before using the size value the function sets. Also
23129         make use of init_symbolic_number () in both the old place and
23130         find_bswap_or_nop_load () to avoid reading uninitialized memory when
23131         doing recursion in the GIMPLE_BINARY_RHS case.
23132
23133 2014-06-03  Richard Biener  <rguenther@suse.de>
23134
23135         PR tree-optimization/61383
23136         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
23137         stmts can't trap.
23138
23139 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
23140
23141         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
23142         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
23143         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
23144         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
23145         in this file.
23146         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
23147         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
23148         * system.h: ...here and make it unconditional.
23149         * target.def (conditional_register_usage): Mention
23150         define_register_constraint instead of old-style constraint macros.
23151         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
23152         * doc/tm.texi: Regenerate.
23153         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
23154         protected by !USE_MD_CONSTRAINTS.
23155         * config/frv/frv.md: Remove quote from old version of documentation.
23156         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
23157         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
23158         CONST_DOUBLE_OK_FOR_LETTER.
23159         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
23160
23161 2014-06-02  Andrew Pinski  <apinski@cavium.com>
23162
23163         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
23164         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
23165         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
23166         file whose name depends on -mabi= and -mbig-endian.
23167         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
23168         Handle LP64 better and handle ilp32 too.
23169         (MULTILIB_OPTIONS): Delete.
23170         (MULTILIB_DIRNAMES): Delete.
23171
23172 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
23173
23174         * expr.h: Remove prototypes of functions defined in builtins.c.
23175         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
23176         Remove prototypes of functions defined in builtins.c.
23177         * builtins.h: Update prototype list to include all exported functions.
23178         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
23179         no_c99_libc_has_function): Move to targhooks.c
23180         (build_string_literal, build_call_expr_loc_array,
23181         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
23182         to tree.c.
23183         (expand_builtin_object_size, fold_builtin_object_size): Make static.
23184         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
23185         no_c99_libc_has_function): Relocate from builtins.c.
23186         * tree.c: Include builtins.h.
23187         (build_call_expr_loc_array, build_call_expr_loc_vec,
23188         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
23189         from builtins.c.
23190         * fold-const.h (fold_fma): Move prototype to builtins.h.
23191         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
23192         * asan.c: Include builtins.h.
23193         * cfgexpand.c: Likewise.
23194         * convert.c: Likewise.
23195         * emit-rtl.c: Likewise.
23196         * except.c: Likewise.
23197         * expr.c: Likewise.
23198         * fold-const.c: Likewise.
23199         * gimple-fold.c: Likewise.
23200         * gimple-ssa-strength-reduction.c: Likewise.
23201         * gimplify.c: Likewise.
23202         * ipa-inline.c: Likewise.
23203         * ipa-prop.c: Likewise.
23204         * lto-streamer-out.c: Likewise.
23205         * stmt.c: Likewise.
23206         * tree-inline.c: Likewise.
23207         * tree-object-size.c: Likewise.
23208         * tree-sra.c: Likewise.
23209         * tree-ssa-ccp.c: Likewise.
23210         * tree-ssa-forwprop.c: Likewise.
23211         * tree-ssa-loop-ivcanon.c: Likewise.
23212         * tree-ssa-loop-ivopts.c: Likewise.
23213         * tree-ssa-math-opts.c: Likewise.
23214         * tree-ssa-reassoc.c: Likewise.
23215         * tree-ssa-threadedge.c: Likewise.
23216         * tree-streamer-in.c: Likewise.
23217         * tree-vect-data-refs.c: Likewise.
23218         * tree-vect-patterns.c: Likewise.
23219         * tree-vect-stmts.c: Likewise.
23220         * config/aarch64/aarch64.c: Likewise.
23221         * config/alpha/alpha.c: Likewise.
23222         * config/arc/arc.c: Likewise.
23223         * config/arm/arm.c: Likewise.
23224         * config/avr/avr.c: Likewise.
23225         * config/bfin/bfin.c: Likewise.
23226         * config/c6x/c6x.c: Likewise.
23227         * config/cr16/cr16.c: Likewise.
23228         * config/cris/cris.c: Likewise.
23229         * config/epiphany/epiphany.c: Likewise.
23230         * config/fr30/fr30.c: Likewise.
23231         * config/frv/frv.c: Likewise.
23232         * config/h8300/h8300.c: Likewise.
23233         * config/i386/i386.c: Likewise.
23234         * config/i386/winnt.c: Likewise.
23235         * config/ia64/ia64.c: Likewise.
23236         * config/iq2000/iq2000.c: Likewise.
23237         * config/lm32/lm32.c: Likewise.
23238         * config/m32c/m32c.c: Likewise.
23239         * config/m32r/m32r.c: Likewise.
23240         * config/m68k/m68k.c: Likewise.
23241         * config/mcore/mcore.c: Likewise.
23242         * config/mep/mep.c: Likewise.
23243         * config/microblaze/microblaze.c: Likewise.
23244         * config/mips/mips.c: Likewise.
23245         * config/mmix/mmix.c: Likewise.
23246         * config/mn10300/mn10300.c: Likewise.
23247         * config/moxie/moxie.c: Likewise.
23248         * config/msp430/msp430.c: Likewise.
23249         * config/nds32/nds32.c: Likewise.
23250         * config/pa/pa.c: Likewise.
23251         * config/pdp11/pdp11.c: Likewise.
23252         * config/picochip/picochip.c: Likewise.
23253         * config/rl78/rl78.c: Likewise.
23254         * config/rs6000/rs6000.c: Likewise.
23255         * config/rx/rx.c: Likewise.
23256         * config/s390/s390.c: Likewise.
23257         * config/score/score.c: Likewise.
23258         * config/sh/sh.c: Likewise.
23259         * config/sparc/sparc.c: Likewise.
23260         * config/spu/spu.c: Likewise.
23261         * config/stormy16/stormy16.c: Likewise.
23262         * config/tilegx/tilegx.c: Likewise.
23263         * config/tilepro/tilepro.c: Likewise.
23264         * config/v850/v850.c: Likewise.
23265         * config/vax/vax.c: Likewise.
23266         * config/xtensa/xtensa.c: Likewise.
23267
23268 2014-06-02  Jeff Law  <law@redhat.com>
23269
23270         PR rtl-optimization/61094
23271         * ree.c (combine_reaching_defs): Do not reextend an insn if it
23272         was marked as do_no_reextend.  If a copy is needed to eliminate
23273         an extension, then mark it as do_not_reextend.
23274
23275 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
23276
23277         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
23278
23279 2014-06-02  Richard Henderson  <rth@redhat.com>
23280
23281         PR target/61336
23282         * config/alpha/alpha.c (print_operand_address): Allow symbolic
23283         addresses inside asms.  Use output_operand_lossage instead of
23284         gcc_unreachable.
23285
23286 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
23287
23288         PR target/61239
23289         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
23290         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
23291
23292 2014-06-02  Tom de Vries  <tom@codesourcery.com>
23293
23294         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
23295         case that x has VOIDmode.
23296
23297 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
23298
23299         * varasm.c (copy_constant): Delete function.
23300         (build_constant_desc): Don't call it.
23301
23302 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23303
23304         PR target/61154
23305         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
23306         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
23307         with immediate_operand.
23308
23309 2014-06-02  Andreas Schwab  <schwab@suse.de>
23310
23311         * config/ia64/ia64.c
23312         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
23313         pending_data_specs first.
23314
23315 2014-06-02  Richard Biener  <rguenther@suse.de>
23316
23317         PR tree-optimization/61378
23318         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
23319         valueized_anything.
23320
23321 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
23322
23323         * config/i386/constraints.md (Bw): Rename from 'w'.
23324         (Bz): Rename from 'z'.
23325         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
23326
23327 2014-06-01  Kai Tietz  <ktietz@redhat.com>
23328
23329         PR target/61377
23330         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
23331         * config/i386/i386.md (sibcall_insn_operand): Use Bs
23332         instead of m constraint.
23333
23334 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
23335
23336         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
23337         a separate alternative where the scratch operand 2 is marked as
23338         early clobber.
23339
23340 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
23341
23342         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
23343         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
23344         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
23345         and __builtins_arm_get_fpscr.
23346         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
23347         __builtins_arm_get_fpscr.
23348         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
23349         __builtins_arm_ldfpscr.
23350         (arm_atomic_assign_expand_fenv): New function.
23351         * config/arm/vfp.md (set_fpscr): New pattern.
23352         (get_fpscr) : Likewise.
23353         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
23354         VUNSPEC_SET_FPSCR.
23355         * doc/extend.texi (AARCH64 Built-in Functions) : Document
23356         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
23357
23358 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
23359
23360         * asan.c (report_error_func): Add SLOW_P argument, use
23361         BUILT_IN_ASAN_*_N if set.
23362         (build_check_stmt): Likewise.
23363         (instrument_derefs): If T has insufficient alignment,
23364         force same handling as for odd sizes.
23365
23366         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
23367         BUILT_IN_ASAN_REPORT_STORE_N): New.
23368         * asan.c (struct asan_mem_ref): Change access_size type to
23369         HOST_WIDE_INT.
23370         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
23371         update_mem_ref_hash_table): Likewise.
23372         (asan_mem_ref_hasher::hash): Hash in a HWI.
23373         (report_error_func): Change size_in_bytes argument to HWI.
23374         Use *_N builtins if size_in_bytes is larger than 16 or not power of
23375         two.
23376         (build_shadow_mem_access): New function.
23377         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
23378         Handle size_in_bytes not power of two or larger than 16.
23379         (instrument_derefs): Don't give up if size_in_bytes is not
23380         power of two or is larger than 16.
23381
23382 2014-05-30  Kai Tietz  <ktietz@redhat.com>
23383
23384         PR target/60104
23385         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
23386         for sibling-tail-calls.
23387         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
23388         to its use.
23389         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
23390         (sibcall_insn_operand): Add check for sibcall_memory_operand.
23391
23392 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
23393
23394         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
23395         * config/avr/avr-tables.opt: Regenerate.
23396         * config/avr/t-multilib: Regenerate.
23397         * doc/avr-mmcu.texi: Regenerate.
23398
23399 2014-05-30  Ian Lance Taylor  <iant@google.com>
23400
23401         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
23402         target("sse").
23403
23404 2014-05-30  Tom de Vries  <tom@codesourcery.com>
23405
23406         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
23407         Redefine as true.
23408
23409 2014-05-30  Tom de Vries  <tom@codesourcery.com>
23410
23411         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23412         * lra.c (initialize_lra_reg_info_element): Add init of
23413         actual_call_used_reg_set field.
23414         (lra): Call lra_create_live_ranges before lra_inheritance for
23415         -fuse-caller-save.
23416         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23417         -fuse-caller-save.
23418         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
23419         instead of call_used_reg_set for -fuse-caller-save.
23420         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23421
23422 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23423
23424         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
23425         to mov_imm.
23426         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
23427
23428 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
23429
23430         * ira.c (ira_get_dup_out_num): Check for output operands at
23431         the start of the loop.  Handle cases where an included alternative
23432         follows an excluded one.
23433
23434 2014-05-29  Mike Stump  <mikestump@comcast.net>
23435
23436         PR debug/61352
23437         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
23438         post ld passes when lto is used.
23439
23440 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
23441
23442         PR rtl-optimization/61325
23443         * lra-constraints.c (process_address): Rename to process_address_1.
23444         (process_address): New function.
23445
23446 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
23447
23448         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
23449         TYPES_BINOPV): New static data.
23450         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
23451         New builtin.
23452         * config/aarch64/aarch64-simd.md (aarch64_ext,
23453         aarch64_im_lane_boundsi): New patterns.
23454         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
23455         patterns for EXT.
23456         (aarch64_evpc_ext): New function.
23457
23458         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
23459
23460         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
23461         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
23462         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
23463         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
23464         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
23465
23466 2014-05-29  Tom de Vries  <tom@codesourcery.com>
23467
23468         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
23469
23470 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
23471             Richard Sandiford  <rdsandiford@googlemail.com>
23472
23473         * arm/iterators.md (shiftable_ops): New code iterator.
23474         (t2_binop0, arith_shift_insn): New code attributes.
23475         * arm/predicates.md (shift_nomul_operator): New predicate.
23476         * arm/arm.md (insn_enabled): Delete.
23477         (enabled): Remove insn_enabled test.
23478         (*arith_shiftsi): Delete.  Replace with ...
23479         (*<arith_shift_insn>_multsi): ... new pattern.
23480         (*<arith_shift_insn>_shiftsi): ... new pattern.
23481         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
23482
23483 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
23484             Tom de Vries  <tom@codesourcery.com>
23485
23486         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
23487         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
23488         clobber.
23489         (mips_split_call): Use POST_CALL_TMP_REG.
23490         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
23491
23492 2014-05-29  Tom de Vries  <tom@codesourcery.com>
23493
23494         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
23495         with #ifdef STACK_REGS.
23496
23497 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
23498
23499         * varasm.c (get_variable_section): Walk aliases.
23500         (place_block_symbol): Walk aliases.
23501
23502 2014-05-28  Tom de Vries  <tom@codesourcery.com>
23503
23504         Revert:
23505         2014-05-28  Tom de Vries  <tom@codesourcery.com>
23506
23507         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23508         * lra.c (initialize_lra_reg_info_element): Add init of
23509         actual_call_used_reg_set field.
23510         (lra): Call lra_create_live_ranges before lra_inheritance for
23511         -fuse-caller-save.
23512         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23513         -fuse-caller-save.
23514         * lra-constraints.c (need_for_call_save_p): Use
23515         actual_call_used_reg_set instead of call_used_reg_set for
23516         -fuse-caller-save.
23517         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23518
23519 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23520
23521         * doc/md.texi: Document that the % constraint character must
23522         be at the beginning of the string.
23523         * genoutput.c (validate_insn_alternatives): Check that '=',
23524         '+' and '%' only appear at the beginning of a constraint.
23525         * ira.c (commutative_constraint_p): Delete.
23526         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
23527         at the start of the string.
23528         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
23529         duplicate '='s.
23530         * config/arm/neon.md (bicdi3_neon): Likewise.
23531         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
23532         (slt_si, sltu_si): Likewise.
23533         * config/vax/vax.md (sbcdi3): Likewise.
23534         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
23535         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
23536         (mul64): Move '%' to beginning of constraint.
23537         * config/arm/arm.md (*xordi3_insn): Likewise.
23538         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
23539         (xorsi3): Likewise.
23540
23541 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23542
23543         * doc/md.texi: Document the restrictions on the "enabled" attribute.
23544
23545 2014-05-28  Jason Merrill  <jason@redhat.com>
23546
23547         PR c++/47202
23548         * cgraph.h (symtab_node::get_comdat_group_id): New.
23549         * cgraphunit.c (analyze_functions): Call it.
23550         * symtab.c (dump_symtab_node): Likewise.
23551         * tree.c (decl_comdat_group_id): New.
23552         * tree.h: Declare it.
23553         * lto-streamer-out.c (write_symbol): Use it.
23554         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
23555
23556 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
23557
23558         PR bootstrap/PR61146
23559         * wide-int.cc: Do not include longlong.h when compiling with clang.
23560
23561 2014-05-28  Richard Biener  <rguenther@suse.de>
23562
23563         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
23564         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
23565         (vrp_visit_assignment_or_call): Print less vertical space.
23566         (vrp_visit_stmt): Likewise.
23567         (vrp_visit_phi_node): Likewise.  For a PHI argument with
23568         VR_VARYING range consider recording it as copy.
23569
23570 2014-05-28  Richard Biener  <rguenther@suse.de>
23571
23572         Revert
23573         2014-05-28  Richard Biener  <rguenther@suse.de>
23574
23575         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23576
23577 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
23578
23579         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
23580         sufficiently aligned and an offset is used at the same time.
23581         (expand_expr_real_1): Likewise.
23582
23583 2014-05-28  Richard Biener  <rguenther@suse.de>
23584
23585         PR middle-end/61045
23586         * fold-const.c (fold_comparison): When folding
23587         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
23588         the sign of the remaining constant operand stays the same.
23589
23590 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
23591
23592         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
23593         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
23594         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
23595         to the assembler.
23596         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
23597         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
23598         (m32bit-doubles) Likewise.
23599         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
23600         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
23601         option for RL78.
23602
23603 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23604
23605         * configure.ac ($gcc_cv_ld_clearcap): New test.
23606         * configure: Regenerate.
23607         * config.in: Regenerate.
23608         * config/sol2.opt (mclear-hwcap): New option.
23609         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
23610         * config/sol2-clearcap.map: Moved here from
23611         testsuite/gcc.target/i386/clearcap.map.
23612         * config/sol2-clearcapv2.map: Move here from
23613         gcc.target/i386/clearcapv2.map.
23614         * config/t-sol2 (install): Depend on install-clearcap-map.
23615         (install-clearcap-map): New target.
23616         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
23617         -mclear-hwcap.
23618
23619 2014-05-28  Richard Biener  <rguenther@suse.de>
23620
23621         * hwint.h (*_HALF_WIDE_INT*): Move to ...
23622         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
23623         ... here and remove the rest.
23624         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
23625
23626 2014-05-28  Richard Biener  <rguenther@suse.de>
23627
23628         PR tree-optimization/61335
23629         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
23630         new range fails, drop to varying.
23631
23632 2014-05-28  Olivier Hainque  <hainque@adacore.com>
23633
23634         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
23635         (CPP_SPEC): Add entry for -mcpu=8548.
23636         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
23637         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
23638
23639 2014-05-28  Tom de Vries  <tom@codesourcery.com>
23640
23641         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
23642         * lra.c (initialize_lra_reg_info_element): Add init of
23643         actual_call_used_reg_set field.
23644         (lra): Call lra_create_live_ranges before lra_inheritance for
23645         -fuse-caller-save.
23646         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
23647         -fuse-caller-save.
23648         * lra-constraints.c (need_for_call_save_p): Use
23649         actual_call_used_reg_set instead of call_used_reg_set for
23650         -fuse-caller-save.
23651         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
23652
23653 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23654             Tom de Vries  <tom@codesourcery.com>
23655
23656         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
23657         to gccoptlist.
23658         (@item -fuse-caller-save): New item.
23659
23660 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23661             Tom de Vries  <tom@codesourcery.com>
23662
23663         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
23664         OPT_fuse_caller_save.
23665
23666 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23667             Tom de Vries  <tom@codesourcery.com>
23668
23669         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
23670         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
23671         get_call_reg_set_usage.
23672         * resource.c (mark_set_resources, mark_target_live_regs): Use
23673         get_call_reg_set_usage.
23674         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
23675         field.
23676         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
23677         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
23678         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23679         * ira-build.c (ira_create_allocno): Init
23680         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23681         (create_cap_allocno, propagate_allocno_info)
23682         (propagate_some_info_from_allocno)
23683         (copy_info_to_removed_store_destinations): Handle
23684         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
23685         * ira-costs.c (ira_tune_allocno_costs): Use
23686         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
23687
23688 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
23689             Tom de Vries  <tom@codesourcery.com>
23690
23691         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
23692         and function_used_regs_valid fields.
23693         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
23694         find_all_hard_reg_sets.
23695         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
23696         (get_call_reg_set_usage): New function.
23697         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
23698         * regs.h (get_call_reg_set_usage): Declare.
23699
23700 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
23701
23702         PR libgcc/61152
23703         * config/dbx.h (License): Add Runtime Library Exception.
23704         * config/newlib-stdint.h (License): Same.
23705         * config/rtems.h (License): Same
23706         * config/initfini-array.h (License): Same
23707         * config/v850/v850.h (License): Same.
23708         * config/v850/v850-opts.h (License): Same
23709         * config/v850/rtems.h (License): Same.
23710
23711 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
23712
23713         PR target/61044
23714         * doc/extend.texi (Local Labels): Note that label differences are
23715         not supported for AVR.
23716
23717 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
23718             Olivier Hainque  <hainque@adacore.com>
23719
23720         * rtl.h (set_for_reg_notes): Declare.
23721         * emit-rtl.c (set_for_reg_notes): New function.
23722         (set_unique_reg_note): Use it.
23723         * optabs.c (add_equal_note): Likewise
23724
23725 2014-05-27  Andrew Pinski  <apinski@cavium.com>
23726
23727         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
23728         Use <w> for the register in assembly template.
23729         (stack_protect_test): Use the mode of operands[0] for the result.
23730         (stack_protect_test_<mode>): Use <w> for the register
23731         in assembly template.
23732
23733 2014-05-27  DJ Delorie  <dj@redhat.com>
23734
23735         * config/rx/rx.c (add_vector_labels): New.
23736         (rx_output_function_prologue): Call it.
23737         (rx_handle_func_attribute): Don't require empty arguments.
23738         (rx_handle_vector_attribute): New.
23739         (rx_attribute_table): Add "vector" attribute.
23740         * doc/extend.texi (interrupt, vector): Document new/changed
23741         RX-specific attributes.
23742
23743         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
23744
23745 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
23746
23747         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
23748         predicate to detect a negative quotient.
23749
23750 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
23751
23752         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
23753         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
23754         Add X - Y CMP 0 to X CMP Y transformation.
23755         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
23756
23757 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
23758
23759         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
23760         before printing.
23761
23762 2014-05-27  Steve Ellcey  <sellcey@mips.com>
23763
23764         * config/mips/mips.c: Add include of cgraph.h.
23765
23766 2014-05-27  Richard Biener  <rguenther@suse.de>
23767
23768         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
23769
23770 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
23771
23772         PR libgcc/61152
23773         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
23774         * config/arm/arm-cores.def (License): Same.
23775         * config/arm/arm-opts.h (License): Same.
23776         * config/arm/aout.h (License): Same.
23777         * config/arm/bpabi.h (License): Same.
23778         * config/arm/elf.h (License): Same.
23779         * config/arm/linux-elf.h (License): Same.
23780         * config/arm/linux-gas.h (License): Same.
23781         * config/arm/netbsd-elf.h (License): Same.
23782         * config/arm/uclinux-eabi.h (License): Same.
23783         * config/arm/uclinux-elf.h (License): Same.
23784         * config/arm/vxworks.h (License): Same.
23785
23786 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23787
23788         * config/arm/neon.md (neon_bswap<mode>): New pattern.
23789         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
23790         (arm_init_neon_builtins): Handle NEON_BSWAP.
23791         Define required type nodes.
23792         (arm_expand_neon_builtin): Handle NEON_BSWAP.
23793         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
23794         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
23795         * config/arm/iterators.md (VDQHSD): New mode iterator.
23796
23797 2014-05-27  Richard Biener  <rguenther@suse.de>
23798
23799         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
23800         Try using literal operands when comparing value-ranges failed.
23801
23802 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
23803
23804         * ira.c (commutative_operand): Adjust for change to recog_data.
23805         [Missing from previous commit.]
23806
23807 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
23808
23809         * system.h (TEST_BIT): New macro.
23810         * recog.h (alternative_mask): New type.
23811         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
23812         (recog_data_d): Replace alternative_enabled_p array with
23813         enabled_alternatives.
23814         (target_recog): New structure.
23815         (default_target_recog, this_target_recog): Declare.
23816         (get_enabled_alternatives, recog_init): Likewise.
23817         * recog.c (default_target_recog, this_target_recog): New variables.
23818         (get_enabled_alternatives): New function.
23819         (extract_insn): Use it.
23820         (recog_init): New function.
23821         (preprocess_constraints, constrain_operands): Adjust for change to
23822         recog_data.
23823         * postreload.c (reload_cse_simplify_operands): Likewise.
23824         * reload.c (find_reloads): Likewise.
23825         * ira-costs.c (record_reg_classes): Likewise.
23826         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
23827         all alternatives after a disabled one would be skipped.
23828         (ira_implicitly_set_insn_hard_regs): Likewise.
23829         * ira.c (ira_setup_alts): Adjust for change to recog_data.
23830         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
23831         with enabled_alternatives.
23832         * lra.c (free_insn_recog_data): Update accordingly.
23833         (lra_update_insn_recog_data): Likewise.
23834         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
23835         * lra-constraints.c (process_alt_operands): Likewise.  Handle
23836         only_alternative as part of the enabled mask.
23837         * target-globals.h (this_target_recog): Declare.
23838         (target_globals): Add a recog field.
23839         (restore_target_globals): Restore this_target_recog.
23840         * target-globals.c: Include recog.h.
23841         (default_target_globals): Initialize recog field.
23842         (save_target_globals): Likewise.
23843         * reginfo.c (reinit_regs): Call recog_init.
23844         * toplev.c (backend_init_target): Likewise.
23845
23846 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
23847
23848         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
23849         rather than any named insn's code.
23850
23851 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
23852
23853         PR libgcc/61152
23854         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
23855         * config/arm/arm-cores.def (License): Same.
23856
23857 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
23858
23859         * tree.h (decl_comdat_group): Declare.
23860         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
23861         * tree.c (decl_comdat_group): Here.
23862
23863 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
23864
23865         PR rtl-optimization/61222
23866         * combine.c (simplify_shift_const_1): When moving a PLUS outside
23867         the shift, truncate the PLUS operand to the result mode.
23868
23869 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
23870
23871         PR target/61271
23872         * config/i386/i386.c (ix86_rtx_costs)
23873         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
23874         Fix condition.
23875
23876 2014-05-26  Martin Jambor  <mjambor@suse.cz>
23877
23878         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
23879         subreg uses.
23880
23881 2014-05-26  Richard Biener  <rguenther@suse.de>
23882
23883         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
23884         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
23885         Provide specializations.
23886         (wi::int_traits <HOST_WIDE_INT>,
23887         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
23888
23889 2014-05-26  Alan Modra  <amodra@gmail.com>
23890
23891         PR target/61098
23892         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
23893         params and return a bool.  Remove dead code.  Update comment.
23894         Assert we have a const_int source.  Remove bogus code from
23895         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
23896         handling of constants > 2G and reg_equal note, from..
23897         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
23898         return value.  Update comment.  If we can, use a new pseudo
23899         for intermediate calculations.
23900         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
23901         prototype.
23902         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
23903         call to rs6000_emit_set_const in splitter.
23904         (movdi_internal64+2, +3): Likewise.
23905
23906 2014-05-26  Richard Biener  <rguenther@suse.de>
23907
23908         * system.h: Define __STDC_FORMAT_MACROS before
23909         including inttypes.h.
23910         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
23911         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
23912         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
23913         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
23914         HOST_WIDEST_INT_C): Remove.
23915         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
23916         if C99 inttypes.h is not available.
23917         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
23918         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
23919         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
23920         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
23921         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
23922         (struct output_info): Likewise.
23923         (print_statistics): Adjust.
23924         (dump_bitmap_statistics): Likewise.
23925         * bt-load.c (migrate_btr_defs): Print with PRId64.
23926         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
23927         (MAX_SAFE_MULTIPLIER): Adjust.
23928         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
23929         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
23930         dump_cgraph_node): Likewise.
23931         * final.c (dump_basic_block_info): Likewise.
23932         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
23933         * gcov.c (format_gcov): Likewise.
23934         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
23935         for calculation.
23936         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
23937         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
23938         (inline_small_functions, dump_overall_stats, dump_inline_stats):
23939         Use PRId64 for dumping.
23940         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
23941         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
23942         (add_allocno_hard_regs): Adjust.
23943         * loop-doloop.c (doloop_modify): Print using PRId64.
23944         * loop-iv.c (inverse): Compute in uint64_t.
23945         (determine_max_iter, iv_number_of_iterations): Likewise.
23946         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
23947         Print using PRId64.
23948         * lto-streamer-out.c (write_symbol): Use uint64_t.
23949         * mcf.c (CAP_INFINITY): Use int64_t maximum.
23950         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
23951         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
23952         * modulo-sched.c (const_iteration_count): Use int64_t.
23953         (sms_schedule): Dump using PRId64.
23954         * predict.c (dump_prediction): Likewise.
23955         * pretty-print.h (pp_widest_integer): Remove.
23956         * profile.c (get_working_sets, is_edge_inconsistent,
23957         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
23958         * tree-pretty-print.c (pp_double_int): Remove case handling
23959         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
23960         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
23961         and adjust users.
23962         (pass_optimize_bswap::execute): Remove restriction on hosts.
23963         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
23964         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
23965         * tree.c (widest_int_cst_value): Remove.
23966         * tree.h (widest_int_cst_value): Likewise.
23967         * value-prof.c (dump_histogram_value): Print using PRId64.
23968         * gengtype.c (main): Also inject int64_t.
23969         * ggc-page.c (struct max_alignment): Use int64_t.
23970         * alloc-pool.c (struct allocation_object_def): Likewise.
23971         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
23972         for computation.
23973         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
23974         * doc/tm.texi: Regenerated.
23975         * gengtype-lex.l (IWORD): Handle [u]int64_t.
23976         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
23977         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
23978         mmix_output_register_setting): Use [u]int64_t in prototypes.
23979         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
23980         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
23981         mmix_output_octa, mmix_output_shifted_value): Adjust.
23982         (mmix_intval): Adjust.  Remove unreachable case.
23983         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
23984
23985 2014-05-26  Richard Biener  <rguenther@suse.de>
23986
23987         * configure.ac: Drop __int64 type check.  Insist that we
23988         found uint64_t and int64_t.
23989         * hwint.h (HOST_BITS_PER___INT64): Remove.
23990         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
23991         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
23992         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
23993         (HOST_WIDEST_FAST_INT): Remove __int64 case.
23994         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
23995         for dst_q_src_df_rms_cdt.
23996         * configure: Regenerate.
23997         * config.in: Likewise.
23998
23999 2014-05-26  Michael Tautschnig  <mt@debian.org>
24000
24001         PR target/61249
24002         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
24003         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
24004
24005 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
24006
24007         PR rtl-optimization/61278
24008         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
24009
24010 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
24011
24012         PR rtl-optimization/61220
24013         Part of PR rtl-optimization/61225
24014         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
24015         insn; skip split_edge for a block with only one successor.
24016
24017 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24018
24019         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
24020         for variables.
24021
24022 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24023
24024         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
24025         (update_vtable_references): New function.
24026         (function_and_variable_visibility): Rewrite also vtable initializers.
24027         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
24028
24029 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24030
24031         * ggc.h (ggc_grow): New function.
24032         * ggc-none.c (ggc_grow): New function.
24033         * ggc-page.c (ggc_grow): Likewise.
24034
24035 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24036
24037         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
24038         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
24039         comdat_can_be_unshared_p, cgraph_externally_visible_p,
24040         varpool_externally_visible_p, can_replace_by_local_alias,
24041         update_visibility_by_resolution_info, function_and_variable_visibility,
24042         pass_data_ipa_function_and_variable_visibility,
24043         make_pass_ipa_function_and_variable_visibility,
24044         whole_program_function_and_variable_visibility,
24045         pass_data_ipa_whole_program_visibility,
24046         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
24047         * cgraph.h (cgraph_local_node_p): Declare.
24048         * ipa-visibility.c: New file.
24049         * Makefile.in (OBJS): Add ipa-visiblity.o
24050
24051 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24052
24053         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
24054         that var decl is available.
24055
24056 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24057
24058         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
24059         symtab_node pointer.
24060         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
24061         (find_decls_types_r): Do not walk COMDAT_GROUP.
24062         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
24063         * varasm.c (make_decl_one_only): Use set_comdat_group;
24064         create node if needed.
24065         * ipa-inline-transform.c (save_inline_function_body): Update
24066         way we decl->symtab mapping.
24067         * symtab.c (symtab_hash, hash_node, eq_node
24068         symtab_insert_node_to_hashtable): Remove.
24069         (symtab_register_node): Update.
24070         (symtab_unregister_node): Update.
24071         (symtab_get_node): Reimplement as inline function.
24072         (symtab_add_to_same_comdat_group): Update.
24073         (symtab_dissolve_same_comdat_group_list): Update.
24074         (dump_symtab_base): Update.
24075         (verify_symtab_base): Update.
24076         (symtab_make_decl_local): Update.
24077         (fixup_same_cpp_alias_visibility): Update.
24078         (symtab_nonoverwritable_alias): Update.
24079         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
24080         * ipa.c (update_visibility_by_resolution_info): UPdate.
24081         * bb-reorder.c: Include cgraph.h
24082         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
24083         with comdat groups.
24084         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
24085         * cgraph.c (cgraph_get_create_node): Update.
24086         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
24087         and comdat_group_.
24088         (symtab_get_node): Make inline.
24089         (symtab_insert_node_to_hashtable): Remove.
24090         (symtab_can_be_discarded): Update.
24091         (decl_comdat_group): New function.
24092         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
24093         Update.
24094         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
24095         comdat group name.
24096         (read_comdat_group): New function.
24097         (input_node, input_varpool_node): Use it.
24098         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
24099         comdat groups.
24100         * mips.c (mips_start_unique_function): Likewise.
24101         (ix86_code_end): Likewise.
24102         (rs6000_code_end): Likweise.
24103         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
24104
24105 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24106
24107         * gengtype-state.c (fatal_reading_state): Bring offline.
24108         * optabs.c (widening_optab_handler): Bring offline.
24109         * optabs.h (widening_optab_handler): Likewise.
24110         * final.c (get_attr_length_1): Likewise.
24111
24112 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
24113
24114         * sched-int.h (sd_iterator_cond): Manually tail recurse.
24115
24116 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24117
24118         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
24119         (ppc440-compare): Include shift with dot.
24120         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
24121         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
24122         without dot.
24123         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
24124         without dot.
24125         (e6500_sfx2): Include it.
24126         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
24127         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
24128         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
24129         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
24130         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
24131         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
24132         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
24133         *lshiftrt_internal1le, *lshiftrt_internal1be,
24134         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
24135         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
24136         *rotldi3_internal10le, *rotldi3_internal10be,
24137         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
24138         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
24139         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
24140         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
24141         define_insns): Use type "shift" in the appropriate alternatives.
24142
24143 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24144
24145         * config/rs6000/rs6000.md (type): Add "logical".  Delete
24146         "fast_compare".
24147         (dot): Adjust comment.
24148         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
24149         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
24150         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
24151         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
24152         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
24153         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
24154         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
24155         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
24156
24157         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
24158         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
24159         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
24160         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
24161         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
24162         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
24163         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
24164         * config/rs6000/8540.md (ppc8540_su): Adjust.
24165         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
24166         cell-cmp-microcoded): Adjust.
24167         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
24168         * config/rs6000/e500mc.md (e500mc_su): Adjust.
24169         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
24170         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
24171         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
24172         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
24173         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
24174         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
24175         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
24176         Adjust.
24177         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
24178         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
24179         Adjust.  Adjust comment.
24180         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
24181         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
24182
24183 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24184
24185         * config/rs6000/rs6000.md (type): Add "add".
24186         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
24187         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
24188         define_insns): Use it.
24189         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
24190
24191         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
24192         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
24193         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
24194         * config/rs6000/601.md (ppc601-integer): Adjust.
24195         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
24196         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
24197         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
24198         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
24199         * config/rs6000/8540.md (ppc8540_su): Adjust.
24200         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
24201         cell-cmp-microcoded): Adjust.
24202         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
24203         * config/rs6000/e500mc.md (e500mc_su): Adjust.
24204         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
24205         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
24206         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
24207         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
24208         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
24209         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
24210         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
24211         Adjust.
24212         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
24213         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
24214         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
24215         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
24216
24217 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24218
24219         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
24220         "delayed_compare", "var_delayed_compare".
24221         (var_shift): New attribute.
24222         (cell_micro): Adjust.
24223         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
24224         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
24225         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
24226         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
24227         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
24228         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
24229         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
24230         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
24231         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
24232         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
24233         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
24234         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
24235         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
24236         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
24237         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
24238         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
24239         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
24240         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
24241         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
24242         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
24243         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
24244         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
24245         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
24246         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24247         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
24248
24249         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
24250         * config/rs6000/440.md (ppc440-integer): Adjust.
24251         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
24252         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
24253         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
24254         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
24255         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
24256         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
24257         * config/rs6000/8540.md (ppc8540_su): Adjust.
24258         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
24259         cell-cmp-microcoded): Adjust.
24260         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
24261         * config/rs6000/e500mc.md (e500mc_su): Adjust.
24262         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
24263         e500mc64_delayed): Adjust.
24264         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
24265         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
24266         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
24267         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
24268         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
24269         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
24270         power6-delayed-compare, power6-var-delayed-compare): Adjust.
24271         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
24272         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
24273         Adjust comment.
24274         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
24275         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
24276
24277 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24278
24279         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
24280         (bits): New mode_attr.
24281         (idiv_ldiv): Delete mode_attr.
24282         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
24283         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24284         rs6000_adjust_priority, is_nonpipeline_insn,
24285         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
24286
24287         * config/rs6000/40x.md (ppc403-idiv): Adjust.
24288         * config/rs6000/440.md (ppc440-idiv): Adjust.
24289         * config/rs6000/476.md (ppc476-idiv): Adjust.
24290         * config/rs6000/601.md (ppc601-idiv): Adjust.
24291         * config/rs6000/603.md (ppc603-idiv): Adjust.
24292         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
24293         ppc620-ldiv): Adjust.
24294         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
24295         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
24296         * config/rs6000/8540.md (ppc8540_divide): Adjust.
24297         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
24298         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
24299         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
24300         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
24301         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
24302         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
24303         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
24304         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
24305         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
24306         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
24307         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
24308         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
24309         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
24310         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
24311         * config/rs6000/titan.md (titan_fxu_div): Adjust.
24312
24313 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24314
24315         * config/rs6000/rs6000.md (type): Delete "insert_word",
24316         "insert_dword".  Add "insert".
24317         (size): Update comment.
24318         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24319         insn_must_be_first_in_group): Adjust.
24320         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
24321         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
24322         *insvsi_internal6, insvdi_internal): Adjust.
24323
24324         * config/rs6000/40x.md (ppc403-integer): Adjust.
24325         * config/rs6000/440.md (ppc440-integer): Adjust.
24326         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
24327         * config/rs6000/601.md (ppc601-integer): Adjust.
24328         * config/rs6000/603.md (ppc603-integer): Adjust.
24329         * config/rs6000/6xx.md (ppc604-integer): Adjust.
24330         * config/rs6000/7450.md (ppc7450-integer): Adjust.
24331         * config/rs6000/7xx.md (ppc750-integer): Adjust.
24332         * config/rs6000/8540.md (ppc8540_su): Adjust.
24333         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
24334         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
24335         * config/rs6000/e500mc.md (e500mc_su): Adjust.
24336         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
24337         * config/rs6000/e5500.md (e5500_sfx): Adjust.
24338         * config/rs6000/e6500.md (e6500_sfx): Adjust.
24339         * config/rs6000/mpc.md (mpccore-integer): Adjust.
24340         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
24341         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
24342         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
24343         * config/rs6000/power7.md (power7-integer): Adjust.
24344         * config/rs6000/power8.md (power8-1cyc): Adjust.
24345         * config/rs6000/rs64.md (rs64a-integer): Adjust.
24346         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
24347
24348 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24349
24350         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
24351         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
24352         (size): New attribute.
24353         (dot): New attribute.
24354         (cell_micro): Adjust.
24355         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
24356         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
24357         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
24358         umuldi3_highpart): Adjust.
24359         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
24360         rs6000_adjust_priority, is_nonpipeline_insn,
24361         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
24362
24363         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
24364         ppc405-imul3): Adjust.
24365         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
24366         * config/rs6000/476.md (ppc476-imul): Adjust.
24367         * config/rs6000/601.md (ppc601-imul): Adjust.
24368         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
24369         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
24370         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
24371         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
24372         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
24373         Adjust.
24374         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
24375         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
24376         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
24377         cell-imul): Adjust.
24378         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
24379         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
24380         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
24381         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
24382         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
24383         * config/rs6000/mpc.md (mpccore-imul): Adjust.
24384         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
24385         power4-lmul, power4-imul, power4-imul3): Adjust.
24386         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
24387         power5-lmul, power5-imul, power5-imul3): Adjust.
24388         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
24389         power6-lmul, power6-imul, power6-imul3): Adjust.
24390         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
24391         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
24392
24393         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
24394         rs64a-lmul): Adjust.
24395         * config/rs6000/titan.md (titan_imul): Adjust.
24396
24397 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24398
24399         * config/rs6000/rs6000.md (type): Add new value "halfmul".
24400         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
24401         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
24402         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
24403         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
24404         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
24405         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
24406         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
24407         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
24408         * config/rs6000/titan.md: Delete nonsensical comment.
24409         (titan_imul): Add type imul3.
24410         (titan_mulhw): Remove type imul3; add type halfmul.
24411
24412 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
24413
24414         * config/rs6000/rs6000.md (type): Reorder, reformat.
24415
24416 2014-05-23  Martin Jambor  <mjambor@suse.cz>
24417
24418         PR tree-optimization/53787
24419         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
24420         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
24421         analysis_done, update all uses.
24422         * ipa-prop.c: Include domwalk.h
24423         (param_analysis_info): Removed.
24424         (param_aa_status): New type.
24425         (ipa_bb_info): Likewise.
24426         (func_body_info): Likewise.
24427         (ipa_get_bb_info): New function.
24428         (aa_overwalked): Likewise.
24429         (find_dominating_aa_status): Likewise.
24430         (parm_bb_aa_status_for_bb): Likewise.
24431         (parm_preserved_before_stmt_p): Changed to use new param AA info.
24432         (load_from_unmodified_param): Accept func_body_info as a parameter
24433         instead of parms_ainfo.
24434         (parm_ref_data_preserved_p): Changed to use new param AA info.
24435         (parm_ref_data_pass_through_p): Likewise.
24436         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
24437         (compute_complex_assign_jump_func): Changed to use new param AA info.
24438         (compute_complex_ancestor_jump_func): Likewise.
24439         (ipa_compute_jump_functions_for_edge): Likewise.
24440         (ipa_compute_jump_functions): Removed.
24441         (ipa_compute_jump_functions_for_bb): New function.
24442         (ipa_analyze_indirect_call_uses): Likewise, moved variable
24443         declarations down.
24444         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
24445         and info, moved variable declarations down.
24446         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
24447         node and info.
24448         (ipa_analyze_stmt_uses): Likewise.
24449         (ipa_analyze_params_uses): Removed.
24450         (ipa_analyze_params_uses_in_bb): New function.
24451         (ipa_analyze_controlled_uses): Likewise.
24452         (free_ipa_bb_info): Likewise.
24453         (analysis_dom_walker): New class.
24454         (ipa_analyze_node): Handle node-specific forbidden analysis,
24455         initialize and free func_body_info, use dominator walker.
24456         (ipcp_modif_dom_walker): New class.
24457         (ipcp_transform_function): Create and free func_body_info, use
24458         ipcp_modif_dom_walker, moved a lot of functionality there.
24459
24460 2014-05-23  Marek Polacek  <polacek@redhat.com>
24461             Jakub Jelinek  <jakub@redhat.com>
24462
24463         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
24464         * gcc.c (sanitize_spec_function): Likewise.
24465         * convert.c (convert_to_integer): Include "ubsan.h".  Add
24466         floating-point to integer instrumentation.
24467         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
24468         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
24469         SANITIZE_NONDEFAULT.
24470         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
24471         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
24472         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
24473         * ubsan.c: Include "realmpfr.h" and "dfp.h".
24474         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
24475         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
24476         float/double/long double.
24477         (ubsan_instrument_float_cast): New function.
24478         * ubsan.h (ubsan_instrument_float_cast): Declare.
24479
24480 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
24481
24482         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
24483         predicate.
24484         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
24485         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
24486         Adjust for tailcalling through registers.
24487         * config/aarch64/aarch64.h (enum reg_class): New caller save
24488         register class.
24489         (REG_CLASS_NAMES): Likewise.
24490         (REG_CLASS_CONTENTS): Likewise.
24491         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
24492         Allow tailcalling without decls.
24493
24494 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
24495
24496         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
24497         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
24498
24499         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
24500         gsi, and variables v_* to v*.
24501
24502 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
24503
24504         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
24505
24506 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
24507
24508         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
24509         * omp-low.c: Update accordingly.
24510
24511         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
24512         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
24513         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
24514         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
24515         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
24516         GF_OMP_TARGET_KIND_UPDATE.
24517
24518         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
24519         Explicitly enumerate the expected region types.
24520
24521 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
24522
24523         PR other/56955
24524         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
24525         documentation; the old documentation didn't clearly state the
24526         constraints on the contents of the pointed-to storage.
24527
24528 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24529
24530         Fix bootstrap error on ia64
24531         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
24532         Return default value.
24533
24534 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24535
24536         PR tree-optimization/54733
24537         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
24538         (CMPNOP): Define.
24539         (find_bswap_or_nop_load): New.
24540         (find_bswap_1): Renamed to ...
24541         (find_bswap_or_nop_1): This. Also add support for memory source.
24542         (find_bswap): Renamed to ...
24543         (find_bswap_or_nop): This. Also add support for memory source and
24544         detection of bitwise operations equivalent to load in target
24545         endianness.
24546         (execute_optimize_bswap): Likewise. Also move its leading comment back
24547         in place and split statement transformation into ...
24548         (bswap_replace): This.
24549
24550 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
24551
24552         PR rtl-optimization/61215
24553         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
24554         simplify_gen_subreg until final substitution.
24555
24556 2014-05-23  Alan Modra  <amodra@gmail.com>
24557
24558         PR target/61231
24559         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
24560         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
24561         Use "Y" constraint rather than "m".
24562
24563 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
24564
24565         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
24566         define.
24567         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
24568         New function declaration.
24569         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
24570         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
24571         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
24572         (aarch64_init_builtins) : Initialize builtins
24573         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
24574         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
24575         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
24576         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
24577         and __builtins_aarch64_set_fpsr.
24578         (aarch64_atomic_assign_expand_fenv): New function.
24579         * config/aarch64/aarch64.md (set_fpcr): New pattern.
24580         (get_fpcr) : Likewise.
24581         (set_fpsr) : Likewise.
24582         (get_fpsr) : Likewise.
24583         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
24584         and UNSPECV_SET_FPSR.
24585         * doc/extend.texi (AARCH64 Built-in Functions) : Document
24586         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
24587         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
24588
24589 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
24590
24591         PR rtl-optimization/60969
24592         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
24593         constraints.  Set up mem cost for NO_REGS case.
24594
24595 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
24596
24597         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
24598
24599 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
24600
24601         * config/darwin.c: Include "lto-section-names.h".
24602         (LTO_SEGMENT_NAME): Don't define.
24603         * config/i386/winnt.c: Include "lto-section-names.h".
24604         * lto-streamer.c: Include "lto-section-names.h".
24605         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
24606         * lto-wrapper.c: Include "lto-section-names.h".
24607         (LTO_SECTION_NAME_PREFIX): Don't define.
24608         * lto-section-names.h: New file.
24609         * cgraphunit.c: Include "lto-section-names.h".
24610
24611 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
24612
24613         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
24614
24615 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
24616
24617         PR target/61208
24618         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
24619
24620 2014-05-22  Nick Clifton  <nickc@redhat.com>
24621
24622         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
24623
24624 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
24625
24626         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
24627         -> (T)A transformation to integer types.
24628
24629 2014-05-22  Teresa Johnson  <tejohnson@google.com>
24630
24631         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
24632         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
24633         (gcov_rewrite): Use gcov_nonruntime_assert.
24634         (gcov_open): Ditto.
24635         (gcov_write_words): Ditto.
24636         (gcov_write_length): Ditto.
24637         (gcov_read_words): Use gcov_nonruntime_assert, and remove
24638         gcc_assert from IN_LIBGCOV code.
24639         (gcov_read_summary): Use gcov_error to flag profile corruption.
24640         (gcov_sync): Use gcov_nonruntime_assert.
24641         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
24642         (gcov_histo_index): Use gcov_nonruntime_assert.
24643         (static void gcov_histogram_merge): Ditto.
24644         (compute_working_sets): Ditto.
24645         * gcov-io.h (gcov_nonruntime_assert): Define.
24646         (gcov_error): Define for !IN_LIBGCOV
24647
24648 2014-05-22  Richard Biener  <rguenther@suse.de>
24649
24650         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
24651         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
24652         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
24653         and deallocation site.
24654         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
24655         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
24656         passing through the incoming points-to set.
24657         (handle_lhs_call): Use flags argument instead of recomputing it.
24658         (find_func_aliases_for_call): Call handle_lhs_call with proper
24659         call return flags.
24660
24661 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
24662
24663         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
24664         all padding bits in REAL_VALUE_TYPE are cleared.
24665
24666 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24667
24668         Cleanup and improve multipass_dfa_lookahead_guard
24669         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
24670         (core2i7_first_cycle_multipass_begin,)
24671         (core2i7_first_cycle_multipass_issue,)
24672         (core2i7_first_cycle_multipass_backtrack): Update signature.
24673         * config/ia64/ia64.c
24674         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
24675         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
24676         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
24677         hook definition.
24678         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
24679         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
24680         values.
24681         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
24682         return values.
24683         * doc/tm.texi: Regenerate.
24684         * doc/tm.texi.in
24685         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
24686         * haifa-sched.c (ready_try): Make signed to allow negative values.
24687         (rebug_ready_list_1): Update.
24688         (choose_ready): Simplify.
24689         (sched_extend_ready_list): Update.
24690
24691 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24692
24693         Remove IA64 speculation tweaking flags
24694         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
24695         speculation tuning flags.
24696         (msched-prefer-non-data-spec-insns,)
24697         (msched-prefer-non-control-spec-insns): Obsolete options.
24698         * haifa-sched.c (choose_ready): Remove handling of
24699         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
24700         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
24701         and PREFER_NON_DATA_SPEC.
24702         * sel-sched.c (process_spec_exprs): Remove handling of
24703         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
24704
24705 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24706
24707         Improve scheduling debug output
24708         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
24709         (advance_one_cycle): Update.
24710         (schedule_insn, queue_to_ready): Add debug printouts.
24711         (debug_ready_list_1): New static function.
24712         (debug_ready_list): Update.
24713         (max_issue): Add debug printouts.
24714         (dump_insn_stream): New static function.
24715         (schedule_block): Use it.  Also better indent printouts.
24716
24717 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
24718
24719         Fix sched_insn debug counter
24720         * haifa-sched.c (schedule_insn): Update.
24721         (struct haifa_saved_data): Add nonscheduled_insns_begin.
24722         (save_backtrack_point, restore_backtrack_point): Update.
24723         (first_nonscheduled_insn): New static function.
24724         (queue_to_ready, choose_ready): Use it.
24725         (schedule_block): Init nonscheduled_insns_begin.
24726         (sched_emit_insn): Update.
24727
24728
24729 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
24730
24731         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
24732         to GENERAL_REGS.
24733         (aarch64_secondary_reload) : LikeWise.
24734         (aarch64_class_max_nregs) : Remove CORE_REGS.
24735         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
24736         (REG_CLASS_NAMES) : Likewise.
24737         (REG_CLASS_CONTENTS) : LikeWise.
24738         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
24739
24740 2014-05-21  Guozhi Wei  <carrot@google.com>
24741
24742         PR target/61202
24743         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
24744         constraint.
24745         (vqdmulhq_n_s16): Likewise.
24746
24747 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
24748
24749         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
24750
24751 2014-05-21  Marek Polacek  <polacek@redhat.com>
24752
24753         PR sanitizer/61272
24754         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
24755
24756 2014-05-21  Martin Jambor  <mjambor@suse.cz>
24757
24758         * doc/invoke.texi (Optimize Options): Document parameters
24759         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
24760         ipa-cp-array-index-hint-bonus.
24761
24762 2014-05-21  Mark Wielaard  <mjw@redhat.com>
24763
24764         PR debug/16063
24765         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
24766         version >= 3 or not strict DWARF.
24767         * langhooks.h (struct lang_hooks_for_types): Add
24768         enum_underlying_base_type.
24769         * langhooks.c (lhd_enum_underlying_base_type): New function.
24770         * gcc/langhooks.h (struct lang_hooks_for_types): Add
24771         enum_underlying_base_type.
24772         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
24773         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
24774         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
24775
24776 2014-05-21  Richard Biener  <rguenther@suse.de>
24777
24778         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
24779
24780 2014-05-21  John Marino  <gnugcc@marino.st>
24781
24782         * config.gcc (*-*-dragonfly*): New target.
24783         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
24784         * configure: Regenerate.
24785         * config/dragonfly-stdint.h: New.
24786         * config/dragonfly.h: New.
24787         * config/dragonfly.opt: New.
24788         * config/i386/dragonfly.h: New.
24789         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
24790
24791 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
24792
24793         * tree.def (VOID_CST): New.
24794         * tree-core.h (TI_VOID): New.
24795         * tree.h (void_node): New.
24796         * tree.c (tree_node_structure_for_code, tree_code_size)
24797         (iterative_hash_expr): Handle VOID_CST.
24798         (build_common_tree_nodes): Initialize void_node.
24799
24800 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
24801
24802         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
24803         functions.
24804         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
24805
24806         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
24807         more places.
24808
24809         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
24810         flag_reorder_blocks_and_partition.
24811         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
24812
24813 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
24814
24815         PR target/54236
24816         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
24817         constraints.
24818         (*addc_r_t): Add new insn_and_split.
24819
24820 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
24821
24822         PR middle-end/61252
24823         * omp-low.c (handle_simd_reference): New function.
24824         (lower_rec_input_clauses): Use it.  Defer adding reference
24825         initialization even for reduction without placeholder if in simd,
24826         handle it properly later on.
24827
24828 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24829
24830         PR tree-optimization/60899
24831         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
24832         assume all static symbols will have definition wile parsing and
24833         check the do have definition later in compilation; check that
24834         variable referring symbol will be output before concluding that
24835         reference is safe; be conservative for referring local statics;
24836         be more precise about when comdat is output in other partition.
24837
24838 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24839
24840         PR bootstrap/60984
24841         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
24842         parameter.
24843         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
24844         (ipa_inline): Loop inline_to_all_callers until no more aliases
24845         are removed.
24846
24847 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24848
24849         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
24850         set writeonly flag only for vars actually written to.
24851
24852 2014-05-20  Dehao Chen  <dehao@google.com>
24853
24854         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
24855         and callee count to get clone count.
24856         * tree-inline.c (expand_call_inline): Use callee count instead of bb
24857         count in copy_body.
24858
24859 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
24860
24861         PR rtl-optimization/61243
24862         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
24863
24864 2014-05-20  Xinliang David Li  <davidxl@google.com>
24865
24866         * cgraphunit.c (walk_polymorphic_call_targets): Add
24867         dbgcnt and fopt-info support.
24868         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
24869         * ipa-devirt.c (ipa_devirt): Ditto.
24870         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
24871         * ipa.c (walk_polymorphic_call_targets): Ditto.
24872         * gimple-fold.c (fold_gimple_assign): Ditto.
24873         (gimple_fold_call): Ditto.
24874         * dbgcnt.def: New counter.
24875
24876 2014-05-20  DJ Delorie  <dj@redhat.com>
24877
24878         * config/msp430/msp430.md (split): Don't allow subregs when
24879         splitting SImode adds.
24880         (andneghi): Fix subtraction logic.
24881         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
24882
24883 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
24884
24885         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
24886         symbols.
24887         * except.c (switch_to_exception_section, resolve_unique_section,
24888         get_named_text_section, default_function_rodata_section,
24889         align_variable, get_block_for_decl, default_section_type_flags):
24890         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
24891         * symtab.c (symtab_add_to_same_comdat_group,
24892         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
24893         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
24894         Likewise.
24895         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
24896         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
24897         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
24898         (c6x_function_in_section_p): Likewise.
24899         * config/darwin.c (machopic_select_section): Likewise.
24900         * config/arm/arm.c (arm_function_in_section_p): Likewise.
24901         * config/mips/mips.c (mips_function_rodata_section): Likewise.
24902         * config/mep/mep.c (mep_select_section): LIkewise.
24903         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
24904
24905 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
24906
24907         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
24908         EH region of calls to pure functions that can throw an exception.
24909         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
24910         (copy_reference_ops_from_call): Also copy the EH region of the call if
24911         it can throw an exception.
24912
24913 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24914
24915         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
24916         nested VEC_SELECTs that are inverses of each other.
24917
24918 2014-05-20  Richard Biener  <rguenther@suse.de>
24919
24920         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
24921         (extract_and_process_scc_for_name): not here.
24922         (cond_dom_walker::before_dom_children): Only process
24923         stmts that end the BB in interesting ways.
24924         (run_scc_vn): Mark param uses as visited.
24925
24926 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24927
24928         * config/arm/arm.md (arith_shiftsi): Do not predicate for
24929         arm_restrict_it.
24930
24931 2014-05-20  Nick Clifton  <nickc@redhat.com>
24932
24933         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
24934         (msp430_gimplify_va_arg_expr): New function.
24935         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
24936
24937         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
24938         operand 0 in order to prevent confusion about the number of
24939         registers involved.
24940
24941 2014-05-20  Richard Biener  <rguenther@suse.de>
24942
24943         PR tree-optimization/61221
24944         * tree-ssa-pre.c (el_to_update): Remove.
24945         (eliminate_dom_walker::before_dom_children): Handle released
24946         VDEFs by value-numbering them to the associated VUSE.  Update
24947         stmt immediately for substituted call address.
24948         (eliminate): Remove delayed stmt updating code.
24949         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
24950         possibly late re-numbered vuses.
24951         (vn_reference_lookup_2): Adjust.
24952         (vn_reference_lookup_pieces): Likewise.
24953         (vn_reference_lookup): Likewise.
24954
24955 2014-05-20  Richard Biener  <rguenther@suse.de>
24956
24957         * config.gcc: Remove need_64bit_hwint.
24958         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
24959         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
24960         it to be true.
24961         * config.in: Regenerate.
24962         * configure: Likewise.
24963
24964 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
24965
24966         * doc/extend.texi: Create Label Attributes section,
24967         move all label attributes into it and reference it.
24968
24969 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
24970
24971         * arm.c (thumb1_reorg): When scanning backwards skip anything
24972         that's not a proper insn.
24973
24974 2014-05-19  Richard Biener  <rguenther@suse.de>
24975
24976         PR tree-optimization/61221
24977         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
24978         Do nothing for unreachable blocks.
24979         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
24980         Improve unreachability detection.
24981
24982 2014-05-19  Richard Biener  <rguenther@suse.de>
24983
24984         PR tree-optimization/61209
24985         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
24986
24987 2014-05-19  Nick Clifton  <nickc@redhat.com>
24988
24989         * except.c (init_eh): Fix computation of builtin setjmp buffer
24990         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
24991
24992 2014-05-19  Richard Biener  <rguenther@suse.de>
24993
24994         PR tree-optimization/61184
24995         * tree-vrp.c (is_negative_overflow_infinity): Use
24996         TREE_OVERFLOW_P and do that check first.
24997         (is_positive_overflow_infinity): Likewise.
24998         (is_overflow_infinity): Likewise.
24999         (vrp_operand_equal_p): Properly treat operands with
25000         differing overflow as not equal.
25001
25002 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
25003
25004         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
25005         shift simplification where it was intended.
25006
25007 2014-05-19  Christian Bruel  <christian.bruel@st.com>
25008
25009         PR target/61195
25010         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
25011
25012 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
25013
25014         PR target/61084
25015         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
25016         than wide_int.
25017
25018 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
25019
25020         * reg-notes.def (CROSSING_JUMP): Likewise.
25021         * rtl.h (rtx_def): Update comment for jump flag.
25022         (CROSSING_JUMP_P): Define.
25023         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
25024         of a REG_CROSSING_JUMP note.
25025         * cfghooks.c (tidy_fallthru_edges): Likewise.
25026         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
25027         * emit-rtl.c (try_split): Likewise.
25028         * haifa-sched.c (sched_create_recovery_edges): Likewise.
25029         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
25030         * jump.c (redirect_jump_2): Likewise.
25031         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
25032         (relax_delay_slots): Likewise.
25033         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
25034         (bbit_di): Likewise.
25035         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
25036         * config/sh/sh.md (jump_compact): Likewise.
25037         * bb-reorder.c (rotate_loop): Likewise.
25038         (pass_duplicate_computed_gotos::execute): Likewise.
25039         (add_reg_crossing_jump_notes): Rename to...
25040         (update_crossing_jump_flags): ...this.
25041         (pass_partition_blocks::execute): Update accordingly.
25042
25043 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
25044
25045         * tree.h: Remove extraneous template <>.
25046
25047 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
25048
25049         * ipa.c (symtab_remove_unreachable_nodes): Remove
25050         symbol from comdat group if its body was eliminated.
25051         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
25052         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
25053         (symtab_unregister_node): ... this one.
25054         (verify_symtab_base): More strict checking of comdats.
25055         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
25056
25057 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
25058
25059         * tree-pass.h (make_pass_ipa_comdats): New pass.
25060         * timevar.def (TV_IPA_COMDATS): New timevar.
25061         * passes.def (pass_ipa_comdats): Add.
25062         * Makefile.in (OBJS): Add ipa-comdats.o
25063         * ipa-comdats.c: New file.
25064
25065 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
25066
25067         * ipa.c (update_visibility_by_resolution_info): New function.
25068         (function_and_variable_visibility): Use it.
25069
25070 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
25071
25072         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
25073         New functions.
25074         (FOR_EACH_DEFINED_SYMBOL): New macro.
25075         (varpool_first_static_initializer, varpool_next_static_initializer,
25076         varpool_first_defined_variable, varpool_next_defined_variable):
25077         Fix comments.
25078         (symtab_in_same_comdat_p): Correctly deal with inline functions.
25079
25080 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
25081
25082         * ggc-page.c (ggc_handle_finalizers): Add comment.
25083
25084 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
25085
25086         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
25087         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
25088         (ggc_internal_cleared_alloc): Likewise.
25089         * ggc-page.c (finalizer): New class.
25090         (vec_finalizer): Likewise.
25091         (globals::finalizers): New member.
25092         (globals::vec_finalizers): Likewise.
25093         (ggc_internal_alloc): Record the finalizer if any for the block being
25094         allocated.
25095         (ggc_handle_finalizers): New function.
25096         (ggc_collect): Call ggc_handle_finalizers.
25097         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
25098         finalizer.
25099         (ggc_internal_cleared_alloc): Likewise.
25100         (finalize): New function.
25101         (need_finalization_p): Likewise.
25102         (ggc_alloc): Install the type's destructor as the finalizer if it
25103         might do something.
25104         (ggc_cleared_alloc): Likewise.
25105         (ggc_vec_alloc): Likewise.
25106         (ggc_cleared_vec_alloc): Likewise.
25107
25108 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
25109
25110         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
25111
25112 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
25113
25114         * alias.c (record_alias_subset): Adjust.
25115         * bitmap.c (bitmap_element_allocate): Likewise.
25116         (bitmap_gc_alloc_stat): Likewise.
25117         * cfg.c (init_flow): Likewise.
25118         (alloc_block): Likewise.
25119         (unchecked_make_edge): Likewise.
25120         * cfgloop.c (alloc_loop): Likewise.
25121         (flow_loops_find): Likewise.
25122         (rescan_loop_exit): Likewise.
25123         * cfgrtl.c (init_rtl_bb_info): Likewise.
25124         * cgraph.c (insert_new_cgraph_node_version): Likewise.
25125         (cgraph_allocate_node): Likewise.
25126         (cgraph_create_edge_1): Likewise.
25127         (cgraph_allocate_init_indirect_info): Likewise.
25128         * cgraphclones.c (cgraph_clone_edge): Likewise.
25129         * cgraphunit.c (add_asm_node): Likewise.
25130         (init_lowered_empty_function): Likewise.
25131         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
25132         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
25133         (alpha_use_linkage): Likewise.
25134         * config/arc/arc.c (arc_init_machine_status): Likewise.
25135         * config/arm/arm.c (arm_init_machine_status): Likewise.
25136         * config/avr/avr.c (avr_init_machine_status): Likewise.
25137         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
25138         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
25139         * config/cris/cris.c (cris_init_machine_status): Likewise.
25140         * config/darwin.c (machopic_indirection_name): Likewise.
25141         (darwin_build_constant_cfstring): Likewise.
25142         (darwin_enter_string_into_cfstring_table): Likewise.
25143         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
25144         * config/frv/frv.c (frv_init_machine_status): Likewise.
25145         * config/i386/i386.c (get_dllimport_decl): Likewise.
25146         (ix86_init_machine_status): Likewise.
25147         (assign_386_stack_local): Likewise.
25148         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
25149         (i386_pe_maybe_record_exported_symbol): Likewise.
25150         (i386_pe_record_stub): Likewise.
25151         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
25152         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
25153         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
25154         (m32c_note_pragma_address): Likewise.
25155         * config/mep/mep.c (mep_init_machine_status): Likewise.
25156         (mep_note_pragma_flag): Likewise.
25157         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
25158         (mips16_local_alias): Likewise.
25159         (mips_init_machine_status): Likewise.
25160         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
25161         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
25162         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
25163         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
25164         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
25165         * config/pa/pa.c (pa_init_machine_status): Likewise.
25166         (pa_get_deferred_plabel): Likewise.
25167         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
25168         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
25169         (rs6000_init_machine_status): Likewise.
25170         (output_toc): Likewise.
25171         * config/s390/s390.c (s390_init_machine_status): Likewise.
25172         * config/score/score.c (score_output_external): Likewise.
25173         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
25174         * config/spu/spu.c (spu_init_machine_status): Likewise.
25175         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
25176         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
25177         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
25178         * coverage.c (coverage_end_function): Likewise.
25179         * dbxout.c (dbxout_init): Likewise.
25180         * doc/gty.texi: Don't mention variable_size attribute.
25181         * dwarf2cfi.c (new_cfi): Adjust.
25182         (new_cfi_row): Likewise.
25183         (copy_cfi_row): Likewise.
25184         (create_cie_data): Likewise.
25185         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
25186         (new_loc_descr): Likewise.
25187         (find_AT_string_in_table): Likewise.
25188         (add_addr_table_entry): Likewise.
25189         (new_die): Likewise.
25190         (add_var_loc_to_decl): Likewise.
25191         (clone_die): Likewise.
25192         (clone_as_declaration): Likewise.
25193         (break_out_comdat_types): Likewise.
25194         (new_loc_list): Likewise.
25195         (add_loc_descr_to_each): Likewise.
25196         (add_location_or_const_value_attribute): Likewise.
25197         (add_linkage_name): Likewise.
25198         (lookup_filename): Likewise.
25199         (dwarf2out_var_location): Likewise.
25200         (new_line_info_table): Likewise.
25201         (dwarf2out_init): Likewise.
25202         (mem_loc_descriptor): Likewise.
25203         (loc_descriptor): Likewise.
25204         (add_const_value_attribute): Likewise.
25205         (tree_add_const_value_attribute): Likewise.
25206         (comp_dir_string): Likewise.
25207         (dwarf2out_vms_debug_main_pointer): Likewise.
25208         (string_cst_pool_decl): Likewise.
25209         * emit-rtl.c (set_mem_attrs): Likewise.
25210         (get_reg_attrs): Likewise.
25211         (start_sequence): Likewise.
25212         (init_emit): Likewise.
25213         (init_emit_regs): Likewise.
25214         * except.c (init_eh_for_function): Likewise.
25215         (gen_eh_region): Likewise.
25216         (gen_eh_region_catch): Likewise.
25217         (gen_eh_landing_pad): Likewise.
25218         (add_call_site): Likewise.
25219         * function.c (add_frame_space): Likewise.
25220         (insert_temp_slot_address): Likewise.
25221         (assign_stack_temp_for_type): Likewise.
25222         (get_hard_reg_initial_val): Likewise.
25223         (allocate_struct_function): Likewise.
25224         (prepare_function_start): Likewise.
25225         (types_used_by_var_decl_insert): Likewise.
25226         * gengtype.c (variable_size_p): Remove function.
25227         (enum alloc_quantity): Remove enum.
25228         (write_typed_alloc_def): Remove function.
25229         (write_typed_struct_alloc_def): Likewise.
25230         (write_typed_typedef_alloc_def): Likewise.
25231         (write_typed_alloc_defns): Likewise.
25232         (main): Adjust.
25233         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
25234         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
25235         * ggc.h (ggc_alloc): new function.
25236         (ggc_cleared_alloc): Likewise.
25237         (ggc_vec_alloc): Template on type of vector element, and remove
25238         element size argument.
25239         (ggc_cleared_vec_alloc): Likewise.
25240         * gimple.c (gimple_build_omp_for): Adjust.
25241         (gimple_copy): Likewise.
25242         * ipa-cp.c (get_replacement_map): Likewise.
25243         (find_aggregate_values_for_callers_subset): Likewise.
25244         (known_aggs_to_agg_replacement_list): Likewise.
25245         * ipa-devirt.c (get_odr_type): Likewise.
25246         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
25247         (read_agg_replacement_chain): Likewise.
25248         * loop-iv.c (get_simple_loop_desc): Likewise.
25249         * lto-cgraph.c (input_node_opt_summary): Likewise.
25250         * lto-section-in.c (lto_new_in_decl_state): Likewise.
25251         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
25252         (input_eh_region): Likewise.
25253         (input_eh_lp): Likewise.
25254         (input_cfg): Likewise.
25255         * optabs.c (set_optab_libfunc): Likewise.
25256         (init_tree_optimization_optabs): Likewise.
25257         (set_conv_libfunc): Likewise.
25258         * passes.c (do_per_function_toporder): Likewise.
25259         * rtl.h: Don't use variable_size gty attribute.
25260         * sese.c (if_region_set_false_region): Adjust.
25261         * stringpool.c (gt_pch_save_stringpool): Likewise.
25262         * target-globals.c (save_target_globals): Likewise.
25263         * toplev.c (general_init): Likewise.
25264         * trans-mem.c (record_tm_replacement): Likewise.
25265         (split_bb_make_tm_edge): Likewise.
25266         * tree-cfg.c (move_sese_region_to_fn): Likewise.
25267         * tree-data-ref.h (lambda_vector_new): Likewise.
25268         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
25269         * tree-iterator.c (tsi_link_before): Likewise.
25270         (tsi_link_after): Likewise.
25271         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
25272         * tree-ssa-loop-niter.c (record_estimate): Likewise.
25273         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
25274         * tree-ssa-operands.h: Don't use variable_size gty attribute.
25275         * tree-ssa.c (init_tree_ssa): Adjust.
25276         * tree-ssanames.c (set_range_info): Likewise.
25277         (get_ptr_info): Likewise.
25278         (duplicate_ssa_name_ptr_info): Likewise.
25279         (duplicate_ssa_name_range_info): Likewise.
25280         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
25281         (unpack_ts_fixed_cst_value_fields): Likewise.
25282         * tree.c (build_fixed): Likewise.
25283         (build_real): Likewise.
25284         (build_string): Likewise.
25285         (decl_priority_info): Likewise.
25286         (decl_debug_expr_insert): Likewise.
25287         (decl_value_expr_insert): Likewise.
25288         (decl_debug_args_insert): Likewise.
25289         (type_hash_add): Likewise.
25290         (build_omp_clause): Likewise.
25291         * ubsan.c (decl_for_type_insert): Likewise.
25292         * varasm.c (get_unnamed_section): Likewise.
25293         (get_noswitch_section): Likewise.
25294         (get_section): Likewise.
25295         (get_block_for_section): Likewise.
25296         (create_block_symbol): Likewise.
25297         (build_constant_desc): Likewise.
25298         (create_constant_pool): Likewise.
25299         (force_const_mem): Likewise.
25300         (record_tm_clone_pair): Likewise.
25301         * varpool.c (varpool_create_empty_node): Likewise.
25302
25303 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
25304
25305         * dwarf2out.c (tree_add_const_value_attribute): Call
25306         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
25307         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
25308         instead of ggc_internal_<x>alloc_stat.
25309         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
25310         (ggc_realloc): Likewise.
25311         * ggc-none.c (ggc_internal_alloc): Likewise.
25312         (ggc_internal_cleared_alloc): Likewise.
25313         * ggc-page.c: Likewise.
25314         * ggc.h (ggc_internal_alloc_stat): Likewise.
25315         (ggc_internal_alloc): Remove macro.
25316         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
25317         (ggc_internal_cleared_alloc): Remove macro.
25318         (GGC_RESIZEVEC): Adjust.
25319         (ggc_resizevar): Remove macro.
25320         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
25321         (ggc_internal_cleared_vec_alloc_stat): Likewise.
25322         (ggc_internal_vec_cleared_alloc): Remove macro.
25323         (ggc_alloc_atomic_stat): Drop _stat suffix.
25324         (ggc_alloc_atomic): Remove macro.
25325         (ggc_alloc_cleared_atomic): Remove macro.
25326         (ggc_alloc_string_stat): Drop _stat suffix.
25327         (ggc_alloc_string): Remove macro.
25328         (ggc_alloc_rtx_def_stat): Adjust.
25329         (ggc_alloc_tree_node_stat): Likewise.
25330         (ggc_alloc_cleared_tree_node_stat): Likewise.
25331         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
25332         (ggc_alloc_cleared_simd_clone_stat): Likewise.
25333         * gimple.c (gimple_build_omp_for): Likewise.
25334         (gimple_copy): Likewise.
25335         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
25336         * toplev.c (realloc_for_line_map): Adjust.
25337         * tree-data-ref.h (lambda_vector_new): Likewise.
25338         * tree-phinodes.c (allocate_phi_node): Likewise.
25339         * tree.c (grow_tree_vec_stat): Likewise.
25340         * vec.h (va_gc::reserve): Adjust.
25341
25342 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
25343
25344         * config/microblaze/microblaze.c (break_handler): New Declaration.
25345         (microblaze_break_function_p,microblaze_is_break_handler): New.
25346         (compute_frame_size): Use microblaze_break_function_p.
25347         Add the test of break_handler.
25348         (microblaze_function_prologue) : Add the test of variable
25349         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
25350         (microblaze_function_epilogue) : Add the test of break_handler.
25351         (microblaze_globalize_label) : Add the test of break_handler.
25352         Check the name by BREAK_HANDLER_NAME.
25353
25354         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
25355
25356         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
25357         microblaze_is_break_handler test.
25358         (call_internal1,call_value_intern): Use microblaze_break_function_p.
25359         Use SYMBOL_REF_DECL.
25360
25361         * config/microblaze/microblaze-protos.h
25362         (microblaze_break_function_p,microblaze_is_break_handler):
25363         New Declaration.
25364
25365         * doc/extend.texi (MicroBlaze break_handler Functions): Document
25366         new MicroBlaze break_handler functions.
25367
25368 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
25369
25370         * doc/extend.texi (Size of an asm): Move node text according
25371         to its @menu entry position.
25372
25373 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
25374
25375         PR tree-optimization/61140
25376         PR tree-optimization/61150
25377         PR tree-optimization/61197
25378         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
25379
25380 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
25381
25382         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
25383
25384 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
25385
25386         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
25387         __SIZEOF_INT128__ is defined.
25388
25389 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
25390
25391         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
25392         (rs6000_delegitimize_address): Use it.
25393
25394 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
25395
25396         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
25397         inplace argument.  Store the new address in the original MEM when true.
25398         * emit-rtl.c (change_address_1): Likewise.
25399         (adjust_address_1, adjust_automodify_address_1, offset_address):
25400         Update accordingly.
25401         * rtl.h (plus_constant): Add an inplace argument.
25402         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
25403         when true.  Avoid generating (plus X (const_int 0)).
25404         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
25405         in-place.  Pass true to plus_constant.
25406         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
25407
25408 2014-05-16  Dehao Chen  <dehao@google.com>
25409
25410         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
25411
25412 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
25413
25414         PR target/54089
25415         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
25416         patterns.
25417         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
25418
25419 2014-05-16  Dehao Chen  <dehao@google.com>
25420
25421         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
25422         optimize_function_for_size_p.
25423         * regs.h (REG_FREQ_FROM_BB): Likewise.
25424
25425 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
25426
25427         PR target/51244
25428         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
25429         negt_reg_operand cases.
25430         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
25431         predicate.
25432         * config/sh/predicates.md (cbranch_treg_value): Simplify.
25433
25434 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
25435
25436         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
25437         target variants.
25438
25439 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
25440
25441         Revert:
25442         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
25443
25444         * tree-cfg.c (dump_function_to_file): Dump the return type of
25445         functions, in a line to itself before the function body, mimicking
25446         the layout of a C function.
25447
25448 2014-05-16  Dehao Chen  <dehao@google.com>
25449
25450         * cfghooks.c (make_forwarder_block): Use direct computation to
25451         get fall-through edge's count and frequency.
25452
25453 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
25454
25455         * config/arc/arc.c (arc_init): Fix typo in error message.
25456         * config/i386/i386.c (ix86_expand_builtin): Likewise.
25457         (split_stack_prologue_scratch_regno): Likewise.
25458         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
25459         word from error message.
25460
25461 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
25462
25463         * ira-costs.c: Fix typo in comment.
25464
25465 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
25466
25467         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
25468
25469 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
25470
25471         * varpool.c (dump_varpool_node): Dump write-only flag.
25472         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
25473         write-only flag.
25474         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
25475         write-only variables.
25476         * ipa.c (process_references): New function.
25477         (set_readonly_bit): New function.
25478         (set_writeonly_bit): New function.
25479         (clear_addressable_bit): New function.
25480         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
25481         fix handling of aliases.
25482         * cgraph.h (struct varpool_node): Add writeonly flag.
25483
25484 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
25485
25486         PR rtl-optimization/60969
25487         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
25488         Calculate costs for this case.
25489
25490 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
25491
25492         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
25493         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
25494
25495 2014-05-16  Richard Biener  <rguenther@suse.de>
25496
25497         PR tree-optimization/61194
25498         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
25499         bool patterns ending in a COND_EXPR.
25500
25501 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25502
25503         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
25504
25505 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25506
25507         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
25508         where we were unable to cost an RTX.
25509
25510 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25511
25512         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
25513         HIGH, LO_SUM.
25514
25515 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25516             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25517
25518         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
25519
25520 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25521             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25522
25523         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
25524         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
25525
25526 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25527             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25528
25529         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
25530         operators.
25531
25532 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25533             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25534
25535         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
25536         DIV/MOD.
25537
25538 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25539             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25540
25541         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
25542         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
25543
25544 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25545             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25546
25547         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
25548         rotates and shifts.
25549
25550 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25551             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25552
25553         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
25554         ZERO_EXTEND and SIGN_EXTEND better.
25555
25556 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25557             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25558
25559         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
25560         logical operations.
25561
25562 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25563             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25564
25565         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
25566         costs when costing loads and stores to memory.
25567
25568 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25569             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
25570
25571         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
25572         for SET RTX.
25573
25574 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25575
25576         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
25577
25578 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25579             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25580
25581         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
25582         to...
25583         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
25584         well formed.
25585         (aarch64_rtx_mult_cost): New.
25586         (aarch64_rtx_costs): Use it, refactor as appropriate.
25587
25588 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25589             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
25590
25591         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
25592         emit instructions, return number of instructions which would
25593         be emitted.
25594         (aarch64_add_constant): Update call to aarch64_build_constant.
25595         (aarch64_output_mi_thunk): Likewise.
25596         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
25597         a CONST_DOUBLE.
25598
25599 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25600
25601         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
25602         (TARGET_RTX_COSTS): Call it.
25603
25604 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25605
25606         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
25607         (cortexa57_vector_cost): Likewise.
25608         (cortexa57_tunings): Use them.
25609
25610 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
25611
25612         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
25613         (cpu_addrcost_table): Use it.
25614         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
25615         (aarch64_address_cost): Rewrite using aarch64_classify_address,
25616         move it.
25617
25618 2014-05-16  Richard Biener  <rguenther@suse.de>
25619
25620         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
25621         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
25622         (visit_phi): Ignore edges marked as not executable.
25623         (class cond_dom_walker): New.
25624         (cond_dom_walker::before_dom_children): Value-number
25625         control statements and mark successor edges as not
25626         executable if possible.
25627         (run_scc_vn): First walk all control statements in
25628         dominator order, marking edges as not executable.
25629         * tree-inline.c (copy_edges_for_bb): Be not confused
25630         about random edge flags.
25631
25632 2014-05-16  Richard Biener  <rguenther@suse.de>
25633
25634         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
25635
25636 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
25637
25638         PR target/61193
25639         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
25640         (__TM_simple_begin): Use it.
25641         (__TM_begin): Likewise.
25642
25643 2014-05-15  Martin Jambor  <mjambor@suse.cz>
25644
25645         PR ipa/61085
25646         * ipa-prop.c (update_indirect_edges_after_inlining): Check
25647         type_preserved flag when the indirect edge is polymorphic.
25648
25649 2014-05-15  Martin Jambor  <mjambor@suse.cz>
25650
25651         PR tree-optimization/61090
25652         * tree-sra.c (sra_modify_expr): Pass the current gsi to
25653         build_ref_for_model.
25654
25655 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25656
25657         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
25658         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
25659
25660 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
25661
25662         PR tree-optimization/61158
25663         * fold-const.c (fold_binary_loc): If X is zero-extended and
25664         shiftc >= prec, make sure zerobits is all ones instead of
25665         invoking undefined behavior.
25666
25667 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
25668
25669         * regcprop.h: New file.
25670         * regcprop.c (skip_debug_insn_p): New decl.
25671         (replace_oldest_value_reg): Check skip_debug_insn_p.
25672         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
25673         * shrink-wrap.c: Include regcprop.h.
25674         (prepare_shrink_wrap): Call
25675         copyprop_hardreg_forward_bb_without_debug_insn.
25676
25677 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
25678
25679         * shrink-wrap.h: Update comment.
25680         * shrink-wrap.c: Update comment.
25681         (next_block_for_reg): Rename to live_edge_for_reg.
25682         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
25683         (move_insn_for_shrink_wrap): Split live_edge.
25684         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
25685
25686 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
25687
25688         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
25689         Delete.
25690         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
25691         * config/sparc/sparc.md (fptype_ut699): New attribute.
25692         (in_branch_delay): Return false if -mfix-ut699 is specified and
25693         fptype_ut699 is set to single.
25694         (truncdfsf2): Add fptype_ut699 attribute.
25695         (fix_truncdfsi2): Likewise.
25696         (floatsisf2): Change fptype attribute.
25697         (fix_truncsfsi2): Likewise.
25698         (negtf2_notv9): Delete.
25699         (negtf2_v9): Likewise.
25700         (negtf2_hq): New instruction.
25701         (negtf2): New instruction and splitter.
25702         (negdf2_notv9): Rewrite.
25703         (abstf2_notv9): Delete.
25704         (abstf2_hq_v9): Likewise.
25705         (abstf2_v9): Likewise.
25706         (abstf2_hq): New instruction.
25707         (abstf2): New instruction and splitter.
25708         (absdf2_notv9): Rewrite.
25709
25710 2014-05-14  Cary Coutant  <ccoutant@google.com>
25711
25712         PR debug/61013
25713         * opts.c (common_handle_option): Don't special-case "-g".
25714         (set_debug_level): Default to at least level 2 with "-g".
25715
25716 2014-05-14  DJ Delorie  <dj@redhat.com>
25717
25718         * config/msp430/msp430.c (msp430_builtin): Add
25719         MSP430_BUILTIN_DELAY_CYCLES.
25720         (msp430_init_builtins): Register void __delay_cycles(long long).
25721         (msp430_builtin_decl): Add it.
25722         (cg_magic_constant): New.
25723         (msp430_expand_delay_cycles): New.
25724         (msp430_expand_builtin): Call it.
25725         (msp430_print_operand_raw): Change integer printing from "int" to
25726         HOST_WIDE_INT.
25727         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
25728         (delay_cycles_start): New.
25729         (delay_cycles_end): New.
25730         (delay_cycles_32): New.
25731         (delay_cycles_32x): New.
25732         (delay_cycles_16): New.
25733         (delay_cycles_16x): New.
25734         (delay_cycles_2): New.
25735         (delay_cycles_1): New.
25736         * doc/extend.texi: Document __delay_cycles().
25737
25738 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
25739
25740         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
25741         length attribute computation.
25742
25743 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
25744
25745         PR debug/61188
25746         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
25747
25748 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
25749
25750         PR target/61084
25751         * config/sparc/sparc.md: Fix types of low and high in DI constant
25752         splitter.  Use gen_int_mode in some other splitters.
25753
25754 2014-05-14  Martin Jambor  <mjambor@suse.cz>
25755
25756         PR ipa/60897
25757         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
25758
25759 2014-05-14  James Norris  <jnorris@codesourcery.com>
25760
25761         * omp-low.c (expand_parallel_call): Remove shadow variable.
25762         (expand_omp_taskreg): Likewise.
25763
25764 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
25765
25766         * common/config/i386/i386-common.c
25767         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
25768         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
25769         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
25770         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
25771         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
25772         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
25773         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
25774         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
25775         xsavecintrin.h, xsavesintrin.h.
25776         (x86_64-*-*): Ditto.
25777         * config/i386/clflushoptintrin.h: New.
25778         * config/i386/xsavecintrin.h: Ditto.
25779         * config/i386/xsavesintrin.h: Ditto.
25780         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
25781         (bit_XSAVES): Ditto.
25782         (bit_XSAVES): Ditto.
25783         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
25784         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
25785         -mno-clflushopt.
25786         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
25787         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
25788         OPTION_MASK_ISA_XSAVES.
25789         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
25790         -mxsavec, -mxsaves.
25791         (PTA_CLFLUSHOPT) Define.
25792         (PTA_XSAVEC): Ditto.
25793         (PTA_XSAVES): Ditto.
25794         (ix86_option_override_internal): Handle new options.
25795         (ix86_valid_target_attribute_inner_p): Ditto.
25796         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
25797         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
25798         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
25799         (bdesc_special_args): Add __builtin_ia32_xsaves,
25800         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
25801         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
25802         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
25803         (ix86_expand_builtin): Handle new builtins.
25804         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
25805         (TARGET_CLFLUSHOPT_P): Ditto.
25806         (TARGET_XSAVEC): Ditto.
25807         (TARGET_XSAVEC_P): Ditto.
25808         (TARGET_XSAVES): Ditto.
25809         (TARGET_XSAVES_P): Ditto.
25810         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
25811         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
25812         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
25813         (ANY_XRSTOR): New.
25814         (ANY_XRSTOR64): Ditto.
25815         (xrstor): Ditto.
25816         (xrstor): Change into <xrstor>.
25817         (xrstor_rex64): Change into <xrstor>_rex64.
25818         (xrstor64): Change into <xrstor>64
25819         (clflushopt): New.
25820         * config/i386/i386.opt (mclflushopt): New.
25821         (mxsavec): Ditto.
25822         (mxsaves): Ditto.
25823         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
25824         xsavecintrin.h.
25825         * doc/invoke.texi: Document new options.
25826
25827 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
25828
25829         PR rtl-optimization/60866
25830         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
25831         Default it to -1.  Pass it down to init_simplejump_data.
25832         (init_simplejump_data): New parameter old_seqno.  Pass it down
25833         to get_seqno_for_a_jump.
25834         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
25835         initializing new jump seqno as a last resort.  Add comment.
25836         (sel_redirect_edge_and_branch): Save old seqno of the conditional
25837         jump and pass it down to sel_init_new_insn.
25838         (sel_redirect_edge_and_branch_force): Likewise.
25839
25840 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
25841
25842         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
25843         shifted values to avoid build warning.
25844
25845 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
25846
25847         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
25848         * cfgrtl.c (rtl_merge_blocks): Fix comment.
25849         (cfg_layout_merge_blocks): Likewise.
25850         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
25851
25852 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
25853
25854         PR rtl-optimization/60901
25855         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
25856         bb predecessor belongs to the same scheduling region.  Adjust comment.
25857
25858 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
25859
25860         * doc/sourcebuild.texi: (dfp_hw): Document.
25861         (p8vector_hw): Likewise.
25862         (powerpc_eabi_ok): Likewise.
25863         (powerpc_elfv2): Likewise.
25864         (powerpc_htm_ok): Likewise.
25865         (ppc_recip_hw): Likewise.
25866         (vsx_hw): Likewise.
25867
25868 2014-05-13  Cary Coutant  <ccoutant@google.com>
25869
25870         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
25871
25872 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
25873
25874         * gengtype-parse.c (require3): Eliminate in favor of...
25875         (require4): New.
25876         (require_template_declaration): Update to support optional single *
25877         on a type.
25878
25879         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
25880         (create_user_defined_type): Handle a single level of explicit
25881         pointerness within template arguments.
25882         (struct write_types_data): Add field "kind".
25883         (filter_type_name): Handle "*" character.
25884         (write_user_func_for_structure_ptr): Require a write_types_data
25885         rather than just a prefix string, so that we can look up the kind
25886         of the wtd and use it as an index into wrote_user_func_for_ptr,
25887         ensuring that such functions are written at most once.  Support
25888         subclasses by invoking the marking function of the ultimate base class.
25889         (write_user_func_for_structure_body): Require a write_types_data
25890         rather than just a prefix string, so that we can pass this to
25891         write_user_func_for_structure_ptr.
25892         (write_func_for_structure): Likewise.
25893         (ggc_wtd): Add initializer of new "kind" field.
25894         (pch_wtd): Likewise.
25895
25896         * gengtype.h (enum write_types_kinds): New.
25897         (struct type): Add field wrote_user_func_for_ptr to the "s"
25898         union member.
25899
25900 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
25901
25902         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
25903         instead of const_binop.
25904         (fold_binary_loc): Likewise.
25905
25906 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
25907
25908         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
25909         calculation to match get_ref_base_and_extent.
25910
25911 2014-05-13  Catherine Moore  <clm@codesourcery.com>
25912             Sandra Loosemore  <sandra@codesourcery.com>
25913
25914         * configure.ac: Fix assembly for explicit JALR relocation check.
25915         * configure: Regenerate.
25916
25917 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25918
25919         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
25920         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
25921         Remove associated type declarations and initialisations.
25922         (arm_expand_neon_builtin): Likewise.
25923         (neon_emit_pair_result_insn): Delete.
25924         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
25925         * config/arm/neon.md (neon_vtrn<mode>): Delete.
25926         (neon_vzip<mode>): Likewise.
25927         (neon_vuzp<mode>): Likewise.
25928
25929 2014-05-13  Richard Biener  <rguenther@suse.de>
25930
25931         PR ipa/60973
25932         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
25933         it needs revisiting whether the call still may be tail-called.
25934
25935 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25936
25937         * rtl.def (SYMBOL_REF): Remove middle "0" field.
25938         * rtl.h (block_symbol): Reduce number of fields to 2.
25939         (rtx_def): Add u2.symbol_ref_flags.
25940         (SYMBOL_REF_FLAGS): Use it.
25941         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
25942         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
25943         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
25944         Lower index of SYMBOL_REF_DATA.
25945         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
25946         Print SYMBOL_REF_FLAGS at the same time.
25947         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
25948
25949 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25950
25951         * rtl.def (VAR_LOCATION): Remove "i" field.
25952         * rtl.h (rtx_def): Add u2.var_location_status.
25953         (PAT_VAR_LOCATION_STATUS): Use it.
25954         (gen_rtx_VAR_LOCATION): Declare.
25955         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
25956         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
25957         * var-tracking.c (emit_note_insn_var_location): Remove casts.
25958
25959 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25960
25961         * rtl.def (scratch): Fix outdated comment and remove "0" field.
25962         * gengtype.c (adjust_field_rtx_def): Update accordingly.
25963
25964 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25965
25966         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
25967         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
25968         * rtl.h (rtx_def): Add insn_uid to u2 field.
25969         (RTX_FLAG_CHECK8): Delete in favor of...
25970         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
25971         (INSN_DELETED_P): Update accordingly.
25972         (INSN_UID): Use u2.insn_uid.
25973         (INSN_CHAIN_CODE_P): Define.
25974         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
25975         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
25976         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
25977         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
25978         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
25979         indices accordingly.
25980         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
25981         Update indices for insn-chain rtxes.
25982         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
25983         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
25984         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
25985         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
25986         * combine.c (try_combine): Likewise.
25987         * ira.c (setup_prohibited_mode_move_regs): Likewise.
25988
25989 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
25990
25991         * rtl.def (REG): Remove middle field.
25992         * rtl.h (rtx_def): Add orignal_regno to u2.
25993         (ORIGINAL_REGNO): Use it instead of field 1.
25994         (REG_ATTRS): Lower field index accordingly.
25995         * gengtype.c (adjust_field_rtx_def): Remove handling of
25996         ORIGINAL_REGNO.  Move REG_ATTRS index down.
25997         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
25998         code that prints the REGNO.
25999
26000 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
26001
26002         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
26003         GENERATOR_FILE.
26004
26005 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
26006
26007         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
26008
26009 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
26010
26011         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
26012         (alloc_iv): Lower base expressions containing ADDR_EXPR.
26013
26014 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
26015
26016         * config/aarch64/aarch64-protos.h
26017         (aarch64_hard_regno_caller_save_mode): New prototype.
26018         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
26019         New function.
26020         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
26021
26022 2014-05-13  Christian Bruel  <christian.bruel@st.com>
26023
26024         * target.def (mode_switching): New hook vector.
26025         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
26026         (mode_exit, modepriority_to_mode): Likewise.
26027         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
26028         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26029         * target.h: Include tm.h and hard-reg-set.h.
26030         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
26031         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
26032         * doc/tm.texi Regenerate.
26033         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
26034         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26035         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
26036         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
26037         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
26038         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26039         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
26040         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
26041         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
26042         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
26043         (ix86_emit_mode_set): Hookify.
26044         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
26045         Delete.
26046         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
26047         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
26048         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
26049         (epiphany_mode_priority_to_mode): Remove declaration.
26050         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
26051         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
26052         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
26053         Likewise.
26054         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
26055         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
26056         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
26057
26058 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
26059
26060         PR target/61060
26061         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
26062         is const0_rtx, return immediately.  Don't test count == 0 when
26063         it is always true.
26064
26065 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
26066
26067         * Makefile.in: add shrink-wrap.o.
26068         * config/i386/i386.c: include "shrink-wrap.h"
26069         * function.c: Likewise.
26070         (requires_stack_frame_p, next_block_for_reg,
26071         move_insn_for_shrink_wrap, prepare_shrink_wrap,
26072         dup_block_and_redirect): Move to shrink-wrap.c
26073         (thread_prologue_and_epilogue_insns): Extract three code segments
26074         as functions in shrink-wrap.c
26075         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
26076         shrink-wrap.h
26077         * shrink-wrap.c: New file.
26078         * shrink-wrap.h: New file.
26079
26080 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
26081
26082         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
26083         reference to Solaris.
26084
26085 2014-05-12  Mike Stump  <mikestump@comcast.net>
26086
26087         PR other/31778
26088         * genattrtab.c (filename): Add.
26089         (convert_set_attr_alternative): Improve error message.
26090         (check_defs): Restore read_md_filename for error messages.
26091         (gen_insn): Save filename.
26092
26093 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
26094
26095         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
26096         -fno-local-ivars and -fivar-visibility.
26097         * c-family/c.opt: Make -Wshadow also implicitly enable
26098         -Wshadow-ivar.
26099
26100 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
26101
26102         * doc/tm.texi: Remove reference to deleted macro.
26103         * doc/tm.texi.in: Likewise.
26104
26105 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
26106
26107         PR target/60991
26108         * config/avr/avr.c (avr_out_store_psi): Use correct constant
26109         to restore Y.
26110
26111 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
26112
26113         PR libgcc/61152
26114         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
26115         * config/arm/aout.h (License): Same.
26116         * config/arm/bpabi.h (License): Same.
26117         * config/arm/elf.h (License): Same.
26118         * config/arm/linux-elf.h (License): Same.
26119         * config/arm/linux-gas.h (License): Same.
26120         * config/arm/netbsd-elf.h (License): Same.
26121         * config/arm/uclinux-eabi.h (License): Same.
26122         * config/arm/uclinux-elf.h (License): Same.
26123         * config/arm/vxworks.h (License): Same.
26124
26125 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
26126
26127         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
26128         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
26129         number of operands to 3.
26130         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
26131         * tree-nested.c (convert_nonlocal_omp_clauses,
26132         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
26133         * gimplify.c (gimplify_scan_omp_clauses): Handle
26134         OMP_CLAUSE_LINEAR_STMT.
26135         * omp-low.c (lower_rec_input_clauses): Fix typo.
26136         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
26137         cast between Fortran boolean_type_node and C _Bool if
26138         needed.
26139
26140 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
26141
26142         PR tree-optimization/61136
26143         * wide-int.h (multiple_of_p): Define a version that doesn't return
26144         the quotient.
26145         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
26146         integer_zerop/const_binop pair.
26147         (multiple_of_p): Likewise, converting both operands to widest_int
26148         precision.
26149
26150 2014-05-09  Teresa Johnson  <tejohnson@google.com>
26151
26152         * cgraphunit.c (analyze_functions): Use correct dump file.
26153
26154 2014-05-09  Florian Weimer  <fweimer@redhat.com>
26155
26156         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
26157         expand_used_vars.
26158         (stack_protect_return_slot_p): New function.
26159         (expand_used_vars): Call stack_protect_decl_p and
26160         stack_protect_return_slot_p for -fstack-protector-strong.
26161
26162 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
26163         Andrew Haley <aph@redhat.com>
26164         Richard Sandiford <rdsandiford@googlemail.com>
26165
26166         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
26167         pages.
26168
26169 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
26170
26171         PR middle-end/61111
26172         * fold-const.c (fold_binary_loc): Changed width of mask.
26173
26174 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
26175
26176         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
26177         unsigned int initializers for regno_in, regno_out.
26178
26179 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
26180
26181         PR target/61055
26182         * config/avr/avr.md (cc): Add new attribute set_vzn.
26183         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
26184         Set cc insn attribute to set_vzn instead of set_zn for alternatives
26185         with INC, DEC or NEG.
26186         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
26187         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
26188         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
26189
26190 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26191
26192         Revert:
26193         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26194
26195         * wide-int.cc (UTItype): Define.
26196         (UDWtype): Define for appropriate W_TYPE_SIZE.
26197
26198 2014-05-09  Richard Biener  <rguenther@suse.de>
26199
26200         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
26201         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
26202         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
26203         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
26204         ssa_propagate): Adjust.
26205
26206 2014-05-08  Jeff Law  <law@redhat.com>
26207
26208         PR tree-optimization/61009
26209         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
26210         tri-state rather than a boolean.  When a block is too big to
26211         thread through, inform caller via negative return value.
26212         (thread_across_edge): If a block was too big for normal threading,
26213         then it's too big for a joiner too, so remove temporary equivalences
26214         and return immediately.
26215
26216 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26217             Matthias Klose  <doko@ubuntu.com>
26218
26219         PR driver/61106
26220         * optc-gen.awk: Fix option handling for -Wunused-parameter.
26221
26222 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
26223
26224         PR target/59952
26225         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
26226
26227 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
26228
26229         PR target/61092
26230         * config/alpha/alpha.c: Include gimple-iterator.h.
26231         (alpha_gimple_fold_builtin): New function.  Move
26232         ALPHA_BUILTIN_UMULH folding from ...
26233         (alpha_fold_builtin): ... here.
26234         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
26235
26236 2014-05-08  Wei Mi  <wmi@google.com>
26237
26238         PR target/58066
26239         * config/i386/i386.c (ix86_compute_frame_layout): Update
26240         preferred_stack_boundary for call, expanded from tls descriptor.
26241         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
26242         to depend on SP register.
26243         (*tls_local_dynamic_base_32_gnu): Ditto.
26244         (*tls_local_dynamic_32_once): Ditto.
26245         (tls_global_dynamic_64_<mode>): Set
26246         ix86_tls_descriptor_calls_expanded_in_cfun.
26247         (tls_local_dynamic_base_64_<mode>): Ditto.
26248         (tls_global_dynamic_32): Set
26249         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
26250         to depend on SP register.
26251         (tls_local_dynamic_base_32): Ditto.
26252
26253 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26254
26255         * config/arm/arm_neon.h: Update comment.
26256         * config/arm/neon-docgen.ml: Delete.
26257         * config/arm/neon-gen.ml: Delete.
26258         * doc/arm-neon-intrinsics.texi: Update comment.
26259
26260 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26261
26262         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
26263         and v4sf versions.
26264         (vand, vorr, veor, vorn, vbic): Remove.
26265         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
26266         iterator.
26267         (neon_vsub_unspec): Likewise.
26268         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
26269
26270 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26271
26272         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
26273         (vadd_s16): Likewise.
26274         (vadd_s32): Likewise.
26275         (vadd_f32): Likewise.
26276         (vadd_u8): Likewise.
26277         (vadd_u16): Likewise.
26278         (vadd_u32): Likewise.
26279         (vadd_s64): Likewise.
26280         (vadd_u64): Likewise.
26281         (vaddq_s8): Likewise.
26282         (vaddq_s16): Likewise.
26283         (vaddq_s32): Likewise.
26284         (vaddq_s64): Likewise.
26285         (vaddq_f32): Likewise.
26286         (vaddq_u8): Likewise.
26287         (vaddq_u16): Likewise.
26288         (vaddq_u32): Likewise.
26289         (vaddq_u64): Likewise.
26290         (vmul_s8): Likewise.
26291         (vmul_s16): Likewise.
26292         (vmul_s32): Likewise.
26293         (vmul_f32): Likewise.
26294         (vmul_u8): Likewise.
26295         (vmul_u16): Likewise.
26296         (vmul_u32): Likewise.
26297         (vmul_p8): Likewise.
26298         (vmulq_s8): Likewise.
26299         (vmulq_s16): Likewise.
26300         (vmulq_s32): Likewise.
26301         (vmulq_f32): Likewise.
26302         (vmulq_u8): Likewise.
26303         (vmulq_u16): Likewise.
26304         (vmulq_u32): Likewise.
26305         (vsub_s8): Likewise.
26306         (vsub_s16): Likewise.
26307         (vsub_s32): Likewise.
26308         (vsub_f32): Likewise.
26309         (vsub_u8): Likewise.
26310         (vsub_u16): Likewise.
26311         (vsub_u32): Likewise.
26312         (vsub_s64): Likewise.
26313         (vsub_u64): Likewise.
26314         (vsubq_s8): Likewise.
26315         (vsubq_s16): Likewise.
26316         (vsubq_s32): Likewise.
26317         (vsubq_s64): Likewise.
26318         (vsubq_f32): Likewise.
26319         (vsubq_u8): Likewise.
26320         (vsubq_u16): Likewise.
26321         (vsubq_u32): Likewise.
26322         (vsubq_u64): Likewise.
26323         (vand_s8): Likewise.
26324         (vand_s16): Likewise.
26325         (vand_s32): Likewise.
26326         (vand_u8): Likewise.
26327         (vand_u16): Likewise.
26328         (vand_u32): Likewise.
26329         (vand_s64): Likewise.
26330         (vand_u64): Likewise.
26331         (vandq_s8): Likewise.
26332         (vandq_s16): Likewise.
26333         (vandq_s32): Likewise.
26334         (vandq_s64): Likewise.
26335         (vandq_u8): Likewise.
26336         (vandq_u16): Likewise.
26337         (vandq_u32): Likewise.
26338         (vandq_u64): Likewise.
26339         (vorr_s8): Likewise.
26340         (vorr_s16): Likewise.
26341         (vorr_s32): Likewise.
26342         (vorr_u8): Likewise.
26343         (vorr_u16): Likewise.
26344         (vorr_u32): Likewise.
26345         (vorr_s64): Likewise.
26346         (vorr_u64): Likewise.
26347         (vorrq_s8): Likewise.
26348         (vorrq_s16): Likewise.
26349         (vorrq_s32): Likewise.
26350         (vorrq_s64): Likewise.
26351         (vorrq_u8): Likewise.
26352         (vorrq_u16): Likewise.
26353         (vorrq_u32): Likewise.
26354         (vorrq_u64): Likewise.
26355         (veor_s8): Likewise.
26356         (veor_s16): Likewise.
26357         (veor_s32): Likewise.
26358         (veor_u8): Likewise.
26359         (veor_u16): Likewise.
26360         (veor_u32): Likewise.
26361         (veor_s64): Likewise.
26362         (veor_u64): Likewise.
26363         (veorq_s8): Likewise.
26364         (veorq_s16): Likewise.
26365         (veorq_s32): Likewise.
26366         (veorq_s64): Likewise.
26367         (veorq_u8): Likewise.
26368         (veorq_u16): Likewise.
26369         (veorq_u32): Likewise.
26370         (veorq_u64): Likewise.
26371         (vbic_s8): Likewise.
26372         (vbic_s16): Likewise.
26373         (vbic_s32): Likewise.
26374         (vbic_u8): Likewise.
26375         (vbic_u16): Likewise.
26376         (vbic_u32): Likewise.
26377         (vbic_s64): Likewise.
26378         (vbic_u64): Likewise.
26379         (vbicq_s8): Likewise.
26380         (vbicq_s16): Likewise.
26381         (vbicq_s32): Likewise.
26382         (vbicq_s64): Likewise.
26383         (vbicq_u8): Likewise.
26384         (vbicq_u16): Likewise.
26385         (vbicq_u32): Likewise.
26386         (vbicq_u64): Likewise.
26387         (vorn_s8): Likewise.
26388         (vorn_s16): Likewise.
26389         (vorn_s32): Likewise.
26390         (vorn_u8): Likewise.
26391         (vorn_u16): Likewise.
26392         (vorn_u32): Likewise.
26393         (vorn_s64): Likewise.
26394         (vorn_u64): Likewise.
26395         (vornq_s8): Likewise.
26396         (vornq_s16): Likewise.
26397         (vornq_s32): Likewise.
26398         (vornq_s64): Likewise.
26399         (vornq_u8): Likewise.
26400         (vornq_u16): Likewise.
26401         (vornq_u32): Likewise.
26402         (vornq_u64): Likewise.
26403
26404 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26405
26406         * wide-int.cc (UTItype): Define.
26407         (UDWtype): Define for appropriate W_TYPE_SIZE.
26408
26409 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
26410
26411         PR tree-optimization/59100
26412         * tree-ssa-phiopt.c: Include tree-inline.h.
26413         (neutral_element_p, absorbing_element_p): New functions.
26414         (value_replacement): Handle conditional binary operations with a
26415         neutral or absorbing element.
26416
26417 2014-05-08  Richard Biener  <rguenther@suse.de>
26418
26419         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
26420         folding the expression.
26421         (valueize_expr): Remove.
26422         (visit_reference_op_load): Do not valueize the result of
26423         vn_get_expr_for.
26424         (simplify_binary_expression): Likewise.
26425         (simplify_unary_expression): Likewise.
26426
26427 2014-05-08  Richard Biener  <rguenther@suse.de>
26428
26429         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
26430         looking at TYPE_ARG_TYPES.
26431
26432 2014-05-08  Richard Biener  <rguenther@suse.de>
26433
26434         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
26435         pointer propagation special-case.
26436
26437 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
26438
26439         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
26440         core part of address expressions.
26441
26442 2014-05-08  Alan Modra  <amodra@gmail.com>
26443
26444         PR target/60737
26445         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
26446         loads and stores when -mno-strict-align at any alignment.
26447         (expand_block_clear): Similarly.  Also correct calculation of
26448         instruction count.
26449
26450 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26451
26452         PR middle-end/39246
26453         * tree-complex.c (expand_complex_move): Keep line info when expanding
26454         complex move.
26455         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
26456         of complex expression. Use new argument to display correct location
26457         for values coming from phi statement.
26458         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
26459         (warn_uninitialized_phi): Pass location of phi argument to
26460         warn_uninit.
26461         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
26462         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
26463
26464 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
26465
26466         * config/rs6000/predicates.md (indexed_address_mem): New.
26467         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
26468         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
26469         fpstore_ux, fpstore_u.
26470         (sign_extend, indexed, update): New.
26471         (cell_micro): Adjust.
26472         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
26473         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
26474         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
26475         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
26476         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
26477         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
26478         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
26479         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
26480         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
26481         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
26482         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
26483         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
26484         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
26485         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
26486         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
26487
26488         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
26489         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
26490         *vsx_extract_<mode>_store): Adjust.
26491         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
26492         is_cracked_insn, insn_must_be_first_in_group,
26493         insn_must_be_last_in_group): Adjust.
26494
26495         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
26496         Adjust.
26497         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
26498         ppc440-fpstore): Adjust.
26499         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
26500         ppc476-fpstore): Adjust.
26501         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
26502         ppc601-fpstore): Adjust.
26503         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
26504         Adjust.
26505         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
26506         Adjust.
26507         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
26508         ppc7450-fpstore): Adjust.
26509         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
26510         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
26511         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
26512         Adjust.
26513         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
26514         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
26515         cell-fpstore, cell-fpstore-update): Adjust.
26516         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
26517         ppce300c3_store, ppce300c3_fpstore): Adjust.
26518         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
26519         e500mc_fpstore): Adjust.
26520         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
26521         e500mc64_store, e500mc64_fpstore): Adjust.
26522         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
26523         e5500_fpstore): Adjust.
26524         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
26525         e6500_fpstore): Adjust.
26526         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
26527         Adjust.
26528         * config/rs6000/power4.md (power4-load, power4-load-ext,
26529         power4-load-ext-update, power4-load-ext-update-indexed,
26530         power4-load-update-indexed, power4-load-update, power4-fpload,
26531         power4-fpload-update, power4-store, power4-store-update,
26532         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
26533         Adjust.
26534         * config/rs6000/power5.md (power5-load, power5-load-ext,
26535         power5-load-ext-update, power5-load-ext-update-indexed,
26536         power5-load-update-indexed, power5-load-update, power5-fpload,
26537         power5-fpload-update, power5-store, power5-store-update,
26538         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
26539         Adjust.
26540         * config/rs6000/power6.md (power6-load, power6-load-ext,
26541         power6-load-update, power6-load-update-indexed,
26542         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
26543         power6-fpload-update, power6-store, power6-store-update,
26544         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
26545         Adjust.
26546         * config/rs6000/power7.md (power7-load, power7-load-ext,
26547         power7-load-update, power7-load-update-indexed,
26548         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
26549         power7-fpload-update, power7-store, power7-store-update,
26550         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
26551         Adjust.
26552         * config/rs6000/power8.md (power8-load, power8-load-update,
26553         power8-load-ext, power8-load-ext-update, power8-fpload,
26554         power8-fpload-update, power8-store, power8-store-update-indexed,
26555         power8-fpstore, power8-fpstore-update): Adjust.
26556         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
26557         Adjust.
26558         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
26559         titan_lsu_store, titan_lsu_fpstore): Adjust.
26560         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
26561
26562 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
26563
26564         PR target/60884
26565         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
26566         unrolled byte insns.  Emit address increments after move insns.
26567
26568 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
26569
26570         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
26571         const_gimple, rather than a gimple.
26572         (gimple_call_builtin_p): Likewise, for the three variants.
26573
26574         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
26575         (gimple_call_builtin_p): Likewise, for the three variants.
26576
26577 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
26578
26579         PR tree-optimization/61095
26580         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
26581
26582 2014-05-07  Richard Biener  <rguenther@suse.de>
26583
26584         PR tree-optimization/61034
26585         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
26586         (maybe_skip_until): Use translate to take into account
26587         lattices when trying to do disambiguations.
26588         (get_continuation_for_phi_1): Likewise.
26589         (get_continuation_for_phi): Adjust for added translate arguments.
26590         (walk_non_aliased_vuses): Likewise.
26591         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
26592         (walk_non_aliased_vuses): Likewise.
26593         (call_may_clobber_ref_p_1): Declare.
26594         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
26595         calls.  Stop early if we are only supposed to disambiguate.
26596         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
26597
26598 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
26599
26600         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
26601         Emit an error when the function has arguments.
26602
26603 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
26604
26605         * cfgloop.h (unswitch_loops): Remove.
26606         * doc/passes.texi: Remove references to loop-unswitch.c
26607         * timevar.def (TV_LOOP_UNSWITCH): Remove.
26608
26609 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
26610
26611         * tree-vect-data-refs.c (vect_grouped_load_supported): New
26612         check for loads group of length 3.
26613         (vect_permute_load_chain): New permutations for loads group of
26614         length 3.
26615         * tree-vect-stmts.c (vect_model_load_cost): Change cost
26616         of vec_perm_shuffle for the new permutations.
26617
26618 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
26619
26620         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
26621         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
26622         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
26623         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
26624         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
26625         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
26626         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
26627         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
26628
26629 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
26630
26631         * loop-unswitch.c: Delete.
26632
26633 2014-05-07  Richard Biener  <rguenther@suse.de>
26634
26635         * config.gcc: Always set need_64bit_hwint to yes.
26636
26637 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
26638
26639         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
26640         of using optimize_size.
26641
26642 2014-05-06  Mike Stump  <mikestump@comcast.net>
26643
26644         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
26645
26646 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
26647
26648         * config/i386/sse.md (*mov<mode>_internal)
26649         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
26650         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
26651         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
26652         (*<code><mode>3, *andnot<mode>3<mask_name>)
26653         (<mask_codefor><code><mode>3<mask_name>): Only consider
26654         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
26655
26656 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
26657
26658         Revert:
26659         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
26660
26661         * lra-constraints.c (valid_address_p): Move earlier in file.
26662         Add a constraint argument to the address_info version.
26663         (satisfies_memory_constraint_p): New function.
26664         (satisfies_address_constraint_p): Likewise.
26665         (process_alt_operands, curr_insn_transform): Use them.
26666         (process_address): Pass the constraint to valid_address_p when
26667         checking address operands.
26668
26669 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
26670
26671         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
26672         to their respective blocks.  Fix inadvertent use of "node".
26673
26674 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
26675
26676         * emit-rtl.c (init_derived_machine_modes): New functionm, split
26677         out from...
26678         (init_emit_once): ...here.
26679         * rtl.h (init_derived_machine_modes): Declare.
26680         * toplev.c (do_compile): Call it even if no_backend.
26681
26682 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
26683             Mike Stump  <mikestump@comcast.net>
26684             Richard Sandiford  <rdsandiford@googlemail.com>
26685             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26686
26687         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
26688         (rtx_equal_for_memref_p): Update comment.
26689         (adjust_offset_for_component_ref): Use wide-int interfaces.
26690         * builtins.c (get_object_alignment_2): Likewise.
26691         (c_readstr): Likewise.
26692         (target_char_cast): Add comment.
26693         (determine_block_size): Use wide-int interfaces.
26694         (expand_builtin_signbit): Likewise.
26695         (fold_builtin_int_roundingfn): Likewise.
26696         (fold_builtin_bitop): Likewise.
26697         (fold_builtin_bswap): Likewise.
26698         (fold_builtin_logarithm): Use signop.
26699         (fold_builtin_pow): Likewise.
26700         (fold_builtin_memory_op): Use wide-int interfaces.
26701         (fold_builtin_object_size): Likewise.
26702         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
26703         nb_iterations_estimate.
26704         (record_niter_bound): Use wide-int interfaces.
26705         (get_estimated_loop_iterations_int): Likewise.
26706         (get_estimated_loop_iterations): Likewise.
26707         (get_max_loop_iterations): Likewise.
26708         * cfgloop.h: Include wide-int.h.
26709         (struct nb_iter_bound): Change bound to widest_int.
26710         (struct loop): Change nb_iterations_upper_bound and
26711         nb_iterations_estimate to widest_int.
26712         (record_niter_bound): Switch to use widest_int.
26713         (get_estimated_loop_iterations): Likewise.
26714         (get_max_loop_iterations): Likewise.
26715         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
26716         update for wide-int.
26717         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
26718         * combine.c (try_combine): Likewise.
26719         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
26720         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
26721         interfaces.
26722         (aarch64_float_const_representable_p): Likewise.
26723         * config/arc/arc.c: Include wide-int.h.
26724         (arc_can_use_doloop_p): Use wide-int interfaces.
26725         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
26726         (vfp3_const_double_index): Likewise.
26727         * config/avr/avr.c (avr_out_round): Likewise.
26728         (avr_fold_builtin): Likewise.
26729         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
26730         (bfin_can_use_doloop_p): Likewise.
26731         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
26732         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
26733         * config/i386/i386.c: Include wide-int.h.
26734         (ix86_data_alignment): Use wide-int interfaces.
26735         (ix86_local_alignment): Likewise.
26736         (ix86_emit_swsqrtsf): Update real_from_integer.
26737         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
26738         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
26739         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
26740         (zero_constant): Likewise.
26741         (input_operand): Likewise.
26742         (splat_input_operand): Likewise.
26743         (non_logical_cint_operand): Change const_double to const_wide_int.
26744         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
26745         (easy_altivec_constant): Remove comment.
26746         (paired_expand_vector_init): Use CONSTANT_P.
26747         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
26748         (rs6000_emit_move): Update checks.
26749         (rs6000_aggregate_candidate): Use wide-int interfaces.
26750         (rs6000_expand_ternop_builtin): Likewise.
26751         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
26752         (rs6000_assemble_integer): Likewise.
26753         (rs6000_hash_constant): Likewise.
26754         (output_toc): Likewise.
26755         (rs6000_rtx_costs): Likewise.
26756         (rs6000_emit_swrsqrt); Update call to real_from_integer.
26757         * config/rs6000/rs6000-c.c: Include wide-int.h.
26758         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
26759         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
26760         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
26761         Handle CONST_WIDE_INT.
26762         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
26763         Use tree_fits_uhwi_p.
26764         * config/sparc/sparc.c: Include wide-int.h.
26765         (sparc_fold_builtin): Use wide-int interfaces.
26766         * config/vax/vax.c: Include wide-int.h.
26767         (vax_float_literal): Use real_from_integer.
26768         * coretypes.h (struct hwivec_def): New.
26769         (hwivec): New.
26770         (const_hwivec): New.
26771         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
26772         (equiv_constant): Handle CONST_WIDE_INT.
26773         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
26774         (cselib_hash_rtx): Handle CONST_WIDE_INT.
26775         * dbxout.c (stabstr_U): Use wide-int interfaces.
26776         (dbxout_type): Update to use cst_fits_shwi_p.
26777         * defaults.h (LOG2_BITS_PER_UNIT): Define.
26778         (TARGET_SUPPORTS_WIDE_INT): Add default.
26779         * dfp.c: Include wide-int.h.
26780         (decimal_real_to_integer2): Use wide-int interfaces and rename to
26781         decimal_real_to_integer.
26782         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
26783         decimal_real_to_integer.
26784         * doc/generic.texi (Constant expressions): Update for wide_int.
26785         * doc/rtl.texi (const_double): Likewise.
26786         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
26787         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
26788         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
26789         (REAL_VALUE_FROM_INT): Remove.
26790         (TARGET_SUPPORTS_WIDE_INT): New.
26791         * doc/tm.texi: Regenerate.
26792         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
26793         * double-int.h: Include wide-int.h.
26794         (struct wi::int_traits): New.
26795         * dwarf2out.c (get_full_len): New.
26796         (dw_val_equal_p): Add case dw_val_class_wide_int.
26797         (size_of_loc_descr): Likewise.
26798         (output_loc_operands): Likewise.
26799         (insert_double): Remove.
26800         (insert_wide_int): New.
26801         (add_AT_wide): New.
26802         (print_die): Add case dw_val_class_wide_int.
26803         (attr_checksum): Likewise.
26804         (attr_checksum_ordered): Likewise.
26805         (same_dw_val_p): Likewise.
26806         (size_of_die): Likewise.
26807         (value_format): Likewise.
26808         (output_die): Likewise.
26809         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
26810         Use wide-int.
26811         (clz_loc_descriptor): Use wide-int interfaces.
26812         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
26813         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
26814         (round_up_to_align): Use wide-int interfaces.
26815         (field_byte_offset): Likewise.
26816         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
26817         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
26818         CONST_DOUBLE handling.  Use wide-int interfaces.
26819         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
26820         (gen_enumeration_type_die): Use add_AT_wide.
26821         (hash_loc_operands): Add case dw_val_class_wide_int.
26822         (compare_loc_operands): Likewise.
26823         * dwarf2out.h: Include wide-int.h.
26824         (wide_int_ptr): New.
26825         (enum dw_val_class): Add dw_val_class_wide_int.
26826         (struct dw_val_struct): Add val_wide.
26827         * emit-rtl.c (const_wide_int_htab): New.
26828         (const_wide_int_htab_hash): New.
26829         (const_wide_int_htab_eq): New.
26830         (lookup_const_wide_int): New.
26831         (const_double_htab_hash): Use wide-int interfaces.
26832         (const_double_htab_eq): Likewise.
26833         (rtx_to_double_int): Conditionally compile for wide-int.
26834         (immed_double_int_const): Rename to immed_wide_int_const and
26835         update for wide-int.
26836         (immed_double_const): Conditionally compile for wide-int.
26837         (init_emit_once): Use wide-int interfaces.
26838         * explow.c (plus_constant): Likewise.
26839         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
26840         (lshift_value): Use wide-int interfaces.
26841         (expand_mult): Likewise.
26842         (choose_multiplier): Likewise.
26843         (expand_smod_pow2): Likewise.
26844         (make_tree): Likewise.
26845         * expr.c (convert_modes): Consolidate handling of constants.
26846         Use wide-int interfaces.
26847         (emit_group_load_1): Add note.
26848         (store_expr): Update comment.
26849         (get_inner_reference): Use wide-int interfaces.
26850         (expand_constructor): Update comment.
26851         (expand_expr_real_2): Use wide-int interfaces.
26852         (expand_expr_real_1): Likewise.
26853         (reduce_to_bit_field_precision): Likewise.
26854         (const_vector_from_tree): Likewise.
26855         * final.c: Include wide-int-print.h.
26856         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
26857         * fixed-value.c: Include wide-int.h.
26858         (fixed_from_string): Use wide-int interfaces.
26859         (fixed_to_decimal): Likewise.
26860         (fixed_convert_from_real): Likewise.
26861         (real_convert_from_fixed): Likewise.
26862         * fold-const.h (mem_ref_offset): Return an offset_int.
26863         (div_if_zero_remainder): Remove code parameter.
26864         * fold-const.c (div_if_zero_remainder): Remove code parameter.
26865         Use wide-int interfaces.
26866         (may_negate_without_overflow_p): Use wide-int interfaces.
26867         (negate_expr_p): Likewise.
26868         (fold_negate_expr): Likewise.
26869         (int_const_binop_1): Likewise.
26870         (const_binop): Likewise.
26871         (fold_convert_const_int_from_int): Likewise.
26872         (fold_convert_const_int_from_real): Likewise.
26873         (fold_convert_const_int_from_fixed): Likewise.
26874         (fold_convert_const_fixed_from_int): Likewise.
26875         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
26876         (sign_bit_p): Use wide-int interfaces.
26877         (make_range_step): Likewise.
26878         (build_range_check): Likewise.  Pass an integer of the correct type
26879         instead of using integer_one_node.
26880         (range_predecessor): Pass an integer of the correct type instead
26881         of using integer_one_node.
26882         (range_successor): Likewise.
26883         (merge_ranges): Likewise.
26884         (unextend): Use wide-int interfaces.
26885         (extract_muldiv_1): Likewise.
26886         (fold_div_compare): Likewise.
26887         (fold_single_bit_test): Likewise.
26888         (fold_sign_changed_comparison): Likewise.
26889         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
26890         (fold_plusminus_mult_expr): Use wide-int interfaces.
26891         (native_encode_int): Likewise.
26892         (native_interpret_int): Likewise.
26893         (fold_unary_loc): Likewise.
26894         (pointer_may_wrap_p): Likewise.
26895         (size_low_cst): Likewise.
26896         (mask_with_tz): Likewise.
26897         (fold_binary_loc): Likewise.
26898         (fold_ternary_loc): Likewise.
26899         (multiple_of_p): Likewise.
26900         (tree_call_nonnegative_warnv_p): Update calls to
26901         tree_int_cst_min_precision and real_from_integer.
26902         (fold_negate_const): Use wide-int interfaces.
26903         (fold_abs_const): Likewise.
26904         (fold_relational_const): Use tree_int_cst_lt.
26905         (round_up_loc): Use wide-int interfaces.
26906         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
26907         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
26908         * gengtype.c: Remove include of double-int.h.
26909         (do_typedef): Use wide-int interfaces.
26910         (open_base_files): Add wide-int.h.
26911         (main): Add offset_int and widest_int typedefs.
26912         * gengtype-lex.l: Handle "^".
26913         (CXX_KEYWORD): Add "static".
26914         * gengtype-parse.c (require3): New.
26915         (require_template_declaration): Handle constant template arguments
26916         and nested templates.
26917         * gengtype-state.c: Don't include "double-int.h".
26918         * genpreds.c (write_one_predicate_function): Update comment.
26919         (write_tm_constrs_h): Add check for hval and lval use in
26920         CONST_WIDE_INT.
26921         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
26922         (add_to_sequence): Likewise.
26923         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
26924         and const_double_operand.
26925         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
26926         interfaces.
26927         * gimple-fold.c (get_base_constructor): Likewise.
26928         (fold_array_ctor_reference): Likewise.
26929         (fold_nonarray_ctor_reference): Likewise.
26930         (fold_const_aggregate_ref_1): Likewise.
26931         (gimple_val_nonnegative_real_p): Likewise.
26932         (gimple_fold_indirect_ref): Likewise.
26933         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
26934         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
26935         (struct slsr_cand_d): Change index to be widest_int.
26936         (struct incr_info_d): Change incr to be widest_int.
26937         (alloc_cand_and_find_basis): Use wide-int interfaces.
26938         (slsr_process_phi): Likewise.
26939         (backtrace_base_for_ref): Likewise.  Return a widest_int.
26940         (restructure_reference): Take a widest_int instead of a double_int.
26941         (slsr_process_ref): Use wide-int interfaces.
26942         (create_mul_ssa_cand): Likewise.
26943         (create_mul_imm_cand): Likewise.
26944         (create_add_ssa_cand): Likewise.
26945         (create_add_imm_cand): Take a widest_int instead of a double_int.
26946         (slsr_process_add): Use wide-int interfaces.
26947         (slsr_process_cast): Likewise.
26948         (slsr_process_copy): Likewise.
26949         (dump_candidate): Likewise.
26950         (dump_incr_vec): Likewise.
26951         (replace_ref): Likewise.
26952         (cand_increment): Likewise.  Return a widest_int.
26953         (cand_abs_increment): Likewise.
26954         (replace_mult_candidate): Take a widest_int instead of a double_int.
26955         (replace_unconditional_candidate): Use wide-int interfaces.
26956         (incr_vec_index): Take a widest_int instead of a double_int.
26957         (create_add_on_incoming_edge): Likewise.
26958         (create_phi_basis): Use wide-int interfaces.
26959         (replace_conditional_candidate): Likewise.
26960         (record_increment): Take a widest_int instead of a double_int.
26961         (record_phi_increments): Use wide-int interfaces.
26962         (phi_incr_cost): Take a widest_int instead of a double_int.
26963         (lowest_cost_path): Likewise.
26964         (total_savings): Likewise.
26965         (analyze_increments): Use wide-int interfaces.
26966         (ncd_with_phi): Take a widest_int instead of a double_int.
26967         (ncd_of_cand_and_phis): Likewise.
26968         (nearest_common_dominator_for_cands): Likewise.
26969         (insert_initializers): Use wide-int interfaces.
26970         (all_phi_incrs_profitable): Likewise.
26971         (replace_one_candidate): Likewise.
26972         (replace_profitable_candidates): Likewise.
26973         * godump.c: Include wide-int-print.h.
26974         (go_output_typedef): Use wide-int interfaces.
26975         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
26976         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
26977         (build_loop_iteration_domains): Likewise.
26978         * hooks.h: Include wide-int.h rather than double-int.h.
26979         (hook_bool_dint_dint_uint_bool_true): Delete.
26980         (hook_bool_wint_wint_uint_bool_true): Declare.
26981         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
26982         (hook_bool_wint_wint_uint_bool_true): New.
26983         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
26984         interfaces.
26985         (ubsan_expand_si_overflow_mul_check): Likewise.
26986         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
26987         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
26988         (get_ancestor_addr_info): Likewise.
26989         (ipa_modify_call_arguments): Likewise.
26990         * loop-doloop.c (doloop_modify): Likewise.
26991         (doloop_optimize): Likewise.
26992         * loop-iv.c (iv_number_of_iterations): Likewise.
26993         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
26994         (unroll_loop_constant_iterations): Likewise.
26995         (decide_unroll_runtime_iterations): Likewise.
26996         (unroll_loop_runtime_iterations): Likewise.
26997         (decide_peel_simple): Likewise.
26998         (decide_unroll_stupid): Likewise.
26999         * lto-streamer-in.c (streamer_read_wi): Add.
27000         (input_cfg): Use wide-int interfaces.
27001         (lto_input_tree_1): Likewise.
27002         * lto-streamer-out.c (streamer_write_wi): Add.
27003         (hash_tree): Use wide-int interfaces.
27004         (output_cfg): Likewise.
27005         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
27006         (GTFILES): Add wide-int.h and signop.h.
27007         (TAGS): Look for .cc files too.
27008         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
27009         * optabs.c (expand_subword_shift): Likewise.
27010         (expand_doubleword_shift): Likewise.
27011         (expand_absneg_bit): Likewise.
27012         (expand_copysign_absneg): Likewise.
27013         (expand_copysign_bit): Likewise.
27014         * postreload.c (reload_cse_simplify_set): Likewise.
27015         * predict.c (predict_iv_comparison): Likewise.
27016         * pretty-print.h: Include wide-int-print.h.
27017         (pp_wide_int) New.
27018         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
27019         * print-tree.c: Include wide-int-print.h.
27020         (print_node_brief): Use wide-int interfaces.
27021         (print_node): Likewise.
27022         * read-rtl.c (validate_const_wide_int): New.
27023         (read_rtx_code): Add CONST_WIDE_INT case.
27024         * real.c: Include wide-int.h.
27025         (real_to_integer2): Delete.
27026         (real_to_integer): New function, returning a wide_int.
27027         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
27028         (ten_to_ptwo): Update call to real_from_integer.
27029         (real_digit): Likewise.
27030         * real.h: Include signop.h, wide-int.h and insn-modes.h.
27031         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
27032         (REAL_VALUE_TO_INT): Delete.
27033         (real_to_integer): Declare a wide-int form.
27034         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
27035         * recog.c (const_int_operand): Improve comment.
27036         (const_scalar_int_operand): New.
27037         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
27038         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
27039         (split_double): Likewise.
27040         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
27041         (rtx_size): Likewise.
27042         (rtx_alloc_stat_v): New.
27043         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
27044         (cwi_output_hex): New.
27045         (iterative_hash_rtx): Handle CONST_WIDE_INT.
27046         (cwi_check_failed_bounds): New.
27047         * rtl.def (CONST_WIDE_INT): New.
27048         * rtl.h: Include <utility> and wide-int.h.
27049         (struct hwivec_def): New.
27050         (CWI_GET_NUM_ELEM): New.
27051         (CWI_PUT_NUM_ELEM): New.
27052         (struct rtx_def): Add num_elem and hwiv.
27053         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
27054         (CASE_CONST_UNIQUE): Likewise.
27055         (CASE_CONST_ANY): Likewise.
27056         (CONST_SCALAR_INT_P): Likewise.
27057         (CONST_WIDE_INT_P): New.
27058         (CWI_ELT): New.
27059         (HWIVEC_CHECK): New.
27060         (cwi_check_failed_bounds): New.
27061         (CWI_ELT): New.
27062         (HWIVEC_CHECK): New.
27063         (CONST_WIDE_INT_VEC) New.
27064         (CONST_WIDE_INT_NUNITS) New.
27065         (CONST_WIDE_INT_ELT) New.
27066         (rtx_mode_t): New type.
27067         (wi::int_traits <rtx_mode_t>): New.
27068         (wi::shwi): New.
27069         (wi::min_value): New.
27070         (wi::max_value): New.
27071         (rtx_alloc_v) New.
27072         (const_wide_int_alloc): New.
27073         (immed_wide_int_const): New.
27074         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
27075         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
27076         * signop.h: New file.
27077         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
27078         (simplify_const_unary_operation): Use wide-int interfaces.
27079         (simplify_binary_operation_1): Likewise.
27080         (simplify_const_binary_operation): Likewise.
27081         (simplify_const_relational_operation): Likewise.
27082         (simplify_immed_subreg): Likewise.
27083         * stmt.c (expand_case): Likewise.
27084         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
27085         signop rather than a bool.
27086         * stor-layout.c (layout_type): Use wide-int interfaces.
27087         (initialize_sizetypes): Update calls to
27088         set_min_and_max_values_for_integral_type.
27089         (set_min_and_max_values_for_integral_type): Take a signop rather
27090         than a bool.  Use wide-int interfaces.
27091         (fixup_signed_type): Update accordingly.  Remove
27092         HOST_BITS_PER_DOUBLE_INT limit.
27093         (fixup_unsigned_type): Likewise.
27094         * system.h (STATIC_CONSTANT_P): New.
27095         (STATIC_ASSERT): New.
27096         * target.def (can_use_doloop_p): Take widest_ints rather than
27097         double_ints.
27098         * target.h: Include wide-int.h rather than double-int.h.
27099         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
27100         than double_ints.
27101         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
27102         rather than INT_CST_LT_UNSIGNED.
27103         (can_use_doloop_if_innermost): Take widest_ints rather than
27104         double_ints.
27105         * tree-affine.c: Include wide-int-print.h.
27106         (double_int_ext_for_comb): Delete.
27107         (wide_int_ext_for_comb): New.
27108         (aff_combination_zero): Use wide-int interfaces.
27109         (aff_combination_const): Take a widest_int instead of a double_int.
27110         (aff_combination_elt): Use wide-int interfaces.
27111         (aff_combination_scale): Take a widest_int instead of a double_int.
27112         (aff_combination_add_elt): Likewise.
27113         (aff_combination_add_cst): Likewise.
27114         (aff_combination_add): Use wide-int interfaces.
27115         (aff_combination_convert): Likewise.
27116         (tree_to_aff_combination): Likewise.
27117         (add_elt_to_tree): Take a widest_int instead of a double_int.
27118         (aff_combination_to_tree): Use wide-int interfaces.
27119         (aff_combination_remove_elt): Likewise.
27120         (aff_combination_add_product): Take a widest_int instead of
27121         a double_int.
27122         (aff_combination_mult): Use wide-int interfaces.
27123         (aff_combination_expand): Likewise.
27124         (double_int_constant_multiple_p): Delete.
27125         (wide_int_constant_multiple_p): New.
27126         (aff_combination_constant_multiple_p): Take a widest_int pointer
27127         instead of a double_int pointer.
27128         (print_aff): Use wide-int interfaces.
27129         (get_inner_reference_aff): Take a widest_int pointer
27130         instead of a double_int pointer.
27131         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
27132         * tree-affine.h: Include wide-int.h.
27133         (struct aff_comb_elt): Change type of coef to widest_int.
27134         (struct affine_tree_combination): Change type of offset to widest_int.
27135         (double_int_ext_for_comb): Delete.
27136         (wide_int_ext_for_comb): New.
27137         (aff_combination_const): Use widest_int instead of double_int.
27138         (aff_combination_scale): Likewise.
27139         (aff_combination_add_elt): Likewise.
27140         (aff_combination_constant_multiple_p): Likewise.
27141         (get_inner_reference_aff): Likewise.
27142         (aff_comb_cannot_overlap_p): Likewise.
27143         (aff_combination_zero_p): Use wide-int interfaces.
27144         * tree.c: Include tree.h.
27145         (init_ttree): Use make_int_cst.
27146         (tree_code_size): Removed code for INTEGER_CST case.
27147         (tree_size): Add INTEGER_CST case.
27148         (make_node_stat): Update comment.
27149         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
27150         (build_int_cst_type): Use wide-int interfaces.
27151         (double_int_to_tree): Likewise.
27152         (double_int_fits_to_tree_p): Delete.
27153         (force_fit_type_double): Delete.
27154         (force_fit_type): New.
27155         (int_cst_hash_hash): Use wide-int interfaces.
27156         (int_cst_hash_eq): Likewise.
27157         (build_int_cst_wide): Delete.
27158         (wide_int_to_tree): New.
27159         (cache_integer_cst): Use wide-int interfaces.
27160         (build_low_bits_mask): Likewise.
27161         (cst_and_fits_in_hwi): Likewise.
27162         (real_value_from_int_cst): Likewise.
27163         (make_int_cst_stat): New.
27164         (integer_zerop): Use wide_int interfaces.
27165         (integer_onep): Likewise.
27166         (integer_all_onesp): Likewise.
27167         (integer_pow2p): Likewise.
27168         (integer_nonzerop): Likewise.
27169         (tree_log2): Likewise.
27170         (tree_floor_log2): Likewise.
27171         (tree_ctz): Likewise.
27172         (int_size_in_bytes): Likewise.
27173         (mem_ref_offset): Return an offset_int rather than a double_int.
27174         (build_type_attribute_qual_variant): Use wide_int interfaces.
27175         (type_hash_eq): Likewise
27176         (tree_int_cst_equal): Likewise.
27177         (tree_int_cst_lt): Delete.
27178         (tree_int_cst_compare): Likewise.
27179         (tree_fits_shwi_p): Use wide_int interfaces.
27180         (tree_fits_uhwi_p): Likewise.
27181         (tree_int_cst_sign_bit): Likewise.
27182         (tree_int_cst_sgn): Likewise.
27183         (tree_int_cst_min_precision): Take a signop rather than a bool.
27184         (simple_cst_equal): Use wide_int interfaces.
27185         (compare_tree_int): Likewise.
27186         (iterative_hash_expr): Likewise.
27187         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
27188         INT_CST_LT.
27189         (get_type_static_bounds): Use wide_int interfaces.
27190         (tree_int_cst_elt_check_failed): New.
27191         (build_common_tree_nodes): Reordered to set prec before filling in
27192         value.
27193         (int_cst_value): Check cst_and_fits_in_hwi.
27194         (widest_int_cst_value): Use wide_int interfaces.
27195         (upper_bound_in_type): Likewise.
27196         (lower_bound_in_type): Likewise.
27197         (num_ending_zeros): Likewise.
27198         (drop_tree_overflow): Likewise.
27199         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
27200         (gen_conditions_for_pow_cst_base): Likewise.
27201         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
27202         (group_case_labels_stmt): Use wide-int interfaces.
27203         (verify_gimple_assign_binary): Likewise.
27204         (print_loop): Likewise.
27205         * tree-chrec.c (tree_fold_binomial): Likewise.
27206         * tree-core.h (struct tree_base): Add int_length.
27207         (struct tree_int_cst): Change rep of value.
27208         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
27209         (dr_may_alias_p): Likewise.
27210         (max_stmt_executions_tree): Likewise.
27211         * tree.def (INTEGER_CST): Update comment.
27212         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
27213         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
27214         * tree-dump.c: Include wide-int.h and wide-int-print.h.
27215         (dequeue_and_dump): Use wide-int interfaces.
27216         * tree.h: Include wide-int.h.
27217         (NULL_TREE): Moved to earlier loc in file.
27218         (TREE_INT_CST_ELT_CHECK): New.
27219         (tree_int_cst_elt_check_failed): New.
27220         (TYPE_SIGN): New.
27221         (TREE_INT_CST): Delete.
27222         (TREE_INT_CST_LOW): Use wide-int interfaces.
27223         (TREE_INT_CST_HIGH): Delete.
27224         (TREE_INT_CST_NUNITS): New.
27225         (TREE_INT_CST_EXT_NUNITS): Likewise.
27226         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
27227         (TREE_INT_CST_ELT): Likewise.
27228         (INT_CST_LT): Delete.
27229         (tree_int_cst_elt_check): New (two forms).
27230         (type_code_size): Update comment.
27231         (make_int_cst_stat, make_int_cst): New.
27232         (tree_to_double_int): Delete.
27233         (double_int_fits_to_tree_p): Delete.
27234         (force_fit_type_double): Delete.
27235         (build_int_cstu): Replace with out-of-line function.
27236         (build_int_cst_wide): Delete.
27237         (tree_int_cst_lt): Define inline.
27238         (tree_int_cst_le): New.
27239         (tree_int_cst_compare): Define inline.
27240         (tree_int_cst_min_precision): Take a signop rather than a bool.
27241         (wi::int_traits <const_tree>): New.
27242         (wi::int_traits <tree>): New.
27243         (wi::extended_tree): New.
27244         (wi::int_traits <wi::extended_tree>): New.
27245         (wi::to_widest): New.
27246         (wi::to_offset): New.
27247         (wi::fits_to_tree_p): New.
27248         (wi::min_value): New.
27249         (wi::max_value): New.
27250         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
27251         (copy_tree_body_r): Likewise.
27252         * tree-object-size.c (compute_object_offset): Likewise.
27253         (addr_object_size): Likewise.
27254         * tree-predcom.c: Include wide-int-print.h.
27255         (struct dref_d): Change type of offset to widest_int.
27256         (dump_dref): Call wide-int printer.
27257         (aff_combination_dr_offset): Use wide-int interfaces.
27258         (determine_offset): Take a widest_int pointer rather than a
27259         double_int pointer.
27260         (split_data_refs_to_components): Use wide-int interfaces.
27261         (suitable_component_p): Likewise.
27262         (order_drefs): Likewise.
27263         (add_ref_to_chain): Likewise.
27264         (valid_initializer_p): Likewise.
27265         (determine_roots_comp): Likewise.
27266         * tree-pretty-print.c: Include wide-int-print.h.
27267         (dump_generic_node): Use wide-int interfaces.
27268         * tree-sra.c (sra_ipa_modify_expr): Likewise.
27269         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
27270         (move_fixed_address_to_symbol): Likewise.
27271         (move_hint_to_base): Likewise.
27272         (move_pointer_to_base): Likewise.
27273         (move_variant_to_index): Likewise.
27274         (most_expensive_mult_to_index): Likewise.
27275         (addr_to_parts): Likewise.
27276         (copy_ref_info): Likewise.
27277         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
27278         (indirect_refs_may_alias_p): Likewise.
27279         (stmt_kills_ref_p_1): Likewise.
27280         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
27281         * tree-ssa-ccp.c: Update comment at top of file.  Include
27282         wide-int-print.h.
27283         (struct prop_value_d): Change type of mask to widest_int.
27284         (extend_mask): New function.
27285         (dump_lattice_value): Use wide-int interfaces.
27286         (get_default_value): Likewise.
27287         (set_constant_value): Likewise.
27288         (set_value_varying): Likewise.
27289         (valid_lattice_transition): Likewise.
27290         (set_lattice_value): Likewise.
27291         (value_to_double_int): Delete.
27292         (value_to_wide_int): New.
27293         (get_value_from_alignment): Use wide-int interfaces.
27294         (get_value_for_expr): Likewise.
27295         (do_dbg_cnt): Likewise.
27296         (ccp_finalize): Likewise.
27297         (ccp_lattice_meet): Likewise.
27298         (bit_value_unop_1): Use widest_ints rather than double_ints.
27299         (bit_value_binop_1): Likewise.
27300         (bit_value_unop): Use wide-int interfaces.
27301         (bit_value_binop): Likewise.
27302         (bit_value_assume_aligned): Likewise.
27303         (evaluate_stmt): Likewise.
27304         (ccp_fold_stmt): Likewise.
27305         (visit_cond_stmt): Likewise.
27306         (ccp_visit_stmt): Likewise.
27307         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
27308         (constant_pointer_difference): Likewise.
27309         (associate_pointerplus): Likewise.
27310         (combine_conversions): Likewise.
27311         * tree-ssa-loop.h: Include wide-int.h.
27312         (struct tree_niter_desc): Change type of max to widest_int.
27313         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
27314         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
27315         (remove_redundant_iv_tests): Likewise.
27316         (canonicalize_loop_induction_variables): Likewise.
27317         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
27318         (constant_multiple_of): Take a widest_int pointer instead of
27319         a double_int pointer.
27320         (get_computation_aff): Use wide-int interfaces.
27321         (ptr_difference_cost): Likewise.
27322         (difference_cost): Likewise.
27323         (get_loop_invariant_expr_id): Likewise.
27324         (get_computation_cost_at): Likewise.
27325         (iv_elimination_compare_lt): Likewise.
27326         (may_eliminate_iv): Likewise.
27327         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
27328         instead of double_int.
27329         (max_loop_iterations): Likewise.
27330         (max_stmt_executions): Likewise.
27331         (estimated_stmt_executions): Likewise.
27332         * tree-ssa-loop-niter.c: Include wide-int-print.h.
27333         (split_to_var_and_offset): Use wide-int interfaces.
27334         (determine_value_range): Likewise.
27335         (bound_difference_of_offsetted_base): Likewise.
27336         (bounds_add): Take a widest_int instead of a double_int.
27337         (number_of_iterations_ne_max): Use wide-int interfaces.
27338         (number_of_iterations_ne): Likewise.
27339         (number_of_iterations_lt_to_ne): Likewise.
27340         (assert_loop_rolls_lt): Likewise.
27341         (number_of_iterations_lt): Likewise.
27342         (number_of_iterations_le): Likewise.
27343         (number_of_iterations_cond): Likewise.
27344         (number_of_iterations_exit): Likewise.
27345         (finite_loop_p): Likewise.
27346         (derive_constant_upper_bound_assign): Likewise.
27347         (derive_constant_upper_bound): Return a widest_int.
27348         (derive_constant_upper_bound_ops): Likewise.
27349         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
27350         (record_estimate): Take a widest_int rather than a double_int.
27351         (record_nonwrapping_iv): Use wide-int interfaces.
27352         (double_int_cmp): Delete.
27353         (wide_int_cmp): New.
27354         (bound_index): Take a widest_int rather than a double_int.
27355         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
27356         (maybe_lower_iteration_bound): Likewise.
27357         (estimate_numbers_of_iterations_loop): Likewise.
27358         (estimated_loop_iterations): Take a widest_int pointer than than
27359         a double_int pointer.
27360         (estimated_loop_iterations_int): Use wide-int interfaces.
27361         (max_loop_iterations): Take a widest_int pointer than than
27362         a double_int pointer.
27363         (max_loop_iterations_int): Use wide-int interfaces.
27364         (max_stmt_executions): Take a widest_int pointer than than
27365         a double_int pointer.
27366         (estimated_stmt_executions): Likewise.
27367         (n_of_executions_at_most): Use wide-int interfaces.
27368         (scev_probably_wraps_p): Likewise.
27369         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
27370         to real_to_integer.
27371         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
27372         interfaces.
27373         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
27374         double_ints.  Adjust for trailing_wide_ints <3> representation.
27375         (set_nonzero_bits): Likewise.
27376         (get_range_info): Return wide_ints rather than double_ints.
27377         Adjust for trailing_wide_ints <3> representation.
27378         (get_nonzero_bits): Likewise.
27379         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
27380         representation.
27381         * tree-ssanames.h (struct range_info_def): Replace min, max and
27382         nonzero_bits with a trailing_wide_ints <3>.
27383         (set_range_info): Use wide_int_refs rather than double_ints.
27384         (set_nonzero_bits): Likewise.
27385         (get_range_info): Return wide_ints rather than double_ints.
27386         (get_nonzero_bits): Likewise.
27387         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
27388         * tree-ssa-pre.c (phi_translate_1): Likewise.
27389         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
27390         (acceptable_pow_call): Likewise.
27391         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
27392         interfaces.
27393         (vn_reference_fold_indirect): Likewise.
27394         (vn_reference_maybe_forwprop_address): Likewise.
27395         (valueize_refs_1): Likewise.
27396         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
27397         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
27398         tree_int_cst_lt and tree_int_cst_le.
27399         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
27400         interfaces.
27401         (streamer_alloc_tree): Likewise.
27402         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
27403         (streamer_write_tree_header): Likewise.
27404         (streamer_write_integer_cst): Likewise.
27405         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
27406         (build_constructors): Likewise.
27407         (array_value_type): Likewise.
27408         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
27409         (vect_check_gather): Likewise.
27410         * tree-vect-generic.c (build_replicated_const): Likewise.
27411         (expand_vector_divmod): Likewise.
27412         * tree-vect-loop.c (vect_transform_loop): Likewise.
27413         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
27414         (vect_do_peeling_for_alignment): Likewise.
27415         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
27416         * tree-vrp.c: Include wide-int.h.
27417         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
27418         (extract_range_from_assert): Use wide-int interfaces.
27419         (vrp_int_const_binop): Likewise.
27420         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
27421         double_int pointers.
27422         (ranges_from_anti_range): Use wide-int interfaces.
27423         (quad_int_cmp): Delete.
27424         (quad_int_pair_sort): Likewise.
27425         (extract_range_from_binary_expr_1): Use wide-int interfaces.
27426         (extract_range_from_unary_expr_1): Likewise.
27427         (adjust_range_with_scev): Likewise.
27428         (masked_increment): Take and return wide_ints rather than double_ints.
27429         (register_edge_assert_for_2): Use wide-int interfaces.
27430         (check_array_ref): Likewise.
27431         (search_for_addr_array): Likewise.
27432         (maybe_set_nonzero_bits): Likewise.
27433         (union_ranges): Pass an integer of the correct type instead of
27434         using integer_one_node.
27435         (intersect_ranges): Likewise.
27436         (simplify_truth_ops_using_ranges): Likewise.
27437         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
27438         (range_fits_type_p): Likewise.
27439         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
27440         a bool.
27441         (simplify_conversion_using_ranges): Use wide-int interfaces.
27442         (simplify_float_conversion_using_ranges): Likewise.
27443         (vrp_finalize): Likewise.
27444         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
27445         (gimple_stringops_transform): Likewise.
27446         * varasm.c (decode_addr_const): Likewise.
27447         (const_hash_1): Likewise.
27448         (const_rtx_hash_1): Likewise
27449         (output_constant): Likewise.
27450         (array_size_for_constructor): Likewise.
27451         (output_constructor_regular_field): Likewise.
27452         (output_constructor_bitfield): Likewise.
27453         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
27454         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
27455         GENERATOR_FILEs.
27456         * gencheck.c: Define BITS_PER_UNIT.
27457         * wide-int.cc: New.
27458         * wide-int.h: New.
27459         * wide-int-print.cc: New.
27460         * wide-int-print.h: New.
27461
27462 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27463
27464         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
27465
27466 2014-05-06  Richard Biener  <rguenther@suse.de>
27467
27468         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
27469         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
27470         (TODO_verify_all): Adjust.
27471         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
27472         TODO_verify_stmts and TODO_verify_rtl_sharing.
27473         * bb-reorder.c: Likewise.
27474         * cfgexpand.c: Likewise.
27475         * cprop.c: Likewise.
27476         * cse.c: Likewise.
27477         * function.c: Likewise.
27478         * fwprop.c: Likewise.
27479         * gcse.c: Likewise.
27480         * gimple-ssa-isolate-paths.c: Likewise.
27481         * gimple-ssa-strength-reduction.c: Likewise.
27482         * ipa-split.c: Likewise.
27483         * loop-init.c: Likewise.
27484         * loop-unroll.c: Likewise.
27485         * lower-subreg.c: Likewise.
27486         * modulo-sched.c: Likewise.
27487         * postreload-gcse.c: Likewise.
27488         * predict.c: Likewise.
27489         * recog.c: Likewise.
27490         * sched-rgn.c: Likewise.
27491         * store-motion.c: Likewise.
27492         * tracer.c: Likewise.
27493         * trans-mem.c: Likewise.
27494         * tree-call-cdce.c: Likewise.
27495         * tree-cfg.c: Likewise.
27496         * tree-cfgcleanup.c: Likewise.
27497         * tree-complex.c: Likewise.
27498         * tree-eh.c: Likewise.
27499         * tree-emutls.c: Likewise.
27500         * tree-if-conv.c: Likewise.
27501         * tree-into-ssa.c: Likewise.
27502         * tree-loop-distribution.c: Likewise.
27503         * tree-object-size.c: Likewise.
27504         * tree-parloops.c: Likewise.
27505         * tree-pass.h: Likewise.
27506         * tree-sra.c: Likewise.
27507         * tree-ssa-ccp.c: Likewise.
27508         * tree-ssa-copy.c: Likewise.
27509         * tree-ssa-copyrename.c: Likewise.
27510         * tree-ssa-dce.c: Likewise.
27511         * tree-ssa-dom.c: Likewise.
27512         * tree-ssa-dse.c: Likewise.
27513         * tree-ssa-forwprop.c: Likewise.
27514         * tree-ssa-ifcombine.c: Likewise.
27515         * tree-ssa-loop-ch.c: Likewise.
27516         * tree-ssa-loop-ivcanon.c: Likewise.
27517         * tree-ssa-loop.c: Likewise.
27518         * tree-ssa-math-opts.c: Likewise.
27519         * tree-ssa-phiopt.c: Likewise.
27520         * tree-ssa-phiprop.c: Likewise.
27521         * tree-ssa-pre.c: Likewise.
27522         * tree-ssa-reassoc.c: Likewise.
27523         * tree-ssa-sink.c: Likewise.
27524         * tree-ssa-strlen.c: Likewise.
27525         * tree-ssa-tail-merge.c: Likewise.
27526         * tree-ssa-uncprop.c: Likewise.
27527         * tree-switch-conversion.c: Likewise.
27528         * tree-tailcall.c: Likewise.
27529         * tree-vect-generic.c: Likewise.
27530         * tree-vectorizer.c: Likewise.
27531         * tree-vrp.c: Likewise.
27532         * tsan.c: Likewise.
27533         * var-tracking.c: Likewise.
27534         * bt-load.c: Likewise.
27535         * cfgcleanup.c: Likewise.
27536         * combine-stack-adj.c: Likewise.
27537         * combine.c: Likewise.
27538         * compare-elim.c: Likewise.
27539         * config/epiphany/resolve-sw-modes.c: Likewise.
27540         * config/i386/i386.c: Likewise.
27541         * config/mips/mips.c: Likewise.
27542         * config/s390/s390.c: Likewise.
27543         * config/sh/sh_treg_combine.cc: Likewise.
27544         * config/sparc/sparc.c: Likewise.
27545         * dce.c: Likewise.
27546         * dse.c: Likewise.
27547         * final.c: Likewise.
27548         * ifcvt.c: Likewise.
27549         * mode-switching.c: Likewise.
27550         * passes.c: Likewise.
27551         * postreload.c: Likewise.
27552         * ree.c: Likewise.
27553         * reg-stack.c: Likewise.
27554         * regcprop.c: Likewise.
27555         * regrename.c: Likewise.
27556         * web.c: Likewise.
27557
27558 2014-05-06  Richard Biener  <rguenther@suse.de>
27559
27560         PR middle-end/61070
27561         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
27562         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
27563
27564 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
27565
27566         PR ipa/60965
27567         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
27568
27569 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
27570             Tom de Vries  <tom@codesourcery.com>
27571
27572         * target.def (call_fusage_contains_non_callee_clobbers): New
27573         DEFHOOKPOD.
27574         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
27575         Hooks to @menu.
27576         (@node Miscellaneous Register Hooks): New node.
27577         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
27578         * doc/tm.texi: Regenerate.
27579
27580 2014-05-05  Marek Polacek  <polacek@redhat.com>
27581
27582         PR driver/61065
27583         * opts.c (common_handle_option): Call error_at instead of warning_at.
27584
27585 2014-05-05  Richard Biener  <rguenther@suse.de>
27586
27587         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
27588         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
27589         under the TODO_verify_il umbrella.
27590
27591 2014-05-05  Richard Biener  <rguenther@suse.de>
27592
27593         * passes.c (execute_function_todo): Move TODO_verify_flow under
27594         the TODO_verify_ul umbrella.
27595
27596 2014-05-05  Richard Biener  <rguenther@suse.de>
27597
27598         PR middle-end/61010
27599         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
27600         X & CST away from a CST that is the mask of a mode.
27601
27602 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27603
27604         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
27605         int argument to enum machine_mode.
27606         (picochip_class_max_nregs): Ditto.
27607         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
27608         (picochip_class_max_nregs): Ditto.
27609
27610 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27611
27612         * target.def: Add new target hook.
27613         * doc/tm.texi: Regenerate.
27614         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
27615         * targhooks.c (default_keep_leaf_when_profiled): New function.
27616
27617         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
27618         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
27619
27620 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
27621
27622         PR tree-optimization/60363
27623         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
27624         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
27625         (update_destination_phis): New parameter.
27626         (create_edge_and_update_destination_phis): Ditto.
27627         (ssa_fix_duplicate_block_edges): Pass new arguments.
27628         (thread_single_edge): Ditto.
27629
27630 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
27631
27632         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
27633         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
27634         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
27635         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
27636         Use RS6000_BTM_HARD_FLOAT.
27637         (BU_MISC_2): Likewise.
27638         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
27639         RS6000_BTM_HARD_FLOAT.
27640         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
27641         is explicitly used.
27642         (rs6000_invalid_builtin): Add hard floating builtin support.
27643         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
27644         hard float builtins.
27645         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
27646
27647 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27648
27649         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
27650         Add missing function* argument.
27651
27652 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
27653
27654         * lra-constraints.c (valid_address_p): Move earlier in file.
27655         Add a constraint argument to the address_info version.
27656         (satisfies_memory_constraint_p): New function.
27657         (satisfies_address_constraint_p): Likewise.
27658         (process_alt_operands, curr_insn_transform): Use them.
27659         (process_address): Pass the constraint to valid_address_p when
27660         checking address operands.
27661
27662 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
27663
27664         * config/mips/mips.c (mips_isa_rev): New variable.
27665         (mips_set_architecture): Set it.
27666         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
27667         from mips_isa_rev.
27668         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
27669         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
27670         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
27671         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
27672         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
27673         conditions in terms of mips_isa_rev.
27674         (mips_isa_rev): Declare.
27675
27676 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27677
27678         * config/sh/sh-mem.cc: Use tabs instead of spaces.
27679         (prob_unlikely, prob_likely): Make variables const.
27680
27681 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
27682
27683         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
27684
27685 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27686
27687         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
27688
27689 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27690
27691         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
27692         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
27693         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
27694         functions.
27695         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
27696         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
27697         sh_pass_in_reg_p.
27698         Replace usage of ROUND_REG with sh_round_reg.
27699         Use CEIL instead of ROUND_ADVANCE.
27700
27701 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
27702
27703         PR target/61026
27704         * config/sh/sh.c: Include stdlib headers before everything else.
27705
27706 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
27707
27708         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
27709         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
27710         (gimplify_adjust_omp_clauses): Simd region is never
27711         directly nested in combined parallel.  Instead, for linear
27712         with copyin/copyout, if in combined for simd loop, make decl
27713         firstprivate/lastprivate on OMP_FOR.
27714         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
27715         expand_omp_for_static_chunk): When setting endvar, also set
27716         fd->loop.v to the same value.
27717
27718 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
27719
27720         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
27721
27722 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
27723
27724         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
27725         expression.
27726
27727 2014-05-02  Marek Polacek  <polacek@redhat.com>
27728
27729         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
27730
27731 2014-05-02  Kito Cheng  <kito@0xlab.org>
27732
27733         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
27734         to a C expression marco.
27735         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
27736         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
27737         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
27738         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
27739         HONOR_REG_ALLOC_ORDER.
27740         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
27741
27742 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27743
27744         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
27745
27746 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
27747
27748         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
27749
27750 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
27751
27752         * tree-if-conv.c (is_cond_scalar_reduction): New function.
27753         (convert_scalar_cond_reduction): Likewise.
27754         (predicate_scalar_phi): Add recognition and transformation
27755         of simple conditioanl reduction to be vectorizable.
27756
27757 2014-05-01  Marek Polacek  <polacek@redhat.com>
27758
27759         PR c/43245
27760         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
27761
27762 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
27763
27764         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
27765         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
27766         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
27767         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
27768         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
27769         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
27770         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
27771         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
27772
27773 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
27774
27775         * config/arc/arc.opt (mlra): Move comment above option name
27776         to avoid mis-parsing as language options.
27777
27778 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27779
27780         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
27781         * config/sol2.h: ... here.
27782         * config/sol2-10.h: Remove.
27783
27784         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
27785         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
27786         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
27787         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
27788         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
27789         * config/sol2.h: ... here.
27790         (SECTION_NAME_FORMAT): Don't redefine.
27791         (STARTFILE_ARCH32_SPEC): Rename to ...
27792         (STARTFILE_ARCH_SPEC): ... this.
27793         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
27794         * config/sparc/sol2.h: ... here.
27795         (SECTION_NAME_FORMAT): Don't undef.
27796         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
27797         (SUBTARGET_EXTRA_SPECS): Remove.
27798         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
27799
27800         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
27801         (MD_STARTFILE_PREFIX): Remove.
27802         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
27803         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
27804         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
27805         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
27806         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
27807         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
27808         * config/i386/sol2.h: ... here.
27809         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
27810         * config/i386/sol2-bi.h: Remove.
27811         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
27812         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
27813
27814         * config/i386/t-sol2-64: Rename to ...
27815         * config/i386/t-sol2: ... this.
27816         * config/sparc/t-sol2-64: Rename to ...
27817         * config/sparc/t-sol2: ... this.
27818
27819         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
27820         sol2_tm_file_head, sol2_tm_file_tail.
27821         Include ${cpu_type}/sol2.h before sol2.h.
27822         Remove sol2-10.h.
27823         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
27824         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
27825         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
27826         Reflect i386/t-sol2-64 renaming.
27827         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
27828         Reflect sparc/t-sol2-64 renaming.
27829
27830 2014-04-30  Richard Biener  <rguenther@suse.de>
27831
27832         * passes.c (execute_function_todo): Move TODO_verify_stmts
27833         and TODO_verify_ssa under the TODO_verify_il umbrella.
27834         * tree-ssa.h (verify_ssa): Adjust prototype.
27835         * tree-ssa.c (verify_ssa): Add parameter to tell whether
27836         we should verify SSA operands.
27837         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
27838         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
27839         whether we should verify whether not throwing stmts have EH info.
27840         * graphite-scop-detection.c (create_sese_edges): Adjust.
27841         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
27842         * tree-eh.c (lower_try_finally_switch): Do not add the
27843         default case label twice.
27844
27845 2014-04-30  Marek Polacek  <polacek@redhat.com>
27846
27847         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
27848         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
27849         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
27850         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
27851
27852 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
27853
27854         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
27855         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
27856         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
27857         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
27858         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
27859         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
27860         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
27861         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
27862
27863 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
27864
27865         * tree-cfg.c (dump_function_to_file): Dump the return type of
27866         functions, in a line to itself before the function body, mimicking
27867         the layout of a C function.
27868
27869 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
27870
27871         PR tree-optimization/60971
27872         * tree-tailcall.c (process_assignment): Reject conversions which
27873         reduce precision.
27874
27875 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
27876
27877         * calls.c (initialize_argument_information): Always treat
27878         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
27879         (expand_call): Likewise.
27880         (emit_library_call_calue_1): Likewise.
27881         * expr.c (PUSH_ARGS_REVERSED): Do not define.
27882         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
27883         code accordingly.
27884
27885 2014-04-29  Nick Clifton  <nickc@redhat.com>
27886
27887         * config/msp430/msp430.md (umulsidi): Fix typo.
27888         (mulhisi3): Enable even inside interrupt handlers.
27889         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
27890         bigger return address pushed in large mode.
27891
27892 2014-04-29  Nick Clifton  <nickc@redhat.com>
27893
27894         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
27895         (arc_init_reg_tables): Use a machine_mode enum to iterate over
27896         available modes.
27897         * config/m32r/m32r.c (init_reg_tables): Likewise.
27898         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
27899         enum to hold the modes.
27900
27901 2014-04-29  Richard Biener  <rguenther@suse.de>
27902
27903         * dominance.c (free_dominance_info): Add overload with
27904         function parameter.
27905         (dom_info_state): Likewise.
27906         (dom_info_available_p): Likewise.
27907         * basic-block.h (free_dominance_info, dom_info_state,
27908         dom_info_available_p): Declare overloads.
27909         * passes.c (execute_function_todo): Verify that verifiers
27910         don't change dominator info state.  Drop dominator info
27911         for IPA pass invocations.
27912         * cgraph.c (release_function_body): Restore asserts that
27913         dominator information is released.
27914
27915 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
27916
27917         * doc/invoke.texi: Fix typo.
27918         * tree-vrp.c: Fix typos.
27919         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
27920
27921 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
27922
27923         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
27924
27925 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
27926
27927         * config/aarch64/aarch64-builtins.c
27928         (aarch64_types_storestruct_lane_qualifiers): New.
27929         (TYPES_STORESTRUCT_LANE): Likewise.
27930         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
27931         (st3_lane): Likewise.
27932         (st4_lane): Likewise.
27933         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
27934         (vec_store_lanesci_lane<mode>): Likewise.
27935         (vec_store_lanesxi_lane<mode>): Likewise.
27936         (aarch64_st2_lane<VQ:mode>): Likewise.
27937         (aarch64_st3_lane<VQ:mode>): Likewise.
27938         (aarch64_st4_lane<VQ:mode>): Likewise.
27939         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
27940         * config/aarch64/arm_neon.h
27941         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
27942         use new macro arguments.
27943         (__ST3_LANE_FUNC): Likewise.
27944         (__ST4_LANE_FUNC): Likewise.
27945         * config/aarch64/iterators.md (V_TWO_ELEM): New.
27946         (V_THREE_ELEM): Likewise.
27947         (V_FOUR_ELEM): Likewise.
27948
27949 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
27950
27951         * doc/gimple.texi: Replace the description of the now-defunct
27952         union gimple_statement_d with a diagram showing the
27953         gimple_statement_base class hierarchy and its relationships to
27954         the GSS_ and GIMPLE_ enums.
27955
27956 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
27957
27958         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
27959         * config/aarch64/aarch64.c
27960         (aarch64_cannot_change_mode_class): Weaken conditions.
27961         (aarch64_modes_tieable_p): New.
27962         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
27963
27964 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
27965
27966         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
27967         (loadsync_<mode>): Change mode.
27968         (load_quadpti, store_quadpti): New.
27969         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
27970         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
27971
27972 2014-04-28  Martin Jambor  <mjambor@suse.cz>
27973
27974         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
27975         same alias type as the original statement.
27976         (subreplacement_assignment_data): New type.
27977         (handle_unscalarized_data_in_subtree): New type of parameter,
27978         generate new memory accesses with same alias type as the original
27979         statement.
27980         (load_assign_lhs_subreplacements): Likewise.
27981         (sra_modify_constructor_assign): Generate new memory accesses with
27982         same alias type as the original statement.
27983
27984 2014-04-28  Richard Biener  <rguenther@suse.de>
27985
27986         * tree-pass.h (TODO_verify_il): Define.
27987         (TODO_verify_all): Complete properly.
27988         * passes.c (execute_function_todo): Move existing loop-closed
27989         SSA verification under TODO_verify_il.
27990         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
27991         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
27992         Fix tree sharing issue.
27993
27994 2014-04-28  Richard Biener  <rguenther@suse.de>
27995
27996         PR middle-end/60092
27997         * builtins.def (DEF_C11_BUILTIN): Add.
27998         (BUILT_IN_ALIGNED_ALLOC): Likewise.
27999         * coretypes.h (enum function_class): Add function_c11_misc.
28000         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
28001         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
28002         (call_may_clobber_ref_p_1): Likewise.
28003         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
28004         (mark_all_reaching_defs_necessary_1): Likewise.
28005         (propagate_necessity): Likewise.
28006         (eliminate_unnecessary_stmts): Likewise.
28007         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
28008
28009 2014-04-28  Richard Biener  <rguenther@suse.de>
28010
28011         * tree-vrp.c (vrp_var_may_overflow): Remove.
28012         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
28013         with overflow immediately bump to one before that value and
28014         let iteration figure out overflow status.
28015
28016 2014-04-28  Richard Biener  <rguenther@suse.de>
28017
28018         * configure.ac: Do valgrind header checks unconditionally.
28019         Add --enable-valgrind-annotations.
28020         * system.h: Guard valgrind header inclusion with
28021         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
28022         * alloc-pool.c (pool_alloc, pool_free): Use
28023         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
28024         to guard possibly dead code.
28025         * config.in: Regenerated.
28026         * configure: Likewise.
28027
28028 2014-04-28  Jeff Law  <law@redhat.com>
28029
28030         PR tree-optimization/60902
28031         * tree-ssa-threadedge.c
28032         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
28033         over real defs when invalidating outputs from statements that do not
28034         produce useful outputs for threading.
28035
28036 2014-04-28  Richard Biener  <rguenther@suse.de>
28037
28038         PR tree-optimization/60979
28039         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
28040         SCOPs that end in a block with a successor with abnormal
28041         predecessors.
28042
28043 2014-04-28  Richard Biener  <rguenther@suse.de>
28044
28045         * tree-pass.h (execute_pass_list): Adjust prototype.
28046         * passes.c (pass_manager::execute_early_local_passes): Adjust.
28047         (do_per_function): Change callback signature, push all actual
28048         work to the callbals.
28049         (do_per_function_toporder): Likewise.
28050         (execute_function_dump): Adjust.
28051         (execute_function_todo): Likewise.
28052         (clear_last_verified): Likewise.
28053         (verify_curr_properties): Likewise.
28054         (update_properties_after_pass): Likewise.
28055         (execute_pass_list_1): Split out from ...
28056         (execute_pass_list): ... here.  Adjust.
28057         (execute_ipa_pass_list): Likewise.
28058         * cgraphunit.c (cgraph_add_new_function): Adjust.
28059         (analyze_function): Likewise.
28060         (expand_function): Likewise.
28061         * cgraph.c (release_function_body): Free dominance info
28062         here instead of asserting it was magically freed elsewhere.
28063
28064 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
28065
28066         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
28067         * configure: Regenerate.
28068         * config/sparc/sparc.opt (muser-mode): New option.
28069         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
28070         for LEON3.
28071         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
28072         * doc/invoke.texi (SPARC options): Document -muser-mode.
28073
28074 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
28075
28076         * cselib.c (find_slot_memmode): Delete.
28077         (cselib_hasher): Change compare_type to a struct.
28078         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
28079         constants.
28080         (preserve_constants_and_equivs): Adjust for new compare_type.
28081         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
28082         (wrap_constant): Delete.
28083         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
28084
28085 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
28086
28087         * doc/install.texi (Building with profile feedback): Remove
28088         outdated sentence.
28089
28090 2014-04-26  Tom de Vries  <tom@codesourcery.com>
28091
28092         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
28093         array accesses.
28094
28095 2014-04-25  Cary Coutant  <ccoutant@google.com>
28096
28097         PR debug/60929
28098         * dwarf2out.c (should_move_die_to_comdat): A type definition
28099         can contain a subprogram definition, but don't move it to a
28100         comdat unit.
28101         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
28102         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
28103         from original DIE.
28104         (clone_tree_hash): Rename to...
28105         (clone_tree_partial): ...this; change callers.  Copy
28106         DW_TAG_subprogram DIEs as declarations.
28107         (copy_decls_walk): Don't copy children of a declaration into a
28108         type unit.
28109
28110 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
28111
28112         PR target/60969
28113         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
28114         alternative 12.
28115
28116 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
28117
28118         * config/arm/predicates.md (call_insn_operand): Add long_call check.
28119         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
28120         reg for long_call.
28121         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
28122         restriction.
28123
28124 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28125
28126         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
28127
28128 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28129
28130         PR tree-optimization/60930
28131         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
28132         creating a multiply candidate by folding two constant
28133         multiplicands when the result overflows.
28134
28135 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
28136
28137         PR tree-optimization/60960
28138         * tree-vect-generic.c (expand_vector_operation): Only call
28139         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
28140
28141 2014-04-25  Tom de Vries  <tom@codesourcery.com>
28142
28143         * expr.c (clobber_reg_mode): New function.
28144         * expr.h (clobber_reg): New function.
28145
28146 2014-04-25  Tom de Vries  <tom@codesourcery.com>
28147
28148         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
28149         clobbers.
28150
28151 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
28152             Tom de Vries  <tom@codesourcery.com>
28153
28154         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
28155         handle.
28156         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
28157         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
28158         new argument to find_all_hard_reg_sets call.
28159
28160 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28161
28162         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
28163         Use HOST_WIDE_INT_C for mask literal.
28164         (aarch_rev16_shleft_mask_imm_p): Likewise.
28165
28166 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
28167
28168         PR target/60941
28169         * config/sparc/sparc.md (ashlsi3_extend): Delete.
28170
28171 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
28172
28173         PR preprocessor/56540
28174         * config/i386/i386-c.c (ix86_target_macros): Define
28175         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
28176
28177 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28178
28179         * configure.ac (tga_func): Remove.
28180         (LIB_TLS_SPEC): Remove.
28181         * configure: Regenerate.
28182         * config.in: Regenerate.
28183         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
28184
28185 2014-04-25  Richard Biener  <rguenther@suse.de>
28186
28187         PR ipa/60912
28188         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
28189         call stmt use/clobber sets during stmt walk instead of
28190         walking the possibly incomplete set of caller edges.
28191
28192 2014-04-25  Richard Biener  <rguenther@suse.de>
28193
28194         PR ipa/60911
28195         * passes.c (apply_ipa_transforms): Inline into only caller ...
28196         (execute_one_pass): ... here.  Properly bring in function
28197         bodies for nodes we want to apply IPA transforms to.
28198
28199 2014-04-24  Cong Hou  <congh@google.com>
28200
28201         PR tree-optimization/60896
28202         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
28203         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
28204         (vect_mark_pattern_stmts): Set the def type of all statements in
28205         PATTERN_DEF_SEQ as vect_internal_def.
28206
28207 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
28208
28209         * doc/extend.texi (PowerPC Built-in Functions): Document new
28210         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
28211         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
28212
28213         * config/rs6000/predicates.md (const_0_to_3_operand): New
28214         predicate to match 0..3 integer constants.
28215
28216         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
28217         to support adding miscellaneous builtin functions.
28218         (BU_DFP_MISC_2): Likewise.
28219         (BU_P7_MISC_1): Likewise.
28220         (BU_P7_MISC_2): Likewise.
28221         (BU_P8V_MISC_3): Likewise.
28222         (BU_MISC_1): Likewise.
28223         (BU_MISC_2): Likewise.
28224         (DIVWE): Add extended divide builtin functions.
28225         (DIVWEO): Likewise.
28226         (DIVWEU): Likewise.
28227         (DIVWEUO): Likewise.
28228         (DIVDE): Likewise.
28229         (DIVDEO): Likewise.
28230         (DIVDEU): Likewise.
28231         (DIVDEUO): Likewise.
28232         (DXEX): Add decimal floating-point builtin functions.
28233         (DXEXQ): Likewise.
28234         (DDEDPD): Likewise.
28235         (DDEDPDQ): Likewise.
28236         (DENBCD): Likewise.
28237         (DENBCDQ): Likewise.
28238         (DIEX): Likewise.
28239         (DIEXQ): Likewise.
28240         (DSCLI): Likewise.
28241         (DSCLIQ): Likewise.
28242         (DSCRI): Likewise.
28243         (DSCRIQ): Likewise.
28244         (CDTBCD): Add new BCD builtin functions.
28245         (CBCDTD): Likewise.
28246         (ADDG6S): Likewise.
28247         (BCDADD): Likewise.
28248         (BCDADD_LT): Likewise.
28249         (BCDADD_EQ): Likewise.
28250         (BCDADD_GT): Likewise.
28251         (BCDADD_OV): Likewise.
28252         (BCDSUB): Likewise.
28253         (BCDSUB_LT): Likewise.
28254         (BCDSUB_EQ): Likewise.
28255         (BCDSUB_GT): Likewise.
28256         (BCDSUB_OV): Likewise.
28257         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
28258         (UNPACK_TD): Likewise.
28259         (PACK_TF): Likewise.
28260         (UNPACK_TF): Likewise.
28261         (UNPACK_TF_0): Likewise.
28262         (UNPACK_TF_1): Likewise.
28263         (PACK_V1TI): Likewise.
28264         (UNPACK_V1TI): Likewise.
28265
28266         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
28267         support for decimal floating point builtin functions.
28268         (rs6000_expand_ternop_builtin): Add checks for the new builtin
28269         functions that take constant arguments.
28270         (rs6000_invalid_builtin): Add decimal floating point builtin support.
28271         (rs6000_init_builtins): Setup long double, _Decimal64, and
28272         _Decimal128 types for new builtin functions.
28273         (builtin_function_type): Set the unsigned flags appropriately for
28274         the new builtin functions.
28275         (rs6000_opt_masks): Add support for decimal floating point builtin
28276         functions.
28277
28278         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
28279         floating point builtin functions.
28280         (RS6000_BTM_COMMON): Likewise.
28281         (RS6000_BTI_long_double): Likewise.
28282         (RS6000_BTI_dfloat64): Likewise.
28283         (RS6000_BTI_dfloat128): Likewise.
28284         (long_double_type_internal_node): Likewise.
28285         (dfloat64_type_internal_node): Likewise.
28286         (dfloat128_type_internal_node): Likewise.
28287
28288         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
28289         2.07 bcd arithmetic instructions.
28290         (UNSPEC_BCDSUB): Likewise.
28291         (UNSPEC_BCD_OVERFLOW): Likewise.
28292         (UNSPEC_BCD_ADD_SUB): Likewise.
28293         (bcd_add_sub): Likewise.
28294         (BCD_TEST): Likewise.
28295         (bcd<bcd_add_sub>): Likewise.
28296         (bcd<bcd_add_sub>_test): Likewise.
28297         (bcd<bcd_add_sub>_test2): Likewise.
28298         (bcd<bcd_add_sub>_<code>): Likewise.
28299         (peephole2 for combined bcd ops): Likewise.
28300
28301         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
28302         decimal floating point builtin functions.
28303         (UNSPEC_DENBCD): Likewise.
28304         (UNSPEC_DXEX): Likewise.
28305         (UNSPEC_DIEX): Likewise.
28306         (UNSPEC_DSCLI): Likewise.
28307         (UNSPEC_DSCRI): Likewise.
28308         (D64_D128): Likewise.
28309         (dfp_suffix): Likewise.
28310         (dfp_ddedpd_<mode>): Likewise.
28311         (dfp_denbcd_<mode>): Likewise.
28312         (dfp_dxex_<mode>): Likewise.
28313         (dfp_diex_<mode>): Likewise.
28314         (dfp_dscli_<mode>): Likewise.
28315         (dfp_dscri_<mode>): Likewise.
28316
28317         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
28318         builtin functions.
28319         (UNSPEC_CDTBCD): Likewise.
28320         (UNSPEC_CBCDTD): Likewise.
28321         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
28322         (UNSPEC_DIVEO): Likewise.
28323         (UNSPEC_DIVEU): Likewise.
28324         (UNSPEC_DIVEUO): Likewise.
28325         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
28326         pack/unpack 128-bit types.
28327         (UNSPEC_PACK_128BIT): Likewise.
28328         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
28329         (udiv<mode>3): Use idiv_ldiv mode attribute.
28330         (div<mode>3): Likewise.
28331         (addg6s): Add new BCD builtin functions.
28332         (cdtbcd): Likewise.
28333         (cbcdtd): Likewise.
28334         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
28335         (div_extend): Likewise.
28336         (div<div_extend>_<mode>"): Likewise.
28337         (FP128_64): Add support for new builtin functions to pack/unpack
28338         128-bit types.
28339         (unpack<mode>): Likewise.
28340         (unpacktf_0): Likewise.
28341         (unpacktf_1): Likewise.
28342         (unpack<mode>_dm): Likewise.
28343         (unpack<mode>_nodm): Likewise.
28344         (pack<mode>): Likewise.
28345         (unpackv1ti): Likewise.
28346         (packv1ti): Likewise.
28347
28348 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
28349
28350         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
28351         is disabled.
28352
28353 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
28354
28355         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
28356         * gimplify.c (omp_is_private): Change last argument's type to int.
28357         Only diagnose lastprivate if the simd argument is 1, only diagnose
28358         linear if the simd argument is 2.
28359         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
28360         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
28361         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
28362         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
28363         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
28364         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
28365         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
28366         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
28367         * tree-nested.c (convert_nonlocal_omp_clauses,
28368         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
28369
28370 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
28371
28372         PR target/60822
28373         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
28374         operand 1.
28375
28376 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
28377
28378         * flag-types.h (enum ivar_visibility): Add.
28379
28380 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
28381
28382         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
28383         function * argument.
28384
28385 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
28386
28387         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
28388
28389 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
28390             Tom de Vries  <tom@codesourcery.com>
28391
28392         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
28393         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
28394         reg-note.
28395         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
28396         * emit-rtl.c (try_split): Same.
28397
28398 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
28399             Tom de Vries  <tom@codesourcery.com>
28400
28401         * common.opt (fuse-caller-save): New option.
28402
28403 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
28404
28405         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
28406         elements for big-endian.
28407
28408 2014-04-24  Richard Biener  <rguenther@suse.de>
28409
28410         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
28411         during TER and instead use the sepops interface for expanding
28412         non-GIMPLE_SINGLE_RHS.
28413
28414 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28415
28416         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
28417         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
28418
28419 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28420
28421         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
28422         assembler 64-bit option.
28423         * configure: Regenerate.
28424
28425 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28426
28427         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
28428         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
28429         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
28430         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
28431         (TARGET_CRYPTO): Take TARGET_SIMD into account.
28432
28433 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28434
28435         * config/aarch64/aarch64-builtins.c
28436         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
28437         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
28438         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
28439         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
28440         builtins.
28441         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
28442         (Vrevsuff): New mode attribute.
28443
28444 2014-04-24  Terry Guo  <terry.guo@arm.com>
28445
28446         * config/arm/arm.h (machine_function): Define variable
28447         after_arm_reorg here.
28448         * config/arm/arm.c (after_arm_reorg): Remove the definition.
28449         (arm_split_constant): Update the way to access variable
28450         after_arm_reorg.
28451         (arm_reorg): Ditto.
28452         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
28453
28454 2014-04-23  Tom de Vries  <tom@codesourcery.com>
28455
28456         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
28457
28458 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
28459
28460         * is-a.h: Update comments to reflect the following changes to the
28461         "pointerness" of the API, making the template parameter match the
28462         return type, allowing use of is-a.h with typedefs of pointers.
28463         (is_a_helper::cast): Return a T rather then a pointer to a T, so
28464         that the return type matches the parameter to the is_a_helper.
28465         (as_a): Likewise.
28466         (dyn_cast): Likewise.
28467
28468         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
28469         pointer from the is-a.h API.
28470
28471         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
28472         (is_a_helper <cgraph_node *>::test): ...this, matching change to
28473         is-a.h API.
28474         (is_a_helper <varpool_node>::test): Likewise, convert to...
28475         (is_a_helper <varpool_node *>::test): ...this.
28476
28477         (varpool_first_variable): Update for removal of implicit pointer
28478         from the is-a.h API.
28479         (varpool_next_variable): Likewise.
28480         (varpool_first_static_initializer): Likewise.
28481         (varpool_next_static_initializer): Likewise.
28482         (varpool_first_defined_variable): Likewise.
28483         (varpool_next_defined_variable): Likewise.
28484         (cgraph_first_defined_function): Likewise.
28485         (cgraph_next_defined_function): Likewise.
28486         (cgraph_first_function): Likewise.
28487         (cgraph_next_function): Likewise.
28488         (cgraph_first_function_with_gimple_body): Likewise.
28489         (cgraph_next_function_with_gimple_body): Likewise.
28490         (cgraph_alias_target): Likewise.
28491         (varpool_alias_target): Likewise.
28492         (cgraph_function_or_thunk_node): Likewise.
28493         (varpool_variable_node): Likewise.
28494         (symtab_real_symbol_p): Likewise.
28495         * cgraphunit.c (referred_to_p): Likewise.
28496         (analyze_functions): Likewise.
28497         (handle_alias_pairs): Likewise.
28498         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
28499         * gimple-ssa.h (gimple_vuse_op): Likewise.
28500         (gimple_vdef_op): Likewise.
28501         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
28502         * gimple.c (gimple_build_asm_1): Likewise.
28503         (gimple_build_try): Likewise.
28504         (gimple_build_resx): Likewise.
28505         (gimple_build_eh_dispatch): Likewise.
28506         (gimple_build_omp_for): Likewise.
28507         (gimple_omp_for_set_clauses): Likewise.
28508
28509         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
28510         (is_a_helper <gimple_statement_asm *>::test): ...this.
28511         (is_a_helper <gimple_statement_bind>::test): Convert to...
28512         (is_a_helper <gimple_statement_bind *>::test): ...this.
28513         (is_a_helper <gimple_statement_call>::test): Convert to...
28514         (is_a_helper <gimple_statement_call *>::test): ...this.
28515         (is_a_helper <gimple_statement_catch>::test): Convert to...
28516         (is_a_helper <gimple_statement_catch *>::test): ...this.
28517         (is_a_helper <gimple_statement_resx>::test): Convert to...
28518         (is_a_helper <gimple_statement_resx *>::test): ...this.
28519         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
28520         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
28521         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
28522         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
28523         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
28524         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
28525         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
28526         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
28527         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
28528         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
28529         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
28530         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
28531         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
28532         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
28533         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
28534         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
28535         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
28536         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
28537         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
28538         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
28539         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
28540         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
28541         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
28542         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
28543         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
28544         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
28545         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
28546         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
28547         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
28548         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
28549         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
28550         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
28551         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
28552         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
28553         (is_a_helper <gimple_statement_phi>::test): Convert to...
28554         (is_a_helper <gimple_statement_phi *>::test): ...this.
28555         (is_a_helper <gimple_statement_transaction>::test): Convert to...
28556         (is_a_helper <gimple_statement_transaction *>::test): ...this.
28557         (is_a_helper <gimple_statement_try>::test): Convert to...
28558         (is_a_helper <gimple_statement_try *>::test): ...this.
28559         (is_a_helper <gimple_statement_wce>::test): Convert to...
28560         (is_a_helper <gimple_statement_wce *>::test): ...this.
28561         (is_a_helper <const gimple_statement_asm>::test): Convert to...
28562         (is_a_helper <const gimple_statement_asm *>::test): ...this.
28563         (is_a_helper <const gimple_statement_bind>::test): Convert to...
28564         (is_a_helper <const gimple_statement_bind *>::test): ...this.
28565         (is_a_helper <const gimple_statement_call>::test): Convert to...
28566         (is_a_helper <const gimple_statement_call *>::test): ...this.
28567         (is_a_helper <const gimple_statement_catch>::test): Convert to...
28568         (is_a_helper <const gimple_statement_catch *>::test): ...this.
28569         (is_a_helper <const gimple_statement_resx>::test): Convert to...
28570         (is_a_helper <const gimple_statement_resx *>::test): ...this.
28571         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
28572         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
28573         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
28574         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
28575         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
28576         Convert to...
28577         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
28578         ...this.
28579         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
28580         Convert to...
28581         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
28582         ...this.
28583         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
28584         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
28585         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
28586         to...
28587         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
28588         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
28589         to...
28590         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
28591         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
28592         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
28593         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
28594         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
28595         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
28596         to...
28597         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
28598         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
28599         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
28600         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
28601         to...
28602         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
28603         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
28604         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
28605         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
28606         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
28607         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
28608         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
28609         (is_a_helper <const gimple_statement_phi>::test): Convert to...
28610         (is_a_helper <const gimple_statement_phi *>::test): ...this.
28611         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
28612         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
28613         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
28614         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
28615         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
28616         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
28617         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
28618         to...
28619         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
28620         ...this.
28621         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
28622         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
28623
28624         (gimple_use_ops): Update for removal of implicit pointer from the
28625         is-a.h API.
28626         (gimple_set_use_ops): Likewise.
28627         (gimple_vuse): Likewise.
28628         (gimple_vdef): Likewise.
28629         (gimple_vuse_ptr): Likewise.
28630         (gimple_vdef_ptr): Likewise.
28631         (gimple_set_vuse): Likewise.
28632         (gimple_set_vdef): Likewise.
28633         (gimple_omp_return_set_lhs): Likewise.
28634         (gimple_omp_return_lhs): Likewise.
28635         (gimple_omp_return_lhs_ptr): Likewise.
28636         (gimple_call_fntype): Likewise.
28637         (gimple_call_set_fntype): Likewise.
28638         (gimple_call_set_internal_fn): Likewise.
28639         (gimple_call_use_set): Likewise.
28640         (gimple_call_clobber_set): Likewise.
28641         (gimple_bind_vars): Likewise.
28642         (gimple_bind_set_vars): Likewise.
28643         (gimple_bind_body_ptr): Likewise.
28644         (gimple_bind_set_body): Likewise.
28645         (gimple_bind_add_stmt): Likewise.
28646         (gimple_bind_block): Likewise.
28647         (gimple_bind_set_block): Likewise.
28648         (gimple_asm_ninputs): Likewise.
28649         (gimple_asm_noutputs): Likewise.
28650         (gimple_asm_nclobbers): Likewise.
28651         (gimple_asm_nlabels): Likewise.
28652         (gimple_asm_input_op): Likewise.
28653         (gimple_asm_input_op_ptr): Likewise.
28654         (gimple_asm_output_op): Likewise.
28655         (gimple_asm_output_op_ptr): Likewise.
28656         (gimple_asm_set_output_op): Likewise.
28657         (gimple_asm_clobber_op): Likewise.
28658         (gimple_asm_set_clobber_op): Likewise.
28659         (gimple_asm_label_op): Likewise.
28660         (gimple_asm_set_label_op): Likewise.
28661         (gimple_asm_string): Likewise.
28662         (gimple_catch_types): Likewise.
28663         (gimple_catch_types_ptr): Likewise.
28664         (gimple_catch_handler_ptr): Likewise.
28665         (gimple_catch_set_types): Likewise.
28666         (gimple_catch_set_handler): Likewise.
28667         (gimple_eh_filter_types): Likewise.
28668         (gimple_eh_filter_types_ptr): Likewise.
28669         (gimple_eh_filter_failure_ptr): Likewise.
28670         (gimple_eh_filter_set_types): Likewise.
28671         (gimple_eh_filter_set_failure): Likewise.
28672         (gimple_eh_must_not_throw_fndecl): Likewise.
28673         (gimple_eh_must_not_throw_set_fndecl): Likewise.
28674         (gimple_eh_else_n_body_ptr): Likewise.
28675         (gimple_eh_else_e_body_ptr): Likewise.
28676         (gimple_eh_else_set_n_body): Likewise.
28677         (gimple_eh_else_set_e_body): Likewise.
28678         (gimple_try_eval_ptr): Likewise.
28679         (gimple_try_cleanup_ptr): Likewise.
28680         (gimple_try_set_eval): Likewise.
28681         (gimple_try_set_cleanup): Likewise.
28682         (gimple_wce_cleanup_ptr): Likewise.
28683         (gimple_wce_set_cleanup): Likewise.
28684         (gimple_phi_capacity): Likewise.
28685         (gimple_phi_num_args): Likewise.
28686         (gimple_phi_result): Likewise.
28687         (gimple_phi_result_ptr): Likewise.
28688         (gimple_phi_set_result): Likewise.
28689         (gimple_phi_arg): Likewise.
28690         (gimple_phi_set_arg): Likewise.
28691         (gimple_resx_region): Likewise.
28692         (gimple_resx_set_region): Likewise.
28693         (gimple_eh_dispatch_region): Likewise.
28694         (gimple_eh_dispatch_set_region): Likewise.
28695         (gimple_omp_critical_name): Likewise.
28696         (gimple_omp_critical_name_ptr): Likewise.
28697         (gimple_omp_critical_set_name): Likewise.
28698         (gimple_omp_for_clauses): Likewise.
28699         (gimple_omp_for_clauses_ptr): Likewise.
28700         (gimple_omp_for_set_clauses): Likewise.
28701         (gimple_omp_for_collapse): Likewise.
28702         (gimple_omp_for_index): Likewise.
28703         (gimple_omp_for_index_ptr): Likewise.
28704         (gimple_omp_for_set_index): Likewise.
28705         (gimple_omp_for_initial): Likewise.
28706         (gimple_omp_for_initial_ptr): Likewise.
28707         (gimple_omp_for_set_initial): Likewise.
28708         (gimple_omp_for_final): Likewise.
28709         (gimple_omp_for_final_ptr): Likewise.
28710         (gimple_omp_for_set_final): Likewise.
28711         (gimple_omp_for_incr): Likewise.
28712         (gimple_omp_for_incr_ptr): Likewise.
28713         (gimple_omp_for_set_incr): Likewise.
28714         (gimple_omp_for_pre_body_ptr): Likewise.
28715         (gimple_omp_for_set_pre_body): Likewise.
28716         (gimple_omp_parallel_clauses): Likewise.
28717         (gimple_omp_parallel_clauses_ptr): Likewise.
28718         (gimple_omp_parallel_set_clauses): Likewise.
28719         (gimple_omp_parallel_child_fn): Likewise.
28720         (gimple_omp_parallel_child_fn_ptr): Likewise.
28721         (gimple_omp_parallel_set_child_fn): Likewise.
28722         (gimple_omp_parallel_data_arg): Likewise.
28723         (gimple_omp_parallel_data_arg_ptr): Likewise.
28724         (gimple_omp_parallel_set_data_arg): Likewise.
28725         (gimple_omp_task_clauses): Likewise.
28726         (gimple_omp_task_clauses_ptr): Likewise.
28727         (gimple_omp_task_set_clauses): Likewise.
28728         (gimple_omp_task_child_fn): Likewise.
28729         (gimple_omp_task_child_fn_ptr): Likewise.
28730         (gimple_omp_task_set_child_fn): Likewise.
28731         (gimple_omp_task_data_arg): Likewise.
28732         (gimple_omp_task_data_arg_ptr): Likewise.
28733         (gimple_omp_task_set_data_arg): Likewise.
28734         (gimple_omp_taskreg_clauses): Likewise.
28735         (gimple_omp_taskreg_clauses_ptr): Likewise.
28736         (gimple_omp_taskreg_set_clauses): Likewise.
28737         (gimple_omp_taskreg_child_fn): Likewise.
28738         (gimple_omp_taskreg_child_fn_ptr): Likewise.
28739         (gimple_omp_taskreg_set_child_fn): Likewise.
28740         (gimple_omp_taskreg_data_arg): Likewise.
28741         (gimple_omp_taskreg_data_arg_ptr): Likewise.
28742         (gimple_omp_taskreg_set_data_arg): Likewise.
28743         (gimple_omp_task_copy_fn): Likewise.
28744         (gimple_omp_task_copy_fn_ptr): Likewise.
28745         (gimple_omp_task_set_copy_fn): Likewise.
28746         (gimple_omp_task_arg_size): Likewise.
28747         (gimple_omp_task_arg_size_ptr): Likewise.
28748         (gimple_omp_task_set_arg_size): Likewise.
28749         (gimple_omp_task_arg_align): Likewise.
28750         (gimple_omp_task_arg_align_ptr): Likewise.
28751         (gimple_omp_task_set_arg_align): Likewise.
28752         (gimple_omp_single_clauses): Likewise.
28753         (gimple_omp_single_clauses_ptr): Likewise.
28754         (gimple_omp_single_set_clauses): Likewise.
28755         (gimple_omp_target_clauses): Likewise.
28756         (gimple_omp_target_clauses_ptr): Likewise.
28757         (gimple_omp_target_set_clauses): Likewise.
28758         (gimple_omp_target_child_fn): Likewise.
28759         (gimple_omp_target_child_fn_ptr): Likewise.
28760         (gimple_omp_target_set_child_fn): Likewise.
28761         (gimple_omp_target_data_arg): Likewise.
28762         (gimple_omp_target_data_arg_ptr): Likewise.
28763         (gimple_omp_target_set_data_arg): Likewise.
28764         (gimple_omp_teams_clauses): Likewise.
28765         (gimple_omp_teams_clauses_ptr): Likewise.
28766         (gimple_omp_teams_set_clauses): Likewise.
28767         (gimple_omp_sections_clauses): Likewise.
28768         (gimple_omp_sections_clauses_ptr): Likewise.
28769         (gimple_omp_sections_set_clauses): Likewise.
28770         (gimple_omp_sections_control): Likewise.
28771         (gimple_omp_sections_control_ptr): Likewise.
28772         (gimple_omp_sections_set_control): Likewise.
28773         (gimple_omp_for_set_cond): Likewise.
28774         (gimple_omp_for_cond): Likewise.
28775         (gimple_omp_atomic_store_set_val): Likewise.
28776         (gimple_omp_atomic_store_val): Likewise.
28777         (gimple_omp_atomic_store_val_ptr): Likewise.
28778         (gimple_omp_atomic_load_set_lhs): Likewise.
28779         (gimple_omp_atomic_load_lhs): Likewise.
28780         (gimple_omp_atomic_load_lhs_ptr): Likewise.
28781         (gimple_omp_atomic_load_set_rhs): Likewise.
28782         (gimple_omp_atomic_load_rhs): Likewise.
28783         (gimple_omp_atomic_load_rhs_ptr): Likewise.
28784         (gimple_omp_continue_control_def): Likewise.
28785         (gimple_omp_continue_control_def_ptr): Likewise.
28786         (gimple_omp_continue_set_control_def): Likewise.
28787         (gimple_omp_continue_control_use): Likewise.
28788         (gimple_omp_continue_control_use_ptr): Likewise.
28789         (gimple_omp_continue_set_control_use): Likewise.
28790         (gimple_transaction_body_ptr): Likewise.
28791         (gimple_transaction_label): Likewise.
28792         (gimple_transaction_label_ptr): Likewise.
28793         (gimple_transaction_set_body): Likewise.
28794         (gimple_transaction_set_label): Likewise.
28795
28796         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
28797         * ipa-inline-analysis.c (inline_write_summary): Likewise.
28798         * ipa-ref.c (ipa_record_reference): Likewise.
28799         * ipa-reference.c (analyze_function): Likewise.
28800         (ipa_reference_write_optimization_summary): Likewise.
28801         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
28802         (address_taken_from_non_vtable_p): Likewise.
28803         (comdat_can_be_unshared_p_1): Likewise.
28804         * lto-cgraph.c (lto_output_ref): Likewise.
28805         (add_references): Likewise.
28806         (compute_ltrans_boundary): Likewise.
28807         (output_symtab): Likewise.
28808         (input_ref): Likewise.
28809         (input_cgraph_1): Likewise.
28810         (output_cgraph_opt_summary): Likewise.
28811         * lto-streamer-out.c (lto_output): Likewise.
28812         (output_symbol_p): Likewise.
28813         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
28814         (lsei_start_function_in_partition): Likewise.
28815         (lsei_next_variable_in_partition): Likewise.
28816         (lsei_start_variable_in_partition): Likewise.
28817         * symtab.c (insert_to_assembler_name_hash): Likewise.
28818         (unlink_from_assembler_name_hash): Likewise.
28819         (symtab_unregister_node): Likewise.
28820         (symtab_remove_node): Likewise.
28821         (dump_symtab_node): Likewise.
28822         (verify_symtab_base): Likewise.
28823         (verify_symtab_node): Likewise.
28824         (symtab_make_decl_local): Likewise.
28825         (symtab_alias_ultimate_target): Likewise.
28826         (symtab_resolve_alias): Likewise.
28827         (symtab_get_symbol_partitioning_class): Likewise.
28828         * tree-phinodes.c (allocate_phi_node): Likewise.
28829         (reserve_phi_args_for_new_edge): Likewise.
28830         (remove_phi_args): Likewise.
28831         * varpool.c (varpool_node_for_asm): Likewise.
28832         (varpool_remove_unreferenced_decls): Likewise.
28833
28834 2014-04-23  Jeff Law  <law@redhat.com>
28835
28836         PR tree-optimization/60902
28837         * tree-ssa-threadedge.c
28838         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
28839         invalidate outputs from statements that do not produce useful
28840         outputs for threading.
28841
28842 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
28843
28844         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
28845         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
28846         machine descriptions for Stack Smashing Protector.
28847
28848 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
28849
28850         * aarch64.md (<optab>_rol<mode>3): New pattern.
28851         (<optab>_rolsi3_uxtw): Likewise.
28852         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
28853
28854 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
28855
28856         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
28857         (arm_cortex_a12_tune): Likewise.
28858
28859 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28860
28861         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
28862
28863 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28864
28865         * config/arm/arm.md (arm_rev16si2): New pattern.
28866         (arm_rev16si2_alt): Likewise.
28867         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
28868
28869 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28870
28871         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
28872         (rev16<mode>2_alt): Likewise.
28873         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
28874         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
28875         (aarch_rev16_shleft_mask_imm_p): Likewise.
28876         (aarch_rev16_p_1): Likewise.
28877         (aarch_rev16_p): Likewise.
28878         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
28879         (aarch_rev16_shright_mask_imm_p): Likewise.
28880         (aarch_rev16_shleft_mask_imm_p): Likewise.
28881
28882 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28883
28884         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
28885         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
28886         rev cost.
28887         (cortex_a53_extra_costs): Likewise.
28888         (cortex_a57_extra_costs): Likewise.
28889         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
28890         (cortexa7_extra_costs): Likewise.
28891         (cortexa8_extra_costs): Likewise.
28892         (cortexa12_extra_costs): Likewise.
28893         (cortexa15_extra_costs): Likewise.
28894         (v7m_extra_costs): Likewise.
28895         (arm_new_rtx_costs): Handle BSWAP.
28896
28897 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28898
28899         * config/arm/arm.c (cortexa8_extra_costs): New table.
28900         (arm_cortex_a8_tune): New tuning struct.
28901         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
28902
28903 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28904
28905         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
28906
28907 2014-04-23  Richard Biener  <rguenther@suse.de>
28908
28909         * Makefile.in (OBJS): Remove loop-unswitch.o.
28910         * tree-pass.h (make_pass_rtl_unswitch): Remove.
28911         * passes.def (pass_rtl_unswitch): Likewise.
28912         * loop-init.c (gate_rtl_unswitch): Likewise.
28913         (rtl_unswitch): Likewise.
28914         (pass_data_rtl_unswitch): Likewise.
28915         (pass_rtl_unswitch): Likewise.
28916         (make_pass_rtl_unswitch): Likewise.
28917         * rtl.h (reversed_condition): Likewise.
28918         (compare_and_jump_seq): Likewise.
28919         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
28920         and make static.
28921         * loop-unroll.c (compare_and_jump_seq): Likewise.
28922
28923 2014-04-23  Richard Biener  <rguenther@suse.de>
28924
28925         PR tree-optimization/60903
28926         * tree-ssa-loop-im.c (analyze_memory_references): Remove
28927         commented code block.
28928         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
28929         loop flags to newly created BBs and edges.
28930
28931 2014-04-23  Nick Clifton  <nickc@redhat.com>
28932
28933         * config/msp430/msp430.c (msp430_handle_option): Move function
28934         to msp430-common.c
28935         (msp430_option_override): Simplify mcu and mcpu option handling.
28936         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
28937         support for -mhwmult command line option.
28938         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
28939         -mhwmult command line option.
28940         (msp430_hwmult_enabled): Delete.
28941         (msp43o_output_labelref): Add support for -mhwmult command line option.
28942         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
28943         (umulsidi3): Likewise.
28944         * config/msp430/msp430.opt (mmcu): Add Report attribute.
28945         (mcpu, mlarge, msmall): Likewise.
28946         (mhwmult): New option.
28947         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
28948         prototype.
28949         (msp430_is_f5_mcu): Remove prototype.
28950         (msp430_use_f5_series_hwmult): Add prototype.
28951         * config/msp430/msp430-opts.h: New file.
28952         * common/config/msp430: New directory.
28953         * common/config/msp430/msp430-common.c: New file.
28954         * config.gcc (msp430): Remove target_has_targetm_common.
28955         * doc/invoke.texi: Document -mhwmult command line option.
28956
28957 2014-04-23  Nick Clifton  <nickc@redhat.com>
28958
28959         * config/i386/cygwin.h (ENDFILE_SPEC): Include
28960         default-manifest.o if it can be found in the search path.
28961         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
28962
28963 2014-04-23  Terry Guo  <terry.guo@arm.com>
28964
28965         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
28966
28967 2014-04-23  Richard Biener  <rguenther@suse.de>
28968
28969         PR middle-end/60895
28970         * tree-inline.c (declare_return_variable): Use mark_addressable.
28971
28972 2014-04-23  Richard Biener  <rguenther@suse.de>
28973
28974         PR middle-end/60891
28975         * loop-init.c (loop_optimizer_init): Make sure to apply
28976         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
28977
28978 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
28979
28980         PR sanitizer/60275
28981         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
28982         New options.
28983         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
28984         if flag_sanitize_undefined_trap_on_error.
28985         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
28986         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
28987         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
28988         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
28989         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
28990         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
28991         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
28992         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
28993         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
28994         * ubsan.c (ubsan_instrument_unreachable): Return
28995         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
28996         (ubsan_expand_null_ifn): Emit __builtin_trap ()
28997         if flag_sanitize_undefined_trap_on_error and
28998         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
28999         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
29000         instrument_bool_enum_load): Emit __builtin_trap () if
29001         flag_sanitize_undefined_trap_on_error and
29002         __builtin_handle_*_abort () if !flag_sanitize_recover.
29003         * doc/invoke.texi (-fsanitize-recover,
29004         -fsanitize-undefined-trap-on-error): Document.
29005
29006 2014-04-22  Christian Bruel  <christian.bruel@st.com>
29007
29008         * config/sh/sh.md (mov<mode>): Replace movQIHI.
29009         Force immediates to SImode.
29010
29011 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
29012
29013         * config/nios2/nios2.md (UNSPEC_ROUND): New.
29014         (lroundsfsi2): New.
29015         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
29016         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
29017         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
29018         (nios2_fpu_insn): Add entry for round.
29019         (N2FPU_NO_ERRNO_P): Define.
29020         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
29021         flag_errno_math.
29022         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
29023
29024 2014-04-22  Richard Henderson  <rth@redhat.com>
29025
29026         * config/aarch64/aarch64 (addti3, subti3): New expanders.
29027         (add<GPI>3_compare0): Remove leading * from name.
29028         (add<GPI>3_carryin): Likewise.
29029         (sub<GPI>3_compare0): Likewise.
29030         (sub<GPI>3_carryin): Likewise.
29031         (<su_optab>mulditi3): New expander.
29032         (multi3): New expander.
29033         (madd<GPI>): Remove leading * from name.
29034
29035 2014-04-22  Martin Jambor  <mjambor@suse.cz>
29036
29037         * cgraphclones.c (cgraph_function_versioning): Copy
29038         ipa_transforms_to_apply instead of asserting it is empty.
29039
29040 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
29041
29042         PR target/60868
29043         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
29044         on count_exp to get mode.
29045
29046 2014-04-22  Andrew Pinski  <apinski@cavium.com>
29047
29048         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
29049         Handle TLS for ILP32.
29050         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
29051         (tlsie_small_<mode>): this and handle PTR.
29052         (tlsie_small_sidi): New pattern.
29053         (tlsle_small): Change to an expand to handle ILP32.
29054         (tlsle_small_<mode>): New pattern.
29055         (tlsdesc_small): Rename to ...
29056         (tlsdesc_small_<mode>): this and handle PTR.
29057
29058 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29059
29060         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
29061
29062 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
29063
29064         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
29065         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
29066         (aarch64_types_signed_poly_qualifiers): Likewise.
29067         (aarch64_types_unsigned_signed_qualifiers): Likewise.
29068         (aarch64_types_poly_signed_qualifiers): Likewise.
29069         (TYPES_REINTERP_SS): Type macro added.
29070         (TYPES_REINTERP_SU): Likewise.
29071         (TYPES_REINTERP_SP): Likewise.
29072         (TYPES_REINTERP_US): Likewise.
29073         (TYPES_REINTERP_PS): Likewise.
29074         (aarch64_fold_builtin): New expression folding added.
29075         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
29076         Declarations removed.
29077         (REINTERP_SS): Declarations added.
29078         (REINTERP_US): Likewise.
29079         (REINTERP_PS): Likewise.
29080         (REINTERP_SU): Likewise.
29081         (REINTERP_SP): Likewise.
29082         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
29083         (vreinterpretq_p8_f64): Likewise.
29084         (vreinterpret_p16_f64): Likewise.
29085         (vreinterpretq_p16_f64): Likewise.
29086         (vreinterpret_f32_f64): Likewise.
29087         (vreinterpretq_f32_f64): Likewise.
29088         (vreinterpret_f64_f32): Likewise.
29089         (vreinterpret_f64_p8): Likewise.
29090         (vreinterpret_f64_p16): Likewise.
29091         (vreinterpret_f64_s8): Likewise.
29092         (vreinterpret_f64_s16): Likewise.
29093         (vreinterpret_f64_s32): Likewise.
29094         (vreinterpret_f64_s64): Likewise.
29095         (vreinterpret_f64_u8): Likewise.
29096         (vreinterpret_f64_u16): Likewise.
29097         (vreinterpret_f64_u32): Likewise.
29098         (vreinterpret_f64_u64): Likewise.
29099         (vreinterpretq_f64_f32): Likewise.
29100         (vreinterpretq_f64_p8): Likewise.
29101         (vreinterpretq_f64_p16): Likewise.
29102         (vreinterpretq_f64_s8): Likewise.
29103         (vreinterpretq_f64_s16): Likewise.
29104         (vreinterpretq_f64_s32): Likewise.
29105         (vreinterpretq_f64_s64): Likewise.
29106         (vreinterpretq_f64_u8): Likewise.
29107         (vreinterpretq_f64_u16): Likewise.
29108         (vreinterpretq_f64_u32): Likewise.
29109         (vreinterpretq_f64_u64): Likewise.
29110         (vreinterpret_s64_f64): Likewise.
29111         (vreinterpretq_s64_f64): Likewise.
29112         (vreinterpret_u64_f64): Likewise.
29113         (vreinterpretq_u64_f64): Likewise.
29114         (vreinterpret_s8_f64): Likewise.
29115         (vreinterpretq_s8_f64): Likewise.
29116         (vreinterpret_s16_f64): Likewise.
29117         (vreinterpretq_s16_f64): Likewise.
29118         (vreinterpret_s32_f64): Likewise.
29119         (vreinterpretq_s32_f64): Likewise.
29120         (vreinterpret_u8_f64): Likewise.
29121         (vreinterpretq_u8_f64): Likewise.
29122         (vreinterpret_u16_f64): Likewise.
29123         (vreinterpretq_u16_f64): Likewise.
29124         (vreinterpret_u32_f64): Likewise.
29125         (vreinterpretq_u32_f64): Likewise.
29126
29127 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
29128
29129         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
29130         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
29131         (vreinterpret_p8_s8): Likewise.
29132         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
29133         (vreinterpret_p8_s16): Likewise.
29134         (vreinterpret_p8_s32): Likewise.
29135         (vreinterpret_p8_s64): Likewise.
29136         (vreinterpret_p8_f32): Likewise.
29137         (vreinterpret_p8_u8): Likewise.
29138         (vreinterpret_p8_u16): Likewise.
29139         (vreinterpret_p8_u32): Likewise.
29140         (vreinterpret_p8_u64): Likewise.
29141         (vreinterpret_p8_p16): Likewise.
29142         (vreinterpretq_p8_s8): Likewise.
29143         (vreinterpretq_p8_s16): Likewise.
29144         (vreinterpretq_p8_s32): Likewise.
29145         (vreinterpretq_p8_s64): Likewise.
29146         (vreinterpretq_p8_f32): Likewise.
29147         (vreinterpretq_p8_u8): Likewise.
29148         (vreinterpretq_p8_u16): Likewise.
29149         (vreinterpretq_p8_u32): Likewise.
29150         (vreinterpretq_p8_u64): Likewise.
29151         (vreinterpretq_p8_p16): Likewise.
29152         (vreinterpret_p16_s8): Likewise.
29153         (vreinterpret_p16_s16): Likewise.
29154         (vreinterpret_p16_s32): Likewise.
29155         (vreinterpret_p16_s64): Likewise.
29156         (vreinterpret_p16_f32): Likewise.
29157         (vreinterpret_p16_u8): Likewise.
29158         (vreinterpret_p16_u16): Likewise.
29159         (vreinterpret_p16_u32): Likewise.
29160         (vreinterpret_p16_u64): Likewise.
29161         (vreinterpret_p16_p8): Likewise.
29162         (vreinterpretq_p16_s8): Likewise.
29163         (vreinterpretq_p16_s16): Likewise.
29164         (vreinterpretq_p16_s32): Likewise.
29165         (vreinterpretq_p16_s64): Likewise.
29166         (vreinterpretq_p16_f32): Likewise.
29167         (vreinterpretq_p16_u8): Likewise.
29168         (vreinterpretq_p16_u16): Likewise.
29169         (vreinterpretq_p16_u32): Likewise.
29170         (vreinterpretq_p16_u64): Likewise.
29171         (vreinterpretq_p16_p8): Likewise.
29172         (vreinterpret_f32_s8): Likewise.
29173         (vreinterpret_f32_s16): Likewise.
29174         (vreinterpret_f32_s32): Likewise.
29175         (vreinterpret_f32_s64): Likewise.
29176         (vreinterpret_f32_u8): Likewise.
29177         (vreinterpret_f32_u16): Likewise.
29178         (vreinterpret_f32_u32): Likewise.
29179         (vreinterpret_f32_u64): Likewise.
29180         (vreinterpret_f32_p8): Likewise.
29181         (vreinterpret_f32_p16): Likewise.
29182         (vreinterpretq_f32_s8): Likewise.
29183         (vreinterpretq_f32_s16): Likewise.
29184         (vreinterpretq_f32_s32): Likewise.
29185         (vreinterpretq_f32_s64): Likewise.
29186         (vreinterpretq_f32_u8): Likewise.
29187         (vreinterpretq_f32_u16): Likewise.
29188         (vreinterpretq_f32_u32): Likewise.
29189         (vreinterpretq_f32_u64): Likewise.
29190         (vreinterpretq_f32_p8): Likewise.
29191         (vreinterpretq_f32_p16): Likewise.
29192         (vreinterpret_s64_s8): Likewise.
29193         (vreinterpret_s64_s16): Likewise.
29194         (vreinterpret_s64_s32): Likewise.
29195         (vreinterpret_s64_f32): Likewise.
29196         (vreinterpret_s64_u8): Likewise.
29197         (vreinterpret_s64_u16): Likewise.
29198         (vreinterpret_s64_u32): Likewise.
29199         (vreinterpret_s64_u64): Likewise.
29200         (vreinterpret_s64_p8): Likewise.
29201         (vreinterpret_s64_p16): Likewise.
29202         (vreinterpretq_s64_s8): Likewise.
29203         (vreinterpretq_s64_s16): Likewise.
29204         (vreinterpretq_s64_s32): Likewise.
29205         (vreinterpretq_s64_f32): Likewise.
29206         (vreinterpretq_s64_u8): Likewise.
29207         (vreinterpretq_s64_u16): Likewise.
29208         (vreinterpretq_s64_u32): Likewise.
29209         (vreinterpretq_s64_u64): Likewise.
29210         (vreinterpretq_s64_p8): Likewise.
29211         (vreinterpretq_s64_p16): Likewise.
29212         (vreinterpret_u64_s8): Likewise.
29213         (vreinterpret_u64_s16): Likewise.
29214         (vreinterpret_u64_s32): Likewise.
29215         (vreinterpret_u64_s64): Likewise.
29216         (vreinterpret_u64_f32): Likewise.
29217         (vreinterpret_u64_u8): Likewise.
29218         (vreinterpret_u64_u16): Likewise.
29219         (vreinterpret_u64_u32): Likewise.
29220         (vreinterpret_u64_p8): Likewise.
29221         (vreinterpret_u64_p16): Likewise.
29222         (vreinterpretq_u64_s8): Likewise.
29223         (vreinterpretq_u64_s16): Likewise.
29224         (vreinterpretq_u64_s32): Likewise.
29225         (vreinterpretq_u64_s64): Likewise.
29226         (vreinterpretq_u64_f32): Likewise.
29227         (vreinterpretq_u64_u8): Likewise.
29228         (vreinterpretq_u64_u16): Likewise.
29229         (vreinterpretq_u64_u32): Likewise.
29230         (vreinterpretq_u64_p8): Likewise.
29231         (vreinterpretq_u64_p16): Likewise.
29232         (vreinterpret_s8_s16): Likewise.
29233         (vreinterpret_s8_s32): Likewise.
29234         (vreinterpret_s8_s64): Likewise.
29235         (vreinterpret_s8_f32): Likewise.
29236         (vreinterpret_s8_u8): Likewise.
29237         (vreinterpret_s8_u16): Likewise.
29238         (vreinterpret_s8_u32): Likewise.
29239         (vreinterpret_s8_u64): Likewise.
29240         (vreinterpret_s8_p8): Likewise.
29241         (vreinterpret_s8_p16): Likewise.
29242         (vreinterpretq_s8_s16): Likewise.
29243         (vreinterpretq_s8_s32): Likewise.
29244         (vreinterpretq_s8_s64): Likewise.
29245         (vreinterpretq_s8_f32): Likewise.
29246         (vreinterpretq_s8_u8): Likewise.
29247         (vreinterpretq_s8_u16): Likewise.
29248         (vreinterpretq_s8_u32): Likewise.
29249         (vreinterpretq_s8_u64): Likewise.
29250         (vreinterpretq_s8_p8): Likewise.
29251         (vreinterpretq_s8_p16): Likewise.
29252         (vreinterpret_s16_s8): Likewise.
29253         (vreinterpret_s16_s32): Likewise.
29254         (vreinterpret_s16_s64): Likewise.
29255         (vreinterpret_s16_f32): Likewise.
29256         (vreinterpret_s16_u8): Likewise.
29257         (vreinterpret_s16_u16): Likewise.
29258         (vreinterpret_s16_u32): Likewise.
29259         (vreinterpret_s16_u64): Likewise.
29260         (vreinterpret_s16_p8): Likewise.
29261         (vreinterpret_s16_p16): Likewise.
29262         (vreinterpretq_s16_s8): Likewise.
29263         (vreinterpretq_s16_s32): Likewise.
29264         (vreinterpretq_s16_s64): Likewise.
29265         (vreinterpretq_s16_f32): Likewise.
29266         (vreinterpretq_s16_u8): Likewise.
29267         (vreinterpretq_s16_u16): Likewise.
29268         (vreinterpretq_s16_u32): Likewise.
29269         (vreinterpretq_s16_u64): Likewise.
29270         (vreinterpretq_s16_p8): Likewise.
29271         (vreinterpretq_s16_p16): Likewise.
29272         (vreinterpret_s32_s8): Likewise.
29273         (vreinterpret_s32_s16): Likewise.
29274         (vreinterpret_s32_s64): Likewise.
29275         (vreinterpret_s32_f32): Likewise.
29276         (vreinterpret_s32_u8): Likewise.
29277         (vreinterpret_s32_u16): Likewise.
29278         (vreinterpret_s32_u32): Likewise.
29279         (vreinterpret_s32_u64): Likewise.
29280         (vreinterpret_s32_p8): Likewise.
29281         (vreinterpret_s32_p16): Likewise.
29282         (vreinterpretq_s32_s8): Likewise.
29283         (vreinterpretq_s32_s16): Likewise.
29284         (vreinterpretq_s32_s64): Likewise.
29285         (vreinterpretq_s32_f32): Likewise.
29286         (vreinterpretq_s32_u8): Likewise.
29287         (vreinterpretq_s32_u16): Likewise.
29288         (vreinterpretq_s32_u32): Likewise.
29289         (vreinterpretq_s32_u64): Likewise.
29290         (vreinterpretq_s32_p8): Likewise.
29291         (vreinterpretq_s32_p16): Likewise.
29292         (vreinterpret_u8_s8): Likewise.
29293         (vreinterpret_u8_s16): Likewise.
29294         (vreinterpret_u8_s32): Likewise.
29295         (vreinterpret_u8_s64): Likewise.
29296         (vreinterpret_u8_f32): Likewise.
29297         (vreinterpret_u8_u16): Likewise.
29298         (vreinterpret_u8_u32): Likewise.
29299         (vreinterpret_u8_u64): Likewise.
29300         (vreinterpret_u8_p8): Likewise.
29301         (vreinterpret_u8_p16): Likewise.
29302         (vreinterpretq_u8_s8): Likewise.
29303         (vreinterpretq_u8_s16): Likewise.
29304         (vreinterpretq_u8_s32): Likewise.
29305         (vreinterpretq_u8_s64): Likewise.
29306         (vreinterpretq_u8_f32): Likewise.
29307         (vreinterpretq_u8_u16): Likewise.
29308         (vreinterpretq_u8_u32): Likewise.
29309         (vreinterpretq_u8_u64): Likewise.
29310         (vreinterpretq_u8_p8): Likewise.
29311         (vreinterpretq_u8_p16): Likewise.
29312         (vreinterpret_u16_s8): Likewise.
29313         (vreinterpret_u16_s16): Likewise.
29314         (vreinterpret_u16_s32): Likewise.
29315         (vreinterpret_u16_s64): Likewise.
29316         (vreinterpret_u16_f32): Likewise.
29317         (vreinterpret_u16_u8): Likewise.
29318         (vreinterpret_u16_u32): Likewise.
29319         (vreinterpret_u16_u64): Likewise.
29320         (vreinterpret_u16_p8): Likewise.
29321         (vreinterpret_u16_p16): Likewise.
29322         (vreinterpretq_u16_s8): Likewise.
29323         (vreinterpretq_u16_s16): Likewise.
29324         (vreinterpretq_u16_s32): Likewise.
29325         (vreinterpretq_u16_s64): Likewise.
29326         (vreinterpretq_u16_f32): Likewise.
29327         (vreinterpretq_u16_u8): Likewise.
29328         (vreinterpretq_u16_u32): Likewise.
29329         (vreinterpretq_u16_u64): Likewise.
29330         (vreinterpretq_u16_p8): Likewise.
29331         (vreinterpretq_u16_p16): Likewise.
29332         (vreinterpret_u32_s8): Likewise.
29333         (vreinterpret_u32_s16): Likewise.
29334         (vreinterpret_u32_s32): Likewise.
29335         (vreinterpret_u32_s64): Likewise.
29336         (vreinterpret_u32_f32): Likewise.
29337         (vreinterpret_u32_u8): Likewise.
29338         (vreinterpret_u32_u16): Likewise.
29339         (vreinterpret_u32_u64): Likewise.
29340         (vreinterpret_u32_p8): Likewise.
29341         (vreinterpret_u32_p16): Likewise.
29342         (vreinterpretq_u32_s8): Likewise.
29343         (vreinterpretq_u32_s16): Likewise.
29344         (vreinterpretq_u32_s32): Likewise.
29345         (vreinterpretq_u32_s64): Likewise.
29346         (vreinterpretq_u32_f32): Likewise.
29347         (vreinterpretq_u32_u8): Likewise.
29348         (vreinterpretq_u32_u16): Likewise.
29349         (vreinterpretq_u32_u64): Likewise.
29350         (vreinterpretq_u32_p8): Likewise.
29351         (vreinterpretq_u32_p16): Likewise.
29352
29353 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
29354
29355         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
29356         Pattern extended.
29357         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
29358         (sqabs): Likewise.
29359         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
29360         (vqnegd_s64): Likewise.
29361         (vqabs_s64): Likewise.
29362         (vqabsd_s64): Likewise.
29363
29364 2014-04-22  Richard Henderson  <rth@redhat.com>
29365
29366         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
29367         computation to the top of the loop.
29368
29369 2014-04-22  Renlin  <renlin.li@arm.com>
29370             Jiong Wang  <jiong.wang@arm.com>
29371
29372         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
29373         * config/aarch64/aarch64.c (aarch64_layout_frame)
29374         (aarch64_initial_elimination_offset): Likewise.
29375
29376 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
29377
29378         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
29379         Fix indentation.
29380
29381 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
29382
29383         * machmode.h (bitwise_mode_for_mode): Declare.
29384         * stor-layout.h (bitwise_type_for_mode): Likewise.
29385         * stor-layout.c (bitwise_mode_for_mode): New function.
29386         (bitwise_type_for_mode): Likewise.
29387         * builtins.c (fold_builtin_memory_op): Use it instead of
29388         int_mode_for_mode and build_nonstandard_integer_type.
29389
29390 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29391
29392         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
29393         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
29394         (*-*-solaris2*): Simplify.
29395         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
29396         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
29397         *-*-solaris2.9* handling.
29398
29399         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
29400         as bug.
29401         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
29402         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
29403         handling, simplify.
29404         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
29405         * configure: Regenerate.
29406
29407         * config/i386/sol2-9.h: Remove.
29408
29409         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
29410         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
29411         Remove Solaris 9 references.
29412
29413 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
29414
29415         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
29416         (floatuns<GPI:mode><GPF:mode>2): Remove.
29417         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
29418         and floatuns conversions.
29419         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
29420         and floatuns conversions.
29421         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
29422         (w1,w2): New mode attributes for inequal width conversions.
29423
29424 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
29425
29426         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
29427         the output asm format.
29428
29429 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
29430
29431         * config/aarch64/aarch64-simd.md
29432         (aarch64_cm<optab>di): Always split.
29433         (*aarch64_cm<optab>di): New.
29434         (aarch64_cmtstdi): Always split.
29435         (*aarch64_cmtstdi): New.
29436
29437 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
29438
29439         PR tree-optimization/60823
29440         * omp-low.c (ipa_simd_modify_function_body): Go through
29441         all SSA_NAMEs and for those refering to vector arguments
29442         which are going to be replaced adjust SSA_NAME_VAR and,
29443         if it is a default definition, change it into a non-default
29444         definition assigned at the beginning of function from new_decl.
29445         (ipa_simd_modify_stmt_ops): Rewritten.
29446         * tree-dfa.c (set_ssa_default_def): When removing default def,
29447         check for NULL loc instead of NULL *loc.
29448
29449 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29450
29451         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
29452         restrictions on core registers for DImode values in Thumb2.
29453
29454 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
29455
29456         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
29457         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
29458
29459 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
29460
29461         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
29462         (*iordi_notzesidi_di): Likewise.
29463         (*iordi_notsesidi_di): Likewise.
29464
29465 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
29466
29467         * config/arm/arm-protos.h (tune_params): New struct members.
29468         * config/arm/arm.c: Initialise tune_params per processor.
29469         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
29470         for speed, based on new tune_params.
29471
29472 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
29473
29474         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
29475         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
29476         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
29477         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
29478         * config/aarch64/arm_neon.h (vrnd_f64): Added.
29479         (vrnda_f64): Likewise.
29480         (vrndi_f64): Likewise.
29481         (vrndm_f64): Likewise.
29482         (vrndn_f64): Likewise.
29483         (vrndp_f64): Likewise.
29484         (vrndx_f64): Likewise.
29485
29486 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
29487
29488         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
29489         GET_MODE_SIZE argument is enum machine_mode.
29490
29491 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
29492
29493         PR target/60910
29494         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
29495         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
29496
29497 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
29498
29499         PR middle-end/60281
29500         * asan.c (asan_emit_stack_protection): Force the base to align to
29501         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
29502         appropriate bits if STRICT_ALIGNMENT.
29503         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
29504         when asan is on.
29505         (expand_used_vars): Leave a space in the stack frame for alignment
29506         if STRICT_ALIGNMENT.
29507
29508 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
29509
29510         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
29511         than a gimple.
29512         (gimple_store_p): Likewise.
29513         (gimple_assign_load_p): Likewise.
29514         (gimple_assign_cast_p): Likewise.
29515         (gimple_clobber_p): Likewise.
29516
29517         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
29518         rather than a gimple.
29519         (gimple_assign_cast_p): Likewise.
29520
29521 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
29522
29523         PR target/60735
29524         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
29525         If mode is DDmode and TARGET_E500_DOUBLE allow move.
29526
29527         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
29528         more debug information for E500 if -mdebug=reg.
29529
29530 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
29531
29532         PR target/60909
29533         * config/i386/i386.c (ix86_expand_builtin)
29534         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
29535         register for target RTX.
29536         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
29537
29538 2014-04-18  Cong Hou  <congh@google.com>
29539
29540         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
29541         the widen-mult pattern by handling two operands with different sizes,
29542         and operands whose size is smaller than half of the result type.
29543
29544 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
29545
29546         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
29547         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
29548         (do_estimate_edge_time): Compute it.
29549         * ipa-inline.c (want_inline_small_function_p): Bypass
29550         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
29551
29552 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
29553
29554         * ipa-inline.c (spec_rem): New static variable.
29555         (dump_overall_stats): New function.
29556         (dump_inline_stats): New function.
29557
29558 2014-04-18  Richard Henderson  <rth@redhat.com>
29559
29560         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
29561         to GET_MODE_SIZE, not a reg_class_t.
29562
29563 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29564
29565         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
29566         (vsx_xxmrglw_<mode>): Likewise.
29567
29568 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
29569
29570         PR target/60876
29571         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
29572         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
29573         (rs6000_init_hard_regno_mode_ok): Likewise.
29574
29575 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
29576
29577         * ipa-inline.c (inline_small_functions): Account only non-cold
29578         functions.
29579         * doc/invoke.texi (inline-unit-growth): Update documentation.
29580
29581 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
29582
29583         * config/rs6000/rs6000.md (addti3, subti3): New.
29584
29585 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
29586
29587         PR target/60863
29588         * config/i386/i386.c (ix86_expand_clear): Remove outdated
29589         comment.  Check optimize_insn_for_size_p instead of
29590         optimize_insn_for_speed_p.
29591
29592 2014-04-17  Martin Jambor  <mjambor@suse.cz>
29593
29594         * gimple-iterator.c (gsi_start_edge): New function.
29595         * gimple-iterator.h (gsi_start_edge): Declare.
29596         * tree-sra.c (single_non_eh_succ): New function.
29597         (disqualify_ops_if_throwing_stmt): Renamed to
29598         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
29599         having one non-EH successor BB.
29600         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
29601         generate loads into replacements.
29602         (sra_modify_assign): Likewise and and also use the simple path for
29603         such statements.
29604         (sra_modify_function_body): Commit statements on edges.
29605
29606 2014-04-17  Richard Biener  <rguenther@suse.de>
29607
29608         PR middle-end/60849
29609         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
29610         comparison results and add clarifying comment.
29611
29612 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
29613
29614         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
29615         (blank_mode): Initialize it.
29616         (emit_mode_size_inline, emit_mode_nunits_inline,
29617         emit_mode_inner_inline): New functions.
29618         (emit_insn_modes_h): Call them and surround their output with
29619         #if GCC_VERSION >= 4001 ... #endif.
29620         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
29621         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
29622         mode_* arrays if the argument is __builtin_constant_p.
29623         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
29624         is enum machine_mode.
29625
29626 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29627
29628         * passes.c (opt_pass::execute): Adjust.
29629         (pass_manager::execute_pass_mode_switching): Likewise.
29630         (early_local_passes::execute): Likewise.
29631         (execute_one_pass): Pass cfun to the pass's execute method.
29632         * tree-pass.h (opt_pass::execute): Add function * argument.
29633         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29634         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29635         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29636         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29637         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29638         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
29639         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
29640         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
29641         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
29642         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
29643         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
29644         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
29645         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
29646         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
29647         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
29648         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
29649         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
29650         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
29651         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
29652         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29653         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29654         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29655         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29656         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29657         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29658         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29659         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29660         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29661         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
29662         Adjust.
29663
29664 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29665
29666         * passes.c (opt_pass::gate): Take function * argument.
29667         (gate_all_early_local_passes): Merge into
29668         (early_local_passes::gate): this.
29669         (gate_all_early_optimizations): Merge into
29670         (all_early_optimizations::gate): this.
29671         (gate_all_optimizations): Mege into
29672         (all_optimizations::gate): this.
29673         (gate_all_optimizations_g): Merge into
29674         (all_optimizations_g::gate): this.
29675         (gate_rest_of_compilation): Mege into
29676         (rest_of_compilation::gate): this.
29677         (gate_postreload): Merge into
29678         (postreload::gate): this.
29679         (dump_one_pass): Pass cfun to the pass's gate method.
29680         (execute_ipa_summary_passes): Likewise.
29681         (execute_one_pass): Likewise.
29682         (ipa_write_summaries_2): Likewise.
29683         (ipa_write_optimization_summaries_1): Likewise.
29684         (ipa_read_summaries_1): Likewise.
29685         (ipa_read_optimization_summaries_1): Likewise.
29686         (execute_ipa_stmt_fixups): Likewise.
29687         * tree-pass.h (opt_pass::gate): Add function * argument.
29688         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
29689         combine-stack-adj.c, combine.c, compare-elim.c,
29690         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29691         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
29692         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
29693         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
29694         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
29695         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
29696         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
29697         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
29698         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
29699         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
29700         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
29701         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
29702         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
29703         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
29704         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29705         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29706         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29707         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29708         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29709         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29710         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29711         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29712         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
29713         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
29714         var-tracking.c, vtable-verify.c, web.c: Adjust.
29715
29716 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29717
29718         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
29719         * configure: Regenerate.
29720
29721 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29722
29723         * passes.c (dump_one_pass): don't check pass->has_gate.
29724         (execute_ipa_summary_passes): Likewise.
29725         (execute_one_pass): Likewise.
29726         (ipa_write_summaries_2): Likewise.
29727         (ipa_write_optimization_summaries_1): Likewise.
29728         (ipa_read_optimization_summaries_1): Likewise.
29729         (execute_ipa_stmt_fixups): Likewise.
29730         * tree-pass.h (pass_data::has_gate): Remove.
29731         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
29732         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
29733         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
29734         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
29735         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
29736         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
29737         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
29738         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
29739         gimple-low.c, gimple-ssa-isolate-paths.c,
29740         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
29741         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
29742         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
29743         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
29744         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
29745         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
29746         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
29747         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
29748         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
29749         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
29750         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
29751         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
29752         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
29753         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
29754         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
29755         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
29756         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
29757         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
29758         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
29759         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
29760         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
29761         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
29762         Adjust.
29763
29764 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29765
29766         * pass_manager.h (pass_manager::register_dump_files_1): Remove
29767         declaration.
29768         * passes.c (pass_manager::register_dump_files_1): Merge into
29769         (pass_manager::register_dump_files): this, and remove its handling of
29770         properties since the pass always has the properties anyway.
29771         (pass_manager::pass_manager): Adjust.
29772
29773 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
29774
29775         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
29776         * passes.c (pass_manager::register_dump_files_1): Remove dead code
29777         dealing with properties.
29778         (pass_manager::register_dump_files): Adjust.
29779
29780 2014-03-20  Mark Wielaard  <mjw@redhat.com>
29781
29782         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
29783         then represent the bound as normal constant value.
29784
29785 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
29786
29787         PR target/60847
29788         Forward port from 4.8 branch
29789         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
29790
29791         * config/i386/bmiintrin.h (_blsi_u32): New.
29792         (_blsi_u64): Ditto.
29793         (_blsr_u32): Ditto.
29794         (_blsr_u64): Ditto.
29795         (_blsmsk_u32): Ditto.
29796         (_blsmsk_u64): Ditto.
29797         (_tzcnt_u32): Ditto.
29798         (_tzcnt_u64): Ditto.
29799
29800 2014-04-17  Kito Cheng  <kito@0xlab.org>
29801
29802         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
29803
29804 2014-04-17  Richard Biener  <rguenther@suse.de>
29805
29806         PR middle-end/60849
29807         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
29808         boolean results for comparisons.
29809
29810 2014-04-17  Richard Biener  <rguenther@suse.de>
29811
29812         PR tree-optimization/60836
29813         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
29814         initial PHI args to be gimple values.
29815
29816 2014-04-17  Richard Biener  <rguenther@suse.de>
29817
29818         PR tree-optimization/60841
29819         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
29820         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
29821         of stmts to SLP build.
29822         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
29823         (vect_analyze_slp): Likewise.
29824         (vect_analyze_slp_instance): Likewise.
29825         (vect_build_slp_tree): Limit overall SLP tree growth.
29826         * tree-vectorizer.h (vect_analyze_data_refs,
29827         vect_analyze_slp): Adjust prototypes.
29828
29829 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
29830
29831         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
29832         Silvermont.
29833
29834 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
29835
29836         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
29837         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
29838         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
29839         for TARGET_SLOW_PSHUFB
29840
29841 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
29842
29843         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
29844         * config/i386/i386.c (intel_cost): Ditto.
29845
29846 2014-04-17  Joey Ye  <joey.ye@arm.com>
29847
29848         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
29849
29850 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
29851
29852         * opts.c (common_handle_option): Disable -fipa-reference coorectly
29853         with -fuse-profile.
29854
29855 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
29856
29857         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
29858         (type_all_derivations_known_p): New predicate.
29859         (type_all_ctors_visible_p): New predicate.
29860         (type_possibly_instantiated_p): New predicate.
29861         (get_odr_type): Compute all_derivations_known.
29862         (dump_odr_type): Dump the flag.
29863         (maybe_record_type): Cleanup.
29864         (record_target_from_binfo): Add bases_to_consider array;
29865         record bases for types w/o instances and skip CXX destructor.
29866         (possible_polymorphic_call_targets_1): Add bases_to_consider
29867         and consider_construction parameters; check if type may have instance.
29868         (get_polymorphic_call_info): Set maybe_in_construction to true
29869         when we know nothing.
29870         (record_targets_from_bases): Skip CXX destructors; they are
29871         never called for types in construction.
29872         (possible_polymorphic_call_targets): Do not record target when
29873         type may not have instance.
29874
29875 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
29876
29877         PR ipa/60854
29878         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
29879         external aliases alive, too.
29880
29881 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
29882
29883         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
29884         definition.
29885
29886 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
29887
29888         * final.c (compute_alignments): Do not apply loop alignment to a block
29889         falling through to the exit.
29890
29891 2014-04-16  Catherine Moore  <clm@codesourcery.com>
29892
29893         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
29894         Adjust constraints for microMIPS store patterns.
29895
29896 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
29897
29898         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
29899
29900 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
29901
29902         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
29903         (append_use): Run at -O0.
29904         (append_vdef): Likewise.
29905         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
29906         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
29907
29908 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
29909
29910         PR tree-optimization/60844
29911         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
29912         (propagate_op_to_single_use, remove_visited_stmt_chain,
29913         linearize_expr, repropagate_negates, reassociate_bb): Use it
29914         instead of gsi_remove.
29915
29916 2014-04-16  Martin Jambor  <mjambor@suse.cz>
29917
29918         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
29919         ipa_transforms_to_apply.
29920         (cgraph_function_versioning): Assert that old_node has empty
29921         ipa_transforms_to_apply.
29922         * trans-mem.c (ipa_tm_create_version): Likewise.
29923         * tree-inline.c (tree_function_versioning): Do not duplicate
29924         ipa_transforms_to_apply.
29925
29926 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29927
29928         PR target/60817
29929         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
29930         x86_64-*-* cases.
29931         Pass necessary as flags on 64-bit Solaris/x86.
29932         Use lowercase relocs for x86_64-*-*.
29933         * configure: Regenerate.
29934
29935 2014-04-15  Jan Hubicka  <jh@suse.cz>
29936
29937         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
29938         (maybe_record_node, likely_target_p): Use it.
29939
29940 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29941
29942         PR target/60839
29943         Revert following patch
29944
29945         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
29946
29947         PR target/60735
29948         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
29949         software floating point or no floating point registers, do not
29950         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
29951         in GPRs that occurs after we tested for GPRs that would never be
29952         true.
29953
29954         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
29955         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
29956         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
29957         specifically allow DDmode, since that does not use the SPE SIMD
29958         instructions.
29959
29960 2014-03-21  Mark Wielaard  <mjw@redhat.com>
29961
29962         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
29963         as unsigned or int depending on type and value used.
29964
29965 2014-04-15  Richard Biener  <rguenther@suse.de>
29966
29967         PR rtl-optimization/56965
29968         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
29969         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
29970         ... here.
29971         * alias.c (true_dependence_1): Do not call
29972         nonoverlapping_component_refs_p.
29973         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
29974         nonoverlapping_component_refs_p.
29975         (indirect_refs_may_alias_p): Likewise.
29976
29977 2014-04-15  Teresa Johnson  <tejohnson@google.com>
29978
29979         * cfg.c (dump_bb_info): Fix flags check.
29980         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
29981
29982 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29983
29984         PR rtl-optimization/60663
29985         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
29986         avoid 0 cost.
29987
29988 2014-04-15  Richard Biener  <rguenther@suse.de>
29989
29990         * lto-streamer.h (LTO_major_version): Bump to 4.
29991
29992 2014-04-15  Richard Biener  <rguenther@suse.de>
29993
29994         * common.opt (lto_partition_model): New enum.
29995         (flto-partition=): Merge separate options with a single with argument,
29996         add -flto-partition=one support.
29997         * flag-types.h (enum lto_partition_model): Declare.
29998         * opts.c (finish_options): Remove duplicate -flto-partition=
29999         option check.
30000         * lto-wrapper.c (run_gcc): Adjust.
30001
30002 2014-04-15  Richard Biener  <rguenther@suse.de>
30003
30004         * alias.c (ncr_compar): New function.
30005         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
30006
30007 2014-04-15  Richard Biener  <rguenther@suse.de>
30008
30009         * alias.c (record_component_aliases): Do not walk BINFOs.
30010
30011 2014-04-15  Richard Biener  <rguenther@suse.de>
30012
30013         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
30014         Add struct function argument and adjust.
30015         (find_func_aliases_for_call): Likewise.
30016         (find_func_aliases): Likewise.
30017         (find_func_clobbers): Likewise.
30018         (intra_create_variable_infos): Likewise.
30019         (compute_points_to_sets): Likewise.
30020         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
30021
30022 2014-04-15  Richard Biener  <rguenther@suse.de>
30023
30024         * tree.c (iterative_hash_expr): Use enum tree_code_class
30025         to store TREE_CODE_CLASS.
30026         (tree_block): Likewise.
30027         (tree_set_block): Likewise.
30028         * tree.h (fold_build_pointer_plus_loc): Use
30029         convert_to_ptrofftype_loc.
30030
30031 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
30032
30033         PR plugins/59335
30034         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
30035         added in 4.9.
30036
30037 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
30038
30039         * cfgloop.h (struct loop): Move force_vectorize down.
30040         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
30041         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
30042         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
30043         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
30044         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
30045         * tree-core.h (enum annot_expr_kind): Add new kind values.
30046         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
30047         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
30048         kinds.
30049         * tree.def (ANNOTATE_EXPR): Tweak comment.
30050
30051 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
30052
30053         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
30054         cxa_pure_virtual).
30055
30056 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
30057
30058         * tree.h (TYPE_IDENTIFIER): Declare.
30059         * tree.c (subrange_type_for_debug_p): Use it.
30060         * godump.c (go_format_type): Likewise.
30061         * dwarf2out.c (is_cxx_auto, modified_type_die,
30062         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
30063         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
30064
30065 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
30066
30067         PR lto/60820
30068         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
30069
30070 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
30071
30072         * config/i386/i386.c (examine_argument): Return bool.  Return true if
30073         parameter should be passed in memory.
30074         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
30075         (construct_container): Update calls to examine_argument.
30076         (function_arg_advance_64): Ditto.
30077         (return_in_memory_32): Merge with ix86_return_in_memory.
30078         (return_in_memory_64): Ditto.
30079         (return_in_memory_ms_64): Ditto.
30080
30081 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
30082
30083         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
30084         * coverage.c (coverage_compute_profile_id): Handle externally visible
30085         symbols.
30086
30087 2014-04-14  Martin Jambor  <mjambor@suse.cz>
30088
30089         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
30090         DECL_DISREGARD_INLINE_LIMITS functions.
30091
30092 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
30093
30094         PR target/60827
30095         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
30096
30097 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
30098
30099         PR target/60827
30100         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
30101         optimize_insn_for_speed_p instead of
30102         optimize_function_for_speed_p.
30103
30104 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
30105
30106         * doc/invoke.texi (free): Document AArch64.
30107
30108 2014-04-14  Richard Biener  <rguenther@suse.de>
30109
30110         PR tree-optimization/60042
30111         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
30112         (insert_into_preds_of_block): Do not prevent PHI insertion
30113         for REFERENCE exprs here ...
30114         (eliminate_dom_walker::before_dom_children): ... but prevent
30115         their use here under similar conditions when applied to the
30116         IL after PRE optimizations.
30117
30118 2014-04-14  Richard Biener  <rguenther@suse.de>
30119
30120         * passes.def: Move early points-to after early SRA.
30121
30122 2014-04-14  Richard Biener  <rguenther@suse.de>
30123
30124         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
30125         check for which sign-changes we allow when forwarding
30126         a converted value into a switch.
30127
30128 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
30129
30130         * stor-layout.c (place_field): Finalize non-constant offset for the
30131         field, if any.
30132
30133 2014-04-14  Richard Biener  <rguenther@suse.de>
30134
30135         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
30136         as argument.
30137         (expand_switch_using_bit_tests_p): Likewise.
30138         (process_switch): Compute and pass on speed_p based on the
30139         switch stmt.
30140         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
30141         optimize_bb_for_speed_p.
30142
30143 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
30144
30145         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
30146         * function.h (struct function): Rename has_force_vect_loops into
30147         has_force_vectorize_loops.
30148         * lto-streamer-in.c (input_cfg): Adjust for renaming.
30149         (input_struct_function_base): Likewise.
30150         * lto-streamer-out.c (output_cfg): Likewise.
30151         (output_struct_function_base): Likewise.
30152         * omp-low.c (expand_omp_simd): Likewise.
30153         * tree-cfg.c (move_sese_region_to_fn): Likewise.
30154         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
30155         (version_loop_for_if_conversion): Likewise.
30156         (tree_if_conversion): Likewise.
30157         (main_tree_if_conversion): Likewise.
30158         (gate_tree_if_conversion): Likewise.
30159         * tree-inline.c (copy_loops): Likewise.
30160         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
30161         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
30162         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
30163         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
30164         * tree-vectorizer.c (vectorize_loops): Likewise.
30165         * tree-vectorizer.h (unlimited_cost_model): Likewise.
30166
30167 2014-04-14  Richard Biener  <rguenther@suse.de>
30168
30169         PR lto/60720
30170         * lto-streamer-out.c (wrap_refs): New function.
30171         (lto_output): Wrap symbol references in global initializes in
30172         type-preserving MEM_REFs.
30173
30174 2014-04-14  Christian Bruel  <christian.bruel@st.com>
30175
30176         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
30177
30178 2014-04-14  Christian Bruel  <christian.bruel@st.com>
30179
30180         * config/sh/sh.md (setmemqi): New expand pattern.
30181         * config/sh/sh.h (CLEAR_RATIO): Define.
30182         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
30183         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
30184
30185 2014-04-14  Richard Biener  <rguenther@suse.de>
30186
30187         PR middle-end/55022
30188         * fold-const.c (negate_expr_p): Don't negate directional rounding
30189         division.
30190         (fold_negate_expr): Likewise.
30191
30192 2014-04-14  Richard Biener  <rguenther@suse.de>
30193
30194         PR tree-optimization/59817
30195         PR tree-optimization/60453
30196         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
30197         recursion to catch all CHRECs in the scalar evolution and restrict
30198         the predicate for the remains appropriately.
30199
30200 2014-04-12  Catherine Moore  <clm@codesourcery.com>
30201
30202         * config/mips/constraints.md: Add new register constraint "kb".
30203         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
30204         (*movhi_internal): Likewise.
30205         (*movqi_internal): Likewise.
30206         * config/mips/mips.h (M16_STORE_REGS): New register class.
30207         (REG_CLASS_NAMES): Add M16_STORE_REGS.
30208         (REG_CLASS_CONTENTS): Likewise.
30209         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
30210
30211 2014-04-11  Tobias Burnus  <burnus@net-b.de>
30212
30213         PR c/60194
30214         * doc/invoke.texi (-Wformat-signedness): Document it.
30215         (Wformat=2): Mention that this enables -Wformat-signedness.
30216
30217 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
30218
30219         * common/config/epiphany/epiphany-common.c
30220         (epiphany_option_optimization_table): Enable section anchors by
30221         default at -O1 or higher.
30222         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
30223         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
30224         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
30225         carries no extra cost.
30226         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
30227         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
30228         * config/epiphany/predicates.md (memclob_operand): New predicate.
30229         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
30230         Use memclob_operand predicate and X constraint for operand 3.
30231
30232 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
30233
30234         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
30235         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
30236         its operands.
30237
30238 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
30239
30240         PR rtl-optimization/60651
30241         * mode-switching.c (optimize_mode_switching): Make sure to emit
30242         sets of a lower numbered entity before sets of a higher numbered
30243         entity to a mode of the same or lower priority.
30244         When creating a seginfo for a basic block that starts with a code
30245         label, move the insertion point past the code label.
30246         (new_seginfo): Document and enforce requirement that
30247         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
30248         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
30249         * doc/tm.texi: Regenerate.
30250
30251 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
30252
30253         PR target/60811
30254         * config/arc/arc.c (arc_save_restore): Fix assert typo.
30255
30256 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
30257
30258         * BASE-VER: Set to 4.10.0.
30259
30260 2014-04-11  Tobias Burnus  <burnus@net-b.de>
30261
30262         PR other/59055
30263         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
30264         * doc/gcc.texi (Service): Update description in the @menu
30265         * doc/invoke.texi (Option Summary): Remove misplaced and
30266         duplicated @menu.
30267
30268 2014-04-11  Steve Ellcey  <sellcey@mips.com>
30269             Jakub Jelinek  <jakub@redhat.com>
30270
30271         PR middle-end/60556
30272         * expr.c (convert_move): Use emit_store_flag_force instead of
30273         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
30274         argument to it.
30275
30276 2014-04-11  Richard Biener  <rguenther@suse.de>
30277
30278         PR middle-end/60797
30279         * varasm.c (assemble_alias): Avoid endless error reporting
30280         recursion by setting TREE_ASM_WRITTEN.
30281
30282 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30283
30284         * config/s390/s390.md: Add a splitter for NOT rtx.
30285
30286 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
30287
30288         PR rtl-optimization/60663
30289         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
30290
30291 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
30292             Jakub Jelinek  <jakub@redhat.com>
30293
30294         PR lto/60567
30295         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
30296         flag from decl_node to node.
30297
30298 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30299
30300         PR debug/60655
30301         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
30302         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
30303         ameliorating the cases where it can be.
30304
30305 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
30306
30307         Revert
30308         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
30309
30310         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
30311         (loadsync_<mode>): Change mode.
30312         (load_quadpti, store_quadpti): New.
30313         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
30314         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
30315         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
30316
30317 2014-04-09  Cong Hou  <congh@google.com>
30318
30319         PR testsuite/60773
30320         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
30321         documentation.
30322
30323 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30324
30325         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
30326         instead of vnor to exploit possible fusion opportunity in the
30327         future.
30328         (altivec_expand_vec_perm_const_le): Likewise.
30329
30330 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
30331
30332         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
30333         (loadsync_<mode>): Change mode.
30334         (load_quadpti, store_quadpti): New.
30335         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
30336         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
30337
30338 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
30339
30340         PR target/60763
30341         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
30342         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
30343         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
30344
30345 2014-04-08  Richard Biener  <rguenther@suse.de>
30346
30347         PR middle-end/60706
30348         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
30349         a 64bit widest int print double-int similar to on HWI64 hosts.
30350
30351 2014-04-08  Richard Biener  <rguenther@suse.de>
30352
30353         PR tree-optimization/60785
30354         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
30355         default defs properly.
30356
30357 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
30358
30359         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
30360         (Weffc++): Likewise.
30361
30362 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
30363
30364         * ipa-devirt.c (maybe_record_node): When node is not recorded,
30365         set completep to false rather than true.
30366
30367 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
30368
30369         PR target/60504
30370         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
30371         ARM_TARGET2_DWARF_FORMAT.
30372
30373 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
30374
30375         PR target/60609
30376         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
30377         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
30378         ADDR_DIFF_VEC.
30379
30380 2014-04-07  Richard Biener  <rguenther@suse.de>
30381
30382         PR tree-optimization/60766
30383         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
30384         (may_eliminate_iv): Convert cand_value_at result to desired type.
30385
30386 2014-04-07  Jason Merrill  <jason@redhat.com>
30387
30388         PR c++/60731
30389         * common.opt (-fno-gnu-unique): Add.
30390         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
30391
30392 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30393
30394         * haifa-sched.c: Fix outdated function reference and minor
30395         grammar errors in introductory comment.
30396
30397 2014-04-07  Richard Biener  <rguenther@suse.de>
30398
30399         PR middle-end/60750
30400         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
30401         for noreturn calls.
30402         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
30403
30404 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
30405
30406         PR debug/55794
30407         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
30408         size accounting for thunks.
30409         (pa_asm_output_mi_thunk): Use final_start_function() and
30410         final_end_function() to output function start and end directives.
30411
30412 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
30413
30414         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
30415         device specific ISA/ feature information. Remove short_sp and
30416         errata_skip ds.  Add avr_device_specific_features enum to have device
30417         specific info.
30418         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
30419         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
30420         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
30421         updated device specific info.
30422         * config/avr/avr-mcus.def: Merge device specific details to
30423         dev_attribute field.
30424         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
30425         errata_skip.
30426         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
30427         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
30428         assembler if RMW isa supported by current device.
30429         * config/avr/genmultilib.awk: Update as device info structure changed.
30430         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
30431
30432 2014-04-04  Cong Hou  <congh@google.com>
30433
30434         PR tree-optimization/60656
30435         * tree-vect-stmts.c (supportable_widening_operation):
30436         Fix a bug that elements in a vector with vect_used_by_reduction
30437         property are incorrectly reordered when the operation on it is not
30438         consistant with the one in reduction operation.
30439
30440 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
30441
30442         PR rtl-optimization/60155
30443         * gcse.c (record_set_data): New function.
30444         (single_set_gcse): New function.
30445         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
30446         (hoist_code): Likewise.
30447         (get_pressure_class_and_nregs): Likewise.
30448
30449 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
30450
30451         * explow.c (probe_stack_range): Emit a final optimization blockage.
30452
30453 2014-04-04  Anthony Green  <green@moxielogic.com>
30454
30455         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
30456         typos.
30457
30458 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
30459
30460         PR ipa/59626
30461         * lto-cgraph.c (input_overwrite_node): Check that partitioning
30462         flags are set only during streaming.
30463         * ipa.c (process_references, walk_polymorphic_call_targets,
30464         symtab_remove_unreachable_nodes): Drop bodies of always inline
30465         after early inlining.
30466         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
30467
30468 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
30469         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30470
30471         PR debug/60655
30472         * dwarf2out.c (const_ok_for_output_1): Reject expressions
30473         containing a NOT.
30474
30475 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30476
30477         PR bootstrap/60743
30478         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
30479         duration.
30480         (cortex_a53_fdivd): Likewise.
30481
30482 2014-04-04  Martin Jambor  <mjambor@suse.cz>
30483
30484         PR ipa/60640
30485         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
30486         Adjust all callers.
30487         * cgraph.c (clone_of_p): Also return true if thunks match.
30488         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
30489         cgraph_function_or_thunk_node and an obsolete comment.
30490         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
30491         file.
30492         (build_function_decl_skip_args): Likewise.
30493         (set_new_clone_decl_and_node_flags): New function.
30494         (duplicate_thunk_for_node): Likewise.
30495         (redirect_edge_duplicating_thunks): Likewise.
30496         (cgraph_clone_node): New parameter args_to_skip, pass it to
30497         redirect_edge_duplicating_thunks which is called instead of
30498         cgraph_redirect_edge_callee.
30499         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
30500         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
30501
30502 2014-04-04  Jeff Law  <law@redhat.com>
30503
30504         PR target/60657
30505         * config/arm/predicates.md (const_int_I_operand): New predicate.
30506         (const_int_M_operand): Similarly.
30507         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
30508         const_int_operand.
30509         (insv_t2, extv_reg, extzv_t2): Likewise.
30510         (load_multiple_with_writeback): Similarly for const_int_I_operand.
30511         (pop_multiple_with_writeback_and_return): Likewise.
30512         (vfp_pop_multiple_with_writeback): Likewise
30513
30514 2014-04-04  Richard Biener  <rguenther@suse.de>
30515
30516         PR ipa/60746
30517         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
30518         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
30519         non-GIMPLE_LABELs.
30520         * gimplify.h (gimple_add_tmp_var_fn): Declare.
30521         * gimplify.c (gimple_add_tmp_var_fn): New function.
30522         * gimple-expr.h (create_tmp_reg_fn): Declare.
30523         * gimple-expr.c (create_tmp_reg_fn): New function.
30524         * gimple-low.c (record_vars_into): Don't change cfun.
30525         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
30526         code generation without cfun.
30527
30528 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
30529
30530         PR bootstrap/60719
30531         * Makefile.in (install-driver): Fix shell scripting.
30532
30533 2014-04-03  Cong Hou  <congh@google.com>
30534
30535         PR tree-optimization/60505
30536         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
30537         threshold of number of iterations below which no vectorization
30538         will be done.
30539         * tree-vect-loop.c (new_loop_vec_info):
30540         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
30541         * tree-vect-loop.c (vect_analyze_loop_operations):
30542         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
30543         * tree-vect-loop.c (vect_transform_loop):
30544         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
30545         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
30546         of iterations of the loop and see if we should build the epilogue.
30547
30548 2014-04-03  Richard Biener  <rguenther@suse.de>
30549
30550         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
30551         (streamer_tree_cache_create): Adjust.
30552         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
30553         to allow optional nodes array.
30554         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
30555         (streamer_tree_cache_append): Likewise.
30556         (streamer_tree_cache_create): Create nodes array optionally
30557         as specified by parameter.
30558         * lto-streamer-out.c (create_output_block): Avoid maintaining
30559         the node array in the writer cache.
30560         (DFS_write_tree): Remove assertion.
30561         (produce_asm_for_decls): Free the out decl state hash table early.
30562         * lto-streamer-in.c (lto_data_in_create): Adjust for
30563         streamer_tree_cache_create prototype change.
30564
30565 2014-04-03  Richard Biener  <rguenther@suse.de>
30566
30567         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
30568         set TREE_CHAIN to NULL_TREE.
30569
30570 2014-04-03  Richard Biener  <rguenther@suse.de>
30571
30572         PR tree-optimization/60740
30573         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
30574         over all GIMPLE_COND operands.
30575
30576 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
30577
30578         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
30579         (Weffc++): Remove Scott's numbering, merge lists and reference
30580         Wnon-virtual-dtor.
30581
30582 2014-04-03  Nick Clifton  <nickc@redhat.com>
30583
30584         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
30585         properly.
30586
30587 2014-04-03  Martin Jambor  <mjambor@suse.cz>
30588
30589         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
30590         mention gcc_unreachable before failing.
30591         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
30592         removed symbols.
30593
30594 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
30595
30596         PR ipa/60659
30597         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
30598         inconsistent code and instead mark the context inconsistent.
30599         (possible_polymorphic_call_targets): For inconsistent contexts
30600         return empty complete list.
30601
30602 2014-04-02  Anthony Green  <green@moxielogic.com>
30603
30604         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
30605         (extendqisi2, extendhisi2): Define.
30606         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
30607         (WCHAR_TYPE): Change to unsigned int.
30608
30609 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30610
30611         PR tree-optimization/60733
30612         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
30613         insertion point for PHI candidates to be the end of the feeding
30614         block for the PHI argument.
30615
30616 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
30617
30618         PR rtl-optimization/60650
30619         * lra-constraints.c (process_alt_operands): Decrease reject for
30620         earlyclobber matching.
30621
30622 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30623
30624         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
30625
30626 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30627
30628         * config/spu/spu.c (pad_bb): Do not crash when the last
30629         insn is CODE_FOR_blockage.
30630
30631 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30632
30633         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
30634         lies outside the target mode.
30635
30636 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
30637
30638         PR target/60735
30639         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
30640         software floating point or no floating point registers, do not
30641         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
30642         in GPRs that occurs after we tested for GPRs that would never be
30643         true.
30644
30645         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
30646         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
30647         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
30648         specifically allow DDmode, since that does not use the SPE SIMD
30649         instructions.
30650
30651 2014-04-02  Richard Biener  <rguenther@suse.de>
30652
30653         PR middle-end/60729
30654         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
30655         MODE_INTs.  Properly use negv_optab.
30656         (expand_abs): Likewise.
30657
30658 2014-04-02  Richard Biener  <rguenther@suse.de>
30659
30660         PR bootstrap/60719
30661         * Makefile.in (install-driver): Guard extra installs with special
30662         names properly.
30663
30664 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
30665
30666         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30667         Document vec_vgbbd.
30668
30669 2014-04-01  Richard Henderson  <rth@redhat.com>
30670
30671         PR target/60704
30672         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
30673         alternative enabled before register allocation.
30674
30675 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
30676
30677         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
30678         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
30679         typo.
30680         (nios2_large_got_address): Remove unneeded 'sym' parameter.
30681         (nios2_got_address): Update nios2_large_got_address call site.
30682         (nios2_delegitimize_address): New function.
30683         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
30684         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
30685         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
30686
30687 2014-04-01  Martin Husemann  <martin@duskware.de>
30688
30689         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
30690         for -mabi=32.
30691
30692 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
30693
30694         PR rtl-optimization/60604
30695         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
30696         check from register_operand.
30697         (register_operand): Redefine in terms of general_operand.
30698         (nonmemory_operand): Use register_operand for the non-constant cases.
30699
30700 2014-04-01  Richard Biener  <rguenther@suse.de>
30701
30702         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
30703
30704 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30705
30706         * doc/invoke.texi (mapp-regs): Clarify.
30707
30708 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
30709
30710         * config/i386/avx512fintrin.h (__v32hi): Define type.
30711         (__v64qi): Likewise.
30712         (_mm512_set1_epi8): Define.
30713         (_mm512_set1_epi16): Define.
30714         (_mm512_set4_epi32): Define.
30715         (_mm512_set4_epi64): Define.
30716         (_mm512_set4_pd): Define.
30717         (_mm512_set4_ps): Define.
30718         (_mm512_setr4_epi64): Define.
30719         (_mm512_setr4_epi32): Define.
30720         (_mm512_setr4_pd): Define.
30721         (_mm512_setr4_ps): Define.
30722         (_mm512_setzero_epi32): Define.
30723
30724 2014-03-31  Martin Jambor  <mjambor@suse.cz>
30725
30726         PR middle-end/60647
30727         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
30728         callsite_arguments_match_p.  Updated all callers.  Also check types of
30729         corresponding formal parameters and actual arguments.
30730         (not_all_callers_have_enough_arguments_p) Renamed to
30731         some_callers_have_mismatched_arguments_p.
30732
30733 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
30734
30735         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
30736
30737 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
30738
30739         PR target/60034
30740         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
30741         section anchor.
30742
30743 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
30744
30745         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
30746         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
30747         Split out
30748         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
30749         Use FMAMODE_NOVF512 mode iterator.
30750         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
30751         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
30752         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
30753         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
30754         Split out
30755         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
30756         Use VF_128_256 mode iterator.
30757         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
30758         Ditto.
30759
30760 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
30761
30762         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
30763         static chain if needed.
30764
30765 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
30766
30767         PR target/60697
30768         * lra-constraints.c (index_part_to_reg): New.
30769         (process_address): Use it.
30770
30771 2014-03-27  Jeff Law  <law@redhat.com>
30772             Jakub Jelinek  <jakub@redhat.com>
30773
30774         PR target/60648
30775         * expr.c (do_tablejump): Use simplify_gen_binary rather than
30776         gen_rtx_{PLUS,MULT} to build up the address expression.
30777
30778         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
30779         creating non-canonical RTL.
30780
30781 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
30782
30783         PR ipa/60243
30784         * ipa-inline.c (want_inline_small_function_p): Short circuit large
30785         functions; reorganize to make cheap checks first.
30786         (inline_small_functions): Do not estimate growth when dumping;
30787         it is expensive.
30788         * ipa-inline.h (inline_summary): Add min_size.
30789         (growth_likely_positive): New function.
30790         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
30791         (set_cond_stmt_execution_predicate): Cleanup.
30792         (estimate_edge_size_and_time): Compute min_size.
30793         (estimate_calls_size_and_time): Likewise.
30794         (estimate_node_size_and_time): Likewise.
30795         (inline_update_overall_summary): Update min_size.
30796         (do_estimate_edge_time): Likewise.
30797         (do_estimate_edge_size): Update.
30798         (do_estimate_edge_hints): Update.
30799         (growth_likely_positive): New function.
30800
30801 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
30802
30803         PR target/60693
30804         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
30805         also if addr has VOIDmode.
30806
30807 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30808
30809         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
30810         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
30811         Declare extern.
30812         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
30813         instructions as well as AdvancedSIMD loads.
30814
30815 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30816
30817         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
30818         Use crypto_aese type.
30819         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
30820         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
30821         crypto_aese, crypto_aesmc.  Move to types.md.
30822         * config/arm/types.md (crypto_aes): Split into crypto_aese,
30823         crypto_aesmc.
30824         * config/arm/iterators.md (crypto_type): Likewise.
30825
30826 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
30827
30828         * cgraph.c: Include expr.h and tree-dfa.h.
30829         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
30830         remove LHS.
30831
30832 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
30833
30834         PR target/60675
30835         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
30836         regs from checking multi-reg pseudos.
30837
30838 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30839
30840         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
30841
30842 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30843
30844         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
30845         if it would clobber the stack pointer, even temporarily.
30846
30847 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
30848
30849         * mode-switching.c: Make small adjustments to the top comment.
30850
30851 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
30852
30853         * config/rs6000/constraints.md (wD constraint): New constraint to
30854         match the constant integer to get the top DImode/DFmode out of a
30855         vector in a VSX register.
30856
30857         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
30858         match the constant integer to get the top DImode/DFmode out of a
30859         vector in a VSX register.
30860
30861         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
30862         for ISA 2.07.
30863
30864         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
30865         vbpermq builtins.
30866
30867         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
30868         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
30869
30870         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
30871         Optimize vec_extract of 64-bit values, where the value being
30872         extracted is in the top word, where we can use scalar
30873         instructions.  Add direct move and store support.  Combine the big
30874         endian/little endian vector select load support into a single insn.
30875         (vsx_extract_<mode>_internal1): Likewise.
30876         (vsx_extract_<mode>_internal2): Likewise.
30877         (vsx_extract_<mode>_load): Likewise.
30878         (vsx_extract_<mode>_store): Likewise.
30879         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
30880         combined into vsx_extract_<mode>_load.
30881         (vsx_extract_<mode>_one_le): Likewise.
30882
30883         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
30884         define the top 64-bit vector element.
30885
30886         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
30887         constraint.
30888
30889         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30890         Document vec_vbpermq builtin.
30891
30892         PR target/60672
30893         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
30894         enable use of xxsldwi and xxpermdi builtin functions.
30895         (vec_xxpermdi): Likewise.
30896
30897         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
30898         Document use of vec_xxsldwi and vec_xxpermdi builtins.
30899
30900 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
30901
30902         PR rtl-optimization/60650
30903         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
30904         first_p.  Use it.
30905         (find_spills_for): New.
30906         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
30907         Spill all pseudos on the second iteration.
30908
30909 2014-03-27  Marek Polacek  <polacek@redhat.com>
30910
30911         PR c/50347
30912         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
30913         types.
30914
30915 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30916
30917         * config/s390/s390.c (s390_can_use_return_insn): Check for
30918         call-saved FPRs on 31 bit.
30919
30920 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
30921
30922         PR middle-end/60682
30923         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
30924         if they need regimplification, just drop them instead of
30925         calling gimple_regimplify_operands on them.
30926
30927 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
30928
30929         PR target/60580
30930         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
30931         (aarch64_frame_pointer_required): Adjust logic.
30932         (aarch64_can_eliminate): Adjust logic.
30933         (aarch64_override_options_after_change): Adjust logic.
30934
30935 2014-03-27  Dehao Chen  <dehao@google.com>
30936
30937         * ipa-inline.c (early_inliner): Update node's inline info.
30938
30939 2014-03-26  Dehao Chen  <dehao@google.com>
30940
30941         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
30942         compiler inserted conditional jumps for NAN float check.
30943
30944 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
30945
30946         * ubsan.h (ubsan_create_data): Change second argument's type
30947         to const location_t *.
30948         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
30949         _("<unknown>").
30950         (ubsan_create_data): Change second argument to const location_t *PLOC.
30951         Create Loc field whenever PLOC is non-NULL.
30952         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
30953         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
30954         callers.
30955
30956         PR other/59545
30957         * real.c (real_to_integer2): Change type of low to UHWI.
30958
30959 2014-03-26  Tobias Burnus  <burnus@net-b.de>
30960
30961         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
30962         (CILK_SELF_SPECS): New define.
30963         (driver_self_specs): Use it.
30964
30965 2014-03-26  Richard Biener  <rguenther@suse.de>
30966
30967         * tree-pretty-print.c (percent_K_format): Implement special
30968         case for LTO and its stripped down BLOCK tree.
30969
30970 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
30971
30972         PR sanitizer/60636
30973         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
30974
30975         * tree-vrp.c (simplify_internal_call_using_ranges): If only
30976         one range is range_int_cst_p, but not both, at least optimize
30977         addition/subtraction of 0 and multiplication by 0 or 1.
30978         * gimple-fold.c (gimple_fold_call): Fold
30979         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
30980         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
30981         INTEGER_CSTs, try to fold at least x * 0 and y - y.
30982
30983 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
30984
30985         PR rtl-optimization/60452
30986         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
30987         <case REG>: Return 1 for invalid offsets from the frame pointer.
30988
30989 2014-03-26  Marek Polacek  <polacek@redhat.com>
30990
30991         PR c/37428
30992         * doc/extend.texi (C Extensions): Mention variable-length arrays in
30993         a structure/union.
30994
30995 2014-03-26  Marek Polacek  <polacek@redhat.com>
30996
30997         PR c/39525
30998         * doc/extend.texi (Designated Inits): Describe what happens to omitted
30999         field members.
31000
31001 2014-03-26  Marek Polacek  <polacek@redhat.com>
31002
31003         PR other/59545
31004         * ira-color.c (update_conflict_hard_regno_costs): Perform the
31005         multiplication in unsigned type.
31006
31007 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
31008
31009         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
31010
31011 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
31012
31013         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
31014
31015 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
31016
31017         PR ipa/60315
31018         * cif-code.def (UNREACHABLE) New code.
31019         * ipa-inline.c (inline_small_functions): Skip edges to
31020         __builtlin_unreachable.
31021         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
31022         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
31023         predicate to __bulitin_unreachable.
31024         (set_cond_stmt_execution_predicate): Fix issue when
31025         invert_tree_comparison returns ERROR_MARK.
31026         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
31027         propagate to inline clones.
31028         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
31029         to unreachable.
31030         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
31031         * cgraphclones.c (cgraph_clone_node): If call destination is already
31032         ureachable, do not redirect it back.
31033         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
31034         unreachable.
31035
31036 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
31037
31038         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
31039         Do not modify inline clones.
31040
31041 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
31042
31043         * config/i386/i386.md (general_sext_operand): New mode attr.
31044         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
31045         don't generate (sign_extend (const_int)).
31046         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
31047         operands[2].  Use We constraint instead of <i> and
31048         <general_sext_operand> predicate instead of <general_operand>.
31049         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
31050         * config/i386/constraints.md (We): New constraint.
31051         * config/i386/predicates.md (x86_64_sext_operand,
31052         sext_operand): New predicates.
31053
31054 2014-03-25  Martin Jambor  <mjambor@suse.cz>
31055
31056         PR ipa/60600
31057         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
31058         inconsistent devirtualizations to __builtin_unreachable.
31059
31060 2014-03-25  Marek Polacek  <polacek@redhat.com>
31061
31062         PR c/35449
31063         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
31064
31065 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
31066
31067         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
31068         order of elements for big-endian.
31069
31070 2014-03-25  Richard Biener  <rguenther@suse.de>
31071
31072         PR middle-end/60635
31073         * gimplify-me.c (gimple_regimplify_operands): Update the
31074         re-gimplifed stmt.
31075
31076 2014-03-25  Martin Jambor  <mjambor@suse.cz>
31077
31078         PR ipa/59176
31079         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
31080         (lto_output_varpool_node): Likewise.
31081         (input_overwrite_node): Likewise.
31082         (input_varpool_node): Likewise.
31083
31084 2014-03-25  Richard Biener  <rguenther@suse.de>
31085
31086         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
31087         (run_gcc): Likewise.
31088
31089 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
31090
31091         * combine.c (simplify_compare_const): Add MODE argument.
31092         Handle mode_width 0 as very large mode_width.
31093         (try_combine, simplify_comparison): Adjust callers.
31094
31095         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
31096         type to avoid signed integer overflow.
31097         * explow.c (plus_constant): Likewise.
31098
31099 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
31100
31101         * doc/generic.texi: Correct typos.
31102
31103 2014-03-24  Tobias Burnus  <burnus@net-b.de>
31104
31105         * doc/invoke.texi (-flto): Expand section about
31106         using static libraries with LTO.
31107
31108 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31109
31110         PR rtl-optimization/60501
31111         * optabs.def (addptr3_optab): New optab.
31112         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
31113         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
31114         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
31115
31116         * lra.c (emit_add3_insn): Use the addptr pattern if available.
31117
31118         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
31119
31120 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
31121
31122         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
31123         _mm512_set1_pd.
31124
31125         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
31126         (_mm256_undefined_ps): Define.
31127         (_mm256_undefined_pd): Define.
31128         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
31129         (_mm_undefined_pd): Define.
31130         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
31131         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
31132         (_mm512_undefined_ps): Define.
31133         (_mm512_undefined_pd): Define.
31134         Use _mm*_undefined_*.
31135         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
31136
31137 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
31138
31139         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
31140         (lshr_simd): DI mode added.
31141         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
31142         (aarch64_ushr_simddi): Likewise.
31143         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
31144         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
31145         (vshrd_n_u64): Likewise.
31146
31147 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31148
31149         * Makefile.in (s-macro_list): Depend on cc1.
31150
31151 2014-03-23  Teresa Johnson  <tejohnson@google.com>
31152
31153         * ipa-utils.c (ipa_print_order): Use specified dump file.
31154
31155 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
31156
31157         PR rtl-optimization/60601
31158         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
31159
31160         * gcc.c (eval_spec_function): Initialize save_growing_value.
31161
31162 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
31163
31164         PR sanitizer/60613
31165         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
31166         code == MINUS_EXPR, never swap op0 with op1.
31167
31168         * toplev.c (init_local_tick): Avoid signed integer multiplication
31169         overflow.
31170         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
31171         shift by first operand's bitsize.
31172
31173 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
31174
31175         PR target/60610
31176         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
31177         redefine to 1 or 0.
31178         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
31179         TARGET_ISA_64BIT_P(x).
31180
31181 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31182
31183         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
31184         pattern for vector nor instead of subtract from splat(-1).
31185         (altivec_expand_vec_perm_const_le): Likewise.
31186
31187 2014-03-21  Richard Henderson  <rth@twiddle.net>
31188
31189         PR target/60598
31190         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
31191         related insns after epilogue_completed.
31192
31193 2014-03-21  Martin Jambor  <mjambor@suse.cz>
31194
31195         PR ipa/59176
31196         * cgraph.h (symtab_node): New flag body_removed.
31197         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
31198         when removing bodies.
31199         * symtab.c (dump_symtab_base): Dump body_removed flag.
31200         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
31201         had their bodies removed.
31202
31203 2014-03-21  Martin Jambor  <mjambor@suse.cz>
31204
31205         PR ipa/60419
31206         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
31207         in the border.
31208
31209 2014-03-21  Richard Biener  <rguenther@suse.de>
31210
31211         PR tree-optimization/60577
31212         * tree-core.h (struct tree_base): Document nothrow_flag use
31213         in DECL_NONALIASED.
31214         * tree.h (DECL_NONALIASED): New.
31215         (may_be_aliased): Adjust.
31216         * coverage.c (build_var): Set DECL_NONALIASED.
31217
31218 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
31219
31220         * expr.c (expand_expr_real_1): Remove outdated comment.
31221
31222 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
31223
31224         PR middle-end/60597
31225         * ira.c (adjust_cleared_regs): Call copy_rtx on
31226         *reg_equiv[REGNO (loc)].src_p before passing it to
31227         simplify_replace_fn_rtx.
31228
31229         PR target/60568
31230         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
31231         into CONST, put pic register as first operand of PLUS.  Use
31232         gen_const_mem for both 32-bit and 64-bit PIC got loads.
31233
31234 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31235
31236         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
31237
31238 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
31239
31240         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
31241         around for store forwarding issue in the FPU on the UT699.
31242         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
31243         loads and operations if -mfix-ut699 is specified.
31244         (divtf3_hq): Tweak attribute.
31245         (sqrttf2_hq): Likewise.
31246
31247 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
31248
31249         * calls.c (store_one_arg): Remove incorrect const qualification on the
31250         type of the temporary.
31251         * cfgexpand.c (expand_return): Likewise.
31252         * expr.c (expand_constructor): Likewise.
31253         (expand_expr_real_1): Likewise.
31254
31255 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
31256
31257         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
31258         of parts.
31259
31260 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
31261
31262         PR target/60039
31263         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
31264
31265 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
31266
31267         * config/arm/aarch-common-protos.h
31268         (alu_cost_table): Fix spelling of "extend".
31269         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
31270
31271 2014-03-19  Richard Biener  <rguenther@suse.de>
31272
31273         PR middle-end/60553
31274         * tree-core.h (tree_type_common): Re-order pointer members
31275         to reduce recursion depth during GC walks.
31276
31277 2014-03-19  Marek Polacek  <polacek@redhat.com>
31278
31279         PR sanitizer/60569
31280         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
31281         before accessing it.
31282
31283 2014-03-19  Richard Biener  <rguenther@suse.de>
31284
31285         PR lto/59543
31286         * lto-streamer-in.c (input_function): In WPA stage do not drop
31287         debug stmts.
31288
31289 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
31290
31291         PR tree-optimization/60559
31292         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
31293         with build_zero_cst assignment.
31294
31295 2014-03-18  Kai Tietz  <ktietz@redhat.com>
31296
31297         PR rtl-optimization/56356
31298         * sdbout.c (sdbout_parms): Verify that parms'
31299         incoming argument is valid.
31300         (sdbout_reg_parms): Likewise.
31301
31302 2014-03-18  Richard Henderson  <rth@redhat.com>
31303
31304         PR target/60562
31305         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
31306         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
31307         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
31308
31309 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
31310
31311         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
31312         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
31313         Italicize plugin event names in description.  Explain that
31314         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
31315         Remind that no GCC functions should be called after PLUGIN_FINISH.
31316         Explain what pragmas with expansion are.
31317
31318 2014-03-18  Martin Liska  <mliska@suse.cz>
31319
31320         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
31321         gimple call statement is update.
31322         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
31323         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
31324
31325 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
31326
31327         PR sanitizer/60557
31328         * ubsan.c (ubsan_instrument_unreachable): Call
31329         initialize_sanitizer_builtins.
31330         (ubsan_pass): Likewise.
31331
31332         PR sanitizer/60535
31333         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
31334         varpool_finalize_decl instead of rest_of_decl_compilation.
31335
31336 2014-03-18  Richard Biener  <rguenther@suse.de>
31337
31338         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
31339         by using bitmap_and_compl instead of bitmap_and_compl_into.
31340         (df_rd_transfer_function): Likewise.
31341
31342 2014-03-18  Richard Biener  <rguenther@suse.de>
31343
31344         * doc/lto.texi (fresolution): Fix typo.
31345
31346 2014-03-18  Richard Biener  <rguenther@suse.de>
31347
31348         * doc/invoke.texi (flto): Update for changes in 4.9.
31349
31350 2014-03-18  Richard Biener  <rguenther@suse.de>
31351
31352         * doc/loop.texi: Remove section on the removed lambda framework.
31353         Update loop docs with recent changes in preserving loop structure.
31354
31355 2014-03-18  Richard Biener  <rguenther@suse.de>
31356
31357         * doc/lto.texi (-fresolution): Document.
31358
31359 2014-03-18  Richard Biener  <rguenther@suse.de>
31360
31361         * doc/contrib.texi: Adjust my name.
31362
31363 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
31364
31365         PR ipa/58721
31366         * internal-fn.c: Include diagnostic-core.h.
31367         (expand_BUILTIN_EXPECT): New function.
31368         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
31369         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
31370         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
31371         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
31372         IFN_BUILTIN_EXPECT.
31373         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
31374         Revert 3 argument __builtin_expect code.
31375         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
31376         * gimple-fold.c (gimple_fold_call): Likewise.
31377         * tree.h (fold_builtin_expect): New prototype.
31378         * builtins.c (build_builtin_expect_predicate): Add predictor
31379         argument, if non-NULL, create 3 argument __builtin_expect.
31380         (fold_builtin_expect): No longer static.  Add ARG2 argument,
31381         pass it through to build_builtin_expect_predicate.
31382         (fold_builtin_2): Adjust caller.
31383         (fold_builtin_3): Handle BUILT_IN_EXPECT.
31384         * internal-fn.def (BUILTIN_EXPECT): New.
31385
31386 2014-03-18  Tobias Burnus  <burnus@net-b.de>
31387
31388         PR ipa/58721
31389         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
31390         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
31391         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
31392
31393 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
31394
31395         PR ipa/58721
31396         * predict.c (combine_predictions_for_bb): Fix up formatting.
31397         (expr_expected_value_1, expr_expected_value): Add predictor argument,
31398         fill what it points to if non-NULL.
31399         (tree_predict_by_opcode): Adjust caller, use the predictor.
31400         * predict.def (PRED_COMPARE_AND_SWAP): Add.
31401
31402 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
31403
31404         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
31405         proper constant for the store mode.
31406
31407 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
31408
31409         * symtab.c (change_decl_assembler_name): Fix transparent alias
31410         chain construction.
31411
31412 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
31413
31414         * config/aarch64/aarch64.c: Correct the comments about the
31415         aarch64 stack layout.
31416
31417 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
31418
31419         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
31420         check for GF_OMP_FOR_KIND_FOR.
31421
31422 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
31423
31424         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
31425         ymm and zmm register names.
31426
31427 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
31428
31429         PR target/60516
31430         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
31431         note creation for the 2010-08-31 changes.
31432
31433 2014-03-17  Marek Polacek  <polacek@redhat.com>
31434
31435         PR middle-end/60534
31436         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
31437         as -fno-tree-loop-vectorize.
31438         (expand_omp_simd): Likewise.
31439
31440 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
31441
31442         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
31443         (eligible_for_call_delay): New prototype.
31444         * config/sparc/sparc.c (tls_call_delay): Rename into...
31445         (eligible_for_call_delay): ...this.  Return false if the instruction
31446         cannot be put in the delay slot of a branch.
31447         (eligible_for_restore_insn): Simplify.
31448         (eligible_for_return_delay): Return false if the instruction cannot be
31449         put in the delay slot of a branch and simplify.
31450         (eligible_for_sibcall_delay): Return false if the instruction cannot be
31451         put in the delay slot of a branch.
31452         * config/sparc/sparc.md (fix_ut699): New attribute.
31453         (tls_call_delay): Delete.
31454         (in_call_delay): Reimplement.
31455         (eligible_for_sibcall_delay): Rename into...
31456         (in_sibcall_delay): ...this.
31457         (eligible_for_return_delay): Rename into...
31458         (in_return_delay): ...this.
31459         (in_branch_delay): Reimplement.
31460         (in_uncond_branch_delay): Delete.
31461         (in_annul_branch_delay): Delete.
31462
31463 2014-03-14  Richard Henderson  <rth@redhat.com>
31464
31465         PR target/60525
31466         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
31467         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
31468         (*floathi<X87MODEF>2_i387_with_temp): Remove.
31469         (floathi splitters): Remove.
31470         (float<SWI48x>xf2): New pattern.
31471         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
31472         code that tried to handle DImode for 32-bit, but which was excluded
31473         by the pattern's condition.  Drop allocation of stack temporary.
31474         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
31475         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
31476         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
31477         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
31478         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
31479         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
31480         (*float<SWI48><MODEF>2_sse_interunit): Remove.
31481         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
31482         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
31483         (*float<SWI48x><X87MODEF>2_i387): Remove.
31484         (all float _with_temp splitters): Remove.
31485         (*float<SWI48x><MODEF>2_i387): New pattern.
31486         (*float<SWI48><MODEF>2_sse): New pattern.
31487         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
31488         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
31489
31490 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
31491             Marek Polacek  <polacek@redhat.com>
31492
31493         PR middle-end/60484
31494         * common.opt (dump_base_name_prefixed): New Variable.
31495         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
31496         if x_dump_base_name_prefixed is already set, set it at the end.
31497
31498 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
31499
31500         PR rtl-optimization/60508
31501         * lra-constraints.c (get_reload_reg): Add new parameter
31502         in_subreg_p.
31503         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
31504         Pass the new parameter values.
31505
31506 2014-03-14  Richard Biener  <rguenther@suse.de>
31507
31508         * common.opt: Revert unintented changes from r205065.
31509         * opts.c: Likewise.
31510
31511 2014-03-14  Richard Biener  <rguenther@suse.de>
31512
31513         PR middle-end/60518
31514         * cfghooks.c (split_block): Properly adjust all loops the
31515         block was a latch of.
31516
31517 2014-03-14  Martin Jambor  <mjambor@suse.cz>
31518
31519         PR lto/60461
31520         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
31521         and simplify it.
31522
31523 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
31524
31525         PR target/59396
31526         * config/avr/avr.c (avr_set_current_function): Pass function name
31527         through default_strip_name_encoding before sanity checking instead
31528         of skipping the first char of the assembler name.
31529
31530 2014-03-13  Richard Henderson  <rth@redhat.com>
31531
31532         PR debug/60438
31533         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
31534         (ix86_force_to_memory, ix86_free_from_memory): Remove.
31535         * config/i386/i386-protos.h: Likewise.
31536         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
31537         in the expander instead of a splitter.
31538         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
31539         any possibility of requiring a memory.
31540         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
31541         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
31542         (fp branch splitters): Update for ix86_split_fp_branch.
31543         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
31544         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
31545         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
31546         (*fop_<MODEF>_2_i387): Remove f/r alternative.
31547         (*fop_<MODEF>_3_i387): Likewise.
31548         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
31549         (splitters for the fop_* register patterns): Remove.
31550         (fscalexf4_i387): Rename from *fscalexf4_i387.
31551         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
31552
31553 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
31554
31555         PR tree-optimization/59779
31556         * tree-dfa.c (get_ref_base_and_extent): Use double_int
31557         type for bitsize and maxsize instead of HOST_WIDE_INT.
31558
31559 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
31560
31561         PR rtl-optimization/57320
31562         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
31563         the CFG after thread_prologue_and_epilogue_insns.
31564
31565 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
31566
31567         PR rtl-optimization/57189
31568         * lra-constraints.c (process_alt_operands): Disfavor spilling
31569         vector pseudos.
31570
31571 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
31572
31573         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
31574
31575 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
31576
31577         PR tree-optimization/59025
31578         PR middle-end/60418
31579         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
31580         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
31581
31582 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
31583
31584         PR target/60486
31585         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
31586         calls of avr_out_plus_1.
31587
31588 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
31589
31590         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
31591         BB's single pred and update the father loop's latch info later.
31592
31593 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
31594
31595         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
31596         (VEC_M): Likewise.
31597         (VEC_N): Likewise.
31598         (VEC_R): Likewise.
31599         (VEC_base): Likewise.
31600         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
31601         registers, we need to swap double words in little endian mode.
31602
31603         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
31604         to be a container mode for 128-bit integer operations added in ISA
31605         2.07.  Unlike TImode and PTImode, the preferred register set is
31606         the Altivec/VMX registers for the 128-bit operations.
31607
31608         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
31609         declarations.
31610         (rs6000_split_128bit_ok_p): Likewise.
31611
31612         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
31613         macros for creating ISA 2.07 normal and overloaded builtin
31614         functions with 3 arguments.
31615         (BU_P8V_OVERLOAD_3): Likewise.
31616         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
31617         for use as overloaded functions.
31618         (VPERM_1TI_UNS): Likewise.
31619         (VSEL_1TI): Likewise.
31620         (VSEL_1TI_UNS): Likewise.
31621         (ST_INTERNAL_1ti): Likewise.
31622         (LD_INTERNAL_1ti): Likewise.
31623         (XXSEL_1TI): Likewise.
31624         (XXSEL_1TI_UNS): Likewise.
31625         (VPERM_1TI): Likewise.
31626         (VPERM_1TI_UNS): Likewise.
31627         (XXPERMDI_1TI): Likewise.
31628         (SET_1TI): Likewise.
31629         (LXVD2X_V1TI): Likewise.
31630         (STXVD2X_V1TI): Likewise.
31631         (VEC_INIT_V1TI): Likewise.
31632         (VEC_SET_V1TI): Likewise.
31633         (VEC_EXT_V1TI): Likewise.
31634         (EQV_V1TI): Likewise.
31635         (NAND_V1TI): Likewise.
31636         (ORC_V1TI): Likewise.
31637         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
31638         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
31639         overloaded builtin.
31640         (VADDUQM): Likewise.
31641         (VSUBCUQ): Likewise.
31642         (VADDEUQM): Likewise.
31643         (VADDECUQ): Likewise.
31644         (VSUBEUQM): Likewise.
31645         (VSUBECUQ): Likewise.
31646
31647         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
31648         __int128_t and __uint128_t types.
31649         (__uint128_type): Likewise.
31650         (altivec_categorize_keyword): Add support for vector __int128_t,
31651         vector __uint128_t, vector __int128, and vector unsigned __int128
31652         as a container type for TImode operations that need to be done in
31653         VSX/Altivec registers.
31654         (rs6000_macro_to_expand): Likewise.
31655         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
31656         to support 128-bit integer instructions vaddcuq, vadduqm,
31657         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
31658         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
31659
31660         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
31661         for V1TImode, and set up preferences to use VSX/Altivec registers.
31662         Setup VSX reload handlers.
31663         (rs6000_debug_reg_global): Likewise.
31664         (rs6000_init_hard_regno_mode_ok): Likewise.
31665         (rs6000_preferred_simd_mode): Likewise.
31666         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
31667         (easy_altivec_constant): Likewise.
31668         (output_vec_const_move): Likewise.
31669         (rs6000_expand_vector_set): Convert V1TImode set and extract to
31670         simple move.
31671         (rs6000_expand_vector_extract): Likewise.
31672         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
31673         addressing.
31674         (rs6000_const_vec): Add support for V1TImode.
31675         (rs6000_emit_le_vsx_load): Swap double words when loading or
31676         storing TImode/V1TImode.
31677         (rs6000_emit_le_vsx_store): Likewise.
31678         (rs6000_emit_le_vsx_move): Likewise.
31679         (rs6000_emit_move): Add support for V1TImode.
31680         (altivec_expand_ld_builtin): Likewise.
31681         (altivec_expand_st_builtin): Likewise.
31682         (altivec_expand_vec_init_builtin): Likewise.
31683         (altivec_expand_builtin): Likewise.
31684         (rs6000_init_builtins): Add support for V1TImode type.  Add
31685         support for ISA 2.07 128-bit integer builtins.  Define type names
31686         for the VSX/Altivec vector types.
31687         (altivec_init_builtins): Add support for overloaded vector
31688         functions with V1TImode type.
31689         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
31690         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
31691         external function.
31692         (rs6000_split_128bit_ok_p): Likewise.
31693         (rs6000_handle_altivec_attribute): Create V1TImode from vector
31694         __int128_t and vector __uint128_t.
31695
31696         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
31697         and mode attributes.
31698         (VSX_M): Likewise.
31699         (VSX_M2): Likewise.
31700         (VSm): Likewise.
31701         (VSs): Likewise.
31702         (VSr): Likewise.
31703         (VSv): Likewise.
31704         (VS_scalar): Likewise.
31705         (VS_double): Likewise.
31706         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
31707
31708         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
31709         we support the ISA 2.07 128-bit integer arithmetic instructions.
31710         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
31711         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
31712         and TImode types for use with the builtin functions.
31713         (V1TI_type_node): Likewise.
31714         (unsigned_V1TI_type_node): Likewise.
31715         (intTI_type_internal_node): Likewise.
31716         (uintTI_type_internal_node): Likewise.
31717
31718         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
31719         128-bit builtin functions.
31720         (UNSPEC_VADDEUQM): Likewise.
31721         (UNSPEC_VADDECUQ): Likewise.
31722         (UNSPEC_VSUBCUQ): Likewise.
31723         (UNSPEC_VSUBEUQM): Likewise.
31724         (UNSPEC_VSUBECUQ): Likewise.
31725         (VM): Add V1TImode to vector mode iterators.
31726         (VM2): Likewise.
31727         (VI_unit): Likewise.
31728         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
31729         (altivec_vaddcuq): Likewise.
31730         (altivec_vsubuqm): Likewise.
31731         (altivec_vsubcuq): Likewise.
31732         (altivec_vaddeuqm): Likewise.
31733         (altivec_vaddecuq): Likewise.
31734         (altivec_vsubeuqm): Likewise.
31735         (altivec_vsubecuq): Likewise.
31736
31737         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
31738         mode iterators.
31739         (BOOL_128): Likewise.
31740         (BOOL_REGS_OUTPUT): Likewise.
31741         (BOOL_REGS_OP1): Likewise.
31742         (BOOL_REGS_OP2): Likewise.
31743         (BOOL_REGS_UNARY): Likewise.
31744         (BOOL_REGS_AND_CR0): Likewise.
31745
31746         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
31747         128-bit integer builtin support.
31748         (vec_vadduqm): Likewise.
31749         (vec_vaddecuq): Likewise.
31750         (vec_vaddeuqm): Likewise.
31751         (vec_vsubecuq): Likewise.
31752         (vec_vsubeuqm): Likewise.
31753         (vec_vsubcuq): Likewise.
31754         (vec_vsubuqm): Likewise.
31755
31756         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
31757         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
31758         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
31759         128-bit integer add/subtract to ISA 2.07.
31760
31761 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
31762
31763         * config/arc/arc.c (arc_predicate_delay_insns):
31764         Fix third argument passed to conditionalize_nonjump.
31765
31766 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
31767
31768         * config/aarch64/aarch64-builtins.c
31769         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
31770         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
31771         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
31772         instead of __builtin_lfloor.
31773         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
31774
31775 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
31776
31777         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
31778         (tree_ssa_ifcombine_bb_1): New function.
31779         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
31780         is an empty forwarder block to then_bb or vice versa and then_bb
31781         and else_bb are effectively swapped.
31782
31783 2014-03-12  Christian Bruel  <christian.bruel@st.com>
31784
31785         PR target/60264
31786         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
31787         REG_CFA_DEF_CFA note.
31788         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
31789         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
31790
31791 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31792
31793         PR tree-optimization/60454
31794         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
31795
31796 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31797
31798         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
31799         Do not define target_cpu_default2 to generic.
31800         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
31801         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
31802         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
31803
31804 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
31805             Marc Glisse  <marc.glisse@inria.fr>
31806
31807         PR tree-optimization/60502
31808         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
31809         instead of build_low_bits_mask.
31810
31811 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
31812
31813         PR middle-end/60482
31814         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
31815         if there are multiple uses, but op doesn't live on E edge.
31816         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
31817         clobber stmts before __builtin_unreachable.
31818
31819 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
31820
31821         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
31822         hard_frame_pointer_rtx.
31823         * cse.c (cse_insn): Remove volatile check.
31824         * cselib.c (cselib_process_insn): Likewise.
31825         * dse.c (scan_insn): Likewise.
31826
31827 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
31828
31829         * config/arc/arc.c (conditionalize_nonjump): New function,
31830         broken out of ...
31831         (arc_ifcvt): ... this.
31832         (arc_predicate_delay_insns): Use it.
31833
31834 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
31835
31836         * config/arc/predicates.md (extend_operand): During/after reload,
31837         allow const_int_operand.
31838         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
31839         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
31840         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
31841         to "i".
31842         (umulsi3_highpart_i): Likewise.
31843
31844 2014-03-11  Richard Biener  <rguenther@suse.de>
31845
31846         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
31847         Add asserts to guard possible wrong-code bugs.
31848
31849 2014-03-11  Richard Biener  <rguenther@suse.de>
31850
31851         PR tree-optimization/60429
31852         PR tree-optimization/60485
31853         * tree-ssa-structalias.c (set_union_with_increment): Properly
31854         take into account all fields that overlap the shifted vars.
31855         (do_sd_constraint): Likewise.
31856         (do_ds_constraint): Likewise.
31857         (get_constraint_for_ptr_offset): Likewise.
31858
31859 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
31860
31861         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
31862         (nios2_compute_frame_layout):
31863         Add calculation of cfun->machine->fp_save_offset.
31864         (nios2_expand_prologue): Correct setting of frame pointer register
31865         in prologue.
31866         (nios2_expand_epilogue): Update recovery of stack pointer from
31867         frame pointer accordingly.
31868         (nios2_initial_elimination_offset): Update calculation of offset
31869         for eliminating to HARD_FRAME_POINTER_REGNUM.
31870
31871 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
31872
31873         PR ipa/60457
31874         * ipa.c (symtab_remove_unreachable_nodes): Don't call
31875         cgraph_get_create_node on VAR_DECLs.
31876
31877 2014-03-10  Richard Biener  <rguenther@suse.de>
31878
31879         PR middle-end/60474
31880         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
31881
31882 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
31883
31884         * config/vms/vms.opt (vms_float_format): New variable.
31885
31886 2014-03-08  Tobias Burnus  <burnus@net-b.de>
31887
31888         * doc/invoke.texi (-fcilkplus): Update implementation status.
31889
31890 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
31891             Richard Biener  <rguenther@suse.de>
31892
31893         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
31894         consistently accross all TUs.
31895         (run_gcc): Enable -fshort-double automatically at link at link-time
31896         and disallow override.
31897
31898 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
31899
31900         PR target/58271
31901         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
31902         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
31903         if they can't be used.
31904
31905 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31906
31907         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
31908         for Solaris 11/x86 ld.
31909         * configure: Regenerate.
31910
31911 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31912
31913         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
31914         (LIB_TLS_SPEC): Save as ld_tls_libs.
31915         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
31916         (HAVE_AS_IX86_TLSLDM): New test.
31917         * configure, config.in: Regenerate.
31918         * config/i386/i386.c (legitimize_tls_address): Fall back to
31919         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
31920         cannot support TLS_MODEL_LOCAL_DYNAMIC.
31921         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
31922         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
31923
31924 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
31925
31926         * common.opt (fira-loop-pressure): Mark as optimization.
31927
31928 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
31929
31930         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
31931         an OpenMP mappable type.
31932
31933 2014-03-06  Matthias Klose  <doko@ubuntu.com>
31934
31935         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
31936         MULTILIB_OSDIRNAMES is not defined.
31937
31938 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
31939             Meador Inge  <meadori@codesourcery.com>
31940
31941         PR target/58595
31942         * config/arm/arm.c (arm_tls_symbol_p): Remove.
31943         (arm_legitimize_address): Call legitimize_tls_address for any
31944         arm_tls_referenced_p expression, handle constant addend.  Call it
31945         before testing for !TARGET_ARM.
31946         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
31947
31948 2014-03-06  Richard Biener  <rguenther@suse.de>
31949
31950         PR middle-end/60445
31951         PR lto/60424
31952         PR lto/60427
31953         Revert
31954         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
31955
31956         * tree-streamer.c (record_common_node): Assert we don't record
31957         nodes with type double.
31958         (preload_common_node): Skip type double, complex double and double
31959         pointer since it is now frontend dependent due to fshort-double option.
31960
31961 2014-03-06  Richard Biener  <rguenther@suse.de>
31962
31963         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
31964         or -fno-lto is specified and the linker has full plugin support.
31965         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
31966         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
31967         * lto-wrapper.c (merge_and_complain): Merge compile-time
31968         optimization levels.
31969         (run_gcc): And pass it through to the link options.
31970
31971 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
31972
31973         PR debug/60381
31974         Revert:
31975         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
31976         PR debug/59992
31977         * cselib.c (remove_useless_values): Skip to avoid quadratic
31978         behavior if the condition moved from...
31979         (cselib_process_insn): ... here holds.
31980
31981 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
31982
31983         PR plugins/59335
31984         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
31985         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
31986
31987         PR plugins/59335
31988         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
31989         (TM_H): Add x86-tune.def.
31990
31991 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31992
31993         * config/aarch64/aarch64.c (generic_tunings):
31994         Use cortexa57_extra_costs.
31995
31996 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
31997
31998         PR lto/60404
31999         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
32000         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
32001         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
32002         cost for in_lto_p.
32003
32004 2014-03-04  Heiher  <r@hev.cc>
32005
32006         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
32007         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
32008
32009 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
32010
32011         * config/i386/predicates.md (const2356_operand): Change to ...
32012         (const2367_operand): ... this.
32013         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
32014         const2367_operand.
32015         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
32016         (*avx512pf_scatterpf<mode>sf): Ditto.
32017         (avx512pf_scatterpf<mode>df): Ditto.
32018         (*avx512pf_scatterpf<mode>df_mask): Ditto.
32019         (*avx512pf_scatterpf<mode>df): Ditto.
32020         * config/i386/i386.c (ix86_expand_builtin): Update
32021         incorrect hint operand error message.
32022
32023 2014-03-04  Richard Biener  <rguenther@suse.de>
32024
32025         * lto-section-in.c (lto_get_section_data): Fix const cast.
32026
32027 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
32028
32029         * tree-streamer.c (record_common_node): Assert we don't record
32030         nodes with type double.
32031         (preload_common_node): Skip type double, complex double and double
32032         pointer since it is now frontend dependent due to fshort-double option.
32033
32034 2014-03-04  Richard Biener  <rguenther@suse.de>
32035
32036         PR lto/60405
32037         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
32038         (lto_input_toplevel_asms): Likewise.
32039         * lto-section-in.c (lto_get_section_data): Instead do it here
32040         for every section.
32041
32042 2014-03-04  Richard Biener  <rguenther@suse.de>
32043
32044         PR tree-optimization/60382
32045         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
32046         dead PHIs a reduction.
32047
32048 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
32049
32050         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
32051         hint value.
32052         (_mm_prefetch): Move out of GCC target("sse") pragma.
32053         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
32054         GCC target("prfchw") pragma.
32055         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
32056         for locality <= 2.
32057         * config/i386/i386.c (ix86_option_override_internal): Enable
32058         -mprfchw with -mprefetchwt1.
32059
32060 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
32061
32062         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
32063         Mark as varying.
32064
32065 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
32066
32067         * opts.h (CL_PCH_IGNORE): Define.
32068         * targhooks.c (option_affects_pch_p):
32069         Return false for options that have CL_PCH_IGNORE set.
32070         * opt-functions.awk: Process PchIgnore.
32071         * doc/options.texi: Document PchIgnore.
32072
32073         * config/arc/arc.opt (misize): Add PchIgnore property.
32074
32075 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32076
32077         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
32078         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
32079         constraint on constants to permit them being loaded into
32080         GENERAL_REGS or BASE_REGS.
32081
32082 2014-03-03  Nick Clifton  <nickc@redhat.com>
32083
32084         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
32085         anti-cacnonical alternatives.
32086         (negandhi3_real): New pattern.
32087         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
32088
32089 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
32090
32091         * config/avr/avr-mcus.def: Remove atxmega16x1.
32092         * config/avr/avr-tables.opt: Regenerate.
32093         * config/avr/t-multilib: Regenerate.
32094         * doc/avr-mmcu.texi: Regenerate.
32095
32096 2014-03-03  Tobias Grosser  <tobias@grosser.es>
32097             Mircea Namolaru  <mircea.namolaru@inria.fr>
32098
32099         PR tree-optimization/58028
32100         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
32101         scalar dimensions.
32102
32103 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32104
32105         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
32106         not handled by recognizers.
32107
32108 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
32109
32110         PR middle-end/60175
32111         * function.c (expand_function_end): Don't emit
32112         clobber_return_register sequence if clobber_after is a BARRIER.
32113         * cfgexpand.c (construct_exit_block): Append instructions before
32114         return_label to prev_bb.
32115
32116 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32117
32118         * config/rs6000/constraints.md: Document reserved use of "wc".
32119
32120 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
32121
32122         PR ipa/60150
32123         * ipa.c (function_and_variable_visibility): When dissolving comdat
32124         group, also set all symbols to local.
32125
32126 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
32127
32128         PR ipa/60306
32129
32130         Revert:
32131         2013-12-14  Jan Hubicka  <jh@suse.cz>
32132         PR middle-end/58477
32133         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
32134
32135 2014-03-02  Jon Beniston  <jon@beniston.com>
32136
32137         PR bootstrap/48230
32138         PR bootstrap/50927
32139         PR bootstrap/52466
32140         PR target/46898
32141         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
32142         (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
32143         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
32144         (simple_return, *simple_return): New patterns
32145         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
32146         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
32147
32148 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
32149
32150         * dwarf2out.c (gen_subprogram_die): Tidy.
32151
32152 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
32153
32154         PR target/60071
32155         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
32156         (*mov_t_msb_neg_negc): ... this new insn.
32157
32158 2014-02-28  Jason Merrill  <jason@redhat.com>
32159
32160         PR c++/58678
32161         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
32162         function.
32163
32164 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
32165
32166         PR c++/60314
32167         * dwarf2out.c (decltype_auto_die): New static.
32168         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
32169         (gen_type_die_with_usage): Handle 'decltype(auto)'.
32170         (is_cxx_auto): Likewise.
32171
32172 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
32173
32174         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
32175         we are not using general regs only.
32176
32177 2014-02-28  Richard Biener  <rguenther@suse.de>
32178
32179         PR target/60280
32180         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
32181         previous fix and only allow to remove trivial pre-headers
32182         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
32183         (remove_forwarder_block): Properly update the latch of a loop.
32184
32185 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
32186
32187         PR debug/59992
32188         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
32189         (cselib_preserved_hash_table): New.
32190         (preserve_constants_and_equivs): Move preserved vals to it.
32191         (cselib_find_slot): Look it up first.
32192         (cselib_init): Initialize it.
32193         (cselib_finish): Release it.
32194         (dump_cselib_table): Dump it.
32195
32196 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
32197
32198         PR debug/59992
32199         * cselib.c (remove_useless_values): Skip to avoid quadratic
32200         behavior if the condition moved from...
32201         (cselib_process_insn): ... here holds.
32202
32203 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
32204
32205         PR debug/57232
32206         * var-tracking.c (vt_initialize): Apply the same condition to
32207         preserve the CFA base value.
32208
32209 2014-02-28  Joey Ye  <joey.ye@arm.com>
32210
32211         PR target/PR60169
32212         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
32213         if reload in progress or completed.
32214
32215 2014-02-28  Tobias Burnus  <burnus@net-b.de>
32216
32217         PR middle-end/60147
32218         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
32219         NAMELIST_DECL.
32220
32221 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
32222
32223         * doc/tm.texi.in (Condition Code Status): Update documention for
32224         relative locations of cc0-setter and cc0-user.
32225
32226 2014-02-27  Jeff Law  <law@redhat.com>
32227
32228         PR rtl-optimization/52714
32229         * combine.c (try_combine): When splitting an unrecognized PARALLEL
32230         into two independent simple sets, if I3 is a jump, ensure the
32231         pattern we place into I3 is a (set (pc) ...).
32232
32233 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
32234             Jeff Law  <law@redhat.com>
32235
32236         PR rtl-optimization/49847
32237         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
32238         are in different blocks.
32239         * doc/tm.texi (Condition Code Status): Update documention for
32240         relative locations of cc0-setter and cc0-user.
32241
32242 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
32243
32244         PR target/59222
32245         * lra.c (lra_emit_add): Check SUBREG too.
32246
32247 2014-02-27  Andreas Schwab  <schwab@suse.de>
32248
32249         * config/m68k/m68k.c (m68k_option_override): Disable
32250         -flive-range-shrinkage for classic m68k.
32251         (m68k_override_options_after_change): Likewise.
32252
32253 2014-02-27  Marek Polacek  <polacek@redhat.com>
32254
32255         PR middle-end/59223
32256         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
32257         -Wmaybe-uninitialized.
32258
32259 2014-02-27  Alan Modra  <amodra@gmail.com>
32260
32261         PR target/57936
32262         * reload1.c (emit_input_reload_insns): When reload_override_in,
32263         set old to rl->in_reg when rl->in_reg is a subreg.
32264
32265 2014-02-26  Richard Biener  <rguenther@suse.de>
32266
32267         PR bootstrap/60343
32268         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
32269
32270 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
32271
32272         * common/config/i386/predicates.md (const1256_operand): Remove.
32273         (const2356_operand): New.
32274         (const_1_to_2_operand): Remove.
32275         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
32276         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
32277         (*avx512pf_gatherpf<mode>sf): Ditto.
32278         (avx512pf_gatherpf<mode>df): Ditto.
32279         (*avx512pf_gatherpf<mode>df_mask): Ditto.
32280         (*avx512pf_gatherpf<mode>df): Ditto.
32281         (avx512pf_scatterpf<mode>sf): Ditto.
32282         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
32283         (*avx512pf_scatterpf<mode>sf): Ditto.
32284         (avx512pf_scatterpf<mode>df): Ditto.
32285         (*avx512pf_scatterpf<mode>df_mask): Ditto.
32286         (*avx512pf_scatterpf<mode>df): Ditto.
32287         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
32288
32289 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
32290
32291         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
32292         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
32293         (_mm512_mask_testn_epi64_mask): Move to ...
32294         * config/i386/avx512cdintrin.h: Here.
32295         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
32296         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
32297         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
32298         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
32299         TARGET_AVX512F from TARGET_AVX512CD.
32300
32301 2014-02-26  Richard Biener  <rguenther@suse.de>
32302
32303         PR ipa/60327
32304         * ipa.c (walk_polymorphic_call_targets): Properly guard
32305         call to inline_update_overall_summary.
32306
32307 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
32308
32309         PR target/60280
32310         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
32311         and latches only if requested.  Fix latch if it is removed.
32312         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
32313         LOOPS_HAVE_PREHEADERS.
32314
32315 2014-02-25  Andrew Pinski  <apinski@cavium.com>
32316
32317         * builtins.c (expand_builtin_thread_pointer): Create a new target
32318         when the target is NULL.
32319
32320 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
32321
32322         PR rtl-optimization/60317
32323         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
32324         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
32325         * lra-assigns.c: Include params.h.
32326         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
32327         other reload pseudos considerations.
32328
32329 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32330
32331         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
32332         to use canonical form for nor<mode>3.
32333
32334 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32335
32336         PR target/55426
32337         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
32338         conversions.
32339
32340 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
32341
32342         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
32343         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
32344         (ix86_handle_option): Handle OPT_mprefetchwt1.
32345         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
32346         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
32347         PREFETCHWT1 CPUID.
32348         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
32349         OPTION_MASK_ISA_PREFETCHWT1.
32350         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
32351         (PTA_PREFETCHWT1): New.
32352         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
32353         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
32354         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
32355         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
32356         (*prefetch_avx512pf_<mode>_: Change into ...
32357         (*prefetch_prefetchwt1_<mode>: This.
32358         * config/i386/i386.opt (mprefetchwt1): New.
32359         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
32360         (_mm_prefetch): Handle intent to write.
32361         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
32362
32363 2014-02-25  Richard Biener  <rguenther@suse.de>
32364
32365         PR middle-end/60291
32366         * emit-rtl.c (mem_attrs_htab): Remove.
32367         (mem_attrs_htab_hash): Likewise.
32368         (mem_attrs_htab_eq): Likewise.
32369         (set_mem_attrs): Always allocate new mem-attrs when something changed.
32370         (init_emit_once): Do not allocate mem_attrs_htab.
32371
32372 2014-02-25  Richard Biener  <rguenther@suse.de>
32373
32374         PR lto/60319
32375         * lto-opts.c (lto_write_options): Output non-explicit conservative
32376         -fwrapv, -fno-trapv and -fno-strict-overflow.
32377         * lto-wrapper.c (merge_and_complain): Handle merging those options.
32378         (run_gcc): And pass them through.
32379
32380 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
32381
32382         * sel-sched.c (calculate_new_fences): New parameter ptime.
32383         Calculate it as a maximum over all fence cycles.
32384         (sel_sched_region_2): Adjust the call to calculate_new_fences.
32385         Print the final schedule timing when sched_verbose.
32386
32387 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
32388
32389         PR rtl-optimization/60292
32390         * sel-sched.c (fill_vec_av_set): Do not reset target availability
32391         bit fot the fence instruction.
32392
32393 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
32394
32395         * calls.h: Fix typo in comment.
32396
32397 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
32398
32399         * config/pa/pa.c (pa_output_move_double): Don't valididate when
32400         adjusting offsetable addresses.
32401
32402 2014-02-24  Guozhi Wei  <carrot@google.com>
32403
32404         * sparseset.h (sparseset_pop): Fix the wrong index.
32405
32406 2014-02-24  Walter Lee  <walt@tilera.com>
32407
32408         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
32409         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
32410         triplet.
32411         * common/config/tilegx/tilegx-common.c
32412         (TARGET_DEFAULT_TARGET_FLAGS): Define.
32413         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
32414         (LINK_SPEC): Ditto.
32415         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
32416         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
32417         (tilegx_gimplify_va_arg_expr): Handle big endian.
32418         (tilegx_expand_unaligned_load): Ditto.
32419         (tilegx_expand_unaligned_store): Ditto.
32420         (TARGET_RETURN_IN_MSB): New.
32421         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
32422         (TARGET_ENDIAN_DEFAULT): New.
32423         (TARGET_BIG_ENDIAN): Handle big endian.
32424         (BYTES_BIG_ENDIAN): Ditto.
32425         (WORDS_BIG_ENDIAN): Ditto.
32426         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
32427         (ENDIAN_SPEC): New.
32428         (EXTRA_SPECS): New.
32429         * config/tilegx/tilegx.md (extv): Handle big endian.
32430         (extzv): Ditto.
32431         (insn_st<n>): Ditto.
32432         (insn_st<n>_add<bitsuffix>): Ditto.
32433         (insn_stnt<n>): Ditto.
32434         (insn_stnt<n>_add<bitsuffix>):Ditto.
32435         (vec_interleave_highv8qi): Handle big endian.
32436         (vec_interleave_highv8qi_be): New.
32437         (vec_interleave_highv8qi_le): New.
32438         (insn_v1int_h): Handle big endian.
32439         (vec_interleave_lowv8qi): Handle big endian.
32440         (vec_interleave_lowv8qi_be): New.
32441         (vec_interleave_lowv8qi_le): New.
32442         (insn_v1int_l): Handle big endian.
32443         (vec_interleave_highv4hi): Handle big endian.
32444         (vec_interleave_highv4hi_be): New.
32445         (vec_interleave_highv4hi_le): New.
32446         (insn_v2int_h): Handle big endian.
32447         (vec_interleave_lowv4hi): Handle big endian.
32448         (vec_interleave_lowv4hi_be): New.
32449         (vec_interleave_lowv4hi_le): New.
32450         (insn_v2int_l): Handle big endian.
32451         (vec_interleave_highv2si): Handle big endian.
32452         (vec_interleave_highv2si_be): New.
32453         (vec_interleave_highv2si_le): New.
32454         (insn_v4int_h): Handle big endian.
32455         (vec_interleave_lowv2si): Handle big endian.
32456         (vec_interleave_lowv2si_be): New.
32457         (vec_interleave_lowv2si_le): New.
32458         (insn_v4int_l): Handle big endian.
32459         * config/tilegx/tilegx.opt (mbig-endian): New option.
32460         (mlittle-endian): New option.
32461         * doc/install.texi: Document tilegxbe-linux.
32462         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
32463
32464 2014-02-24  Martin Jambor  <mjambor@suse.cz>
32465
32466         PR ipa/60266
32467         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
32468         there are no parameter descriptors.
32469
32470 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
32471
32472         PR rtl-optimization/60268
32473         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
32474         initialization to ...
32475         (sched_rgn_init): ... here.
32476         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
32477
32478 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
32479
32480         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
32481         names.
32482
32483 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
32484
32485         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
32486         definition.
32487
32488 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
32489
32490         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
32491         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
32492
32493 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
32494
32495         * config/microblaze/predicates.md: Add cmp_op predicate.
32496         * config/microblaze/microblaze.md: Add branch_compare instruction
32497         which uses cmp_op predicate and emits cmp insn before branch.
32498         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
32499         to microblaze_expand_conditional_branch and consolidate logic.
32500         (microblaze_expand_conditional_branch): emit branch_compare
32501         insn instead of handling cmp op separate from branch insn.
32502
32503 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32504
32505         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
32506         to permit subregs.
32507
32508 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32509
32510         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
32511         define_insn with define_expand and new define_insn
32512         *altivec_lve<VI_char>x_internal.
32513         (altivec_stve<VI_char>x): Replace define_insn with define_expand
32514         and new define_insn *altivec_stve<VI_char>x_internal.
32515         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
32516         prototype.
32517         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
32518         lve*x built-ins.
32519         (altivec_expand_stvex_be): New function.
32520
32521 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
32522
32523         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
32524         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
32525         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
32526         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
32527
32528 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
32529
32530         PR target/60298
32531         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
32532         instead of emit_move_insn.
32533
32534 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32535
32536         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
32537         vspltw with vsldoi.
32538         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
32539         gen_altivec_vsumsws.
32540
32541 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32542
32543         * config/rs6000/altivec.md (altivec_lvxl): Rename as
32544         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
32545         (altivec_lvxl_<mode>): New define_expand incorporating
32546         -maltivec=be semantics where needed.
32547         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
32548         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
32549         semantics where needed.
32550         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
32551         (altivec_stvx_<mode>): New define_expand incorporating
32552         -maltivec=be semantics where needed.
32553         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
32554         VM2 iterator instead of V4SI.
32555         (altivec_stvxl_<mode>): New define_expand incorporating
32556         -maltivec=be semantics where needed.
32557         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
32558         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
32559         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
32560         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
32561         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
32562         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
32563         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
32564         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
32565         ALTIVEC_BUILTIN_STVXL.
32566         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
32567         (altivec_expand_stvx_be): Likewise.
32568         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
32569         (altivec_expand_lvx_be): Likewise.
32570         (altivec_expand_stvx_be): Likewise.
32571         (altivec_expand_builtin): Add cases for
32572         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
32573         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
32574         (altivec_init_builtins): Add definitions for
32575         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
32576         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
32577
32578 2014-02-21  Catherine Moore  <clm@codesourcery.com>
32579
32580         * doc/invoke.texi (mvirt, mno-virt): Document.
32581         * config/mips/mips.opt (mvirt): New option.
32582         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
32583
32584 2014-02-21  Richard Biener  <rguenther@suse.de>
32585
32586         PR tree-optimization/60276
32587         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
32588         (STMT_VINFO_MIN_NEG_DIST): New macro.
32589         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
32590         STMT_VINFO_MIN_NEG_DIST.
32591         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
32592         made for negative dependence distances still hold.
32593
32594 2014-02-21  Richard Biener  <rguenther@suse.de>
32595
32596         PR middle-end/60291
32597         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
32598         DECL_INITIAL for globals not in the current function context.
32599
32600 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
32601
32602         PR tree-optimization/56490
32603         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
32604         * tree-ssa-uninit.c: Include params.h.
32605         (compute_control_dep_chain): Add num_calls argument, return false
32606         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
32607         num_calls to recursive call.
32608         (find_predicates): Change dep_chain into normal array,
32609         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
32610         variable and adjust compute_control_dep_chain caller.
32611         (find_def_preds): Likewise.
32612
32613 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
32614
32615         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
32616         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
32617
32618 2014-02-21  Nick Clifton  <nickc@redhat.com>
32619
32620         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
32621         (pushhi1): Likewise.
32622         (popqi1): Add mode to pre_dec.
32623         (pophi1): Likewise.
32624
32625 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
32626
32627         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
32628         mode for mask of V8SFmode permutation.
32629
32630 2014-02-20  Richard Henderson  <rth@redhat.com>
32631
32632         PR c++/60272
32633         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
32634         a new pseudo for OLDVAL.
32635
32636 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
32637
32638         PR target/57896
32639         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
32640         gen_reg_rtx if d->testing_p.
32641         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
32642         if d->testing_p and we will certainly return true.
32643         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
32644         if d->testing_p.
32645
32646 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
32647
32648         * emit-rtl.c (gen_reg_rtx): Assert that
32649         crtl->emit.regno_pointer_align_length is non-zero.
32650
32651 2014-02-20  Richard Henderson  <rth@redhat.com>
32652
32653         PR c++/60272
32654         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
32655         on failure the store back into EXPECT.
32656
32657 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
32658             Sandra Loosemore  <sandra@codesourcery.com>
32659
32660         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
32661         * config/nios2/nios2.c (nios2_function_profiler): Add
32662         -fPIC (flag_pic == 2) support.
32663         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
32664         (nios2_large_offset_p): New function.
32665         (nios2_unspec_reloc_p): Move up position, update to use
32666         nios2_large_offset_p.
32667         (nios2_unspec_address): Remove function.
32668         (nios2_unspec_offset): New function.
32669         (nios2_large_got_address): New function.
32670         (nios2_got_address): Add large offset support.
32671         (nios2_legitimize_tls_address): Update usage of removed and new
32672         functions.
32673         (nios2_symbol_binds_local_p): New function.
32674         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
32675         (nios2_legitimize_address): Update to use nios2_large_offset_p.
32676         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
32677         (nios2_print_operand): Merge H/L processing, add hiadj/lo
32678         processing for (const (unspec ...)).
32679         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
32680
32681 2014-02-20  Richard Biener  <rguenther@suse.de>
32682
32683         * tree-cfg.c (replace_uses_by): Mark altered BBs before
32684         doing the substitution.
32685         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
32686
32687 2014-02-20  Martin Jambor  <mjambor@suse.cz>
32688
32689         PR ipa/55260
32690         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
32691         info when checking whether lattices are bottom.
32692
32693 2014-02-20  Richard Biener  <rguenther@suse.de>
32694
32695         PR middle-end/60221
32696         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
32697         regions at -O0.
32698
32699 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
32700
32701         PR ipa/58555
32702         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
32703         parameter specifying the scaling.
32704         (inline_call): Update.
32705         (want_inline_recursively): Guard division by zero.
32706         (recursive_inlining): Update.
32707         * ipa-inline.h (clone_inlined_nodes): Update.
32708
32709 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
32710
32711         PR target/60204
32712         * config/i386/i386.c (classify_argument): Pass structures of size
32713         64 bytes or less in register.
32714
32715 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
32716             Kirill Yukhin  <kirill.yukhin@intel.com>
32717
32718         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
32719         (_mm_rcp28_round_ss): Ditto.
32720         (_mm_rsqrt28_round_sd): Ditto.
32721         (_mm_rsqrt28_round_ss): Ditto.
32722         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
32723         (_mm_rcp14_round_ss): Ditto.
32724         (_mm_rsqrt14_round_sd): Ditto.
32725         (_mm_rsqrt14_round_ss): Ditto.
32726         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
32727         the first input operand, get rid of match_dup.
32728         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
32729         attribute to sse.
32730         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
32731         Ditto.
32732         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
32733         operand as the first input operand, set type attribute.
32734         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
32735         Set type attribute.
32736         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
32737         operand as the first input operand, set type attribute.
32738
32739 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32740
32741         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
32742         bit of zero.
32743
32744 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
32745
32746         PR target/60207
32747         * config/i386/i386.c (construct_container): Remove TFmode check
32748         for X86_64_INTEGER_CLASS.
32749
32750 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
32751
32752         PR target/59794
32753         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
32754         only when -Wpsabi is enabled.
32755
32756 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
32757
32758         PR target/59799
32759         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
32760         passing arrays in registers are the same as for structs, so remove the
32761         special case for them.
32762
32763 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
32764
32765         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
32766         destination type, extract only the valid bits if the source type is not
32767         integral and has a different mode.
32768
32769 2014-02-19  Richard Biener  <rguenther@suse.de>
32770
32771         PR ipa/60243
32772         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
32773         for all calls.
32774
32775 2014-02-19  Richard Biener  <rguenther@suse.de>
32776
32777         PR ipa/60243
32778         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
32779         (ipa_modify_call_arguments): Emit an argument load explicitely and
32780         preserve virtual SSA form there and for the replacement call.
32781         Do not update SSA form nor free dominance info.
32782
32783 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
32784
32785         * ipa.c (function_and_variable_visibility): Also clear WEAK
32786         flag when disolving COMDAT_GROUP.
32787
32788 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
32789
32790         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
32791         * ipa-prop.c (ipa_set_jf_known_type): Return early when
32792         not devirtualizing.
32793         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
32794         do more sanity checks.
32795         (detect_type_change): Return true when giving up early.
32796         (compute_complex_assign_jump_func): Fix type parameter of
32797         ipa_set_ancestor_jf.
32798         (compute_complex_ancestor_jump_func): Likewise.
32799         (update_jump_functions_after_inlining): Fix updating of
32800         ancestor function.
32801         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
32802
32803 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
32804
32805         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
32806         inline clones when edge disappears.
32807
32808 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
32809
32810         PR target/60203
32811         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
32812         Split 64-bit moves into 2 patterns.  Do not allow the use of
32813         direct move for TDmode in little endian, since the decimal value
32814         has little endian bytes within a word, but the 64-bit pieces are
32815         ordered in a big endian fashion, and normal subreg's of TDmode are
32816         not allowed.
32817         (mov<mode>_64bit_dm): Likewise.
32818         (movtd_64bit_nodm): Likewise.
32819
32820 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
32821
32822         PR tree-optimization/60174
32823         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
32824         statement of an SSA_NAME that occurs in an abnormal PHI node.
32825
32826 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
32827
32828         PR sanitizer/60142
32829         * final.c (SEEN_BB): Remove.
32830         (SEEN_NOTE, SEEN_EMITTED): Renumber.
32831         (final_scan_insn): Don't force_source_line on second
32832         NOTE_INSN_BASIC_BLOCK.
32833
32834 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
32835
32836         PR target/60205
32837         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
32838         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
32839         (type_natural_mode): Warn ABI change when %zmm register is not
32840         available for AVX512F vector value passing.
32841
32842 2014-02-18  Kai Tietz  <ktietz@redhat.com>
32843
32844         PR target/60193
32845         * config/i386/i386.c (ix86_expand_prologue): Use value in
32846         rax register as displacement when restoring %r10 or %rax.
32847         Fix wrong offset when restoring both registers.
32848
32849 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
32850
32851         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
32852         assertion with conditional return.
32853
32854 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
32855             Uros Bizjak  <ubizjak@gmail.com>
32856
32857         PR driver/60233
32858         * config/i386/driver-i386.c (host_detect_local_cpu): If
32859         YMM state is not saved by the OS, also clear has_f16c.  Move
32860         CPUID 0x80000001 handling before YMM state saving checking.
32861
32862 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
32863
32864         PR rtl-optimization/58960
32865         * haifa-sched.c (alloc_global_sched_pressure_data): New,
32866         factored out from ...
32867         (sched_init): ... here.
32868         (free_global_sched_pressure_data): New, factored out from ...
32869         (sched_finish): ... here.
32870         * sched-int.h (free_global_sched_pressure_data): Declare.
32871         * sched-rgn.c (nr_regions_initial): New static global.
32872         (haifa_find_rgns): Initialize it.
32873         (schedule_region): Disable sched-pressure for the newly
32874         generated regions.
32875
32876 2014-02-17  Richard Biener  <rguenther@suse.de>
32877
32878         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
32879         release SSA defs of pattern stmts.
32880
32881 2014-02-17  Richard Biener  <rguenther@suse.de>
32882
32883         * tree-inline.c (expand_call_inline): Release the virtual
32884         operand defined by the call we are about to inline.
32885
32886 2014-02-17  Richard Biener  <rguenther@suse.de>
32887
32888         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
32889
32890 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
32891             Ilya Tocar  <ilya.tocar@intel.com>
32892
32893         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
32894         arguments order in builtin.
32895         (_mm512_permutexvar_epi64): Ditto.
32896         (_mm512_mask_permutexvar_epi64): Ditto
32897         (_mm512_maskz_permutexvar_epi32): Ditto
32898         (_mm512_permutexvar_epi32): Ditto
32899         (_mm512_mask_permutexvar_epi32): Ditto
32900
32901 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32902
32903         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
32904         (p8_vmrgow): Likewise.
32905
32906 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32907
32908         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
32909         endian targets.
32910
32911 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
32912
32913         PR target/60203
32914         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
32915         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
32916         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
32917         using direct move instructions on ISA 2.07.  Also adjust
32918         instruction length for 64-bit.
32919         (mov<mode>_64bit, TFmode/TDmode): Likewise.
32920         (mov<mode>_32bit, TFmode/TDmode): Likewise.
32921
32922 2014-02-15  Alan Modra  <amodra@gmail.com>
32923
32924         PR target/58675
32925         PR target/57935
32926         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
32927         find_replacement on parts of insn rtl that might be reloaded.
32928
32929 2014-02-15  Richard Biener  <rguenther@suse.de>
32930
32931         PR tree-optimization/60183
32932         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
32933         (tree_ssa_phiprop): Calculate and free post-dominators.
32934
32935 2014-02-14  Jeff Law  <law@redhat.com>
32936
32937         PR rtl-optimization/60131
32938         * ree.c (get_extended_src_reg): New function.
32939         (combine_reaching_defs): Use it rather than assuming location of REG.
32940         (find_and_remove_re): Verify first operand of extension is
32941         a REG before adding the insns to the copy list.
32942
32943 2014-02-14  Roland McGrath  <mcgrathr@google.com>
32944
32945         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
32946         * configure: Regenerated.
32947         * config.in: Regenerated.
32948         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
32949         instead of ASM_SHORT.
32950
32951 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
32952             Richard Earnshaw  <rearnsha@arm.com>
32953
32954         PR rtl-optimization/59535
32955         * lra-constraints.c (process_alt_operands): Encourage alternative
32956         when unassigned pseudo class is superset of the alternative class.
32957         (inherit_reload_reg): Don't inherit when optimizing for code size.
32958         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
32959         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
32960         modes not less than 4 for Thumb1.
32961
32962 2014-02-14  Kyle McMartin  <kyle@redhat.com>
32963
32964         PR pch/60010
32965         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
32966
32967 2014-02-14  Richard Biener  <rguenther@suse.de>
32968
32969         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
32970         (get_frame_arg): Drop the assert with langhook types_compatible_p.
32971         Do not strip INDIRECT_REFs.
32972
32973 2014-02-14  Richard Biener  <rguenther@suse.de>
32974
32975         PR lto/60179
32976         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
32977         DECL_FUNCTION_SPECIFIC_TARGET.
32978         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
32979         * tree-streamer-out.c (pack_ts_target_option): Remove.
32980         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
32981         (write_ts_function_decl_tree_pointers): Do not stream
32982         DECL_FUNCTION_SPECIFIC_TARGET.
32983         * tree-streamer-in.c (unpack_ts_target_option): Remove.
32984         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
32985         (lto_input_ts_function_decl_tree_pointers): Do not stream
32986         DECL_FUNCTION_SPECIFIC_TARGET.
32987
32988 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
32989
32990         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
32991         (get_initial_def_for_induction, vectorizable_induction): Ignore
32992         debug stmts when looking for exit_phi.
32993         (vectorizable_live_operation): Fix up condition.
32994
32995 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
32996
32997         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
32998         nreverse() because it changes the content of original tree list.
32999
33000 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
33001
33002         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
33003         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
33004
33005 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
33006
33007         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
33008         GNU coding standards.
33009
33010 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
33011
33012         PR debug/60152
33013         * dwarf2out.c (gen_subprogram_die): Don't call
33014         add_calling_convention_attribute if subr_die is old_die.
33015
33016 2014-02-13  Sharad Singhai  <singhai@google.com>
33017
33018         * doc/optinfo.texi: Fix order of nodes.
33019
33020 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
33021
33022         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
33023         operands[2], not operands[3].
33024
33025 2014-02-13  Richard Biener  <rguenther@suse.de>
33026
33027         PR bootstrap/59878
33028         * doc/install.texi (ISL): Update recommended version to 0.12.2,
33029         mention the possibility of an in-tree build.
33030         (CLooG): Update recommended version to 0.18.1, mention the
33031         possibility of an in-tree build and clarify that the ISL
33032         bundled with CLooG does not work.
33033
33034 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
33035
33036         PR target/43546
33037         * expr.c (compress_float_constant): If x is a hard register,
33038         extend into a pseudo and then move to x.
33039
33040 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33041
33042         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
33043         caused by bad second argument to warning_at() with -mhotpatch and
33044         nested functions (e.g. with gfortran).
33045
33046 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
33047
33048         * opts.c (option_name): Remove "enabled by default" rider.
33049
33050 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
33051
33052         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
33053
33054 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
33055             Uros Bizjak  <ubizjak@gmail.com>
33056
33057         PR target/60151
33058         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
33059         * configure: Regenerated.
33060
33061 2014-02-12  Richard Biener  <rguenther@suse.de>
33062
33063         * vec.c (vec_prefix::calculate_allocation): Move as
33064         inline variant to vec.h.
33065         (vec_prefix::calculate_allocation_1): New out-of-line version.
33066         * vec.h (vec_prefix::calculate_allocation_1): Declare.
33067         (vec_prefix::m_has_auto_buf): Rename to ...
33068         (vec_prefix::m_using_auto_storage): ... this.
33069         (vec_prefix::calculate_allocation): Inline the easy cases
33070         and dispatch to calculate_allocation_1 which doesn't need the
33071         prefix address.
33072         (va_heap::reserve): Use gcc_checking_assert.
33073         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
33074         m_using_auto_storage.
33075         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
33076         member and adjust.
33077         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
33078         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
33079         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
33080
33081 2014-02-12  Richard Biener  <rguenther@suse.de>
33082
33083         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
33084         when we found a dependence.
33085
33086 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
33087
33088         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
33089         common code...
33090         (maybe_fold_stmt): ... into this new function.
33091         * omp-low.c (lower_omp): Update comment.
33092
33093         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
33094         last use.
33095
33096         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
33097         dereference.
33098
33099 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
33100
33101         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
33102         identifiers in comments.
33103         (cortexa53_extra_costs): Likewise.
33104         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
33105         (cortexa7_extra_costs): Likewise.
33106         (cortexa12_extra_costs): Likewise.
33107         (cortexa15_extra_costs): Likewise.
33108         (v7m_extra_costs): Likewise.
33109
33110 2014-02-12  Richard Biener  <rguenther@suse.de>
33111
33112         PR middle-end/60092
33113         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
33114         of posix_memalign being successful.
33115         (lower_stmt): Restrict lowering of posix_memalign to when
33116         -ftree-bit-ccp is enabled.
33117
33118 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
33119
33120         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
33121         arg_loc.
33122         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
33123
33124 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
33125
33126         PR rtl-optimization/60116
33127         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
33128         other_insn once the combination has been validated.
33129
33130 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
33131
33132         PR lto/59468
33133         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
33134         and wrapper.
33135         * ipa-devirt.c: Include demangle.h
33136         (odr_violation_reported): New static variable.
33137         (add_type_duplicate): Update odr_violations.
33138         (maybe_record_node): Add completep parameter; update it.
33139         (record_target_from_binfo): Add COMPLETEP parameter;
33140         update it as needed.
33141         (possible_polymorphic_call_targets_1): Likewise.
33142         (struct polymorphic_call_target_d): Add nonconstruction_targets;
33143         rename FINAL to COMPLETE.
33144         (record_targets_from_bases): Sanity check we found the binfo;
33145         fix COMPLETEP updating.
33146         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
33147         parameter, fix computing of COMPLETEP.
33148         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
33149         at LTO time do demangling.
33150         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
33151         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
33152         parameter.
33153         (gimple_get_virt_method_for_binfo): Likewise.
33154         * gimple-fold.h (gimple_get_virt_method_for_binfo,
33155         gimple_get_virt_method_for_vtable): Update prototypes.
33156
33157 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
33158
33159         PR target/49008
33160         * genautomata.c (add_presence_absence): Fix typo with
33161         {final_}presence_list.
33162
33163 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
33164
33165         PR target/60137
33166         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
33167         for VSX/Altivec vectors that land in GPR registers.
33168
33169 2014-02-11  Richard Henderson  <rth@redhat.com>
33170             Jakub Jelinek  <jakub@redhat.com>
33171
33172         PR debug/59776
33173         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
33174         around drhs if type conversion to lacc->type is not useless.
33175
33176 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33177
33178         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
33179         tuning struct.
33180         (cortex-a57.cortex-a53): Likewise.
33181         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
33182
33183 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33184
33185         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
33186         arm_restrict_it.
33187
33188 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
33189
33190         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
33191         add_options_for_arm_vfp3.
33192
33193 2014-02-11  Jeff Law  <law@redhat.com>
33194
33195         PR middle-end/54041
33196         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
33197         object with an undesirable mode.
33198
33199 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33200
33201         PR libgomp/60107
33202         * config/i386/sol2-9.h: New file.
33203         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
33204         *-*-solaris2.9*): Use it.
33205
33206 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
33207
33208         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
33209         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
33210
33211 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
33212
33213         * config/microblaze/microblaze.c: Extend mcpu version format
33214
33215 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
33216
33217         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
33218
33219 2014-02-10  Richard Henderson  <rth@redhat.com>
33220
33221         PR target/59927
33222         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
33223         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
33224         ms-abi vs -mno-accumulate-outgoing-args.
33225         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
33226         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
33227         respect to ms-abi.
33228
33229 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33230
33231         PR middle-end/60080
33232         * cfgexpand.c (expand_asm_operands): Attach source location to
33233         ASM_INPUT rtx objects.
33234         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
33235
33236 2014-02-10  Nick Clifton  <nickc@redhat.com>
33237
33238         * config/mn10300/mn10300.c (popcount): New function.
33239         (mn10300_expand_prologue): Include saved registers in stack usage
33240         count.
33241
33242 2014-02-10  Jeff Law  <law@redhat.com>
33243
33244         PR middle-end/52306
33245         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
33246         when changing the SET_DEST of a prior insn to avoid an input reload.
33247
33248 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
33249
33250         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
33251         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
33252         -mcall-openbsd, or -mcall-linux.
33253         (CC1_ENDIAN_BIG_SPEC): Remove.
33254         (CC1_ENDIAN_LITTLE_SPEC): Remove.
33255         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
33256         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
33257         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
33258         and %cc1_endian_default.
33259         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
33260
33261 2014-02-10  Richard Biener  <rguenther@suse.de>
33262
33263         PR tree-optimization/60115
33264         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
33265         MEM_REF handling.  Properly verify that the accesses are not
33266         out of the objects bound.
33267
33268 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33269
33270         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
33271         coretex to cortex.
33272
33273 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
33274
33275         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
33276         proper constants and fix formatting.
33277         (possible_polymorphic_call_targets): Fix formatting.
33278
33279 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
33280             Ilya Tocar  <ilya.tocar@intel.com>
33281
33282         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
33283         (_mm512_loadu_epi32): Renamed into...
33284         (_mm512_loadu_si512): This.
33285         (_mm512_storeu_epi32): Renamed into...
33286         (_mm512_storeu_si512): This.
33287         (_mm512_maskz_ceil_ps): Removed.
33288         (_mm512_maskz_ceil_pd): Ditto.
33289         (_mm512_maskz_floor_ps): Ditto.
33290         (_mm512_maskz_floor_pd): Ditto.
33291         (_mm512_floor_round_ps): Ditto.
33292         (_mm512_floor_round_pd): Ditto.
33293         (_mm512_ceil_round_ps): Ditto.
33294         (_mm512_ceil_round_pd): Ditto.
33295         (_mm512_mask_floor_round_ps): Ditto.
33296         (_mm512_mask_floor_round_pd): Ditto.
33297         (_mm512_mask_ceil_round_ps): Ditto.
33298         (_mm512_mask_ceil_round_pd): Ditto.
33299         (_mm512_maskz_floor_round_ps): Ditto.
33300         (_mm512_maskz_floor_round_pd): Ditto.
33301         (_mm512_maskz_ceil_round_ps): Ditto.
33302         (_mm512_maskz_ceil_round_pd): Ditto.
33303         (_mm512_expand_pd): Ditto.
33304         (_mm512_expand_ps): Ditto.
33305         * config/i386/i386.c (ix86_builtins): Remove
33306         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
33307         (bdesc_args): Ditto.
33308         * config/i386/predicates.md (const1256_operand): New.
33309         (const_1_to_2_operand): Ditto.
33310         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
33311         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
33312         (*avx512pf_gatherpf<mode>sf): Ditto.
33313         (avx512pf_gatherpf<mode>df): Ditto.
33314         (*avx512pf_gatherpf<mode>df_mask): Ditto.
33315         (*avx512pf_gatherpf<mode>df): Ditto.
33316         (avx512pf_scatterpf<mode>sf): Ditto.
33317         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
33318         (*avx512pf_scatterpf<mode>sf): Ditto.
33319         (avx512pf_scatterpf<mode>df): Ditto.
33320         (*avx512pf_scatterpf<mode>df_mask): Ditto.
33321         (*avx512pf_scatterpf<mode>df): Ditto.
33322         (avx512f_expand<mode>): Removed.
33323         (<shift_insn><mode>3<mask_name>): Change predicate type.
33324
33325 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
33326
33327         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
33328         not at the end of datarefs vector use ordered_remove to avoid
33329         reordering datarefs vector.
33330
33331         PR c/59984
33332         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
33333         mark local addressable non-static vars as GOVD_PRIVATE
33334         instead of GOVD_LOCAL.
33335         * omp-low.c (lower_omp_for): Move gimple_bind_vars
33336         and BLOCK_VARS of gimple_bind_block to new_stmt rather
33337         than copying them.
33338
33339         PR middle-end/60092
33340         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
33341         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
33342         assume_aligned or alloc_align attributes.
33343         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
33344         arguments.  Handle also assume_aligned and alloc_align attributes.
33345         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
33346         calls to functions with assume_aligned or alloc_align attributes.
33347         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
33348
33349 2014-02-08  Terry Guo  <terry.guo@arm.com>
33350
33351         * doc/invoke.texi: Document ARM -march=armv7e-m.
33352
33353 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
33354
33355         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
33356         flag on __cilkrts_rethrow builtin.
33357
33358         PR ipa/60026
33359         * ipa-cp.c (determine_versionability): Fail at -O0
33360         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
33361         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
33362
33363         Revert:
33364         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
33365
33366         PR ipa/60026
33367         * tree-inline.c (copy_forbidden): Fail for
33368         __attribute__((optimize (0))) functions.
33369
33370 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
33371
33372         * varpool.c: Include pointer-set.h.
33373         (varpool_remove_unreferenced_decls): Variables in other partitions
33374         will not be output; be however careful to not lose information
33375         about partitioning.
33376
33377 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
33378
33379         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
33380         lookup in the vtable constructor.
33381
33382 2014-02-07  Jeff Law  <law@redhat.com>
33383
33384         PR target/40977
33385         * config/m68k/m68k.md (ashldi_extsi): Turn into a
33386         define_insn_and_split.
33387
33388         * ipa-inline.c (inline_small_functions): Fix typos.
33389
33390 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
33391
33392         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
33393         (s390_can_use_return_insn): Declare.
33394         * config/s390/s390.h (EPILOGUE_USES): Define.
33395         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
33396         instructions.
33397         (s390_chunkify_start): Handle return JUMP_LABELs.
33398         (s390_early_mach): Emit a main_pool instruction on the entry edge.
33399         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
33400         (s390_can_use_return_insn): New functions.
33401         (s390_fix_long_loop_prediction): Handle conditional returns.
33402         (TARGET_SET_UP_BY_PROLOGUE): Define.
33403         * config/s390/s390.md (ANY_RETURN): New code iterator.
33404         (*creturn, *csimple_return, return, simple_return): New patterns.
33405
33406 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
33407
33408         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
33409         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
33410         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
33411         REG_CFA_RESTORE list when deciding not to restore a register.
33412
33413 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
33414
33415         * config/s390/s390.c: Include tree-pass.h and context.h.
33416         (s390_early_mach): New function, split out from...
33417         (s390_emit_prologue): ...here.
33418         (pass_data_s390_early_mach): New pass structure.
33419         (pass_s390_early_mach): New class.
33420         (s390_option_override): Create and register early_mach pass.
33421         Move to end of file.
33422
33423 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
33424
33425         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
33426         to match for the exit block.
33427
33428 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33429
33430         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
33431         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
33432         Reject misaligned operands.
33433
33434 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33435
33436         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
33437
33438 2014-02-07  Richard Biener  <rguenther@suse.de>
33439
33440         PR middle-end/60092
33441         * gimple-low.c (lower_builtin_posix_memalign): New function.
33442         (lower_stmt): Call it to lower posix_memalign in a way
33443         to make alignment info accessible.
33444
33445 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
33446
33447         PR c++/60082
33448         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
33449         __builtin_setjmp_receiver.
33450
33451 2014-02-07  Richard Biener  <rguenther@suse.de>
33452
33453         PR middle-end/60092
33454         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
33455         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
33456         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
33457         Handle BUILT_IN_POSIX_MEMALIGN.
33458         (find_func_clobbers): Likewise.
33459         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
33460         (call_may_clobber_ref_p_1): Likewise.
33461
33462 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
33463
33464         PR ipa/59918
33465         * ipa-devirt.c (record_target_from_binfo): Remove overactive
33466         sanity check.
33467
33468 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
33469
33470         PR ipa/59469
33471         * lto-cgraph.c (lto_output_node): Use
33472         symtab_get_symbol_partitioning_class.
33473         (lto_output_varpool_node): likewise.
33474         (symtab_get_symbol_partitioning_class): Move here from
33475         lto/lto-partition.c
33476         * cgraph.h (symbol_partitioning_class): Likewise.
33477         (symtab_get_symbol_partitioning_class): Declare.
33478
33479 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
33480
33481         * ggc.h (ggc_internal_cleared_alloc): New macro.
33482         * vec.h (vec_safe_copy): Handle memory stats.
33483         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
33484         * target-globals.c (save_target_globals): Likewise.
33485
33486 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
33487
33488         PR target/60077
33489         * expr.c (emit_move_resolve_push): Export; be bit more selective
33490         on when to clear alias set.
33491         * expr.h (emit_move_resolve_push): Declare.
33492         * function.h (struct function): Add tail_call_marked.
33493         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
33494         * config/i386/i386-protos.h (ix86_expand_push): Remove.
33495         * config/i386/i386.md (TImode move expander): De not call
33496         ix86_expand_push.
33497         (FP push expanders): Preserve memory attributes.
33498         * config/i386/sse.md (push<mode>1): Remove.
33499         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
33500         (ix86_expand_push): Remove.
33501         * config/i386/mmx.md (push<mode>1): Remove.
33502
33503 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
33504
33505         PR rtl-optimization/60030
33506         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
33507         lopart with paradoxical subreg before shifting it up by hprec.
33508
33509 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33510
33511         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
33512         Remove extra newline at end of file.
33513         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
33514         (arm_issue_rate): Handle cortexa57.
33515         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
33516         (cortex-a57.cortex-a53): Likewise.
33517
33518 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
33519
33520         PR target/59575
33521         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
33522         don't record in REG_FRAME_RELATED_EXPR registers not set in that
33523         bitmask.
33524         (arm_expand_prologue): Adjust all callers.
33525         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
33526         info, registers also at the lowest numbered registers side.  Use
33527         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
33528         XEXP.
33529
33530         PR debug/59992
33531         * var-tracking.c (adjust_mems): Before adding a SET to
33532         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
33533
33534 2014-02-06  Alan Modra  <amodra@gmail.com>
33535
33536         PR target/60032
33537         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
33538         change SDmode to DDmode when lra_in_progress.
33539
33540 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
33541
33542         PR middle-end/59150
33543         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
33544         free_data_ref on the dr first, and before goto again also set dr
33545         to the next dr.  For simd_lane_access, free old datarefs[i] before
33546         overwriting it.  For get_vectype_for_scalar_type failure, don't
33547         free_data_ref if simd_lane_access.
33548
33549         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
33550
33551         PR target/60062
33552         * tree.h (opts_for_fn): New inline function.
33553         (opt_for_fn): Define.
33554         * config/i386/i386.c (ix86_function_regparm): Use
33555         opt_for_fn (decl, optimize) instead of optimize.
33556
33557 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
33558
33559         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
33560         for SYMBOL_REF in large memory model.
33561
33562 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33563
33564         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
33565         and crypto support.
33566         (cortex-a57): Likewise.
33567         (cortex-a57.cortex-a53): Likewise.
33568
33569 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
33570             Kugan Vivekanandarajah  <kuganv@linaro.org>
33571
33572         * config/arm/arm.c (arm_vector_alignment_reachable): Check
33573         unaligned_access.
33574         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
33575
33576 2014-02-06  Richard Biener  <rguenther@suse.de>
33577
33578         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
33579         set_loop_copy and initialize_original_copy_tables.
33580
33581 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
33582
33583         * config/aarch64/aarch64-simd.md
33584         (aarch64_ashr_simddi): Change QI to SI.
33585
33586 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
33587             Jakub Jelinek  <jakub@redhat.com>
33588
33589         PR middle-end/60013
33590         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
33591         of the dataflow.
33592
33593 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33594
33595         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
33596         CODE_FOR_altivec_vpku[hw]um to
33597         CODE_FOR_altivec_vpku[hw]um_direct.
33598         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
33599         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
33600         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
33601         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
33602
33603 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33604
33605         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
33606         generation for -maltivec=be.
33607         (altivec_vsumsws): Simplify redundant test.
33608
33609 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33610
33611         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
33612         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
33613         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
33614         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
33615         gen_altivec_vpkuwum.
33616         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
33617         BYTES_BIG_ENDIAN.
33618         (altivec_vpks<VI_char>ss): Likewise.
33619         (altivec_vpks<VI_char>us): Likewise.
33620         (altivec_vpku<VI_char>us): Likewise.
33621         (altivec_vpku<VI_char>um): Likewise.
33622         (altivec_vpku<VI_char>um_direct): New (copy of
33623         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
33624         internal use).
33625         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
33626         target is little endian and -maltivec=be is not specified.
33627         (*altivec_vupkhs<VU_char>_direct): New (copy of
33628         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
33629         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
33630         target is little endian and -maltivec=be is not specified.
33631         (*altivec_vupkls<VU_char>_direct): New (copy of
33632         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
33633         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
33634         little endian and -maltivec=be is not specified.
33635         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
33636         little endian and -maltivec=be is not specified.
33637
33638 2014-02-05  Richard Henderson  <rth@redhat.com>
33639
33640         PR debug/52727
33641         * combine-stack-adj.c: Revert r206943.
33642         * sched-int.h (struct deps_desc): Add last_args_size.
33643         * sched-deps.c (init_deps): Initialize it.
33644         (sched_analyze_insn): Add OUTPUT dependencies between insns that
33645         contain REG_ARGS_SIZE notes.
33646
33647 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
33648
33649         * lto-cgraph.c (asm_nodes_output): Make global.
33650         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
33651         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
33652         (driver_handle_option): Handle OPT_fwpa.
33653
33654 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
33655
33656         PR ipa/59947
33657         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
33658         a comment typo and formatting issue.  If odr_hash hasn't been
33659         created, return vNULL and set *completep to false.
33660
33661         PR middle-end/57499
33662         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
33663         bb with no successors.
33664
33665 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
33666
33667         PR target/59718
33668         * doc/invoke.texi (-march): Clarify documentation for ARM.
33669         (-mtune): Likewise.
33670         (-mcpu): Likewise.
33671
33672 2014-02-05  Richard Biener  <rguenther@suse.de>
33673
33674         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
33675         when not vectorizing because of too many alias checks.
33676         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
33677         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
33678
33679 2014-02-05  Nick Clifton  <nickc@redhat.com>
33680
33681         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
33682         accept extended registers in any mode when compiling for the MN10300.
33683
33684 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
33685
33686         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
33687         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
33688         sanitization attributes.
33689         (can_inline_edge_p): Likewise.
33690         (sanitize_attrs_match_for_inline_p): New function.
33691
33692 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
33693
33694         * ipa-prop.c (detect_type_change): Shor circuit testing of
33695         type changes on THIS pointer.
33696
33697 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
33698
33699         PR target/59777
33700         * config/pa/pa.c (legitimize_tls_address): Return original address
33701         if not passed a SYMBOL_REF rtx.
33702         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
33703         addresses.
33704         (pa_emit_move_sequence): Simplify TLS source operands.
33705         (pa_legitimate_constant_p): Reject all TLS constants.
33706         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
33707         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
33708
33709 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
33710
33711         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
33712         groups when we know they are controlled by LTO.
33713         * varasm.c (default_binds_local_p_1): If object is in other partition,
33714         it will be resolved locally.
33715
33716 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33717
33718         * config/host-linux.c (linux_gt_pch_use_address): Don't
33719         use SSIZE_MAX because it is not always defined.
33720
33721 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
33722
33723         PR bootstrap/59913
33724         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
33725         threshold for pseudo splitting.
33726         (update_ebb_live_info): Process call argument hard registers and
33727         hard registers from insn definition too.
33728         (max_small_class_regs_num): New constant.
33729         (inherit_in_ebb): Update live hard regs through EBBs.  Update
33730         reloads_num only for small register classes.  Don't split for
33731         outputs of jumps.
33732
33733 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
33734
33735         PR ipa/60058
33736         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
33737         is non-null.
33738
33739 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
33740
33741         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
33742         visibility is safe.
33743
33744 2014-02-04  Marek Polacek  <polacek@redhat.com>
33745
33746         * gdbinit.in (pel): Define.
33747
33748 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33749
33750         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
33751         behavior.
33752
33753 2014-02-04  Richard Biener  <rguenther@suse.de>
33754
33755         PR lto/59723
33756         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
33757         in function context local.
33758         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
33759         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
33760         similar to LTO_imported_decl_ref.
33761
33762 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
33763
33764         PR tree-optimization/60002
33765         * cgraphclones.c (build_function_decl_skip_args): Clear
33766         DECL_LANG_SPECIFIC.
33767
33768         PR tree-optimization/60023
33769         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
33770         false to gsi_replace.
33771         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
33772         has been in some EH region and vec_stmt could throw, add
33773         vec_stmt into the same EH region.
33774         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
33775         has no lhs, ignore it.
33776         * internal-fn.c (expand_MASK_LOAD): Likewise.
33777
33778         PR ipa/60026
33779         * tree-inline.c (copy_forbidden): Fail for
33780         __attribute__((optimize (0))) functions.
33781
33782         PR other/58712
33783         * omp-low.c (simd_clone_struct_copy): If from->inbranch
33784         is set, copy one less argument.
33785         (expand_simd_clones): Don't subtract clone_info->inbranch
33786         from simd_clone_struct_alloc argument.
33787
33788         PR rtl-optimization/57915
33789         * recog.c (simplify_while_replacing): If all unary/binary/relational
33790         operation arguments are constant, attempt to simplify those.
33791
33792         PR middle-end/59261
33793         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
33794         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
33795
33796 2014-02-04  Richard Biener  <rguenther@suse.de>
33797
33798         PR tree-optimization/60012
33799         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
33800         TBAA disambiguation to all DDRs.
33801
33802 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33803
33804         PR target/59788
33805         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
33806         (LINK_SPEC): Use it for -shared, -shared-libgcc.
33807
33808 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33809
33810         PR ipa/59882
33811         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
33812
33813 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33814
33815         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
33816         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
33817
33818 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33819
33820         PR ipa/59831
33821         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
33822         to figure out targets of polymorphic calls with known decl.
33823         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33824         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
33825         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
33826         (get_polymorphic_call_info): ... here.
33827         (get_polymorphic_call_info_from_invariant): New function.
33828
33829 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33830
33831         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
33832         lookup via vtable pointer; check for type consistency
33833         and turn inconsitent facts into UNREACHABLE.
33834         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33835         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
33836         type inconsistent querries; return UNREACHABLE instead.
33837
33838 2014-02-03  Richard Henderson  <rth@twiddle.net>
33839
33840         PR tree-opt/59924
33841         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
33842         already processed this node.
33843         (normalize_one_pred_1): Pass along mark_set.
33844         (normalize_one_pred): Create and destroy a pointer_set_t.
33845         (normalize_one_pred_chain): Likewise.
33846
33847 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
33848
33849         PR gcov-profile/58602
33850         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
33851
33852 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
33853
33854         PR ipa/59831
33855         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
33856         -fno-devirtualize; try to devirtualize by the knowledge of
33857         virtual table pointer given by aggregate propagation.
33858         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
33859         (ipa_print_node_jump_functions): Dump also offset that
33860         is relevant for polymorphic calls.
33861         (determine_known_aggregate_parts): Add arg_type parameter; use it
33862         instead of determining the type from pointer type.
33863         (ipa_compute_jump_functions_for_edge): Update call of
33864         determine_known_aggregate_parts.
33865         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
33866         (gimple_get_virt_method_for_binfo): ... here; simplify using
33867         vtable_pointer_value_to_vtable.
33868         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
33869         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
33870         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
33871         (vtable_pointer_value_to_vtable): Break out from ...; handle also
33872         POINTER_PLUS_EXPR.
33873         (vtable_pointer_value_to_binfo): ... here.
33874         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
33875
33876 2014-02-03  Teresa Johnson  <tejohnson@google.com>
33877
33878         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
33879         redef of outer loop index variable.
33880
33881 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
33882
33883         PR c++/53017
33884         PR c++/59211
33885         * doc/extend.texi (Function Attributes): Typo.
33886
33887 2014-02-03  Cong Hou  <congh@google.com>
33888
33889         PR tree-optimization/60000
33890         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
33891         if the vectorized statement is a store.  A store statement can only
33892         appear at the end of pattern statements.
33893
33894 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
33895
33896         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
33897         (ix86_option_override_internal): Default long double to 64-bit for
33898         32-bit Bionic and to 128-bit for 64-bit Bionic.
33899
33900         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
33901         TARGET_LONG_DOUBLE_128 is true.
33902         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
33903
33904         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
33905         (mlong-double-64): Negate -mlong-double-128.
33906         (mlong-double-128): New option.
33907
33908         * config/i386/i386-c.c (ix86_target_macros): Define
33909         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
33910
33911         * doc/invoke.texi: Document -mlong-double-128.
33912
33913 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
33914
33915         PR rtl-optimization/60024
33916         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
33917
33918 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
33919
33920         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
33921
33922 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
33923
33924         PR rtl-optimization/57662
33925         * sel-sched.c (code_motion_path_driver): Do not mark already not
33926         existing blocks in the visiting bitmap.
33927
33928 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
33929
33930         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
33931         on the insn being emitted.
33932
33933 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
33934             Will Deacon  <will.deacon@arm.com>
33935
33936         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
33937
33938 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33939
33940         * config/arm/arm-tables.opt: Regenerate.
33941
33942 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33943
33944         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
33945         for vector types other than V16QImode.
33946         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
33947         define_expand, and call altivec_expand_vec_perm_le when producing
33948         code with little endian element order.
33949         (*altivec_vperm_<mode>_internal): New insn having previous
33950         behavior of altivec_vperm_<mode>.
33951         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
33952         altivec_expand_vec_perm_le when producing code with little endian
33953         element order.
33954         (*altivec_vperm_<mode>_uns_internal): New insn having previous
33955         behavior of altivec_vperm_<mode>_uns.
33956
33957 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33958
33959         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
33960         (altivec_vsumsws): Add handling for -maltivec=be with a little
33961         endian target.
33962         (altivec_vsumsws_direct): New.
33963         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
33964         gen_altivec_vsumsws.
33965
33966 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
33967
33968         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
33969         vtable_pointer_value_to_binfo): New functions.
33970         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
33971         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
33972
33973 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
33974
33975         * config/nios2/nios2.md (load_got_register): Initialize GOT
33976         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
33977         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
33978
33979 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
33980
33981         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
33982         preserverd by passthrough, do not propagate the type.
33983
33984 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
33985
33986         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
33987         (mips_atomic_assign_expand_fenv): New function.
33988         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
33989
33990 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
33991
33992         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
33993         (__builtin_mips_set_fcsr): Likewise.
33994         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
33995         MIPS_USI_FTYPE_VOID.
33996         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
33997         (mips16_expand_set_fcsr): Likewise.
33998         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
33999         (mips16_set_fcsr_stub): Likewise.
34000         (mips16_get_fcsr_one_only_stub): New class.
34001         (mips16_set_fcsr_one_only_stub): Likewise.
34002         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
34003         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
34004         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
34005         (hard_float): New availability predicate.
34006         (mips_builtins): Add get_fcsr and set_fcsr.
34007         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
34008         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
34009         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
34010         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
34011         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
34012         patterns.
34013
34014 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
34015
34016         * config/mips/mips.c (mips_one_only_stub): New class.
34017         (mips_need_mips16_rdhwr_p): Replace with...
34018         (mips16_rdhwr_stub): ...this new variable.
34019         (mips16_stub_call_address): New function.
34020         (mips16_rdhwr_one_only_stub): New class.
34021         (mips_expand_thread_pointer): Use mips16_stub_call_address.
34022         (mips_output_mips16_rdhwr): Delete.
34023         (mips_finish_stub): New function.
34024         (mips_code_end): Use it to handle rdhwr stubs.
34025
34026 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
34027
34028         PR target/60017
34029         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
34030         when calculating size of integer atomic types.
34031
34032 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
34033
34034         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
34035
34036 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
34037
34038         PR tree-optimization/60003
34039         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
34040         * profile.c (branch_prob): Use gimple_call_builtin_p
34041         to check for BUILT_IN_SETJMP_RECEIVER.
34042         * tree-inline.c (copy_bb): Call notice_special_calls.
34043
34044 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
34045
34046         PR bootstrap/59985
34047         * lra-constraints.c (process_alt_operands): Update reload_sum only
34048         on the first pass.
34049
34050 2014-01-31  Richard Henderson  <rth@redhat.com>
34051
34052         PR middle-end/60004
34053         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
34054         until after else_eh is processed.
34055
34056 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
34057
34058         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
34059         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
34060         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
34061         in smmintrin.h, remove them.
34062         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
34063         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
34064         * config/i386/i386.md (ROUND_SAE): Fix value.
34065         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
34066         (const48_operand): New.
34067         * config/i386/subst.md (round), (round_expand): Use
34068         const_4_or_8_to_11_operand.
34069         (round_saeonly), (round_saeonly_expand): Use const48_operand.
34070
34071 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
34072
34073         * config/i386/constraints.md (Yk): Swap meaning with k.
34074         * config/i386/i386.md (movhi_internal): Change Yk to k.
34075         (movqi_internal): Ditto.
34076         (*k<logic><mode>): Ditto.
34077         (*andhi_1): Ditto.
34078         (*andqi_1): Ditto.
34079         (kandn<mode>): Ditto.
34080         (*<code>hi_1): Ditto.
34081         (*<code>qi_1): Ditto.
34082         (kxnor<mode>): Ditto.
34083         (kortestzhi): Ditto.
34084         (kortestchi): Ditto.
34085         (kunpckhi): Ditto.
34086         (*one_cmplhi2_1): Ditto.
34087         (*one_cmplqi2_1): Ditto.
34088         * config/i386/sse.md (): Change k to Yk.
34089         (avx512f_load<mode>_mask): Ditto.
34090         (avx512f_blendm<mode>): Ditto.
34091         (avx512f_store<mode>_mask): Ditto.
34092         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
34093         (avx512f_storedqu<mode>_mask): Ditto.
34094         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
34095         Ditto.
34096         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
34097         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
34098         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
34099         (avx512f_maskcmp<mode>3): Ditto.
34100         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
34101         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
34102         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
34103         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
34104         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
34105         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
34106         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
34107         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
34108         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
34109         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
34110         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
34111         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
34112         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
34113         (vec_extract_lo_<mode>_maskm): Ditto.
34114         (vec_extract_hi_<mode>_maskm): Ditto.
34115         (avx512f_vternlog<mode>_mask): Ditto.
34116         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
34117         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
34118         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
34119         (avx512f_<code>v8div16qi2_mask): Ditto.
34120         (avx512f_<code>v8div16qi2_mask_store): Ditto.
34121         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
34122         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
34123         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
34124         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
34125         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
34126         (*avx512pf_gatherpf<mode>df_mask): Ditto.
34127         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
34128         (*avx512pf_scatterpf<mode>df_mask): Ditto.
34129         (avx512cd_maskb_vec_dupv8di): Ditto.
34130         (avx512cd_maskw_vec_dupv16si): Ditto.
34131         (avx512f_vpermi2var<mode>3_maskz): Ditto.
34132         (avx512f_vpermi2var<mode>3_mask): Ditto.
34133         (avx512f_vpermi2var<mode>3_mask): Ditto.
34134         (avx512f_vpermt2var<mode>3_maskz): Ditto.
34135         (*avx512f_gathersi<mode>): Ditto.
34136         (*avx512f_gathersi<mode>_2): Ditto.
34137         (*avx512f_gatherdi<mode>): Ditto.
34138         (*avx512f_gatherdi<mode>_2): Ditto.
34139         (*avx512f_scattersi<mode>): Ditto.
34140         (*avx512f_scatterdi<mode>): Ditto.
34141         (avx512f_compress<mode>_mask): Ditto.
34142         (avx512f_compressstore<mode>_mask): Ditto.
34143         (avx512f_expand<mode>_mask): Ditto.
34144         * config/i386/subst.md (mask): Change k to Yk.
34145         (mask_scalar_merge): Ditto.
34146         (sd): Ditto.
34147
34148 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
34149
34150         * doc/extend.texi (Vector Extensions): Document ?: in C++.
34151
34152 2014-01-31  Richard Biener  <rguenther@suse.de>
34153
34154         PR middle-end/59990
34155         * builtins.c (fold_builtin_memory_op): Make sure to not
34156         use a floating-point mode or a boolean or enumeral type for
34157         the copy operation.
34158
34159 2014-01-30  DJ Delorie  <dj@redhat.com>
34160
34161         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
34162         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
34163         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
34164         whenever main() has an epilogue.
34165
34166 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34167
34168         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
34169         unused variable "field".
34170         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
34171         (vsx_mergeh_<mode>): Likewise.
34172         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
34173         (altivec_vmrghh): Likewise.
34174         (altivec_vmrghw): Likewise.
34175         (altivec_vmrglb): Likewise.
34176         (altivec_vmrglh): Likewise.
34177         (altivec_vmrglw): Likewise.
34178         (altivec_vspltb): Add missing uses.
34179         (altivec_vsplth): Likewise.
34180         (altivec_vspltw): Likewise.
34181         (altivec_vspltsf): Likewise.
34182
34183 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
34184
34185         PR target/59923
34186         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
34187         frame related instructions.
34188
34189 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
34190
34191         PR rtl-optimization/59959
34192         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
34193         any reload of register whose subreg is invalid.
34194
34195 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
34196
34197         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
34198         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
34199         Add missing return type - void.
34200
34201 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34202
34203         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
34204         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
34205         remove element index adjustment for endian (now handled in vsx.md
34206         and altivec.md).
34207         (altivec_expand_vec_perm_const): Use
34208         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
34209         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
34210         (vsx_xxspltw_<mode>): Adjust element index for little endian.
34211         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
34212         define_expand and a new define_insn *altivec_vspltb_internal;
34213         adjust for -maltivec=be on a little endian target.
34214         (altivec_vspltb_direct): New.
34215         (altivec_vsplth): Divide into a define_expand and a new
34216         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
34217         little endian target.
34218         (altivec_vsplth_direct): New.
34219         (altivec_vspltw): Divide into a define_expand and a new
34220         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
34221         little endian target.
34222         (altivec_vspltw_direct): New.
34223         (altivec_vspltsf): Divide into a define_expand and a new
34224         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
34225         a little endian target.
34226
34227 2014-01-30  Richard Biener  <rguenther@suse.de>
34228
34229         PR tree-optimization/59993
34230         * tree-ssa-forwprop.c (associate_pointerplus): Check we
34231         can propagate form the earlier stmt and avoid the transform
34232         when the intermediate result is needed.
34233
34234 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
34235
34236         * README.Portability: Fix typo.
34237
34238 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
34239
34240         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
34241         comparison_operator with ordered_comparison_operator.
34242
34243 2014-01-30  Nick Clifton  <nickc@redhat.com>
34244
34245         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
34246         Rename to mn10300_store_multiple_regs.
34247         * config/mn10300/mn10300.c: Likewise.
34248         * config/mn10300/mn10300.md (store_movm): Fix typo: call
34249         store_multiple_regs.
34250         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
34251         Call mn10300_store_multiple_regs.
34252
34253 2014-01-30  Nick Clifton  <nickc@redhat.com>
34254             DJ Delorie  <dj@redhat.com>
34255
34256         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
34257         %fp 2 to keep registers after it properly word-aligned.
34258         (rl78_alloc_physical_registers_umul): Handle the case where both
34259         input operands are the same.
34260
34261 2014-01-30  Richard Biener  <rguenther@suse.de>
34262
34263         PR tree-optimization/59903
34264         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
34265         check properly.
34266
34267 2014-01-30  Jason Merrill  <jason@redhat.com>
34268
34269         PR c++/59633
34270         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
34271
34272         PR c++/59645
34273         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
34274
34275 2014-01-30  Richard Biener  <rguenther@suse.de>
34276
34277         PR tree-optimization/59951
34278         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
34279
34280 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
34281
34282         PR target/59784
34283         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
34284         SFmode to DFmode case.
34285
34286 2014-01-29  DJ Delorie  <dj@redhat.com>
34287
34288         * config/msp430/msp430.opt (-minrt): New.
34289         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
34290         if -minrt given.
34291         (ENDFILE_SPEC): Likewise.
34292
34293 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
34294
34295         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
34296         (estimate_function_body_sizes): Use it.
34297
34298 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
34299
34300         PR c++/58561
34301         * dwarf2out.c (is_cxx_auto): New.
34302         (is_base_type): Use it.
34303         (gen_type_die_with_usage): Likewise.
34304
34305 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34306
34307         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
34308         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
34309         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
34310         -maltivec=be with LE targets.
34311         (vsx_mergeh_<mode>): Likewise.
34312         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
34313         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
34314         (altivec_vmrghb): Replace with define_expand and new
34315         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
34316         (altivec_vmrghb_direct): New define_insn.
34317         (altivec_vmrghh): Replace with define_expand and new
34318         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
34319         (altivec_vmrghh_direct): New define_insn.
34320         (altivec_vmrghw): Replace with define_expand and new
34321         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
34322         (altivec_vmrghw_direct): New define_insn.
34323         (*altivec_vmrghsf): Adjust for endianness.
34324         (altivec_vmrglb): Replace with define_expand and new
34325         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
34326         (altivec_vmrglb_direct): New define_insn.
34327         (altivec_vmrglh): Replace with define_expand and new
34328         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
34329         (altivec_vmrglh_direct): New define_insn.
34330         (altivec_vmrglw): Replace with define_expand and new
34331         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
34332         (altivec_vmrglw_direct): New define_insn.
34333         (*altivec_vmrglsf): Adjust for endianness.
34334         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
34335         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
34336         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
34337         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
34338         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
34339         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
34340         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
34341         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
34342
34343 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34344
34345         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
34346         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
34347         whitespace.
34348
34349 2014-01-29  Richard Biener  <rguenther@suse.de>
34350
34351         PR tree-optimization/58742
34352         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
34353         associate_pointerplus_align.
34354         (associate_pointerplus_diff): New function.
34355         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
34356         and associate_pointerplus_diff.
34357
34358 2014-01-29  Richard Biener  <rguenther@suse.de>
34359
34360         * lto-streamer.h (LTO_major_version): Bump to 3.
34361         (LTO_minor_version): Reset to 0.
34362
34363 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
34364
34365         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
34366         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
34367         (arm_file_start): Generate correct asm header for armv7ve.
34368         * config/arm/bpabi.h: Add multilib support for armv7ve.
34369         * config/arm/driver-arm.c: Change the architectures of cortex-a7
34370         and cortex-a15 to armv7ve.
34371         * config/arm/t-aprofile: Add multilib support for armv7ve.
34372         * doc/invoke.texi: Document -march=armv7ve.
34373
34374 2014-01-29  Richard Biener  <rguenther@suse.de>
34375
34376         PR tree-optimization/58742
34377         * tree-ssa-forwprop.c (associate_plusminus): Return true
34378         if we changed sth, defer EH cleanup to ...
34379         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
34380         (simplify_mult): New function.
34381
34382 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
34383
34384         PR middle-end/59917
34385         PR tree-optimization/59920
34386         * tree.c (build_common_builtin_nodes): Remove
34387         __builtin_setjmp_dispatcher initialization.
34388         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
34389         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
34390         instead of gsi_after_labels + manually skipping debug stmts.
34391         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
34392         ignore bbs with IFN_ABNORMAL_DISPATCHER.
34393         * tree-inline.c (copy_edges_for_bb): Remove
34394         can_make_abnormal_goto argument, instead add abnormal_goto_dest
34395         argument.  Ignore computed_goto_p stmts.  Don't call
34396         make_abnormal_goto_edges.  If a call might need abnormal edges
34397         for non-local gotos, see if it already has an edge to
34398         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
34399         with true argument, don't do anything then, otherwise add
34400         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
34401         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
34402         caller.
34403         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
34404         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
34405         (lower_stmt): Don't set data->calls_builtin_setjmp.
34406         (lower_builtin_setjmp): Adjust comment.
34407         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
34408         * tree-cfg.c (found_computed_goto): Remove.
34409         (factor_computed_gotos): Remove.
34410         (make_goto_expr_edges): Return bool, true for computed gotos.
34411         Don't call make_abnormal_goto_edges.
34412         (build_gimple_cfg): Don't set found_computed_goto, don't call
34413         factor_computed_gotos.
34414         (computed_goto_p): No longer static.
34415         (make_blocks): Don't set found_computed_goto.
34416         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
34417         (make_edges): If make_goto_expr_edges returns true, push bb
34418         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
34419         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
34420         vector.  Record mapping between bbs and OpenMP regions if there
34421         are any, adjust make_gimple_omp_edges caller.  Call
34422         handle_abnormal_edges.
34423         (make_abnormal_goto_edges): Remove.
34424         * tree-cfg.h (make_abnormal_goto_edges): Remove.
34425         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
34426         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
34427         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
34428         * internal-fn.def (ABNORMAL_DISPATCHER): New.
34429         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
34430         filling *region also set *region_idx to (*region)->entry->index.
34431
34432         PR other/58712
34433         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
34434         For REGs set ORIGINAL_REGNO.
34435
34436 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
34437
34438         * doc/md.texi: Mention that a target shouldn't implement
34439         vec_widen_(s|u)mul_even/odd pair if it is less efficient
34440         than hi/lo pair.
34441
34442 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
34443
34444         PR tree-optimization/59594
34445         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
34446         a copy of the datarefs vector rather than the vector itself.
34447
34448 2014-01-28  Jason Merrill  <jason@redhat.com>
34449
34450         PR c++/53756
34451         * dwarf2out.c (auto_die): New static.
34452         (gen_type_die_with_usage): Handle C++1y 'auto'.
34453         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
34454         on definition.
34455
34456 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
34457
34458         PR target/59672
34459         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
34460         (SPEC_X32): Likewise.
34461         (SPEC_64): Likewise.
34462         * config/i386/i386.c (ix86_option_override_internal): Turn off
34463         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
34464         for TARGET_16BIT.
34465         (x86_file_start): Output .code16gcc for TARGET_16BIT.
34466         * config/i386/i386.h (TARGET_16BIT): New macro.
34467         (TARGET_16BIT_P): Likewise.
34468         * config/i386/i386.opt: Add m16.
34469         * doc/invoke.texi: Document -m16.
34470
34471 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
34472
34473         PR preprocessor/59935
34474         * input.c (location_get_source_line): Bail out on when line number
34475         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
34476
34477 2014-01-28  Richard Biener  <rguenther@suse.de>
34478
34479         PR tree-optimization/58742
34480         * tree-ssa-forwprop.c (associate_plusminus): Handle
34481         pointer subtraction of the form (T)(P + A) - (T)P.
34482
34483 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34484
34485         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
34486         at const_int_cost.
34487
34488 2014-01-28  Richard Biener  <rguenther@suse.de>
34489
34490         Revert
34491         2014-01-28  Richard Biener  <rguenther@suse.de>
34492
34493         PR rtl-optimization/45364
34494         PR rtl-optimization/59890
34495         * var-tracking.c (local_get_addr_clear_given_value): Handle
34496         already cleared slot.
34497         (val_reset): Handle not allocated local_get_addr_cache.
34498         (vt_find_locations): Use post-order on the inverted CFG.
34499
34500 2014-01-28  Richard Biener  <rguenther@suse.de>
34501
34502         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
34503
34504 2014-01-28  Richard Biener  <rguenther@suse.de>
34505
34506         PR rtl-optimization/45364
34507         PR rtl-optimization/59890
34508         * var-tracking.c (local_get_addr_clear_given_value): Handle
34509         already cleared slot.
34510         (val_reset): Handle not allocated local_get_addr_cache.
34511         (vt_find_locations): Use post-order on the inverted CFG.
34512
34513 2014-01-28  Alan Modra  <amodra@gmail.com>
34514
34515         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
34516         * configure.ac <recursive call for build != host>: Define
34517         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
34518         and LD_FOR_BUILD too.
34519         * configure: Regenerate.
34520
34521 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
34522
34523         * config/i386/i386.c (get_builtin_code_for_version): Separate
34524         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
34525         Broadwell from Haswell.
34526
34527 2014-01-27  Steve Ellcey  <sellcey@mips.com>
34528
34529         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
34530         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
34531         * config/mips/mips.c (mips_option_override): Change setting
34532         of TARGET_DSP.
34533         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
34534         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
34535         Change from Mask to Var.
34536
34537 2014-01-27  Jeff Law  <law@redhat.com>
34538
34539         * ipa-inline.c (inline_small_functions): Fix typo.
34540
34541 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
34542
34543         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
34544         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
34545         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
34546         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
34547         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
34548         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
34549         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
34550         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
34551         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
34552         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
34553         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
34554         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
34555         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
34556         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
34557         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
34558         (_mm512_storeu_epi64): Ditto.
34559         (_mm512_cmpge_epi32_mask): Ditto.
34560         (_mm512_cmpge_epu32_mask): Ditto.
34561         (_mm512_cmpge_epi64_mask): Ditto.
34562         (_mm512_cmpge_epu64_mask): Ditto.
34563         (_mm512_cmple_epi32_mask): Ditto.
34564         (_mm512_cmple_epu32_mask): Ditto.
34565         (_mm512_cmple_epi64_mask): Ditto.
34566         (_mm512_cmple_epu64_mask): Ditto.
34567         (_mm512_cmplt_epi32_mask): Ditto.
34568         (_mm512_cmplt_epu32_mask): Ditto.
34569         (_mm512_cmplt_epi64_mask): Ditto.
34570         (_mm512_cmplt_epu64_mask): Ditto.
34571         (_mm512_cmpneq_epi32_mask): Ditto.
34572         (_mm512_cmpneq_epu32_mask): Ditto.
34573         (_mm512_cmpneq_epi64_mask): Ditto.
34574         (_mm512_cmpneq_epu64_mask): Ditto.
34575         (_mm512_expand_pd): Ditto.
34576         (_mm512_expand_ps): Ditto.
34577         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
34578         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
34579         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
34580         * config/i386/i386.c (ix86_builtins): Add
34581         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
34582         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
34583         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
34584         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
34585         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
34586         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
34587         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
34588         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
34589         IX86_BUILTIN_PMOVUSQW512_MEM.
34590         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
34591         __builtin_ia32_pmovsqd512mem_mask,
34592         __builtin_ia32_pmovqd512mem_mask,
34593         __builtin_ia32_pmovusqw512mem_mask,
34594         __builtin_ia32_pmovsqw512mem_mask,
34595         __builtin_ia32_pmovqw512mem_mask,
34596         __builtin_ia32_pmovusdw512mem_mask,
34597         __builtin_ia32_pmovsdw512mem_mask,
34598         __builtin_ia32_pmovdw512mem_mask,
34599         __builtin_ia32_pmovqb512mem_mask,
34600         __builtin_ia32_pmovusqb512mem_mask,
34601         __builtin_ia32_pmovsqb512mem_mask,
34602         __builtin_ia32_pmovusdb512mem_mask,
34603         __builtin_ia32_pmovsdb512mem_mask,
34604         __builtin_ia32_pmovdb512mem_mask.
34605         (bdesc_args): Add __builtin_ia32_expanddf512,
34606         __builtin_ia32_expandsf512.
34607         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
34608         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
34609         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
34610         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
34611         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
34612         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
34613         (avx512f_<code>v8div16qi2_mask_store): This.
34614         (avx512f_expand<mode>): New.
34615
34616 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
34617
34618         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
34619         New.
34620         (_mm512_mask_prefetch_i64gather_pd): Ditto.
34621         (_mm512_prefetch_i32scatter_pd): Ditto.
34622         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
34623         (_mm512_prefetch_i64scatter_pd): Ditto.
34624         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
34625         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
34626         (_mm512_mask_prefetch_i64gather_ps): Ditto.
34627         (_mm512_prefetch_i32scatter_ps): Ditto.
34628         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
34629         (_mm512_prefetch_i64scatter_ps): Ditto.
34630         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
34631         * config/i386/i386-builtin-types.def: Define
34632         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
34633         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
34634         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
34635         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
34636         IX86_BUILTIN_SCATTERPFQPD.
34637         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
34638         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
34639         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
34640         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
34641         __builtin_ia32_scatterpfqps.
34642         (ix86_expand_builtin): Expand new built-ins.
34643         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
34644         fix memory access data type.
34645         (*avx512pf_gatherpf<mode>_mask): Ditto.
34646         (*avx512pf_gatherpf<mode>): Ditto.
34647         (avx512pf_scatterpf<mode>): Ditto.
34648         (*avx512pf_scatterpf<mode>_mask): Ditto.
34649         (*avx512pf_scatterpf<mode>): Ditto.
34650         (GATHER_SCATTER_SF_MEM_MODE): New.
34651         (avx512pf_gatherpf<mode>df): Ditto.
34652         (*avx512pf_gatherpf<mode>df_mask): Ditto.
34653         (*avx512pf_scatterpf<mode>df): Ditto.
34654
34655 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
34656
34657         PR bootstrap/59934
34658         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
34659         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
34660         reached.
34661
34662 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
34663
34664         * common/config/arm/arm-common.c
34665         (arm_rewrite_mcpu): Handle multiple names.
34666         * config/arm/arm.h
34667         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
34668
34669 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
34670
34671         * gimple-builder.h (create_gimple_tmp): Delete.
34672
34673 2014-01-27  Christian Bruel  <christian.bruel@st.com>
34674
34675         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
34676         words comparisons.
34677
34678 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
34679
34680         * config/pa/pa.md (call): Generate indirect long calls to non-local
34681         functions when outputing 32-bit code.
34682         (call_value): Likewise except for special call to buggy powf function.
34683
34684         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
34685         portable runtime and PIC indirect calls.
34686         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
34687         and PIC call sequences.  Use ldo instead of blr to set return register
34688         in PIC call sequence.
34689
34690 2014-01-25  Walter Lee  <walt@tilera.com>
34691
34692         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
34693         avoid clobbering a live register.
34694
34695 2014-01-25  Walter Lee  <walt@tilera.com>
34696
34697         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
34698         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
34699         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
34700         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
34701
34702 2014-01-25  Walter Lee  <walt@tilera.com>
34703
34704         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
34705         arguments on even registers.
34706         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
34707         STACK_BOUNDARY.
34708         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
34709         (BIGGEST_ALIGNMENT): Ditto.
34710         (BIGGEST_FIELD_ALIGNMENT): Ditto.
34711
34712 2014-01-25  Walter Lee  <walt@tilera.com>
34713
34714         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
34715         insns before bundling.
34716         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
34717
34718 2014-01-25  Walter Lee  <walt@tilera.com>
34719
34720         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
34721         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
34722         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
34723
34724 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
34725
34726         * config/mips/constraints.md (kl): Delete.
34727         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
34728         define expands, using...
34729         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
34730         instructions for MIPS16.
34731         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
34732         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
34733
34734 2014-01-25  Walter Lee  <walt@tilera.com>
34735
34736         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
34737         (clzdi2): Ditto.
34738         (ffsdi2): Ditto.
34739
34740 2014-01-25  Walter Lee  <walt@tilera.com>
34741
34742         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
34743         (TARGET_EXPAND_TO_RTL_HOOK): Define.
34744
34745 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
34746
34747         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
34748         Handle XOR.
34749
34750 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
34751
34752         * print-rtl.c (in_call_function_usage): New var.
34753         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
34754         EXPR_LIST mode as mode and not as reg note name.
34755
34756         PR middle-end/59561
34757         * cfgloopmanip.c (copy_loop_info): If
34758         loop->warned_aggressive_loop_optimizations, make sure
34759         the flag is set in target loop too.
34760
34761 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
34762
34763         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
34764         flag_cilkplus.
34765         * builtins.def: Likewise.
34766         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
34767         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
34768         * ira.c (ira_setup_eliminable_regset): Likewise.
34769         * omp-low.c (gate_expand_omp): Likewise.
34770         (execute_lower_omp): Likewise.
34771         (diagnose_sb_0): Likewise.
34772         (gate_diagnose_omp_blocks): Likewise.
34773         (simd_clone_clauses_extract): Likewise.
34774         (gate): Likewise.
34775
34776 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34777
34778         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
34779         correction for little endian...
34780         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
34781         here.
34782
34783 2014-01-24  Jeff Law  <law@redhat.com>
34784
34785         PR tree-optimization/59919
34786         * tree-vrp.c (find_assert_locations_1): Do not register asserts
34787         for non-returning calls.
34788
34789 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
34790
34791         * common/config/aarch64/aarch64-common.c
34792         (aarch64_rewrite_mcpu): Handle multiple names.
34793         * config/aarch64/aarch64.h
34794         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
34795
34796 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
34797
34798         * input.c (add_file_to_cache_tab): Handle the case where fopen
34799         returns NULL.
34800
34801 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
34802
34803         PR target/59929
34804         * config/i386/i386.md (pushsf splitter): Get stack adjustment
34805         from push operand if code of push isn't PRE_DEC.
34806
34807 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
34808
34809         PR target/59909
34810         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
34811         -mquad-memory-atomic.  Update -mquad-memory documentation to say
34812         it is only used for non-atomic loads/stores.
34813
34814         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
34815         -mquad-memory or -mquad-memory-atomic switches.
34816
34817         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
34818         -mquad-memory-atomic to ISA 2.07 support.
34819
34820         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
34821         to separate support of normal quad word memory operations (ldq, stq)
34822         from the atomic quad word memory operations.
34823
34824         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
34825         support to separate non-atomic quad word operations from atomic
34826         quad word operations.  Disable non-atomic quad word operations in
34827         little endian mode so that we don't have to swap words after the
34828         load and before the store.
34829         (quad_load_store_p): Add comment about atomic quad word support.
34830         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
34831         options printed with -mdebug=reg.
34832
34833         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
34834         -mquad-memory-atomic as the test for whether we have quad word
34835         atomic instructions.
34836         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
34837         or -mp8-vector are used, allow byte/half-word atomic operations.
34838
34839         * config/rs6000/sync.md (load_lockedti): Insure that the address
34840         is a proper indexed or indirect address for the lqarx instruction.
34841         On little endian systems, swap the hi/lo registers after the lqarx
34842         instruction.
34843         (load_lockedpti): Use indexed_or_indirect_operand predicate to
34844         insure the address is valid for the lqarx instruction.
34845         (store_conditionalti): Insure that the address is a proper indexed
34846         or indirect address for the stqcrx. instruction.  On little endian
34847         systems, swap the hi/lo registers before doing the stqcrx.
34848         instruction.
34849         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
34850         insure the address is valid for the stqcrx. instruction.
34851
34852         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
34853         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
34854         type of quad memory support is available.
34855
34856 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
34857
34858         PR regression/59915
34859         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
34860         there is a danger of looping.
34861
34862 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
34863
34864         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
34865         force flag_ira_loop_pressure if set via command line.
34866
34867 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
34868
34869         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
34870         (ashr_simd): New builtin handling DI mode.
34871         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
34872         (aarch64_sshr_simddi): New match pattern.
34873         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
34874         (vshrd_n_s64): Likewise.
34875         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
34876
34877 2014-01-23  Nick Clifton  <nickc@redhat.com>
34878
34879         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
34880         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
34881         favour of mcu specific scripts.
34882         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
34883         430x multilibs.
34884
34885 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
34886             Alex Velenko  <Alex.Velenko@arm.com>
34887
34888         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
34889         (vaddv_s16): Likewise.
34890         (vaddv_s32): Likewise.
34891         (vaddv_u8): Likewise.
34892         (vaddv_u16): Likewise.
34893         (vaddv_u32): Likewise.
34894         (vaddvq_s8): Likewise.
34895         (vaddvq_s16): Likewise.
34896         (vaddvq_s32): Likewise.
34897         (vaddvq_s64): Likewise.
34898         (vaddvq_u8): Likewise.
34899         (vaddvq_u16): Likewise.
34900         (vaddvq_u32): Likewise.
34901         (vaddvq_u64): Likewise.
34902         (vaddv_f32): Likewise.
34903         (vaddvq_f32): Likewise.
34904         (vaddvq_f64): Likewise.
34905         (vmaxv_f32): Likewise.
34906         (vmaxv_s8): Likewise.
34907         (vmaxv_s16): Likewise.
34908         (vmaxv_s32): Likewise.
34909         (vmaxv_u8): Likewise.
34910         (vmaxv_u16): Likewise.
34911         (vmaxv_u32): Likewise.
34912         (vmaxvq_f32): Likewise.
34913         (vmaxvq_f64): Likewise.
34914         (vmaxvq_s8): Likewise.
34915         (vmaxvq_s16): Likewise.
34916         (vmaxvq_s32): Likewise.
34917         (vmaxvq_u8): Likewise.
34918         (vmaxvq_u16): Likewise.
34919         (vmaxvq_u32): Likewise.
34920         (vmaxnmv_f32): Likewise.
34921         (vmaxnmvq_f32): Likewise.
34922         (vmaxnmvq_f64): Likewise.
34923         (vminv_f32): Likewise.
34924         (vminv_s8): Likewise.
34925         (vminv_s16): Likewise.
34926         (vminv_s32): Likewise.
34927         (vminv_u8): Likewise.
34928         (vminv_u16): Likewise.
34929         (vminv_u32): Likewise.
34930         (vminvq_f32): Likewise.
34931         (vminvq_f64): Likewise.
34932         (vminvq_s8): Likewise.
34933         (vminvq_s16): Likewise.
34934         (vminvq_s32): Likewise.
34935         (vminvq_u8): Likewise.
34936         (vminvq_u16): Likewise.
34937         (vminvq_u32): Likewise.
34938         (vminnmv_f32): Likewise.
34939         (vminnmvq_f32): Likewise.
34940         (vminnmvq_f64): Likewise.
34941
34942 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
34943
34944         * config/aarch64/aarch64-simd.md
34945         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
34946         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
34947         (*aarch64_mul3_elt<mode>): Likewise.
34948         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
34949         (*aarch64_mul3_elt_to_64v2df): Likewise.
34950         (*aarch64_mla_elt<mode>): Likewise.
34951         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
34952         (*aarch64_mls_elt<mode>): Likewise.
34953         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
34954         (*aarch64_fma4_elt<mode>): Likewise.
34955         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
34956         (*aarch64_fma4_elt_to_64v2df): Likewise.
34957         (*aarch64_fnma4_elt<mode>): Likewise.
34958         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
34959         (*aarch64_fnma4_elt_to_64v2df): Likewise.
34960         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
34961         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
34962         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
34963         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
34964         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
34965         (aarch64_sqdmull_lane<mode>_internal): Likewise.
34966         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
34967
34968 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
34969
34970         * config/aarch64/aarch64-simd.md
34971         (aarch64_be_checked_get_lane<mode>): New define_expand.
34972         * config/aarch64/aarch64-simd-builtins.def
34973         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
34974         New builtin definition.
34975         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
34976         Use new safe be builtin.
34977
34978 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
34979
34980         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
34981         New define_insn.
34982         (aarch64_be_st1<mode>): Likewise.
34983         (aarch_ld1<VALL:mode>): Define_expand modified.
34984         (aarch_st1<VALL:mode>): Likewise.
34985         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
34986         (UNSPEC_ST1): Likewise.
34987
34988 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
34989
34990         * config/microblaze/microblaze.md: Add trap insn and attribute
34991
34992 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
34993
34994         PR preprocessor/58580
34995         * input.h (location_get_source_line): Take an additional line_size
34996         parameter.
34997         (void diagnostics_file_cache_fini): Declare new function.
34998         * input.c (struct fcache): New type.
34999         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
35000         New static constants.
35001         (diagnostic_file_cache_init, total_lines_num)
35002         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
35003         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
35004         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
35005         (get_next_line, read_next_line, goto_next_line, read_line_num):
35006         New static function definitions.
35007         (diagnostic_file_cache_fini): New function.
35008         (location_get_source_line): Take an additional output line_len
35009         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
35010         read_line_num.
35011         * diagnostic.c (diagnostic_finish): Call
35012         diagnostic_file_cache_fini.
35013         (adjust_line): Take an additional input parameter for the length
35014         of the line, rather than calculating it with strlen.
35015         (diagnostic_show_locus): Adjust the use of
35016         location_get_source_line and adjust_line with respect to their new
35017         signature.  While displaying a line now, do not stop at the first
35018         null byte.  Rather, display the zero byte as a space and keep
35019         going until we reach the size of the line.
35020         * Makefile.in: Add vec.o to OBJS-libcommon
35021
35022 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
35023             Ilya Tocar  <ilya.tocar@intel.com>
35024
35025         * config/i386/avx512fintrin.h (_mm512_kmov): New.
35026         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
35027         (__builtin_ia32_kmov16): Ditto.
35028         * config/i386/i386.md (UNSPEC_KMOV): New.
35029         (kmovw): Ditto.
35030
35031 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
35032
35033         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
35034         (_mm512_storeu_si512): Ditto.
35035
35036 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
35037
35038         PR target/52125
35039         * rtl.h (get_referenced_operands): Declare.
35040         * recog.c (get_referenced_operands): New function.
35041         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
35042         operands have been referenced when recording LO_SUM references.
35043
35044 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
35045
35046         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
35047
35048 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
35049
35050         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
35051         Enable for generic and recent AMD targets.
35052
35053 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
35054
35055         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
35056         ARG_SIZE note when adjustment was eliminated.
35057
35058 2014-01-22  Jeff Law  <law@redhat.com>
35059
35060         PR tree-optimization/59597
35061         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
35062         in file.  Accept new argument REGISTERING and use it to modify
35063         dump output appropriately.
35064         (register_jump_thread): Corresponding changes.
35065         (mark_threaded_blocks): Reinstate code to cancel unprofitable
35066         thread paths involving joiner blocks.  Add code to dump cancelled
35067         jump threading paths.
35068
35069 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
35070
35071         PR rtl-optimization/59477
35072         * lra-constraints.c (inherit_in_ebb): Process call for living hard
35073         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
35074
35075 2014-01-22  Tom Tromey  <tromey@redhat.com>
35076
35077         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
35078         PARAMS.
35079         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
35080
35081 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
35082
35083         PR rtl-optimization/59896
35084         * lra-constraints.c (process_alt_operands): Check unused note for
35085         matched operands of insn with no output reloads.
35086
35087 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
35088
35089         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
35090         (mips_move_from_gpr_cost): Likewise.
35091
35092 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
35093
35094         PR rtl-optimization/59858
35095         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
35096         ira_class_hard_regs_num.
35097         (process_alt_operands): Increase reject for dying matched operand.
35098
35099 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
35100
35101         PR target/59003
35102         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
35103         smaller than size, perform several stores or loads and stores
35104         at dst + count - size to store or copy all of size bytes, rather
35105         than just last modesize bytes.
35106
35107 2014-01-20  DJ Delorie  <dj@redhat.com>
35108
35109         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
35110         that CLOBBERs are REGs before propogating their values.
35111
35112 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
35113
35114         PR middle-end/59789
35115         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
35116         (cgraph_inline_failed_type): New function.
35117         * cgraph.h (DEFCIFCODE): Add type.
35118         (cgraph_inline_failed_type_t): New enum.
35119         (cgraph_inline_failed_type): New prototype.
35120         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
35121         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
35122         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
35123         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
35124         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
35125         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
35126         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
35127         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
35128         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
35129         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
35130         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
35131         OPTIMIZATION_MISMATCH.
35132         * tree-inline.c (expand_call_inline): Emit errors during
35133         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
35134
35135 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
35136
35137         PR target/59685
35138         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
35139         mode attribute in insn output.
35140
35141 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
35142
35143         * output.h (output_constant): Delete.
35144         * varasm.c (output_constant): Make private.
35145
35146 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
35147
35148         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
35149
35150 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
35151
35152         PR middle-end/59860
35153         * tree.h (fold_builtin_strcat): New prototype.
35154         * builtins.c (fold_builtin_strcat): No longer static.  Add len
35155         argument, if non-NULL, don't call c_strlen.  Optimize
35156         directly into __builtin_memcpy instead of __builtin_strcpy.
35157         (fold_builtin_2): Adjust fold_builtin_strcat caller.
35158         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
35159
35160 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
35161
35162         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
35163         for SImode_address_operand operands, having only a REG argument.
35164
35165 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35166
35167         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
35168         loader name using mbig-endian.
35169         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
35170
35171 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
35172
35173         * doc/invoke.texi (-march): Clarify documentation for AArch64.
35174         (-mtune): Likewise.
35175         (-mcpu): Likewise.
35176
35177 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
35178
35179         * config/aarch64/aarch64-protos.h
35180         (aarch64_cannot_change_mode_class_ptr): Declare.
35181         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
35182         aarch64_cannot_change_mode_class_ptr): New.
35183         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
35184         backend hook aarch64_cannot_change_mode_class.
35185
35186 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
35187
35188         * common/config/aarch64/aarch64-common.c
35189         (aarch64_handle_option): Don't handle any option order logic here.
35190         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
35191         selected_cpu, warn on architecture version mismatch.
35192         (aarch64_override_options): Fix parsing order for option strings.
35193
35194 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
35195             Iain Sandoe  <iain@codesourcery.com>
35196
35197         PR bootstrap/59496
35198         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
35199         warning.  Amend comment to reflect current functionality.
35200
35201 2014-01-20  Richard Biener  <rguenther@suse.de>
35202
35203         PR middle-end/59860
35204         * builtins.c (fold_builtin_strcat): Remove case better handled
35205         by tree-ssa-strlen.c.
35206
35207 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
35208
35209         * config/aarch64/aarch64.opt
35210         (mcpu, march, mtune): Make case-insensitive.
35211
35212 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
35213
35214         PR target/59880
35215         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
35216         if operands[1] is a REG or ZERO_EXTEND of a REG.
35217
35218 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
35219
35220         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
35221
35222 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
35223
35224         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
35225         long non-pic millicode calls.
35226
35227 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
35228
35229         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
35230
35231 2014-01-19  Kito Cheng  <kito@0xlab.org>
35232
35233         * builtins.c (expand_movstr): Check movstr expand done or fail.
35234
35235 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
35236             H.J. Lu  <hongjiu.lu@intel.com>
35237
35238         PR target/59379
35239         * config/i386/i386.md (*lea<mode>): Zero-extend return register
35240         to DImode for zero-extended addresses.
35241
35242 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
35243
35244         PR rtl-optimization/57763
35245         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
35246         on the new indirect jump_insn and increment LABEL_NUSES (label).
35247
35248 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
35249
35250         PR bootstrap/59580
35251         PR bootstrap/59583
35252         * config.gcc (x86_archs): New variable.
35253         (x86_64_archs): Likewise.
35254         (x86_cpus): Likewise.
35255         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
35256         --with-arch/--with-cpu= options.
35257         Support --with-arch=/--with-cpu={nehalem,westmere,
35258         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
35259
35260 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
35261
35262         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
35263         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
35264
35265 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
35266
35267         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
35268
35269 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
35270
35271         PR target/58944
35272         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
35273         clear cpp_get_options (parse_in)->warn_unused_macros for
35274         ix86_target_macros_internal with cpp_define.
35275
35276 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
35277
35278         * jump.c (delete_related_insns): Keep (use (insn))s.
35279         * reorg.c (redundant_insn): Check for barriers too.
35280
35281 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
35282
35283         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
35284
35285 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
35286
35287         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
35288         call to $$dyncall when TARGET_LONG_CALLS is true.
35289
35290 2014-01-17  Jeff Law  <law@redhat.com>
35291
35292         * ree.c (combine_set_extension): Temporarily disable test for
35293         changing number of hard registers.
35294
35295 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
35296
35297         PR middle-end/58125
35298         * ipa-inline-analysis.c (inline_free_summary):
35299         Do not free summary of aliases.
35300
35301 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
35302
35303         PR middle-end/59706
35304         * gimplify.c (gimplify_expr): Use create_tmp_var
35305         instead of create_tmp_var_raw.  If cond doesn't have
35306         integral type, don't add the IFN_ANNOTATE builtin at all.
35307
35308 2014-01-17  Martin Jambor  <mjambor@suse.cz>
35309
35310         PR ipa/59736
35311         * ipa-cp.c (prev_edge_clone): New variable.
35312         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
35313         Also resize prev_edge_clone vector.
35314         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
35315         (ipcp_edge_removal_hook): New function.
35316         (ipcp_driver): Register ipcp_edge_removal_hook.
35317
35318 2014-01-17  Andrew Pinski  <apinski@cavium.com>
35319             Steve Ellcey  <sellcey@mips.com>
35320
35321         PR target/59462
35322         * config/mips/mips.c (mips_print_operand): Check operand mode instead
35323         of operator mode.
35324
35325 2014-01-17  Jeff Law  <law@redhat.com>
35326
35327         PR middle-end/57904
35328         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
35329         so that pass_ccp runs first.
35330
35331 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
35332
35333         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
35334         (ix86_adjust_cost): Use !TARGET_XXX.
35335         (do_reorder_for_imul): Likewise.
35336         (swap_top_of_ready_list): Likewise.
35337         (ix86_sched_reorder): Likewise.
35338
35339 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
35340
35341         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
35342         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
35343         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
35344         (intel_memset): New.  Duplicate slm_memset.
35345         (intel_cost): New.  Duplicate slm_cost.
35346         (m_INTEL): New macro.
35347         (processor_target_table): Add "intel".
35348         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
35349         with PROCESSOR_INTEL for "intel".
35350         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
35351         PROCESSOR_SILVERMONT.
35352         (ix86_issue_rate): Likewise.
35353         (ix86_adjust_cost): Likewise.
35354         (ia32_multipass_dfa_lookahead): Likewise.
35355         (swap_top_of_ready_list): Likewise.
35356         (ix86_sched_reorder): Likewise.
35357         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
35358         instead of TARGET_OPT_AGU.
35359         * config/i386/i386.h (TARGET_INTEL): New.
35360         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
35361         (processor_type): Add PROCESSOR_INTEL.
35362         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
35363         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
35364
35365 2014-01-17  Marek Polacek  <polacek@redhat.com>
35366
35367         PR c/58346
35368         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
35369         size is zero.
35370
35371 2014-01-17  Richard Biener  <rguenther@suse.de>
35372
35373         PR tree-optimization/46590
35374         * opts.c (default_options_table): Add entries for
35375         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
35376         all enabled at -O1 but not for -Og.
35377         * common.opt (fbranch-count-reg): Remove Init(1).
35378         (fmove-loop-invariants): Likewise.
35379         (ftree-pta): Likewise.
35380
35381 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
35382
35383         * config/i386/i386.c (ix86_data_alignment): For compatibility with
35384         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
35385         decls to at least the GCC 4.8 used alignments.
35386
35387         PR fortran/59440
35388         * tree-nested.c (convert_nonlocal_reference_stmt,
35389         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
35390         of GIMPLE_BIND stmts, adjust associated decls.
35391
35392 2014-01-17  Richard Biener  <rguenther@suse.de>
35393
35394         PR tree-optimization/46590
35395         * vec.h (vec<>::bseach): New member function implementing
35396         binary search according to C89 bsearch.
35397         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
35398         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
35399         bitmap pointer again.  Make accesses_in_loop a flat array.
35400         (mem_ref_obstack): New global.
35401         (outermost_indep_loop): Adjust for mem_ref->stored changes.
35402         (mark_ref_stored): Likewise.
35403         (ref_indep_loop_p_2): Likewise.
35404         (set_ref_stored_in_loop): New helper function.
35405         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
35406         (memref_free): Adjust.
35407         (record_mem_ref_loc): Simplify.
35408         (gather_mem_refs_stmt): Adjust.
35409         (sort_locs_in_loop_postorder_cmp): New function.
35410         (analyze_memory_references): Sort accesses_in_loop after
35411         loop postorder number.
35412         (find_ref_loc_in_loop_cmp): New function.
35413         (for_all_locs_in_loop): Find relevant cluster of locs in
35414         accesses_in_loop and iterate without recursion.
35415         (execute_sm): Avoid uninit warning.
35416         (struct ref_always_accessed): Simplify.
35417         (ref_always_accessed::operator ()): Likewise.
35418         (ref_always_accessed_p): Likewise.
35419         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
35420         loop postorder numbers here.
35421         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
35422         numbers.
35423
35424 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
35425
35426         PR c++/57945
35427         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
35428         on decls for which assemble_alias has been called.
35429
35430 2014-01-17  Nick Clifton  <nickc@redhat.com>
35431
35432         * config/msp430/msp430.opt: (mcpu): New option.
35433         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
35434         (msp430_option_override): Parse target_cpu.  If the MCU name
35435         matches a generic string, clear target_mcu.
35436         (msp430_attr): Allow numeric interrupt values up to 63.
35437         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
35438         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
35439         option.
35440         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
35441         Add mcpu matches.
35442         * config/msp430/msp430.md (popm): Use %J rather than %I.
35443         (addsi3): Use msp430_nonimmediate_operand for operand 2.
35444         (addhi_cy_i): Use immediate_operand for operand 2.
35445         * doc/invoke.texi: Document -mcpu option.
35446
35447 2014-01-17  Richard Biener  <rguenther@suse.de>
35448
35449         PR rtl-optimization/38518
35450         * df.h (df_analyze_loop): Declare.
35451         * df-core.c: Include cfgloop.h.
35452         (df_analyze_1): Split out main part of df_analyze.
35453         (df_analyze): Adjust.
35454         (loop_inverted_post_order_compute): New function.
35455         (loop_post_order_compute): Likewise.
35456         (df_analyze_loop): New function avoiding whole-function
35457         postorder computes.
35458         * loop-invariant.c (find_defs): Use df_analyze_loop.
35459         (find_invariants): Adjust.
35460         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
35461
35462 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
35463
35464         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
35465         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
35466
35467 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
35468
35469         * ipa-ref.c (ipa_remove_stmt_references): Fix references
35470         traversal when removing references.
35471
35472 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
35473
35474         PR ipa/59775
35475         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
35476
35477 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
35478
35479         PR middle-end/56791
35480         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
35481         pushing a reload for an autoinc when we had previously reloaded an
35482         inner part of the address.
35483
35484 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
35485
35486         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
35487         field.
35488         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
35489         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
35490         when not giving up or versioning for alias only because of
35491         loop->safelen.
35492         (vect_analyze_data_ref_dependences): Set to true.
35493         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
35494         is a GIMPLE_PHI.
35495         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
35496         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
35497         to the condition.
35498
35499         PR middle-end/58344
35500         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
35501
35502         PR target/59839
35503         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
35504         operand 0 predicate for gathers, use a new pseudo as subtarget.
35505
35506 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
35507
35508         PR middle-end/59609
35509         * lra-constraints.c (process_alt_operands): Add printing debug info.
35510         Check absence of input/output reloads for matched operands too.
35511
35512 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
35513
35514         PR rtl-optimization/59835
35515         * ira.c (ira_init_register_move_cost): Increase cost for
35516         impossible modes.
35517
35518 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
35519
35520         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
35521
35522 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
35523
35524         PR target/59780
35525         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
35526         non-register objects.  Use gen_(high/low)part more consistently.
35527         Fix assertions.
35528
35529 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
35530
35531         PR target/59844
35532         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
35533         endian support, remove tests for WORDS_BIG_ENDIAN.
35534         (p8_mfvsrd_3_<mode>): Likewise.
35535         (reload_gpr_from_vsx<mode>): Likewise.
35536         (reload_gpr_from_vsxsf): Likewise.
35537         (p8_mfvsrd_4_disf): Likewise.
35538
35539 2014-01-16  Richard Biener  <rguenther@suse.de>
35540
35541         PR rtl-optimization/46590
35542         * lcm.c (compute_antinout_edge): Use postorder iteration.
35543         (compute_laterin): Use inverted postorder iteration.
35544
35545 2014-01-16  Nick Clifton  <nickc@redhat.com>
35546
35547         PR middle-end/28865
35548         * varasm.c (output_constant): Return the number of bytes actually
35549         emitted.
35550         (output_constructor_array_range): Update the field size with the
35551         number of bytes emitted by output_constant.
35552         (output_constructor_regular_field): Likewise.  Also do not
35553         complain if the total number of bytes emitted is now greater
35554         than the expected fieldpos.
35555         * output.h (output_constant): Update prototype and descriptive comment.
35556
35557 2014-01-16  Marek Polacek  <polacek@redhat.com>
35558
35559         PR middle-end/59827
35560         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
35561         it is error_mark_node.
35562
35563 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
35564
35565         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
35566         VALID_AVX256_REG_OR_OI_MODE.
35567
35568 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
35569
35570         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
35571         current procedure should be profiled.
35572
35573 2014-01-15  Andrew Pinski  <apinski@cavium.com>
35574
35575         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
35576         of moving from/to the STACK_REG register class.
35577
35578 2014-01-15  Richard Henderson  <rth@redhat.com>
35579
35580         PR debug/54694
35581         * reginfo.c (global_regs_decl): Globalize.
35582         * rtl.h (global_regs_decl): Declare.
35583         * ira.c (do_reload): Diagnose frame_pointer_needed and it
35584         reserved via global_regs.
35585
35586 2014-01-15  Teresa Johnson  <tejohnson@google.com>
35587
35588         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
35589
35590 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
35591
35592         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
35593         and vmulosh rather than call gen_vec_widen_smult_*.
35594         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
35595         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
35596         (vec_widen_smult_even_v16qi): Likewise.
35597         (vec_widen_umult_even_v8hi): Likewise.
35598         (vec_widen_smult_even_v8hi): Likewise.
35599         (vec_widen_umult_odd_v16qi): Likewise.
35600         (vec_widen_smult_odd_v16qi): Likewise.
35601         (vec_widen_umult_odd_v8hi): Likewise.
35602         (vec_widen_smult_odd_v8hi): Likewise.
35603         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
35604         vmuloub rather than call gen_vec_widen_umult_*.
35605         (vec_widen_umult_lo_v16qi): Likewise.
35606         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
35607         vmulosb rather than call gen_vec_widen_smult_*.
35608         (vec_widen_smult_lo_v16qi): Likewise.
35609         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
35610         rather than call gen_vec_widen_umult_*.
35611         (vec_widen_umult_lo_v8hi): Likewise.
35612         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
35613         rather than call gen_vec_widen_smult_*.
35614         (vec_widen_smult_lo_v8hi): Likewise.
35615
35616 2014-01-15  Jeff Law  <law@redhat.com>
35617
35618         PR tree-optimization/59747
35619         * ree.c (find_and_remove_re): Properly handle case where a second
35620         eliminated extension requires widening a copy created for elimination
35621         of a prior extension.
35622         (combine_set_extension): Ensure that the number of hard regs needed
35623         for a destination register does not change when we widen it.
35624
35625 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
35626
35627         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
35628         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
35629         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
35630         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
35631         (avr-*-rtems*): Likewise.
35632         (bfin*-rtems*): Likewise.
35633         (moxie-*-rtems*): Likewise.
35634         (h8300-*-rtems*): Likewise.
35635         (i[34567]86-*-rtems*): Likewise.
35636         (lm32-*-rtems*): Likewise.
35637         (m32r-*-rtems*): Likewise.
35638         (m68k-*-rtems*): Likewise.
35639         (microblaze*-*-rtems*): Likewise.
35640         (mips*-*-rtems*): Likewise.
35641         (powerpc-*-rtems*): Likewise.
35642         (sh-*-rtems*): Likewise.
35643         (sparc-*-rtems*): Likewise.
35644         (sparc64-*-rtems*): Likewise.
35645         (v850-*-rtems*): Likewise.
35646         (m32c-*-rtems*): Likewise.
35647
35648 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
35649
35650         PR rtl-optimization/59511
35651         * ira.c (ira_init_register_move_cost): Use memory costs for some
35652         cases of register move cost calculations.
35653         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
35654         instead of BB frequency.
35655         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
35656         * lra-assigns.c (find_hard_regno_for): Ditto.
35657
35658 2014-01-15  Richard Biener  <rguenther@suse.de>
35659
35660         PR tree-optimization/59822
35661         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
35662         (vectorizable_load): Use it to hoist defs of uses of invariant
35663         loads out of the loop.
35664
35665 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
35666             Kugan Vivekanandarajah  <kuganv@linaro.org>
35667
35668         PR target/59695
35669         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
35670         truncation.
35671
35672 2014-01-15  Richard Biener  <rguenther@suse.de>
35673
35674         PR rtl-optimization/59802
35675         * lcm.c (compute_available): Use inverted postorder to seed
35676         the initial worklist.
35677
35678 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35679
35680         PR target/59803
35681         * config/s390/s390.c (s390_preferred_reload_class): Don't return
35682         ADDR_REGS for invalid symrefs in non-PIC code.
35683
35684 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
35685
35686         PR other/58712
35687         * builtins.c (determine_block_size): Initialize *probable_max_size
35688         even if len_rtx is CONST_INT.
35689
35690 2014-01-14  Andrew Pinski  <apinski@cavium.com>
35691
35692         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
35693         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
35694         (cortexa53_tunings): Likewise.
35695         (aarch64_sched_issue_rate): New function.
35696         (TARGET_SCHED_ISSUE_RATE): Define.
35697
35698 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
35699
35700         * ira-costs.c (find_costs_and_classes): Add missed
35701         ira_init_register_move_cost_if_necessary.
35702
35703 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
35704
35705         PR target/59787
35706         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
35707
35708 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
35709
35710         PR target/59794
35711         * config/i386/i386.c (type_natural_mode): Add a bool parameter
35712         to indicate if type is used for function return value.  Warn ABI
35713         change if the vector mode isn't available for function return value.
35714         (ix86_function_arg_advance): Pass false to type_natural_mode.
35715         (ix86_function_arg): Likewise.
35716         (ix86_gimplify_va_arg): Likewise.
35717         (function_arg_32): Don't warn ABI change.
35718         (ix86_function_value): Pass true to type_natural_mode.
35719         (ix86_return_in_memory): Likewise.
35720         (ix86_struct_value_rtx): Removed.
35721         (TARGET_STRUCT_VALUE_RTX): Likewise.
35722
35723 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
35724
35725         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
35726         converting a conditional jump into a conditional return.
35727
35728 2014-01-14  Richard Biener  <rguenther@suse.de>
35729
35730         PR tree-optimization/58921
35731         PR tree-optimization/59006
35732         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
35733         hoisting invariant stmts.
35734         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
35735         invariant loads on the preheader edge if possible.
35736
35737 2014-01-14  Joey Ye  <joey.ye@arm.com>
35738
35739         * doc/plugin.texi (Building GCC plugins): Update to C++.
35740
35741 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
35742
35743         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
35744         (_mm_rcp28_round_ss): Ditto.
35745         (_mm_rsqrt28_round_sd): Ditto.
35746         (_mm_rsqrt28_round_ss): Ditto.
35747         (_mm_rcp28_sd): Ditto.
35748         (_mm_rcp28_ss): Ditto.
35749         (_mm_rsqrt28_sd): Ditto.
35750         (_mm_rsqrt28_ss): Ditto.
35751         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
35752         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
35753         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
35754         (IX86_BUILTIN_RCP28SD): Ditto.
35755         (IX86_BUILTIN_RCP28SS): Ditto.
35756         (IX86_BUILTIN_RSQRT28SD): Ditto.
35757         (IX86_BUILTIN_RSQRT28SS): Ditto.
35758         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
35759         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
35760         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
35761         (ix86_expand_special_args_builtin): Expand new FTYPE.
35762         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
35763         (srcp14<mode>): Make insn unary.
35764         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
35765         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
35766         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
35767         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
35768         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
35769         Fix rounding: make it SAE only.
35770         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
35771         Ditto.
35772         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
35773         Ditto.
35774         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
35775         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
35776         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
35777         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
35778         (round_saeonly_mask_scalar_operand4): Ditto.
35779         (round_saeonly_mask_scalar_op3): Ditto.
35780         (round_saeonly_mask_scalar_op4): Ditto.
35781
35782 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35783
35784         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
35785         Implement -maltivec=be for vec_insert and vec_extract.
35786
35787 2014-01-10  DJ Delorie  <dj@redhat.com>
35788
35789         * config/msp430/msp430.md (call_internal): Don't allow memory
35790         references with SP as the base register.
35791         (call_value_internal): Likewise.
35792         * config/msp430/constraints.md (Yc): New.  For memory references
35793         that don't use SP as a base register.
35794
35795         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
35796         "an integer without a # prefix"
35797         * config/msp430/msp430.md (epilogue_helper): Use it.
35798
35799 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
35800
35801         PR target/59617
35802         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
35803         AVX512F gather builtins.
35804         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
35805         on gather decls with INTEGER_TYPE masktype.
35806         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
35807         directly into the builtin rather than hoisting it before loop.
35808
35809         PR tree-optimization/59387
35810         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
35811         (scev_const_prop): If folded_casts and type has undefined overflow,
35812         use force_gimple_operand instead of force_gimple_operand_gsi and
35813         for each added stmt if it is assign with
35814         arith_code_with_undefined_signed_overflow, call
35815         rewrite_to_defined_overflow.
35816         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
35817         gimple-fold.h instead.
35818         (arith_code_with_undefined_signed_overflow,
35819         rewrite_to_defined_overflow): Moved to ...
35820         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
35821         rewrite_to_defined_overflow): ... here.  No longer static.
35822         Include gimplify-me.h.
35823         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
35824         rewrite_to_defined_overflow): New prototypes.
35825
35826 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35827
35828         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
35829
35830 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
35831
35832         * builtins.c (get_object_alignment_2): Minor tweak.
35833         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
35834
35835 2014-01-13  Christian Bruel  <christian.bruel@st.com>
35836
35837         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
35838         optimized non constant lengths.
35839
35840 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
35841
35842         PR libgomp/59194
35843         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
35844         load as __atomic_load_N if possible.
35845
35846 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
35847
35848         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
35849         target parameter.
35850         (rs6000_expand_builtin): Adjust call.
35851
35852 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
35853
35854         PR target/58115
35855         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
35856         * config/rs6000/rs6000.c: Include target-globals.h.
35857         (rs6000_set_current_function): Instead of doing target_reinit
35858         unconditionally, use save_target_globals_default_opts and
35859         restore_target_globals.
35860
35861         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
35862         FPSCR.
35863         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
35864         (rs6000_expand_builtin): Handle mffs and mtfsf.
35865         (rs6000_init_builtins): Define mffs and mtfsf.
35866         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
35867         (rs6000_mffs): New pattern.
35868         (rs6000_mtfsf): New pattern.
35869
35870 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
35871
35872         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
35873         Start narrowing with START.  Apply candidate-use pair
35874         and check overall cost in narrowing.
35875         (iv_ca_prune): Pass new argument.
35876
35877 2014-01-10  Jeff Law  <law@redhat.com>
35878
35879         PR middle-end/59743
35880         * ree.c (combine_reaching_defs): Ensure the defining statement
35881         occurs before the extension when optimizing extensions with
35882         different source and destination hard registers.
35883
35884 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
35885
35886         PR ipa/58585
35887         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
35888         vtables into the type inheritance graph.
35889
35890 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
35891
35892         PR rtl-optimization/59754
35893         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
35894         modes in the REGNO != REGNO case.
35895
35896 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35897
35898         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
35899
35900 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
35901
35902         PR tree-optimization/59745
35903         * tree-predcom.c (tree_predictive_commoning_loop): Call
35904         free_affine_expand_cache if giving up because components is NULL.
35905
35906         * target-globals.c (save_target_globals): Allocate < 4KB structs using
35907         GC in payload of target_globals struct instead of allocating them on
35908         the heap and the larger structs separately using GC.
35909         * target-globals.h (struct target_globals): Make regs, hard_regs,
35910         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
35911         of GTY((skip)) and change type to void *.
35912         (reset_target_globals): Cast loads from those fields to corresponding
35913         types.
35914
35915 2014-01-10  Steve Ellcey  <sellcey@mips.com>
35916
35917         PR plugins/59335
35918         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
35919         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
35920         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
35921
35922 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
35923
35924         PR target/59744
35925         * aarch64-modes.def (CC_Zmode): New flags mode.
35926         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
35927         represents an equality.
35928         (aarch64_get_condition_code): Handle CC_Zmode.
35929         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
35930
35931 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35932
35933         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
35934         extraction in good case.
35935
35936 2014-01-10  Richard Biener  <rguenther@suse.de>
35937
35938         PR tree-optimization/59374
35939         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
35940         checking after SLP discovery.  Mark stmts not participating
35941         in any SLP instance properly.
35942
35943 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35944
35945         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
35946         when handling a SET rtx.
35947
35948 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35949
35950         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
35951         (cortex-a57): Likewise.
35952         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
35953
35954 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35955
35956         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
35957         non-iwmmxt builtins.
35958
35959 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
35960
35961         PR ipa/58252
35962         PR ipa/59226
35963         * ipa-devirt.c record_target_from_binfo): Take as argument
35964         stack of binfos and lookup matching one for virtual inheritance.
35965         (possible_polymorphic_call_targets_1): Update.
35966
35967 2014-01-10  Huacai Chen  <chenhc@lemote.com>
35968
35969         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
35970         kernel strings for Loongson-2E/2F/3A.
35971
35972 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
35973
35974         PR middle-end/59670
35975         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
35976         is_gimple_call before calling gimple_call_internal_p.
35977
35978 2014-01-09  Steve Ellcey  <sellcey@mips.com>
35979
35980         * Makefile.in (TREE_FLOW_H): Remove.
35981         (TREE_SSA_H): Add file names from tree-flow.h.
35982         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
35983         * tree.h: Remove tree-flow.h reference.
35984         * hash-table.h: Remove tree-flow.h reference.
35985         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
35986         reference with tree-ssa-loop.h.
35987
35988 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35989
35990         * doc/invoke.texi: Add -maltivec={be,le} options, and document
35991         default element-order behavior for -maltivec.
35992         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
35993         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
35994         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
35995         when targeting big endian, at least for now.
35996         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
35997
35998 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
35999
36000         PR middle-end/47735
36001         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
36002         var satisfies use_register_for_decl, just take into account type
36003         alignment, rather than decl alignment.
36004
36005         PR tree-optimization/59622
36006         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
36007         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
36008         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
36009         Don't devirtualize for inplace at all.  For targets.length () == 1,
36010         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
36011
36012 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
36013
36014         * config/i386/i386.md (cpu): Remove the unused btver1.
36015
36016 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
36017
36018         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
36019
36020 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
36021
36022         PR target/58115
36023         * tree-core.h (struct target_globals): New forward declaration.
36024         (struct tree_target_option): Add globals field.
36025         * tree.h (TREE_TARGET_GLOBALS): Define.
36026         (prepare_target_option_nodes_for_pch): New prototype.
36027         * target-globals.h (struct target_globals): Define even if
36028         !SWITCHABLE_TARGET.
36029         * tree.c (prepare_target_option_node_for_pch,
36030         prepare_target_option_nodes_for_pch): New functions.
36031         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
36032         * config/i386/i386.c: Include target-globals.h.
36033         (ix86_set_current_function): Instead of doing target_reinit
36034         unconditionally, use save_target_globals_default_opts and
36035         restore_target_globals.
36036
36037 2014-01-09  Richard Biener  <rguenther@suse.de>
36038
36039         PR tree-optimization/59715
36040         * tree-cfg.h (split_critical_edges): Declare.
36041         * tree-cfg.c (split_critical_edges): Export.
36042         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
36043
36044 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
36045
36046         * cfgexpand.c (expand_stack_vars): Optionally disable
36047         asan stack protection.
36048         (expand_used_vars): Likewise.
36049         (partition_stack_vars): Likewise.
36050         * asan.c (asan_emit_stack_protection): Optionally disable
36051         after return stack usage.
36052         (instrument_derefs): Optionally disable memory access instrumentation.
36053         (instrument_builtin_call): Likewise.
36054         (instrument_strlen_call): Likewise.
36055         (asan_protect_global): Optionally disable global variables protection.
36056         * doc/invoke.texi: Added doc for new options.
36057         * params.def: Added new options.
36058         * params.h: Likewise.
36059
36060 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
36061
36062         PR rtl-optimization/59724
36063         * ifcvt.c (cond_exec_process_if_block): Don't call
36064         flow_find_head_matching_sequence with 0 longest_match.
36065         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
36066         non-active insns if !stop_after.
36067         (try_head_merge_bb): Revert 2014-01-07 changes.
36068
36069 2014-01-08  Jeff Law  <law@redhat.com>
36070
36071         * ree.c (get_sub_rtx): New function, extracted from...
36072         (merge_def_and_ext): Here.
36073         (combine_reaching_defs): Use get_sub_rtx.
36074
36075 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
36076
36077         * cgraph.h (varpool_variable_node): Do not choke on null node.
36078
36079 2014-01-08  Catherine Moore  <clm@codesourcery.com>
36080
36081         * config/mips/mips.md (simple_return): Attempt to use JRC
36082         for microMIPS.
36083         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
36084
36085 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
36086
36087         PR rtl-optimization/59137
36088         * reorg.c (steal_delay_list_from_target): Call update_block for
36089         elided insns.
36090         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
36091
36092 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36093
36094         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
36095         two duplicate entries.
36096
36097 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
36098
36099         Revert:
36100         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
36101
36102         * config/mips/mips.c (mips_truncated_op_cost): New function.
36103         (mips_rtx_costs): Adjust test for BADDU.
36104         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
36105
36106         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
36107
36108         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
36109         (*baddu_si): ...this new pattern.
36110
36111 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
36112
36113         PR ipa/59722
36114         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
36115
36116 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
36117
36118         PR middle-end/57748
36119         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
36120         inner_reference_p.
36121         (expand_expr, expand_normal): Adjust.
36122         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
36123         inner_reference_p. Use inner_reference_p to expand inner references.
36124         (store_expr): Adjust.
36125         * cfgexpand.c (expand_call_stmt): Adjust.
36126
36127 2014-01-08  Rong Xu  <xur@google.com>
36128
36129         * gcov-io.c (gcov_var): Move from gcov-io.h.
36130         (gcov_position): Ditto.
36131         (gcov_is_error): Ditto.
36132         (gcov_rewrite): Ditto.
36133         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
36134         only part to libgcc/libgcov.h.
36135
36136 2014-01-08  Marek Polacek  <polacek@redhat.com>
36137
36138         PR middle-end/59669
36139         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
36140
36141 2014-01-08  Marek Polacek  <polacek@redhat.com>
36142
36143         PR sanitizer/59667
36144         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
36145
36146 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
36147
36148         PR rtl-optimization/59649
36149         * stor-layout.c (get_mode_bounds): For BImode return
36150         0 and STORE_FLAG_VALUE.
36151
36152 2014-01-08  Richard Biener  <rguenther@suse.de>
36153
36154         PR middle-end/59630
36155         * gimple.h (is_gimple_builtin_call): Remove.
36156         (gimple_builtin_call_types_compatible_p): New.
36157         (gimple_call_builtin_p): New overload.
36158         * gimple.c (is_gimple_builtin_call): Remove.
36159         (validate_call): Rename to ...
36160         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
36161         check return types.
36162         (validate_type): New static function.
36163         (gimple_call_builtin_p): New overload and adjust.
36164         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
36165         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
36166         (gimple_fold_stmt_to_constant_1): Likewise.
36167         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
36168
36169 2014-01-08  Richard Biener  <rguenther@suse.de>
36170
36171         PR middle-end/59471
36172         * gimplify.c (gimplify_expr): Gimplify register-register type
36173         VIEW_CONVERT_EXPRs to separate stmts.
36174
36175 2014-01-07  Jeff Law  <law@redhat.com>
36176
36177         PR middle-end/53623
36178         * ree.c (combine_set_extension): Handle case where source
36179         and destination registers in an extension insn are different.
36180         (combine_reaching_defs): Allow source and destination registers
36181         in extension to be different under limited circumstances.
36182         (add_removable_extension): Remove restriction that the
36183         source and destination registers in the extension are the same.
36184         (find_and_remove_re): Emit a copy from the extension's
36185         destination to its source after the defining insn if
36186         the source and destination registers are different.
36187
36188         PR middle-end/59285
36189         * ifcvt.c (merge_if_block): If we are merging a block with more than
36190         one successor with a block with no successors, remove any BARRIER
36191         after the second block.
36192
36193 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
36194
36195         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
36196
36197 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
36198
36199         PR target/59652
36200         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
36201         for 14-bit register offsets when INT14_OK_STRICT is false.
36202
36203 2014-01-07  Roland Stigge  <stigge@antcom.de>
36204             Michael Meissner  <meissner@linux.vnet.ibm.com>
36205
36206         PR 57386/target
36207         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
36208         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
36209
36210 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
36211
36212         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
36213         -mcpu.
36214
36215 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
36216
36217         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
36218         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
36219         rtx is const0_rtx or not.
36220
36221 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
36222
36223         PR target/58115
36224         * target-globals.c (save_target_globals): Remove this_fn_optab
36225         handling.
36226         * toplev.c: Include optabs.h.
36227         (target_reinit): Temporarily restore the global options if another
36228         set of options are in force.
36229
36230 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
36231
36232         PR rtl-optimization/58668
36233         * cfgcleanup.c (flow_find_cross_jump): Don't count
36234         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
36235         to determine what is counted.
36236         (flow_find_head_matching_sequence): Use active_insn_p to determine
36237         what is counted.
36238         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
36239         counting change.
36240         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
36241         determine what is counted.
36242
36243         PR tree-optimization/59643
36244         * tree-predcom.c (split_data_refs_to_components): If one dr is
36245         read and one write, determine_offset fails and the write isn't
36246         in the bad component, just put the read into the bad component.
36247
36248 2014-01-07  Mike Stump  <mikestump@comcast.net>
36249             Jakub Jelinek  <jakub@redhat.com>
36250
36251         PR pch/59436
36252         * tree-core.h (struct tree_optimization_option): Change optabs
36253         type from unsigned char * to void *.
36254         * optabs.c (init_tree_optimization_optabs): Adjust
36255         TREE_OPTIMIZATION_OPTABS initialization.
36256
36257 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
36258
36259         PR target/59644
36260         * config/i386/i386.h (struct machine_function): Add
36261         no_drap_save_restore field.
36262         * config/i386/i386.c (ix86_save_reg): Use
36263         !cfun->machine->no_drap_save_restore instead of
36264         crtl->stack_realign_needed.
36265         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
36266         this function clears frame_pointer_needed.  Set
36267         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
36268         and DRAP reg is needed.
36269
36270 2014-01-06  Marek Polacek  <polacek@redhat.com>
36271
36272         PR c/57773
36273         * doc/implement-c.texi: Mention that other integer types are
36274         permitted as bit-field types in strictly conforming mode.
36275
36276 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
36277
36278         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
36279         is newly allocated.
36280
36281 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
36282
36283         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
36284
36285 2014-01-06  Martin Jambor  <mjambor@suse.cz>
36286
36287         PR ipa/59008
36288         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
36289         to int.
36290         * ipa-prop.c (ipa_print_node_params): Fix indentation.
36291
36292 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
36293
36294         PR debug/59350
36295         PR debug/59510
36296         * var-tracking.c (add_stores): Preserve the value of the source even if
36297         we don't record the store.
36298
36299 2014-01-06  Terry Guo  <terry.guo@arm.com>
36300
36301         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
36302
36303 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
36304
36305         PR bootstrap/59541
36306         * config/darwin.c (darwin_function_section): Adjust return values to
36307         correspond to optimisation changes made in r206070.
36308
36309 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
36310
36311         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
36312         from prefetch_block tune setting.
36313         (nocona_cost): Correct size of prefetch block to 64.
36314
36315 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
36316
36317         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
36318         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
36319         used to save the static chain register in the computation of the offset
36320         from which the FP registers need to be restored.
36321
36322 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
36323
36324         PR tree-optimization/59519
36325         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
36326         ICE if get_current_def (current_new_name) is already non-NULL, as long
36327         as it is a phi result of some other phi in *new_exit_bb that has
36328         the same argument.
36329
36330         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
36331         or vmovdqu* for misaligned_operand.
36332         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
36333         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
36334         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
36335         aligned_mem for AVX512F masked aligned load and store builtins and for
36336         non-temporal moves.
36337
36338 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
36339
36340         PR tree-optimization/59651
36341         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
36342         Address range for negative step should be added by TYPE_SIZE_UNIT.
36343
36344 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
36345
36346         * config/m68k/m68k.c (handle_move_double): Handle pushes with
36347         overlapping registers also for registers other than the stack pointer.
36348
36349 2014-01-03  Marek Polacek  <polacek@redhat.com>
36350
36351         PR other/59661
36352         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
36353         __builtin_FILE.
36354
36355 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
36356
36357         PR target/59625
36358         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
36359         asm goto as jump.
36360
36361         * config/i386/i386.md (MODE_SIZE): New mode attribute.
36362         (push splitter): Use <P:MODE_SIZE> instead of
36363         GET_MODE_SIZE (<P:MODE>mode).
36364         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
36365         (mov -1, reg peephole2): Likewise.
36366         * config/i386/sse.md (*mov<mode>_internal,
36367         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
36368         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
36369         *<code><mode>3, *andnot<mode>3<mask_name>,
36370         <mask_codefor><code><mode>3<mask_name>): Likewise.
36371         * config/i386/subst.md (mask_mode512bit_condition,
36372         sd_mask_mode512bit_condition): Likewise.
36373
36374 2014-01-02  Xinliang David Li  <davidxl@google.com>
36375
36376         PR tree-optimization/59303
36377         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
36378         (dump_predicates): Better output format.
36379         (pred_equal_p): New function.
36380         (is_neq_relop_p): Ditto.
36381         (is_neq_zero_form_p): Ditto.
36382         (pred_expr_equal_p): Ditto.
36383         (pred_neg_p): Ditto.
36384         (simplify_pred): Ditto.
36385         (simplify_preds_2): Ditto.
36386         (simplify_preds_3): Ditto.
36387         (simplify_preds_4): Ditto.
36388         (simplify_preds): Ditto.
36389         (push_pred): Ditto.
36390         (push_to_worklist): Ditto.
36391         (get_pred_info_from_cmp): Ditto.
36392         (is_degenerated_phi): Ditto.
36393         (normalize_one_pred_1): Ditto.
36394         (normalize_one_pred): Ditto.
36395         (normalize_one_pred_chain): Ditto.
36396         (normalize_preds): Ditto.
36397         (normalize_cond_1): Remove function.
36398         (normalize_cond): Ditto.
36399         (is_gcond_subset_of): Ditto.
36400         (is_subset_of_any): Ditto.
36401         (is_or_set_subset_of): Ditto.
36402         (is_and_set_subset_of): Ditto.
36403         (is_norm_cond_subset_of): Ditto.
36404         (pred_chain_length_cmp): Ditto.
36405         (convert_control_dep_chain_into_preds): Type change.
36406         (find_predicates): Ditto.
36407         (find_def_preds): Ditto.
36408         (destroy_predicates_vecs): Ditto.
36409         (find_matching_predicates_in_rest_chains): Ditto.
36410         (use_pred_not_overlap_with_undef_path_pred): Ditto.
36411         (is_pred_expr_subset): Ditto.
36412         (is_pred_chain_subset_of): Ditto.
36413         (is_included_in): Ditto.
36414         (is_superset_of): Ditto.
36415
36416 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
36417
36418         Update copyright years.
36419
36420 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
36421
36422         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
36423         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
36424         config/arc/arc.md, config/arc/arc.opt,
36425         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
36426         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
36427         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
36428         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
36429         config/linux-protos.h, config/linux.c, config/winnt-c.c,
36430         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
36431         vtable-verify.c, vtable-verify.h: Use the standard form for the
36432         copyright notice.
36433
36434 2014-01-02  Tobias Burnus  <burnus@net-b.de>
36435
36436         * gcc.c (process_command): Update copyright notice dates.
36437         * gcov-dump.c: Ditto.
36438         * gcov.c: Ditto.
36439         * doc/cpp.texi: Bump @copying's copyright year.
36440         * doc/cppinternals.texi: Ditto.
36441         * doc/gcc.texi: Ditto.
36442         * doc/gccint.texi: Ditto.
36443         * doc/gcov.texi: Ditto.
36444         * doc/install.texi: Ditto.
36445         * doc/invoke.texi: Ditto.
36446
36447 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
36448
36449         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
36450
36451 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
36452
36453         * config/i386/sse.md (*mov<mode>_internal): Guard
36454         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
36455
36456         PR rtl-optimization/59647
36457         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
36458         new_rtx into UNSIGNED_FLOAT rtxes.
36459 \f
36460 Copyright (C) 2014 Free Software Foundation, Inc.
36461
36462 Copying and distribution of this file, with or without modification,
36463 are permitted in any medium without royalty provided the copyright
36464 notice and this notice are preserved.