4679097fa0e0b239e4832534bb55d5a3484f3db4
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
2
3         PR rtl-optimization/66626
4         * lra-constraints.c (lra_constraints): Prevent equivalence
5         substitution for static chain pseudo in functions with nonlocal
6         goto.
7
8 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
9
10         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
11         (nios2_emit_stack_limit_check): Add size parameter.  Handle
12         -fstack-limit-symbol as well as -fstack-limit-register.
13         (nios2_expand_prologue): Emit only a single stack limit check,
14         even if multiple stack adjustments are required.
15         (nios2_option_override): Diagnose unsupported combination of -fpic
16         and -stack-limit-symbol.
17
18 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
19
20         * Makefile.in (top_srcdir): New.
21         * configure.ac: Use AM_ZLIB.
22         * configure: Regeneated.
23
24 2015-07-14  Matthias Klose  <doko@ubuntu.com>
25
26         PR target/66840
27         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
28
29 2015-07-14  Richard Biener  <rguenther@suse.de>
30
31         PR tree-optimization/66863
32         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
33         what we record for conversion use stmt lhs inequalities.
34
35 2015-07-14  Richard Biener  <rguenther@suse.de>
36
37         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
38         (decision_tree::gen_gimple): Likewise.
39
40 2015-07-14  Tom de Vries  <tom@codesourcery.com>
41
42         * gcc.c (greater_than_spec_func): Declare forward.
43         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
44         -ftree-parallelize-loops={0,1}.
45         (static_spec_functions): Add greater_than_spec_func function with name
46         "gt".
47         (greater_than_spec_func): New function.
48
49 2015-07-14  Richard Biener  <rguenther@suse.de>
50
51         * tree-ssa-dom.c (record_temporary_equivalences): Merge
52         wideing type conversion case from record_equivalences_from_incoming_edge
53         and use record_equality to record equivalences.
54         (record_equivalences_from_incoming_edge): Call
55         record_temporary_equivalences.
56
57 2015-07-14  Richard Biener  <rguenther@suse.de>
58
59         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
60         (struct if_expr): New.
61         (struct with_expr): Likewise.
62         (is_a_helper): Add helpers for if_expr and with_expr.
63         (struct simplify): Add simplify_kind enum and member.  Remove
64         ifexpr_vec member.
65         (simplify::simplify): Adjust.
66         (lower_commutative): Adjust.
67         (lower_opt_convert): Likewise.
68         (lower_cond): Likewise.
69         (replace_id): Handle with_expr and if_expr.
70         (lower_for): Adjust.
71         (dt_simplify::gen_1): New recursive worker, split out from ...
72         (dt_simplify::gen): ... here.  Deal with if and with expansion
73         recursively.
74         (capture_info::capture_info): Take context argument
75         (capture_info::walk_result): Only analyze specific result.
76         (parser::parse_result): New function.
77         (parser::parse_simplify): Adjust to parse ifs with then end
78         else case.
79         (parser::parse_if): Simplify.
80         (parser::parse_pattern): Pass down simplify kind.
81         * match.pd: Convert if structure to new syntax.
82
83 2015-07-13  Marek Polacek  <polacek@redhat.com>
84
85         * rtl.c (rtx_equal_p_cb): Fix typo.
86
87 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
88
89         * omega.h: Don't include config.h, don't include params.h again if
90         omega.h has already been included.
91         * graphite-poly.h: Include sese.h.
92         * graphite.c: Don't include sese.h, remove needless includes and 
93         minimize includes outside #ifdef HAVE_isl block.
94         * graphite-blocking.c: Don't include sese.h, remove needless includes,
95         and wrap entire file in #ifdef HAVE_isl
96         * graphite-dependences.c: Likewise.
97         * graphite-interchange.c: Likewise.
98         * graphite-isl-ast-to-gimple.c: Likewise.
99         * graphite-optimize-isl.c: Likewise.
100         * graphite-poly.c: Likewise.
101         * graphite-scop-detection.c: Likewise.
102         * graphite-sese-to-poly.c: Likewise.
103
104 2015-07-13  Tom de Vries  <tom@codesourcery.com>
105
106         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
107
108 2015-07-13  Renlin Li  <renlin.li@arm.com>
109
110         PR rtl/66556
111         * simplify-rtx.c (simplify_const_relational_operation): Add
112         side_effects_p checks.
113
114 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
115
116         * bitmap.h: Fix double word typos.
117         * builtins.c: Same.
118         * calls.c: Same.
119         * cfgloopmanip.c: Same.
120         * cgraph.c: Same.
121         * cgraph.h: Same.
122         * cgraphclones.c: Same.
123         * combine.c: Same.
124         * config/aarch64/aarch64-protos.h: Same.
125         * config/aarch64/aarch64.c: Same.
126         * config/aarch64/aarch64.md: Same.
127         * config/arm/arm.md: Same.
128         * config/arm/arm1020e.md: Same.
129         * config/arm/arm1026ejs.md: Same.
130         * config/arm/arm926ejs.md: Same.
131         * config/arm/fa526.md: Same.
132         * config/arm/fa606te.md: Same.
133         * config/arm/fa626te.md: Same.
134         * config/arm/fa726te.md: Same.
135         * config/arm/fmp626.md: Same.
136         * config/darwin.c: Same.
137         * config/epiphany/epiphany.c: Same.
138         * config/frv/frv.c: Same.
139         * config/ft32/ft32.c: Same.
140         * config/gnu-user.h: Same.
141         * config/h8300/constraints.md: Same.
142         * config/i386/i386.c: Same.
143         * config/i386/i386.md: Same.
144         * config/iq2000/iq2000.md: Same.
145         * config/mips/mips.c: Same.
146         * config/mmix/mmix.md: Same.
147         * config/moxie/moxie.c: Same.
148         * config/nds32/nds32.md: Same.
149         * config/pa/pa.h: Same.
150         * config/rs6000/aix.h: Same.
151         * config/rs6000/rs6000.h: Same.
152         * config/sh/sh.c: Same.
153         * config/tilegx/tilegx.md: Same.
154         * config/tilepro/gen-mul-tables.cc: Same.
155         * cse.c: Same.
156         * dbxout.c: Same.
157         * doc/invoke.texi: Same.
158         * dse.c: Same.
159         * dwarf2out.c: Same.
160         * final.c: Same.
161         * gcc.c: Same.
162         * genmatch.c: Same.
163         * gimplify.c: Same.
164         * hash-table.h: Same.
165         * internal-fn.c: Same.
166         * ipa-cp.c: Same.
167         * ipa-devirt.c: Same.
168         * ipa-icf.c: Same.
169         * ipa-icf.h: Same.
170         * ipa-profile.c: Same.
171         * ipa-prop.c: Same.
172         * ipa-prop.h: Same.
173         * ira.c: Same.
174         * omp-low.c: Same.
175         * reg-stack.c: Same.
176         * regcprop.c: Same.
177         * reorg.c: Same.
178         * rtl.h: Same.
179         * sbitmap.h: Same.
180         * tree-eh.c: Same.
181         * tree-inline.c: Same.
182         * tree-sra.c: Same.
183         * tree-ssa-dom.c: Same.
184         * tree-ssa-loop-ivopts.c: Same.
185         * tree-ssa-structalias.c: Same.
186         * tree-ssa-tail-merge.c: Same.
187         * tree-ssa-ter.c: Same.
188         * tree-ssa-threadupdate.c: Same.
189         * tree-ssa-uninit.c: Same.
190         * tree-ssanames.c: Same.
191         * tree-vect-loop-manip.c: Same.
192         * tree-vrp.c: Same.
193         * tree.c: Same.
194         * valtrack.c: Same.
195         * vec.h: Same.
196
197 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
198
199         PR middle-end/66726
200         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
201         tree_ssa_phiopt_worker): Call it.
202
203 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
204
205         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
206         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
207         REG_EQUAL note.
208
209 2015-07-11  Marek Polacek  <polacek@redhat.com>
210
211         PR middle-end/66353
212         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
213         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
214         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
215         rather than bb_has_abnormal_call_pred.
216         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
217         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
218         rather than bb_has_abnormal_call_pred.
219
220 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
221
222         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
223         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
224         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
225         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
226         v850_legitimate_address_p): New functions.
227         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
228
229 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
230
231         PR target/66819
232         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
233         indirect sibcall with register arguments if register available
234         for argument passing.
235         (init_cumulative_args): Set cfun->machine->arg_reg_available
236         to (cum->nregs > 0) or to true if function has a variable
237         argument list.
238         (function_arg_advance_32): Set cfun->machine->arg_reg_available
239         to false if cum->nregs <= 0.
240         * config/i386/i386.h (machine_function): Add arg_reg_available.
241
242 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
243
244         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
245         and gen_higpart instead of gen_rtx_SUBREG.
246         * config/i386/i386.md
247         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
248         (read-modify peephole2): Use gen_lowpart instead of
249         gen_rtx_SUBREG for operand 5.
250
251 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
252
253         * config/tilepro/gen-mul-tables.cc (main): Change include list for
254         generated files.
255         * config/tilepro/mul-tables.c: Regenerate.
256         * config/tilegx/mul-tables.c: Regenerate.
257
258 2015-07-10  Richard Biener  <rguenther@suse.de>
259
260         * fold-const.c (distribute_bit_expr): Remove.
261         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
262         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
263         to A & (B | C) and simplifying A << C1 << C2 to ...
264         * match.pd: ... patterns here.
265
266 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
267
268         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
269         Mark mem as READONLY and NOTRAP for PIC symbol.
270
271 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
272
273         * gimple-predict.h: New file.
274         (gimple_predict_predictor, gimple_predict_set_predictor,
275         gimple_predict_outcome, gimple_predict_set_outcome,
276         gimple_build_predict): Relocate here.
277         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
278         gimple_predict_outcome, gimple_predict_set_outcome): Move to
279         gimple-predict.h.
280         * gimple.c (gimple_build_predict): Move to gimple-predict.h
281         * basic-block.h: Don't include cfghooks.h.
282         * backend.h: Don't include predict.h.
283         * cfghooks.h: Include predict.h.
284         * gimple-pretty-print.c: Include gimple-predict.h.
285         * gimplify.c: Likwise.
286         * predict.c: Adjust includes.
287         * tree-inline.c: Likewise.
288         * asan.c: Likewise.
289         * auto-inc-dec.c: Likewise.
290         * auto-profile.c: Likewise.
291         * bb-reorder.c: Likewise.
292         * builtins.c: Likewise.
293         * caller-save.c: Likewise.
294         * calls.c: Likewise.
295         * cfganal.c: Likewise.
296         * cfgbuild.c: Likewise.
297         * cfg.c: Likewise.
298         * cfgcleanup.c: Likewise.
299         * cfgexpand.c: Likewise.
300         * cfghooks.c: Likewise.
301         * cfgloopanal.c: Likewise.
302         * cfgloop.c: Likewise.
303         * cfgloopmanip.c: Likewise.
304         * cfgrtl.c: Likewise.
305         * cgraph.c: Likewise.
306         * cgraphunit.c: Likewise.
307         * combine.c: Likewise.
308         * cprop.c: Likewise.
309         * cse.c: Likewise.
310         * dce.c: Likewise.
311         * dojump.c: Likewise.
312         * dse.c: Likewise.
313         * except.c: Likewise.
314         * expmed.c: Likewise.
315         * expr.c: Likewise.
316         * final.c: Likewise.
317         * fold-const.c: Likewise.
318         * function.c: Likewise.
319         * fwprop.c: Likewise.
320         * gcc-plugin.h: Likewise.
321         * gcse.c: Likewise.
322         * genattrtab.c: Likewise.
323         * genemit.c: Likewise.
324         * gengtype.c: Likewise.
325         * genopinit.c: Likewise.
326         * genoutput.c: Likewise.
327         * genpreds.c: Likewise.
328         * genrecog.c: Likewise.
329         * gimple-fold.c: Likewise.
330         * gimple-iterator.c: Likewise.
331         * gimple-ssa-isolate-paths.c: Likewise.
332         * gimple-ssa-strength-reduction.c: Likewise.
333         * graph.c: Likewise.
334         * graphite-blocking.c: Likewise.
335         * graphite.c: Likewise.
336         * graphite-dependences.c: Likewise.
337         * graphite-interchange.c: Likewise.
338         * graphite-isl-ast-to-gimple.c: Likewise.
339         * graphite-optimize-isl.c: Likewise.
340         * graphite-poly.c: Likewise.
341         * graphite-scop-detection.c: Likewise.
342         * graphite-sese-to-poly.c: Likewise.
343         * haifa-sched.c: Likewise.
344         * ifcvt.c: Likewise.
345         * internal-fn.c: Likewise.
346         * ipa-cp.c: Likewise.
347         * ipa-profile.c: Likewise.
348         * ipa-split.c: Likewise.
349         * ipa-utils.c: Likewise.
350         * ira-build.c: Likewise.
351         * ira-color.c: Likewise.
352         * ira-conflicts.c: Likewise.
353         * ira-costs.c: Likewise.
354         * ira-emit.c: Likewise.
355         * ira-lives.c: Likewise.
356         * jump.c: Likewise.
357         * loop-doloop.c: Likewise.
358         * loop-init.c: Likewise.
359         * loop-invariant.c: Likewise.
360         * loop-unroll.c: Likewise.
361         * lower-subreg.c: Likewise.
362         * lra-assigns.c: Likewise.
363         * lra.c: Likewise.
364         * lra-coalesce.c: Likewise.
365         * lra-constraints.c: Likewise.
366         * lra-lives.c: Likewise.
367         * lto-cgraph.c: Likewise.
368         * lto-streamer-in.c: Likewise.
369         * mode-switching.c: Likewise.
370         * modulo-sched.c: Likewise.
371         * omp-low.c: Likewise.
372         * optabs.c: Likewise.
373         * passes.c: Likewise.
374         * postreload.c: Likewise.
375         * postreload-gcse.c: Likewise.
376         * profile.c: Likewise.
377         * recog.c: Likewise.
378         * regstat.c: Likewise.
379         * reload1.c: Likewise.
380         * reorg.c: Likewise.
381         * rtlanal.c: Likewise.
382         * sched-ebb.c: Likewise.
383         * sel-sched-ir.c: Likewise.
384         * sese.c: Likewise.
385         * shrink-wrap.c: Likewise.
386         * simplify-rtx.c: Likewise.
387         * stmt.c: Likewise.
388         * store-motion.c: Likewise.
389         * tracer.c: Likewise.
390         * trans-mem.c: Likewise.
391         * tree-call-cdce.c: Likewise.
392         * tree-cfg.c: Likewise.
393         * tree-cfgcleanup.c: Likewise.
394         * tree-chkp.c: Likewise.
395         * tree-complex.c: Likewise.
396         * tree-eh.c: Likewise.
397         * tree-if-conv.c: Likewise.
398         * tree-loop-distribution.c: Likewise.
399         * tree-outof-ssa.c: Likewise.
400         * tree-parloops.c: Likewise.
401         * tree-predcom.c: Likewise.
402         * tree-pretty-print.c: Likewise.
403         * tree-profile.c: Likewise.
404         * tree-sra.c: Likewise.
405         * tree-ssa.c: Likewise.
406         * tree-ssa-coalesce.c: Likewise.
407         * tree-ssa-dce.c: Likewise.
408         * tree-ssa-dom.c: Likewise.
409         * tree-ssa-forwprop.c: Likewise.
410         * tree-ssa-ifcombine.c: Likewise.
411         * tree-ssa-loop-ch.c: Likewise.
412         * tree-ssa-loop-im.c: Likewise.
413         * tree-ssa-loop-ivcanon.c: Likewise.
414         * tree-ssa-loop-ivopts.c: Likewise.
415         * tree-ssa-loop-manip.c: Likewise.
416         * tree-ssa-loop-prefetch.c: Likewise.
417         * tree-ssa-loop-unswitch.c: Likewise.
418         * tree-ssa-math-opts.c: Likewise.
419         * tree-ssa-phiopt.c: Likewise.
420         * tree-ssa-pre.c: Likewise.
421         * tree-ssa-reassoc.c: Likewise.
422         * tree-ssa-sink.c: Likewise.
423         * tree-ssa-tail-merge.c: Likewise.
424         * tree-ssa-threadedge.c: Likewise.
425         * tree-ssa-threadupdate.c: Likewise.
426         * tree-switch-conversion.c: Likewise.
427         * tree-tailcall.c: Likewise.
428         * tree-vect-data-refs.c: Likewise.
429         * tree-vect-loop.c: Likewise.
430         * tree-vect-loop-manip.c: Likewise.
431         * tree-vectorizer.c: Likewise.
432         * tree-vrp.c: Likewise.
433         * ubsan.c: Likewise.
434         * value-prof.c: Likewise.
435         * varasm.c: Likewise.
436         * var-tracking.c: Likewise.
437         * config/aarch64/aarch64-builtins.c: Likewise.
438         * config/aarch64/aarch64.c: Likewise.
439         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
440         * config/alpha/alpha.c: Likewise.
441         * config/arc/arc.c: Likewise.
442         * config/arm/arm.c: Likewise.
443         * config/avr/avr.c: Likewise.
444         * config/bfin/bfin.c: Likewise.
445         * config/c6x/c6x.c: Likewise.
446         * config/cr16/cr16.c: Likewise.
447         * config/cris/cris.c: Likewise.
448         * config/darwin.c: Likewise.
449         * config/darwin-c.c: Likewise.
450         * config/epiphany/epiphany.c: Likewise.
451         * config/epiphany/mode-switch-use.c: Likewise.
452         * config/epiphany/resolve-sw-modes.c: Likewise.
453         * config/fr30/fr30.c: Likewise.
454         * config/frv/frv.c: Likewise.
455         * config/ft32/ft32.c: Likewise.
456         * config/h8300/h8300.c: Likewise.
457         * config/i386/i386.c: Likewise.
458         * config/i386/winnt.c: Likewise.
459         * config/ia64/ia64.c: Likewise.
460         * config/iq2000/iq2000.c: Likewise.
461         * config/lm32/lm32.c: Likewise.
462         * config/m32c/m32c.c: Likewise.
463         * config/m32r/m32r.c: Likewise.
464         * config/m68k/m68k.c: Likewise.
465         * config/mcore/mcore.c: Likewise.
466         * config/mep/mep.c: Likewise.
467         * config/microblaze/microblaze.c: Likewise.
468         * config/mips/mips.c: Likewise.
469         * config/mmix/mmix.c: Likewise.
470         * config/mn10300/mn10300.c: Likewise.
471         * config/moxie/moxie.c: Likewise.
472         * config/msp430/msp430.c: Likewise.
473         * config/nds32/nds32.c: Likewise.
474         * config/nds32/nds32-cost.c: Likewise.
475         * config/nds32/nds32-fp-as-gp.c: Likewise.
476         * config/nds32/nds32-intrinsic.c: Likewise.
477         * config/nds32/nds32-isr.c: Likewise.
478         * config/nds32/nds32-md-auxiliary.c: Likewise.
479         * config/nds32/nds32-memory-manipulation.c: Likewise.
480         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
481         * config/nds32/nds32-predicates.c: Likewise.
482         * config/nios2/nios2.c: Likewise.
483         * config/nvptx/nvptx.c: Likewise.
484         * config/pa/pa.c: Likewise.
485         * config/pdp11/pdp11.c: Likewise.
486         * config/rl78/rl78.c: Likewise.
487         * config/rs6000/rs6000.c: Likewise.
488         * config/rx/rx.c: Likewise.
489         * config/s390/s390.c: Likewise.
490         * config/sh/sh.c: Likewise.
491         * config/sh/sh-mem.cc: Likewise.
492         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
493         * config/sh/sh_treg_combine.cc: Likewise.
494         * config/sparc/sparc.c: Likewise.
495         * config/spu/spu.c: Likewise.
496         * config/stormy16/stormy16.c: Likewise.
497         * config/tilegx/tilegx.c: Likewise.
498         * config/tilepro/tilepro.c: Likewise.
499         * config/v850/v850.c: Likewise.
500         * config/vax/vax.c: Likewise.
501         * config/visium/visium.c: Likewise.
502         * config/xtensa/xtensa.c: Likewise.
503
504 2015-07-10  Richard Biener  <rguenther@suse.de>
505
506         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
507         (decision_tree::gen_gimple): Likewise.
508         (decision_tree::gen_generic): Likewise.
509
510 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
511
512         PR target/66813
513         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
514         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
515
516 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
517
518         PR middle-end/66820
519         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
520         or ORT_TASK contexts.
521         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
522         is non-zero.
523
524 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
525
526         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
527         above function.
528
529 2015-07-10  Tom de Vries  <tom@codesourcery.com>
530
531         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
532         insert nit + 1 bound.
533
534 2015-07-10  Richard Biener  <rguenther@suse.de>
535
536         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
537         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
538         (if_convertible_loop_p_1): For this always compute bb predicates.
539         (if_convertible_loop_p): And free them.
540
541 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
542
543         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
544         in dump message.
545
546 2015-07-10  Richard Biener  <rguenther@suse.de>
547
548         PR tree-optimization/66823
549         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
550         inverted predicate.
551
552 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
553
554         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
555         to handle mips[32|64]r3 and mips[32|64]r5.
556
557 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
558
559         PR middle-end/66633
560         * tree-nested.c (get_static_chain): Or in a flag into
561         info->static_chain_added.
562         (get_frame_field, get_nonlocal_debug_decl): Likewise.
563         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
564         2015-07-01 changes.
565         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
566         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
567         add it to clauses.
568
569         PR tree-optimization/66718
570         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
571         field.
572         (vect_simd_lane_linear): New function.
573         (vectorizable_simd_clone_call): Support using linear arguments for
574         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
575
576 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
577
578         PR target/66821
579         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
580
581 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
582
583         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
584         Use machine mode, not enum machine_mode in the prototype.
585
586         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
587         classify 128-bit floating point support.
588         (FLOAT128_IBM_P): Likewise.
589         (FLOAT128_VECTOR_P): Likewise.
590         (FLOAT128_2REG_P): Likewise.
591         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
592         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
593         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
594         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
595
596         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
597         tests against TFmode/TDmode, since those modes do not use VSX
598         addresses.
599         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
600         support.
601         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
602         tests against TFmode, etc.
603         (invalid_e500_subreg): Add tests against IFmode/KFmode.
604         (reg_offset_addressing_ok_p): Likewise.
605         (rs6000_legitimate_offset_address_p): Likewise.
606         (rs6000_legitimize_address): Likewise.
607         (rs6000_legitimize_reload_address): Likewise.
608         (rs6000_legitimate_address_p): Clean up tests against TFmode and
609         TDmode to use the new helper macros, which will include IFmode and
610         KFmode.
611         (rs6000_emit_move): Likewise.
612         (rs6000_darwin64_record_arg_recurse): Likewise.
613         (print_operand): Likewise.
614         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
615         that uses a single vector register as a vector and not as a
616         floating point register in terms of the calling sequence.
617         (rs6000_discover_homogeneous_aggregate): Likewise.
618         (rs6000_return_in_memory): Likewise.
619         (init_cumulative_args): Likewise.
620         (rs6000_function_arg_boundary): Likewise.
621         (rs6000_function_arg_advance_1): Likewise.
622         (rs6000_function_arg): Likewise.
623         (rs6000_pass_by_reference): Likewise.
624         (rs6000_gimplify_va_arg): Likewise.
625         (rs6000_secondary_reload_memory): Use machine_mode not enum
626         machine mode.
627         (rs6000_split_multireg_move): Use new helper macros.
628         (spe_func_has_64bit_regs_p): Likewise.
629         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
630         (output_toc): Use new helper macros.
631         (rs6000_register_move_cost): Likewise.
632         (rs6000_function_value): Add IEEE 128-bit floating point calling
633         sequence support.
634         (rs6000_libcall_value): Likewise.
635         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
636         floating point support.
637         (rs6000_vector_mode_supported_p): Likewise.
638
639 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
640
641         PR rtl-optimization/66782
642         * lra-int.h (struct lra_insn_recog_data): Add comment about
643         clobbered hard regs for arg_hard_regs.
644         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
645         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
646         Add condition for processing used hard regs.
647         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
648         Process clobbered hard regs.
649
650 2015-07-09  Michael Matz  <matz@suse.de>
651
652         * genmatch.c (fprintf_indent): New function.
653         (operand::gen_transform): Add indent parameter.
654         (expr::gen_transform, c_expr::gen_transform,
655         capture::gen_transform): Ditto and use fprintf_indent.
656         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
657         (dt_operand::gen, dt_operand::gen_predicate,
658         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
659         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
660         (decision_tree::gen_gimple): Adjust calls and indent generated
661         code.
662         (decision_tree::gen_generic): Ditto.
663         (write_predicate): Ditto.
664
665 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
666
667         PR target/66814
668         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
669         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
670         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
671         {GENERAL,SSE,MMX}_REG_P where appropriate.
672
673 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
674
675         * lto-streamer.h: Don't include target.h and alloc-pool.h.
676         * builtins.c: Adjust includes.
677         * gimple.c: Likewise.
678         * ipa-icf.c: Likewise.
679         * lto-opts.c: Likewise.
680         * ipa-reference.c: Likewise.
681         * lto-section-out.c: Likewise.
682         * lto-streamer-in.c: Likewise.
683         * lto-streamer-out.c: Likewise.
684         * opts-global.c: Likewise.
685         * symtab.c: Likewise.
686         * tree-chkp.c: Likewise.
687         * tree-ssa-live.c: Likewise.
688         * tree-streamer-in.c: Likewise.
689         * tree-streamer-out.c: Likewise.
690         * config/darwin.c: Likewise.
691         * config/i386/winnt.c: Likewise.
692
693 2015-07-09  Richard Biener  <rguenther@suse.de>
694
695         * genmatch.c (struct expr): Add force_single_use flag.
696         (expr::expr): Add copy constructor.
697         (capture_info::walk_match): Gather force_single_use captures.
698         (expr::gen_transform): Use possibly NULLified sequence.
699         (dt_simplify::gen): Apply single-use restrictions by NULLifying
700         seq if any constrained expr is not single-use.
701         (parser::parse_expr): Refactor to allow multiple flags.  Handle
702         's' flag to force an expression have a single-use if the pattern
703         simplifies to more than one statement.
704         * match.pd: Convert most single_use conditionals to :s flags.
705
706 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
707
708         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
709         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
710         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
711
712 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
713
714         * flags.h: Don't include flag-types.h or options.h.
715         * opts-common.c: Adjust includes.
716         * opts-global.c: Likewise.
717         * common/config/epiphany/epiphany-common.c: Likewise.
718
719 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
720
721         PR target/66818
722         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
723         for IA MCU.
724
725 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
726
727         PR target/66817
728         * config/i386/i386.c (ix86_return_in_memory): Return true
729         if int_size_in_bytes returns negative for IA MCU.
730
731 2015-07-09  Marek Polacek  <polacek@redhat.com>
732
733         PR tree-optimization/66718
734         * Makefile.in (OBJS): Add gimple-laddress.o.
735         * passes.def: Schedule pass_laddress.
736         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
737         * tree-pass.h (make_pass_laddress): Declare.
738         * gimple-laddress.c: New file.
739
740 2015-07-09  Richard Biener  <rguenther@suse.de>
741
742         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
743
744 2015-07-09  Richard Biener  <rguenther@suse.de>
745
746         PR tree-optimization/66807
747         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
748
749 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
750
751         * function.c (stack_protect_epilogue): Use if rather than switch for
752         check targetm.have_stack_protect_test.
753
754 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
755
756         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
757         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
758         * config/arc/arc.h: Likewise.
759         * config/arm/arm.h: Likewise.
760         * config/bfin/bfin.h: Likewise.
761         * config/epiphany/epiphany.h: Likewise.
762         * config/frv/frv.h: Likewise.
763         * config/ia64/ia64.h: Likewise.
764         * config/iq2000/iq2000.h: Likewise.
765         * config/lm32/lm32.h: Likewise.
766         * config/m32r/m32r.h: Likewise.
767         * config/mcore/mcore.h: Likewise.
768         * config/mep/mep.h: Likewise.
769         * config/microblaze/microblaze.h: Likewise.
770         * config/mips/mips.h: Likewise.
771         * config/mmix/mmix.h: Likewise.
772         * config/mn10300/mn10300.h: Likewise.
773         * config/nds32/nds32.h: Likewise.
774         * config/nios2/nios2.h: Likewise.
775         * config/pa/pa.h: Likewise.
776         * config/rl78/rl78.h: Likewise.
777         * config/sh/sh.h: Likewise.
778         * config/sparc/sparc.h: Likewise.
779         * config/stormy16/stormy16.h: Likewise.
780         * config/tilegx/tilegx.h: Likewise.
781         * config/tilepro/tilepro.h: Likewise.
782         * config/v850/v850.h: Likewise.
783         * config/xtensa/xtensa.h: Likewise.
784         * doc/tm.texi: Regenerate.
785         * doc/tm.texi.in: Adjust.
786         * combine.c (simplify_set): Likewise.
787         (simplify_comparison): Likewise.
788         * expr.c (store_constructor): Likewise.
789         * internal-fn.c (expand_arith_overflow): Likewise.
790         * reload.c (push_reload): Likewise.
791         (find_reloads): Likewise.
792         (find_reloads_subreg_address): Likewise.
793         * reload1.c (eliminate_regs_1): Likewise.
794         * rtlanal.c (nonzero_bits1): Likewise.
795         (num_sign_bit_copies1): Likewise.
796         * simplify-rtx.c (simplify_truncation): Likewise.
797
798 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
799
800         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
801         of AUTO_INC_DEC with the preprocessor.
802         * combine.c (combine_instructions): Likewise.
803         (can_combine_p): Likewise.
804         (try_combine): Likewise.
805         * emit-rtl.c (try_split): Likewise.
806         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
807         * lower-subreg.c (resolve_simple_move): Likewise.
808         * lra.c (update_inc_notes): Likewise.
809         * recog.c (asm_operand_ok): Likewise.
810         (constrain_operands): Likewise.
811         * regrename.c (scan_rtx_address): Likewise.
812         * reload.c (update_auto_inc_notes): Likewise.
813         (reg_inc_found_and_valid_p): Likewise.
814         * reload1.c (reload): Likewise.
815         (emit_input_reload_insns): Likewise.
816         (delete_output_reload): Likewise.
817         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
818         * valtrack.c (cleanup_auto_inc_dec): Likewise.
819
820 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
821
822         * rtl.h: Always define AUTO_INC_DEC.
823         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
824         * combine.c (combine_instructions): Likewise.
825         (can_combine_p): Likewise.
826         (try_combine): Likewise.
827         * emit-rtl.c (try_split): Likewise.
828         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
829         * lower-subreg.c (resolve_simple_move): Likewise.
830         * lra.c (update_inc_notes): Likewise.
831         * recog.c (asm_operand_ok): Likewise.
832         (constrain_operands): Likewise.
833         * regrename.c (scan_rtx_address): Likewise.
834         * reload.c (update_auto_inc_notes): Likewise.
835         (find_equiv_reg): Likewise.
836         * reload1.c (reload): Likewise.
837         (reload_as_needed): Likewise.
838         (choose_reload_regs): Likewise.
839         (emit_input_reload_insns): Likewise.
840         (delete_output_reload): Likewise.
841         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
842         * valtrack.c (cleanup_auto_inc_dec): Likewise.
843
844 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
845
846         * combine.c (can_combine_def_p): Don't check the value of
847         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
848         (combinable_i3pat): Likewise.
849         (mark_used_regs_combine): Likewise.
850         * regrename.c (rename_chains): Likewise.
851         * reload.c (find_reloads_address): Likewise.
852         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
853
854 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
855
856         * combine.c (update_rsp_from_reg_equal): Don't check if
857         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
858         (reg_nonzero_bits_for_combine): Likewise.
859         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
860         1.
861         * config/frv/frv.h: Likewise.
862         * config/lm32/lm32.h: Likewise.
863         * config/mep/mep.h: Likewise.
864         * config/mips/mips.h: Likewise.
865         * config/rs6000/rs6000.h: Likewise.
866         * config/sh/sh.h: Likewise.
867         * config/tilegx/tilegx.h (enum reg_class): Likewise.
868         * config/tilepro/tilepro.h: Likewise.
869         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
870         * doc/tm.texi: Regenerate.
871         * doc/tm.texi.in: Adjust.
872         * rtlanal.c (nonzero_bits1): Likewise.
873
874 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
875
876         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
877         with the preprocessor.
878         (combine_instructions): Likewise.
879         (try_combine): Likewise.
880         (subst): Likewise.
881         (distribute_notes): Likewise.
882
883 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
884
885         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
886         defined.
887         (simplify_set): Likewise.
888         * cse.c (cse_insn): Likewise.
889         * fold-const.c (fold_single_bit_test): Likewise.
890         (fold_unary_loc): Likewise.
891         * postreload.c (reload_cse_simplify_set): Likewise.
892         (reload_cse_simplify_operands): Likewise.
893
894 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
895
896         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
897         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
898
899 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
900
901         PR target/66746
902         * config/i386/x86intrin.h: Include <adxintrin.h> even if
903         __iamcu__ is defined.
904
905 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
906
907         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
908
909 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
910
911         PR target/66523
912         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
913         names from preservation.
914
915 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
916
917         PR middle-end/66334
918         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
919         hard regno live at the start of BB with incoming abnormal edges.
920         * lra-lives.c (process_bb_lives): Ditto.
921
922 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
923
924         PR libgomp/65099
925         * config/nvptx/mkoffload.c (main): Create an offload image only in
926         64-bit configurations.
927
928 2015-07-08  Martin Liska  <mliska@suse.cz>
929
930         PR bootstrap/66744
931         * tree-sra.c (create_access_1): Call ctor without brackets.
932         (create_artificial_child_access): Likewise.
933
934 2015-07-08  Richard Biener  <rguenther@suse.de>
935
936         PR tree-optimization/66793
937         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
938         Properly split the block after stmts ending it.
939
940 2015-07-08  Richard Biener  <rguenther@suse.de>
941
942         PR tree-optimization/66794
943         * passes.c (execute_function_todo): Assert that post-dominators
944         are not computed.
945         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
946         Free post-dominators.
947
948 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
949
950         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
951         with early exit.
952
953 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
954
955         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
956         more than or equal 8 and less than 32 when optimizing for size.
957
958 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
959
960         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
961         COSTS_N_INSNS (1) and increment it appropriately throughout the
962         function.
963
964 2015-07-08  Richard Biener  <rguenther@suse.de>
965
966         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
967
968 2015-07-08  Alan Modra  <amodra@gmail.com>
969
970         * target.def (rtx_costs): Remove "code" param, add "mode".
971         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
972         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
973         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
974         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
975         call.  Track mode when given in rtx.
976         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
977         (default_address_cost): Pass Pmode to rtx_cost.
978         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
979         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
980         with NULL set.
981         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
982         (notreg_cost): Add mode param.  Use it.
983         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
984         mode param and pass to set_src_cost.  Update all calls.
985         (hash_scan_set): Formatting.
986         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
987         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
988         * hooks.h: Ditto.
989         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
990         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
991         emit_store_flag): Update set_src_cost and rtx_cost calls.
992         * auto-inc-dec.c (attempt_change): Likewise.
993         * calls.c (precompute_register_parameters): Likewise.
994         * combine.c (expand_compound_operation, make_extraction,
995         force_to_mode, distribute_and_simplify_rtx): Likewise.
996         * dojump.c (prefer_and_bit_test): Likewise.
997         * dse.c (find_shift_sequence): Likewise.
998         * expr.c (compress_float_constant): Likewise.
999         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
1000         * ifcvt.c (noce_try_sign_mask): Likewise.
1001         * loop-doloop.c (doloop_optimize): Likewise.
1002         * loop-invariant.c (create_new_invariant): Likewise.
1003         * lower-subreg.c (shift_cost, compute_costs): Likewise.
1004         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
1005         lshift_cheap_p): Likewise.
1006         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
1007         try_replace_in_use, reload_cse_move2add): Likewise.
1008         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
1009         Likewise.
1010         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
1011         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
1012         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
1013         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
1014         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
1015         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
1016         to rtx_cost calls.
1017         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
1018         * config/arc/arc.c (arc_rtx_costs): Likewise.
1019         * config/arm/arm.c (arm_rtx_costs): Likewise.
1020         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
1021         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
1022         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
1023         * config/cris/cris.c (cris_rtx_costs): Likewise.
1024         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
1025         * config/frv/frv.c (frv_rtx_costs): Likewise.
1026         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
1027         * config/i386/i386.c (ix86_rtx_costs): Likewise.
1028         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
1029         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
1030         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
1031         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
1032         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
1033         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
1034         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
1035         * config/mep/mep.c (mep_rtx_cost): Likewise.
1036         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
1037         * config/mips/mips.c (mips_rtx_costs): Likewise.
1038         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
1039         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
1040         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
1041         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
1042         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
1043         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
1044         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
1045         * config/pa/pa.c (hppa_rtx_costs): Likewise.
1046         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
1047         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
1048         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
1049         * config/s390/s390.c (s390_rtx_costs): Likewise.
1050         * config/sh/sh.c (sh_rtx_costs): Likewise.
1051         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
1052         * config/spu/spu.c (spu_rtx_costs): Likewise.
1053         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
1054         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
1055         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
1056         * config/v850/v850.c (v850_rtx_costs): Likewise.
1057         * config/vax/vax.c (vax_rtx_costs): Likewise.
1058         * config/visium/visium.c (visium_rtx_costs): Likewise.
1059         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
1060         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
1061         "code" param, and pass as outer_code to first rtx_cost call.  Pass
1062         mode to rtx_cost calls.
1063         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
1064         calls.
1065         (aarch64_rtx_costs_wrapper): Update.
1066         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
1067         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
1068         rtx_cost calls.
1069         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
1070         and rtx_cost calls.
1071         (avr_operand_rtx_cost): Similarly.
1072         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
1073         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
1074         * config/mips/mips.c (mips_stack_address_p): Comment typo.
1075         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
1076         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
1077         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
1078         rtx_cost.
1079         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
1080         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
1081         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
1082         * doc/tm.texi: Regenerate.
1083
1084 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
1085
1086         * tree-core.h: Include symtab.h.
1087         * rtl.h: Include hard-reg-set.h but not flags.h.
1088         (HARD_CONST): Remove condition compilation involving HARD_CONST since
1089         hard-reg-set.h is always included.
1090         * regs.h: Don't include hard-reg-set.h or rtl.h.
1091         * cfg.h: Include dominance.h.
1092         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
1093         * backend.h: New.  Aggregate commonly used backend header files.
1094         * gimple-ssa.h: Don't include tree-hasher.h.
1095         * ssa.h: New.  Aggregate commonly used SSA header files.
1096         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
1097         * sel-sched-ir.h: Flatten includes.
1098         * lra-int.h: Flatten completely.
1099         * sel-sched-dump.h: Flatten includes.
1100         * ira-int.h: Flatten includes.
1101         * gimple-streamer.h: Remove all includes.
1102         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
1103         * resource.h: Flatten hard-reg-set.h and df.h.
1104         * sched-int.h: Flatten insn-arrt.h and df.h.
1105         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
1106         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
1107         * genattrtab.c (write_header): Adjust generated includes.
1108         * genautomata.c (main): Likewise.
1109         * genconditions.c (write-header): Likewise.
1110         * genemit.c (main): Likewise.
1111         * gengtype.c (open_base_files): Likewise.
1112         * genopinit.c (main): Likewise.
1113         * genoutput.c (output_prologue): Likewise.
1114         * genpeep.c (main): Likewise.
1115         * genpreds.c (write_insn_preds_c): Likewise.
1116         * genrecog.c (write_header): Likewise.
1117         * alias.c: Adjust includes.
1118         * asan.c: Likewise.
1119         * attribs.c: Likewise.
1120         * auto-inc-dec.c: Likewise.
1121         * auto-profile.c: Likewise.
1122         * bb-reorder.c: Likewise.
1123         * bt-load.c: Likewise.
1124         * builtins.c: Likewise.
1125         * caller-save.c: Likewise.
1126         * calls.c: Likewise.
1127         * ccmp.c: Likewise.
1128         * cfg.c: Likewise.
1129         * cfganal.c: Likewise.
1130         * cfgbuild.c: Likewise.
1131         * cfgcleanup.c: Likewise.
1132         * cfgexpand.c: Likewise.
1133         * cfghooks.c: Likewise.
1134         * cfgloop.c: Likewise.
1135         * cfgloopanal.c: Likewise.
1136         * cfgloopmanip.c: Likewise.
1137         * cfgrtl.c: Likewise.
1138         * cgraph.c: Likewise.
1139         * cgraphbuild.c: Likewise.
1140         * cgraphclones.c: Likewise.
1141         * cgraphunit.c: Likewise.
1142         * cilk-common.c: Likewise.
1143         * combine-stack-adj.c: Likewise.
1144         * combine.c: Likewise.
1145         * compare-elim.c: Likewise.
1146         * convert.c: Likewise.
1147         * coverage.c: Likewise.
1148         * cppbuiltin.c: Likewise.
1149         * cprop.c: Likewise.
1150         * cse.c: Likewise.
1151         * cselib.c: Likewise.
1152         * data-streamer-in.c: Likewise.
1153         * data-streamer-out.c: Likewise.
1154         * data-streamer.c: Likewise.
1155         * dbxout.c: Likewise.
1156         * dce.c: Likewise.
1157         * ddg.c: Likewise.
1158         * debug.c: Likewise.
1159         * df-core.c: Likewise.
1160         * df-problems.c: Likewise.
1161         * df-scan.c: Likewise.
1162         * dfp.c: Likewise.
1163         * dojump.c: Likewise.
1164         * dominance.c: Likewise.
1165         * domwalk.c: Likewise.
1166         * double-int.c: Likewise.
1167         * dse.c: Likewise.
1168         * dumpfile.c: Likewise.
1169         * dwarf2asm.c: Likewise.
1170         * dwarf2cfi.c: Likewise.
1171         * dwarf2out.c: Likewise.
1172         * emit-rtl.c: Likewise.
1173         * et-forest.c: Likewise.
1174         * except.c: Likewise.
1175         * explow.c: Likewise.
1176         * expmed.c: Likewise.
1177         * expr.c: Likewise.
1178         * final.c: Likewise.
1179         * fixed-value.c: Likewise.
1180         * fold-const.c: Likewise.
1181         * function.c: Likewise.
1182         * fwprop.c: Likewise.
1183         * gcc-plugin.h: Likewise.
1184         * gcse-common.c: Likewise.
1185         * gcse.c: Likewise.
1186         * generic-match-head.c: Likewise.
1187         * ggc-page.c: Likewise.
1188         * gimple-builder.c: Likewise.
1189         * gimple-expr.c: Likewise.
1190         * gimple-fold.c: Likewise.
1191         * gimple-iterator.c: Likewise.
1192         * gimple-low.c: Likewise.
1193         * gimple-match-head.c: Likewise.
1194         * gimple-pretty-print.c: Likewise.
1195         * gimple-ssa-isolate-paths.c: Likewise.
1196         * gimple-ssa-strength-reduction.c: Likewise.
1197         * gimple-streamer-in.c: Likewise.
1198         * gimple-streamer-out.c: Likewise.
1199         * gimple-walk.c: Likewise.
1200         * gimple.c: Likewise.
1201         * gimplify-me.c: Likewise.
1202         * gimplify.c: Likewise.
1203         * godump.c: Likewise.
1204         * graph.c: Likewise.
1205         * graphite-blocking.c: Likewise.
1206         * graphite-dependences.c: Likewise.
1207         * graphite-interchange.c: Likewise.
1208         * graphite-isl-ast-to-gimple.c: Likewise.
1209         * graphite-optimize-isl.c: Likewise.
1210         * graphite-poly.c: Likewise.
1211         * graphite-scop-detection.c: Likewise.
1212         * graphite-sese-to-poly.c: Likewise.
1213         * graphite.c: Likewise.
1214         * haifa-sched.c: Likewise.
1215         * hw-doloop.c: Likewise.
1216         * ifcvt.c: Likewise.
1217         * init-regs.c: Likewise.
1218         * internal-fn.c: Likewise.
1219         * ipa-chkp.c: Likewise.
1220         * ipa-comdats.c: Likewise.
1221         * ipa-cp.c: Likewise.
1222         * ipa-devirt.c: Likewise.
1223         * ipa-icf-gimple.c: Likewise.
1224         * ipa-icf.c: Likewise.
1225         * ipa-inline-analysis.c: Likewise.
1226         * ipa-inline-transform.c: Likewise.
1227         * ipa-inline.c: Likewise.
1228         * ipa-polymorphic-call.c: Likewise.
1229         * ipa-profile.c: Likewise.
1230         * ipa-prop.c: Likewise.
1231         * ipa-pure-const.c: Likewise.
1232         * ipa-ref.c: Likewise.
1233         * ipa-reference.c: Likewise.
1234         * ipa-split.c: Likewise.
1235         * ipa-utils.c: Likewise.
1236         * ipa-visibility.c: Likewise.
1237         * ipa.c: Likewise.
1238         * ira-build.c: Likewise.
1239         * ira-color.c: Likewise.
1240         * ira-conflicts.c: Likewise.
1241         * ira-costs.c: Likewise.
1242         * ira-emit.c: Likewise.
1243         * ira-lives.c: Likewise.
1244         * ira.c: Likewise.
1245         * jump.c: Likewise.
1246         * langhooks.c: Likewise.
1247         * lcm.c: Likewise.
1248         * loop-doloop.c: Likewise.
1249         * loop-init.c: Likewise.
1250         * loop-invariant.c: Likewise.
1251         * loop-iv.c: Likewise.
1252         * loop-unroll.c: Likewise.
1253         * lower-subreg.c: Likewise.
1254         * lra-assigns.c: Likewise.
1255         * lra-coalesce.c: Likewise.
1256         * lra-constraints.c: Likewise.
1257         * lra-eliminations.c: Likewise.
1258         * lra-lives.c: Likewise.
1259         * lra-remat.c: Likewise.
1260         * lra-spills.c: Likewise.
1261         * lra.c: Likewise.
1262         * lto-cgraph.c: Likewise.
1263         * lto-compress.c: Likewise.
1264         * lto-opts.c: Likewise.
1265         * lto-section-in.c: Likewise.
1266         * lto-section-out.c: Likewise.
1267         * lto-streamer-in.c: Likewise.
1268         * lto-streamer-out.c: Likewise.
1269         * lto-streamer.c: Likewise.
1270         * mcf.c: Likewise.
1271         * mode-switching.c: Likewise.
1272         * modulo-sched.c: Likewise.
1273         * omega.c: Likewise.
1274         * omp-low.c: Likewise.
1275         * optabs.c: Likewise.
1276         * opts-global.c: Likewise.
1277         * passes.c: Likewise.
1278         * plugin.c: Likewise.
1279         * postreload-gcse.c: Likewise.
1280         * postreload.c: Likewise.
1281         * predict.c: Likewise.
1282         * print-rtl.c: Likewise.
1283         * print-tree.c: Likewise.
1284         * profile.c: Likewise.
1285         * real.c: Likewise.
1286         * realmpfr.c: Likewise.
1287         * recog.c: Likewise.
1288         * ree.c: Likewise.
1289         * reg-stack.c: Likewise.
1290         * regcprop.c: Likewise.
1291         * reginfo.c: Likewise.
1292         * regrename.c: Likewise.
1293         * regstat.c: Likewise.
1294         * reload.c: Likewise.
1295         * reload1.c: Likewise.
1296         * reorg.c: Likewise.
1297         * resource.c: Likewise.
1298         * rtl-chkp.c: Likewise.
1299         * rtlanal.c: Likewise.
1300         * rtlhooks.c: Likewise.
1301         * sanopt.c: Likewise.
1302         * sched-deps.c: Likewise.
1303         * sched-ebb.c: Likewise.
1304         * sched-rgn.c: Likewise.
1305         * sched-vis.c: Likewise.
1306         * sdbout.c: Likewise.
1307         * sel-sched-dump.c: Likewise.
1308         * sel-sched-ir.c: Likewise.
1309         * sel-sched.c: Likewise.
1310         * sese.c: Likewise.
1311         * shrink-wrap.c: Likewise.
1312         * simplify-rtx.c: Likewise.
1313         * stack-ptr-mod.c: Likewise.
1314         * stmt.c: Likewise.
1315         * stor-layout.c: Likewise.
1316         * store-motion.c: Likewise.
1317         * stringpool.c: Likewise.
1318         * symtab.c: Likewise.
1319         * target-globals.c: Likewise.
1320         * targhooks.c: Likewise.
1321         * toplev.c: Likewise.
1322         * tracer.c: Likewise.
1323         * trans-mem.c: Likewise.
1324         * tree-affine.c: Likewise.
1325         * tree-browser.c: Likewise.
1326         * tree-call-cdce.c: Likewise.
1327         * tree-cfg.c: Likewise.
1328         * tree-cfgcleanup.c: Likewise.
1329         * tree-chkp-opt.c: Likewise.
1330         * tree-chkp.c: Likewise.
1331         * tree-chrec.c: Likewise.
1332         * tree-complex.c: Likewise.
1333         * tree-data-ref.c: Likewise.
1334         * tree-dfa.c: Likewise.
1335         * tree-diagnostic.c: Likewise.
1336         * tree-dump.c: Likewise.
1337         * tree-eh.c: Likewise.
1338         * tree-emutls.c: Likewise.
1339         * tree-if-conv.c: Likewise.
1340         * tree-inline.c: Likewise.
1341         * tree-into-ssa.c: Likewise.
1342         * tree-iterator.c: Likewise.
1343         * tree-loop-distribution.c: Likewise.
1344         * tree-nested.c: Likewise.
1345         * tree-nrv.c: Likewise.
1346         * tree-object-size.c: Likewise.
1347         * tree-outof-ssa.c: Likewise.
1348         * tree-parloops.c: Likewise.
1349         * tree-phinodes.c: Likewise.
1350         * tree-predcom.c: Likewise.
1351         * tree-pretty-print.c: Likewise.
1352         * tree-profile.c: Likewise.
1353         * tree-scalar-evolution.c: Likewise.
1354         * tree-sra.c: Likewise.
1355         * tree-ssa-address.c: Likewise.
1356         * tree-ssa-alias.c: Likewise.
1357         * tree-ssa-ccp.c: Likewise.
1358         * tree-ssa-coalesce.c: Likewise.
1359         * tree-ssa-copy.c: Likewise.
1360         * tree-ssa-copyrename.c: Likewise.
1361         * tree-ssa-dce.c: Likewise.
1362         * tree-ssa-dom.c: Likewise.
1363         * tree-ssa-dse.c: Likewise.
1364         * tree-ssa-forwprop.c: Likewise.
1365         * tree-ssa-ifcombine.c: Likewise.
1366         * tree-ssa-live.c: Likewise.
1367         * tree-ssa-loop-ch.c: Likewise.
1368         * tree-ssa-loop-im.c: Likewise.
1369         * tree-ssa-loop-ivcanon.c: Likewise.
1370         * tree-ssa-loop-ivopts.c: Likewise.
1371         * tree-ssa-loop-manip.c: Likewise.
1372         * tree-ssa-loop-niter.c: Likewise.
1373         * tree-ssa-loop-prefetch.c: Likewise.
1374         * tree-ssa-loop-unswitch.c: Likewise.
1375         * tree-ssa-loop.c: Likewise.
1376         * tree-ssa-math-opts.c: Likewise.
1377         * tree-ssa-operands.c: Likewise.
1378         * tree-ssa-phiopt.c: Likewise.
1379         * tree-ssa-phiprop.c: Likewise.
1380         * tree-ssa-pre.c: Likewise.
1381         * tree-ssa-propagate.c: Likewise.
1382         * tree-ssa-reassoc.c: Likewise.
1383         * tree-ssa-sccvn.c: Likewise.
1384         * tree-ssa-scopedtables.c: Likewise.
1385         * tree-ssa-sink.c: Likewise.
1386         * tree-ssa-strlen.c: Likewise.
1387         * tree-ssa-structalias.c: Likewise.
1388         * tree-ssa-tail-merge.c: Likewise.
1389         * tree-ssa-ter.c: Likewise.
1390         * tree-ssa-threadedge.c: Likewise.
1391         * tree-ssa-threadupdate.c: Likewise.
1392         * tree-ssa-uncprop.c: Likewise.
1393         * tree-ssa-uninit.c: Likewise.
1394         * tree-ssa.c: Likewise.
1395         * tree-ssanames.c: Likewise.
1396         * tree-stdarg.c: Likewise.
1397         * tree-streamer-in.c: Likewise.
1398         * tree-streamer-out.c: Likewise.
1399         * tree-streamer.c: Likewise.
1400         * tree-switch-conversion.c: Likewise.
1401         * tree-tailcall.c: Likewise.
1402         * tree-vect-data-refs.c: Likewise.
1403         * tree-vect-generic.c: Likewise.
1404         * tree-vect-loop-manip.c: Likewise.
1405         * tree-vect-loop.c: Likewise.
1406         * tree-vect-patterns.c: Likewise.
1407         * tree-vect-slp.c: Likewise.
1408         * tree-vect-stmts.c: Likewise.
1409         * tree-vectorizer.c: Likewise.
1410         * tree-vrp.c: Likewise.
1411         * tree.c: Likewise.
1412         * tsan.c: Likewise.
1413         * ubsan.c: Likewise.
1414         * valtrack.c: Likewise.
1415         * value-prof.c: Likewise.
1416         * var-tracking.c: Likewise.
1417         * varasm.c: Likewise.
1418         * varpool.c: Likewise.
1419         * vmsdbgout.c: Likewise.
1420         * vtable-verify.c: Likewise.
1421         * web.c: Likewise.
1422         * wide-int.cc: Likewise.
1423         * xcoffout.c: Likewise.
1424         * config/aarch64/aarch64-builtins.c: Likewise.
1425         * config/aarch64/aarch64.c: Likewise.
1426         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
1427         * config/alpha/alpha.c: Likewise.
1428         * config/arc/arc.c: Likewise.
1429         * config/arm/aarch-common.c: Likewise.
1430         * config/arm/arm-builtins.c: Likewise.
1431         * config/arm/arm-c.c: Likewise.
1432         * config/arm/arm.c: Likewise.
1433         * config/avr/avr-c.c: Likewise.
1434         * config/avr/avr-log.c: Likewise.
1435         * config/avr/avr.c: Likewise.
1436         * config/bfin/bfin.c: Likewise.
1437         * config/c6x/c6x.c: Likewise.
1438         * config/cr16/cr16.c: Likewise.
1439         * config/cris/cris.c: Likewise.
1440         * config/darwin-c.c: Likewise.
1441         * config/darwin.c: Likewise.
1442         * config/epiphany/epiphany.c: Likewise.
1443         * config/epiphany/mode-switch-use.c: Likewise.
1444         * config/epiphany/resolve-sw-modes.c: Likewise.
1445         * config/fr30/fr30.c: Likewise.
1446         * config/frv/frv.c: Likewise.
1447         * config/ft32/ft32.c: Likewise.
1448         * config/h8300/h8300.c: Likewise.
1449         * config/i386/i386-c.c: Likewise.
1450         * config/i386/i386.c: Likewise.
1451         * config/i386/msformat-c.c: Likewise.
1452         * config/i386/winnt-cxx.c: Likewise.
1453         * config/i386/winnt-stubs.c: Likewise.
1454         * config/i386/winnt.c: Likewise.
1455         * config/ia64/ia64-c.c: Likewise.
1456         * config/ia64/ia64.c: Likewise.
1457         * config/iq2000/iq2000.c: Likewise.
1458         * config/lm32/lm32.c: Likewise.
1459         * config/m32c/m32c-pragma.c: Likewise.
1460         * config/m32c/m32c.c: Likewise.
1461         * config/m32r/m32r.c: Likewise.
1462         * config/m68k/m68k.c: Likewise.
1463         * config/mcore/mcore.c: Likewise.
1464         * config/mep/mep-pragma.c: Likewise.
1465         * config/mep/mep.c: Likewise.
1466         * config/microblaze/microblaze-c.c: Likewise.
1467         * config/microblaze/microblaze.c: Likewise.
1468         * config/mips/mips.c: Likewise.
1469         * config/mmix/mmix.c: Likewise.
1470         * config/mn10300/mn10300.c: Likewise.
1471         * config/moxie/moxie.c: Likewise.
1472         * config/msp430/msp430-c.c: Likewise.
1473         * config/msp430/msp430.c: Likewise.
1474         * config/nds32/nds32-cost.c: Likewise.
1475         * config/nds32/nds32-fp-as-gp.c: Likewise.
1476         * config/nds32/nds32-intrinsic.c: Likewise.
1477         * config/nds32/nds32-isr.c: Likewise.
1478         * config/nds32/nds32-md-auxiliary.c: Likewise.
1479         * config/nds32/nds32-memory-manipulation.c: Likewise.
1480         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1481         * config/nds32/nds32-predicates.c: Likewise.
1482         * config/nds32/nds32.c: Likewise.
1483         * config/nios2/nios2.c: Likewise.
1484         * config/nvptx/nvptx.c: Likewise.
1485         * config/pa/pa.c: Likewise.
1486         * config/pdp11/pdp11.c: Likewise.
1487         * config/rl78/rl78-c.c: Likewise.
1488         * config/rl78/rl78.c: Likewise.
1489         * config/rs6000/rs6000-c.c: Likewise.
1490         * config/rs6000/rs6000.c: Likewise.
1491         * config/rx/rx.c: Likewise.
1492         * config/s390/s390-c.c: Likewise.
1493         * config/s390/s390.c: Likewise.
1494         * config/sh/sh-c.c: Likewise.
1495         * config/sh/sh-mem.cc: Likewise.
1496         * config/sh/sh.c: Likewise.
1497         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
1498         * config/sh/sh_treg_combine.cc: Likewise.
1499         * config/sol2-c.c: Likewise.
1500         * config/sol2-cxx.c: Likewise.
1501         * config/sol2-stubs.c: Likewise.
1502         * config/sol2.c: Likewise.
1503         * config/sparc/sparc-c.c: Likewise.
1504         * config/sparc/sparc.c: Likewise.
1505         * config/spu/spu-c.c: Likewise.
1506         * config/spu/spu.c: Likewise.
1507         * config/stormy16/stormy16.c: Likewise.
1508         * config/tilegx/mul-tables.c: Likewise.
1509         * config/tilegx/tilegx-c.c: Likewise.
1510         * config/tilegx/tilegx.c: Likewise.
1511         * config/tilepro/mul-tables.c: Likewise.
1512         * config/tilepro/tilepro-c.c: Likewise.
1513         * config/tilepro/tilepro.c: Likewise.
1514         * config/v850/v850-c.c: Likewise.
1515         * config/v850/v850.c: Likewise.
1516         * config/vax/vax.c: Likewise.
1517         * config/visium/visium.c: Likewise.
1518         * config/vms/vms-c.c: Likewise.
1519         * config/vms/vms.c: Likewise.
1520         * config/vxworks.c: Likewise.
1521         * config/xtensa/xtensa.c: Likewise.
1522
1523 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
1524
1525         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
1526         Remove operand constraints.  Change operand 2 predicate to
1527         nonmemory operand.  Limit const_int values to mode bitsize.  Only
1528         allow const_int values less than 32 when optimizing for size.
1529         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
1530         Remove operand constraints.
1531         (*bt<mode>): Use SImode for const_int values less than 32.
1532         (regmode): Remove mode attribute.
1533
1534 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
1535
1536         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
1537         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
1538           moxie_legitimate_address_p): New functions.
1539           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
1540
1541 2015-07-07  Tom de Vries  <tom@codesourcery.com>
1542
1543         PR tree-optimization/66642
1544         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
1545         header comment.  Rename split_edge variable to edge_at_split.  Split
1546         exit edge to create new loop exit bb.  Insert loop exit phis in new
1547         loop exit bb.
1548
1549 2015-07-07  Tom de Vries  <tom@codesourcery.com>
1550
1551         * tree-cfg.c (get_virtual_phi): New function.
1552         * tree-cfg.h (get_virtual_phi): Declare.
1553         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
1554         (rewrite_virtuals_into_loop_closed_ssa): New function.
1555         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
1556         Declare.
1557         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
1558         (transform_to_exit_first_loop_alt): Use
1559         rewrite_virtuals_into_loop_closed_ssa.
1560
1561 2015-07-07  Richard Biener  <rguenther@suse.de>
1562
1563         * fold-const.c (fold_binary_loc): Move
1564         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
1565         * match.pd: ... here.
1566         Add (X * C1) % C2 -> 0 simplification pattern derived from
1567         extract_muldiv_1.
1568
1569 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
1570
1571         PR target/66780
1572         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
1573         change for target/65249.
1574
1575 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
1576
1577         * symtab.c (address_matters_1): Fix typo in comment above.
1578         (can_increase_alignment_p): Likewise.
1579
1580 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1581
1582         * function.c (free_after_compilation): Clear PROP_cfg in
1583         f->curr_properties.
1584
1585 2015-07-07  Richard Biener  <rguenther@suse.de>
1586
1587         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
1588         add which use to.
1589         (add_control_edge): Remove excessive vertical space in dumping.
1590         (process_ssa_edge_worklist): Simulate at most one statement and
1591         return whether we did.  Do not simulate PHIs if they are in a
1592         BB not yet simulated.
1593         (ssa_propagate): Adjust to always drain the BB worklist whenever
1594         a BB is available there, likewise the VARYING edges list before
1595         the interesting edge list.
1596
1597 2015-07-07  Christian Bruel  <christian.bruel@st.com>
1598
1599         PR target/52144
1600         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
1601
1602 2015-07-07  Richard Biener  <rguenther@suse.de>
1603
1604         PR middle-end/66739
1605         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
1606         A - B.
1607
1608 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
1609
1610         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
1611         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
1612         Copy operand 0 to a temporary if !ext_register_operand.  Remove
1613         ancient extract_bit_field workaround.
1614         (insv<mode>_1): Rename from mov<mode>_insv_1.
1615         (*insvqi): Rename from *movqi_insv_2.
1616         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
1617         for renamed insvsi_1.
1618         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
1619
1620 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
1621
1622         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
1623         call to nvptx_reorg_subreg.
1624
1625 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
1626
1627         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
1628         * graphite-dependencies.c, graphite-interchange.c,
1629         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
1630         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
1631         Likewise.
1632
1633 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
1634
1635         * match.pd: Remove element_mode inside HONOR_*.
1636         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
1637         (~X | X -> -1, ~X ^ X -> -1): Merge.
1638         * tree.c (build_each_one_cst): New function.
1639         * tree.h (build_each_one_cst): Likewise.
1640
1641 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
1642
1643         * config.gcc <mips*-*-*>: Add fused-madd.opt.
1644         * config/mips/mips.opt (mfused-madd): Remove.
1645         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
1646         * config/mips/mips.h (TARGET_MIPS8000): New.
1647         (ISA_HAS_FP_MADD4_MSUB4): Remove.
1648         (ISA_HAS_FP_MADDF_MSUBF): Remove.
1649         (ISA_HAS_FP_MADD3_MSUB3): Remove.
1650         (ISA_HAS_NMADD4_NMSUB4): Remove.
1651         (ISA_HAS_NMADD3_NMSUB3): Remove.
1652         (ISA_HAS_FUSED_MADD4): New.
1653         (ISA_HAS_UNFUSED_MADD4): New.
1654         (ISA_HAS_FUSED_MADDF): New.
1655         (ISA_HAS_FUSED_MADD3): New.
1656         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
1657         (*fma<mode>4_madd3) New.
1658         (*fma<mode>4_madd4) New.
1659         (*fma<mode>4_maddf) New.
1660         (fms<mode>4) New.
1661         (*fms<mode>4_msub3) New.
1662         (*fms<mode>4_msub4) New.
1663         (fnma<mode>4) New.
1664         (*fnma<mode>4_nmadd3) New.
1665         (*fnma<mode>4_nmadd4) New.
1666         (fnms<mode>4) New.
1667         (*fnms<mode>4_nmsub3) New.
1668         (*fnms<mode>4_nmsub4) New.
1669         (*madd4<mode>) Modify to be unfused only.
1670         (*msub4<mode>) Modify to be unfused only.
1671         (*nmadd4<mode>) Modify to be unfused only.
1672         (*nmsub4<mode>) Modify to be unfused only.
1673         (*madd3<mode>) Remove.
1674         (*msub3<mode>) Remove.
1675         (*nmadd3<mode>) Remove.
1676         (*nmsub3<mode>) Remove.
1677         (*nmadd3<mode>_fastmath) Remove.
1678         (*nmsub3<mode>_fastmath) Remove.
1679         (*nmadd4<mode>_fastmath) Update condition.
1680         (*nmsub4<mode>_fastmath) Update condition.
1681
1682 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
1683
1684         PR target/65956
1685         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
1686         alignment attribute, exploring one level down for records and arrays.
1687
1688 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
1689
1690         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
1691         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
1692         Copy operand 1 to a temporary if !ext_register_operand.  Remove
1693         ancient extract_bit_field workaround.
1694         (*extv<mode>): Rename from *mov<mode>_extv_1.
1695         (*extvqi): Rename from *movqi_extv_1.
1696         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
1697         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
1698         to a temporary if !ext_register_operand.  Remove ancient
1699         extract_bit_field workaround.
1700         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
1701         (*extzvqi): Rename from *movqi_extzv_2.
1702         (*testqi_ext_3): Remove modes from const_int_operand predicated
1703         operands.  Add "n" constraint.
1704         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
1705         operand.  Add "J" constraint.
1706         (*btsq, *btrq, *btcq peephole2s): Remove mode from
1707         const_0_to_63 predicated operand.
1708         (regmode): New insn attribute.
1709         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
1710         to nonmemory_operand.  Use regmode insn attribute.
1711         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
1712         (*jcc_bt<mode>_mask): Remove mode from operand 3.
1713         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
1714         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
1715         operands.  Use "N" constraint instead of "n".
1716
1717 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
1718
1719         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
1720
1721 2015-07-06  Richard Biener  <rguenther@suse.de>
1722
1723         PR tree-optimization/66772
1724         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
1725         values are available in the PHI node BB when there are
1726         still unexecutable edges.
1727
1728 2015-07-06  Richard Biener  <rguenther@suse.de>
1729
1730         PR tree-optimization/66767
1731         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
1732         Make sure to build the alignment test on a SSA name without
1733         final alignment info valid only if the alignment test
1734         evaluates to true.
1735
1736 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
1737
1738         PR target/66620
1739         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
1740         loop start when inserting LSETUP.
1741
1742 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
1743
1744         PR target/53383
1745         * config/i386/i386.c (ix86_option_override_internal): Allow
1746         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
1747
1748 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1749
1750         * read-md.c (decimal_string): Rename to ...
1751         (md_decimal_string): ... this.
1752         (handle_enum): Reflect this.
1753
1754 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
1755
1756         PR target/66731
1757         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
1758
1759 2015-07-06  Richard Biener  <rguenther@suse.de>
1760
1761         PR middle-end/66759
1762         * match.pd: Add missing constraint of y to REAL_CST in
1763         REAL_CST - x CMP y to y - CST CMP x simplification.
1764
1765 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
1766
1767         PR tree-optimization/66757
1768         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
1769
1770 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
1771             Sandra Loosemore <sandra@codesourcery.com>
1772
1773         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
1774         Delete extern declaration.
1775         (gprel_constant_p): Add extern declaration.
1776         * config/nios2/constraints.md ("S"): Use gprel_constant_p
1777         instead of nios2_symbol_ref_in_small_data_p.
1778         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
1779         (nios2_symbol_ref_in_small_data_p): Make static.
1780         (gprel_constant_p): Make non-static.
1781
1782 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
1783
1784         * doc/fragments.texi (Target Fragment): Convert debian.org
1785         link to use https.
1786         * doc/install.texi (Configuration): Ditto.
1787
1788 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
1789
1790         PR tree-optimization/66718
1791         * tree-vect-stmts.c (vectorizable_call): Replace uses of
1792         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
1793
1794         PR tree-optimization/66718
1795         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
1796         vectorizable_load, vectorizable_condition): Move vectype,
1797         nunits, ncopies computation after checking what kind of statement
1798         stmt is.
1799
1800 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
1801
1802         * target-insns.def (extv, extzv, insv): New targetm instruction
1803         patterns.
1804         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
1805         interface.
1806         * recog.c (simplify_while_replacing): Likewise.
1807
1808 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
1809
1810         * target-insns.def (doloop_begin, doloop_end): New targetm
1811         instruction patterns.
1812         * loop-init.c: Include target.h.
1813         (pass_loop2::gate): Use the new targetm patterns instead of
1814         HAVE_*/gen_* interface.
1815         (pass_rtl_doloop::gate): Likewise.
1816         (pass_rtl_doloop::execute): Remove preprocessor condition.
1817         * hw-doloop.c: Build unconditionally.
1818         * loop-doloop.c: Likewise.
1819         (doloop_optimize): Use the new targetm patterns instead of
1820         HAVE_*/gen_* interface.
1821         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
1822         * modulo-sched.c (doloop_register_get): Likewise.
1823
1824 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
1825
1826         * target-insns.def (clear_cache): New targetm instruction pattern.
1827         * builtins.c (expand_builtin___clear_cache): Use it instead of
1828         HAVE_*/gen_* interface.
1829
1830 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
1831
1832         * target-insns.def (allocate_stack, check_stack, probe_stack)
1833         (probe_stack_address, split_stack_prologue, split_stack_space_check):
1834         New targetm instruction patterns.
1835         * explow.c (allocate_dynamic_stack_space): Use them instead of
1836         HAVE_*/gen_* interface.
1837         (emit_stack_probe): Likewise.
1838         (probe_stack_range): Likewise.
1839         * function.c (thread_prologue_and_epilogue_insns): Likewise.
1840
1841 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
1842
1843         * target-insns.def (stack_protect_set, stack_protect_test): New
1844         targetm instruction patterns.
1845         * cfgexpand.c (stack_protect_prologue): Use them instead of
1846         HAVE_*/gen_* interface.
1847         * function.c (stack_protect_epilogue): Likewise.
1848
1849 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
1850
1851         * expr.h (gen_move_insn_uncast): Delete.
1852         * expr.c (gen_move_insn_uncast): Delete.
1853
1854 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
1855
1856         * target-insns.def (restore_stack_block, restore_stack_function)
1857         (restore_stack_nonlocal, save_stack_block, save_stack_function)
1858         (save_stack_nonlocal): New targetm instruction patterns.
1859         * builtins.c (expand_builtin_apply): Use them instead of
1860         HAVE_*/gen_* interface.
1861         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
1862
1863 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
1864
1865         * target-insns.def (trap): New targetm instruction pattern.
1866         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
1867         interface.
1868         * explow.c (allocate_dynamic_stack_space): Likewise.
1869         * ifcvt.c (find_if_header): Likewise.
1870
1871 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
1872
1873         * target-insns.def (prefetch): New targetm instruction pattern.
1874         * tree-ssa-loop-prefetch.c: Include targeth.
1875         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
1876         of HAVE_*/gen_* interface.
1877         * builtins.c (expand_builtin_prefetch): Likewise.
1878         * toplev.c (process_options): Likewise.
1879
1880 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
1881
1882         * target-insns.def (untyped_call, untyped_return): New targetm
1883         instruction patterns.
1884         * builtins.c (expand_builtin_apply): Use them instead of
1885         HAVE_*/gen_* interface.
1886         (result_vector): Define unconditionally.
1887
1888 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
1889
1890         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
1891         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
1892         (nonlocal_goto_receiver): New targetm instruction patterns.
1893         * builtins.c (expand_builtin_setjmp_setup): Use them instead
1894         of HAVE_*/gen_* interface.
1895         (expand_builtin_setjmp_receiver): Likewise.
1896         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
1897         * except.c (expand_dw2_landing_pad_for_region): Likewise.
1898
1899 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
1900
1901         * target.def: Add code_for_* hooks.
1902         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
1903         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
1904         * target-insns.def (casesi, tablejump): New targetm instruction
1905         patterns.
1906         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
1907         (do_tablejump): Likewise.
1908         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
1909         (expand_sjlj_dispatch_table): Likewise.
1910         * targhooks.c (default_case_values_threshold): Likewise.
1911
1912 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
1913
1914         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
1915         Use rtx_insn * instead of rtx.
1916         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
1917         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
1918         (nios2_call_tls_get_addr): Likewise.
1919         (nios2_emit_expensive_div): Likewise.
1920         (nios2_emit_move_sequence): Change return type to bool.
1921         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
1922         Change return type to bool.
1923
1924 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1925
1926         PR target/66747
1927         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
1928
1929 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
1930
1931         PR target/66114
1932         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
1933         of register_operand.  Remove constraint.
1934
1935 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
1936
1937         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
1938         the first argument.
1939
1940 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
1941
1942         * attribs.c (decl_attributes): Guard inform with the return value
1943         of the preceding warning.
1944
1945 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
1946
1947         * doc/invoke.texi (moverride): Move to correct section.
1948
1949 2015-07-03  Richard Biener  <rguenther@suse.de>
1950
1951         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
1952         Copy from tree.c
1953         (dt_operand::gen_gimple_expr): After valueizing operands
1954         re-canonicalize operand order for commutative tree codes.
1955
1956 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
1957
1958         PR target/66746.
1959         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
1960         is defined.
1961         (__crc32w): Likewise.
1962         (__crc32d): Likewise.
1963         (__rdpmc): Likewise.
1964         (__rdtscp): Likewise.
1965         (_rdpmc): Likewise.
1966         (_rdtscp): Likewise.
1967         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
1968         is defined.
1969
1970 2015-07-03  Richard Biener  <rguenther@suse.de>
1971
1972         * fold-const.c (fold_mathfn_compare): Remove.
1973         (fold_inf_compare): Likewise.
1974         (fold_comparison): Move floating point comparison simplifications...
1975         * match.pd: ... to patterns here.  Introduce simple_comparisons
1976         operator list and use it for patterns formerly in fold_comparison.
1977
1978 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
1979
1980         PR tree-optimization/66119
1981         * toplev.c (process_options): Don't set up default values for
1982         the sra_max_scalarization_size_{speed,size} parameters.
1983         * tree-sra (analyze_all_variable_accesses): If no values
1984         have been set for the sra_max_scalarization_size_{speed,size}
1985         parameters, call get_move_ratio to get target defaults.
1986
1987 2015-07-03  Richard Biener  <rguenther@suse.de>
1988
1989         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
1990         * match.pd: ... here.
1991
1992 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
1993
1994         PR target/37072
1995         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
1996         is not actually the default on FreeBSD.
1997
1998 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1999
2000         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
2001         definition.
2002         (CMPGE_8HI): Likewise.
2003         (CMPGE_4SI): Likewise.
2004         (CMPGE_2DI): Likewise.
2005         (CMPGE_U16QI): Likewise.
2006         (CMPGE_U8HI): Likewise.
2007         (CMPGE_U4SI): Likewise.
2008         (CMPGE_U2DI): Likewise.
2009         (CMPLE_16QI): Likewise.
2010         (CMPLE_8HI): Likewise.
2011         (CMPLE_4SI): Likewise.
2012         (CMPLE_2DI): Likewise.
2013         (CMPLE_U16QI): Likewise.
2014         (CMPLE_U8HI): Likewise.
2015         (CMPLE_U4SI): Likewise.
2016         (CMPLE_U2DI): Likewise.
2017         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2018         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
2019         ALTIVEC_BUILTIN_VEC_CMPLE.
2020         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
2021         floating-point vector modes.
2022         (vector_nlt<mode>): New define_expand.
2023         (vector_nltu<mode>): Likewise.
2024         (vector_ngt<mode>): Likewise.
2025         (vector_ngtu<mode>): Likewise.
2026
2027 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
2028
2029         PR rtl-optimization/66706
2030         * combine.c (make_compound_operation): If an AND of SUBREG of
2031         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
2032
2033 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
2034
2035         * tree-pass.h (make_pass_ch_vect): New.
2036         * passes.def: Add pass_ch_vect just before pass_if_conversion.
2037
2038         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
2039         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
2040         make_pass_ch_vect): New.
2041         (pass_ch): Extend ch_base.
2042
2043         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
2044         (ch_base::copy_headers): ...here.
2045
2046 2015-07-02  Richard Biener  <rguenther@suse.de>
2047
2048         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
2049         * fold-const.c (get_pointer_modulus_and_residue): Remove.
2050         (fold_binary_loc): Implement (T)ptr & CST in terms of
2051         get_pointer_alignment_1.
2052         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
2053         Make sure to build the alignment test on a SSA name without
2054         final alignment info valid only after the prologue.
2055
2056 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
2057
2058         * config/cris/cris.md ("epilogue"): Remove condition.
2059         ("prologue"): Ditto.
2060
2061 2015-07-02  Richard Biener  <rguenther@suse.de>
2062
2063         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
2064         parameter to record a condition that is false.
2065         (record_conditions): When recording an extra NE_EXPR that is
2066         true also record a EQ_EXPR that is false.
2067
2068 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
2069
2070         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
2071         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
2072         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
2073         (set_iv, find_interesting_uses_address, add_candidate_1): New
2074         argument to alloc_iv.
2075         (find_interesting_uses_op, find_interesting_uses_cond): Don't
2076         duplicate struct iv.
2077         (free_loop_data): Don't free struct iv explicitly.
2078         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
2079
2080 2015-07-01  DJ Delorie  <dj@redhat.com>
2081
2082         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
2083         (LIB_SPEC): Add.
2084         (SUPPORTS_DISCRIMINATOR): Define.
2085
2086 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
2087
2088         PR bootstrap/66685
2089         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
2090         there are no CALLs in the same pattern.
2091
2092 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2093
2094         PR rtl-optimization/61047
2095         * rtlanal.c (get_initial_register_offset): New function.
2096         (rtx_addr_can_trap_p_1): Check offsets of stack references.
2097
2098 2015-07-01  Richard Biener  <rguenther@suse.de>
2099
2100         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
2101         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
2102         ~X CMP C -> X CMP' ~C to ...
2103         * match.pd: ... patterns here.
2104
2105 2015-07-01  Nick Clifton  <nickc@redhat.com>
2106
2107         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
2108         a 16-bit value into a 20-bit memory slot.
2109
2110 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
2111
2112         * doc/sourcebuild.texi (AArch64-specific attributes): Document
2113         "aarch64_tiny", "aarch64_small", "aarch64_large",
2114         "aarch64_little_endian", "aarch64_big_endian".
2115
2116 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
2117
2118         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
2119         Document "aarch64_small_fpic".
2120
2121 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
2122
2123         * configure.ac: Add check for aarch64 assembler -fpic relocation
2124         modifier support.
2125         * configure: Regenerate.
2126         * config.in: Regenerate.
2127         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
2128         to -fPIC if not support of -fpic relocation modifier in assembler.
2129
2130 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
2131
2132         PR bootstrap/66685
2133         * rtl.c (classify_insn): Handle returns in PARALLELs.
2134
2135 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
2136
2137         PR middle-end/66633
2138         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
2139         to true if the function is nested and if not optimizing.
2140         (convert_local_omp_clauses): Initialize need_frame to true if the
2141         function contains nested functions and if not optimizing.
2142
2143 2015-07-01  Richard Biener  <rguenther@suse.de>
2144
2145         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
2146         (X & Y) ^ Y -> ~X & Y transforms to ...
2147         * match.pd: ... here.
2148
2149 2015-07-01  Richard Biener <rguenther@suse.de>
2150
2151         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
2152         of converts to avoid uninteresting noise from the conversion
2153         simplifying patterns.
2154
2155 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
2156
2157         * config/c6x/c6x.c (try_rename_operands): Do not depend on
2158         gcc_assert evaluating its argument for side-effect.
2159
2160 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
2161
2162         PR target/64833
2163         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
2164         flag_pic is set.
2165
2166 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
2167
2168         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
2169         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
2170         (hash_scc): Add this_ref_p and ref_p parameters and pass them
2171         to the inner DFS walk.
2172
2173 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
2174
2175         * target-insns.def (jump): New targetm instruction pattern.
2176         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
2177         instead of gen_jump.
2178         (fix_up_crossing_landing_pad): Likewise.
2179         (add_labels_and_missing_jumps): Likewise.
2180         (fix_crossing_conditional_branches): Likewise.
2181         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
2182         (force_nonfallthru_and_redirect): Likewise.
2183         * cse.c (cse_insn): Likewise.
2184         * expmed.c (expand_divmod): Likewise.
2185         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
2186         * haifa-sched.c (init_before_recovery): Likewise.
2187         (sched_create_recovery_edges): Likewise.
2188         * ifcvt.c (find_cond_trap): Likewise.
2189         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
2190         (expand_float, expand_fix): Likewise.
2191         * stmt.c (emit_jump): Likewise.
2192
2193 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
2194
2195         * defaults.h (HAVE_load_multiple, gen_load_multiple)
2196         (HAVE_store_multiple, gen_store_multiple): Delete.
2197         * target-insns.def (load_multiple, store_multiple): New targetm
2198         instruction patterns.
2199         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
2200         of HAVE_*/gen_* interface.
2201
2202 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
2203
2204         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
2205         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
2206         (gen_mem_signal_fence): Delete.
2207         * target-insns.def (mem_signal_fence, mem_thread_fence)
2208         (memory_barrier): New targetm instruction patterns.
2209         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
2210         interface.
2211         (expand_mem_signal_fence): Likewise.
2212
2213 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
2214
2215         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
2216         * target-insns.def (epilogue, prologue, sibcall_prologue): New
2217         targetm instruction patterns.
2218         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
2219         interface.
2220         * calls.c (expand_call): Likewise.
2221         * cfgrtl.c (cfg_layout_finalize): Likewise.
2222         * df-scan.c (df_get_entry_block_def_set): Likewise.
2223         (df_get_exit_block_use_set): Likewise.
2224         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
2225         * final.c (final_start_function): Likewise.
2226         * function.c (thread_prologue_and_epilogue_insns): Likewise.
2227         (reposition_prologue_and_epilogue_notes): Likewise.
2228         * reorg.c (find_end_label): Likewise.
2229         * toplev.c (process_options): Likewise.
2230
2231 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
2232
2233         * typed-splay-tree.h: New file.
2234
2235 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
2236
2237         PR debug/66691
2238         * lra-int.h (lra_substitute_pseudo): Add a parameter.
2239         (lra_substitute_pseudo_within_insn): Ditto.
2240         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
2241         of constant.
2242         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
2243         to lra_substitute_pseudo.
2244         * lra-lives.c (process_bb_lives): Add an argument to
2245         lra_substitute_pseudo_within_insn call.
2246         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
2247         argument to lra_substitute_pseudo and
2248         lra_substitute_pseudo_within_insn calls.
2249         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
2250
2251 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
2252
2253         * configure: Regenerated.
2254
2255 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
2256
2257         * config.gcc: Support i[34567]86-*-elfiamcu target.
2258         * config/i386/iamcu.h: New.
2259         * config/i386/i386.opt: Add -miamcu.
2260         * doc/invoke.texi: Document -miamcu.
2261         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
2262         off x87/MMX/SSE/AVX codegen for -miamcu.
2263         * config/i386/i386-c.c (ix86_target_macros_internal): Define
2264         __iamcu/__iamcu__ for -miamcu.
2265         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
2266         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
2267         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
2268         * config/i386/i386.c (ix86_option_override_internal): Ignore and
2269         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
2270         MCU by default.  Default long double to 64-bit for Intel MCU.
2271         Turn on -freg-struct-return for Intel MCU.  Issue an error when
2272         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
2273         AVX is turned on.
2274         (function_arg_advance_32): Pass value whose size is no larger
2275         than 8 bytes in registers for Intel MCU.
2276         (function_arg_32): Likewise.
2277         (ix86_return_in_memory): Return value whose size is no larger
2278         than 8 bytes in registers for Intel MCU.
2279         (iamcu_alignment): New function.
2280         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
2281         true.
2282         (ix86_local_alignment): Don't increase alignment for Intel MCU.
2283         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
2284         true.
2285
2286 2015-06-30  Marek Polacek  <polacek@redhat.com>
2287
2288         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
2289         both operands of the resulting expression.
2290
2291         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
2292         the final expression with the operand's type and then convert
2293         it to the type of the expression.
2294
2295 2015-06-30  Richard Biener  <rguenther@suse.de>
2296
2297         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
2298         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
2299         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
2300         * match.pd: ... to patterns here.
2301
2302 2015-06-30  Richard Biener  <rguenther@suse.de>
2303
2304         PR tree-optimization/66704
2305         * tree-vect-data-refs.c (vect_setup_realignment): Use
2306         make_ssa_name for non-SSA name source.
2307
2308 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
2309
2310         PR middle-end/66702
2311         * omp-low.c (simd_clone_adjust): Handle addressable linear
2312         or uniform parameters or non-gimple type uniform parameters.
2313
2314 2015-06-30  Richard Biener  <rguenther@suse.de>
2315
2316         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
2317         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
2318         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
2319         * match.pd: ... here.
2320         Add a few cases of A - B -> A + (-B) when B "easily" negates.
2321         Move (x & y) | x -> x and friends before
2322         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
2323
2324 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
2325
2326         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
2327         -mfix-ut699 is not specified.
2328         (leon3_load): Rename into...
2329         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
2330         is specified.
2331
2332 2015-06-30  Marek Polacek  <polacek@redhat.com>
2333
2334         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
2335         * match.pd: ... here.
2336
2337 2015-06-30  Richard Biener  <rguenther@suse.de>
2338
2339         * target-insns.def (canonicalize_funcptr_for_compare): Add.
2340         * fold-const.c (build_range_check): Replace uses of
2341         HAVE_canonicalize_funcptr_for_compare.
2342         (fold_widened_comparison): Likewise.
2343         (fold_sign_changed_comparison): Likewise.
2344         * dojump.c: Include "target.h".
2345         (do_compare_and_jump): Replace uses of
2346         HAVE_canonicalize_funcptr_for_compare and
2347         gen_canonicalize_funcptr_for_compare.
2348         * expr.c (do_store_flag): Likewise.
2349
2350 2015-06-30  Tom de Vries  <tom@codesourcery.com>
2351
2352         PR tree-optimization/66652
2353         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
2354         max_loop_iterations to determine if nit + 1 overflows.
2355
2356 2015-06-30  Richard Biener  <rguenther@suse.de>
2357
2358         * tree-vrp.c (register_edge_assert_for_2): Also register
2359         asserts for dominating conversion results.
2360
2361 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
2362
2363         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
2364         field in struct iv.
2365
2366 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
2367
2368         PR target/66509
2369         * configure.ac: Fix filds and fildq test for 64-bit.
2370         * configure: Regenerated.
2371
2372 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
2373
2374         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
2375         (nvptx_reorg): Here.  Keep the non-subreg pieces.
2376
2377 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
2378
2379         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
2380         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
2381
2382 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
2383
2384         * config/i386/i386.md (*jcc_1): Use %! in asm template.
2385         Set attribute "length_nobnd" instead of "length".
2386         (*jcc_2): Ditto.
2387         (jump): Ditto.
2388         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
2389
2390 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
2391
2392         * config/nios2/nios2.c (nios2_delegitimize_address): Make
2393         assert less restrictive.
2394
2395 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2396
2397         PR fortran/66605
2398         * cgraphunit.c (cgraph_node::finalize_function): Do not call
2399         do_warn_unused_parameter.
2400         * function.c (do_warn_unused_parameter): Move from here.
2401         * function.h (do_warn_unused_parameter): Do not declare.
2402
2403 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
2404
2405         PR target/65697
2406         * gcc.target/arm/armv-sync-comp-swap.c: New.
2407         * gcc.target/arm/armv-sync-op-acquire.c: New.
2408         * gcc.target/arm/armv-sync-op-full.c: New.
2409         * gcc.target/arm/armv-sync-op-release.c: New.
2410
2411 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
2412
2413         PR target/65697
2414         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
2415         initial acquire barrier with final barrier.
2416
2417 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
2418
2419         PR target/65697
2420         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
2421         initial acquire barrier with final barrier.
2422
2423 2015-06-29  Richard Henderson  <rth@redhat.com>
2424
2425         * config/i386/constraints.md (Bf): New constraint.
2426         * config/i386/i386-c.c (ix86_target_macros): Define
2427         __GCC_ASM_FLAG_OUTPUTS__.
2428         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
2429         as flags outputs.
2430         * doc/extend.texi (FlagOutputOperands): Document them.
2431
2432 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
2433
2434         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
2435         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
2436         unspec name.
2437         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
2438         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
2439         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
2440         (aarch64_symbol_context): Ditto.
2441         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
2442         and use new pattern name.
2443         (aarch64_expand_mov_immediate): Ditto.
2444         (aarch64_print_operand): Ditto.
2445         (aarch64_classify_tls_symbol): Ditto.
2446
2447 2015-06-29  Marek Polacek  <polacek@redhat.com>
2448             Marc Glisse  <marc.glisse@inria.fr>
2449
2450         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
2451         * match.pd: ... pattern here.
2452
2453 2015-06-29  Tom de Vries  <tom@codesourcery.com>
2454
2455         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
2456         function structure.
2457
2458 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
2459
2460         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
2461         feature description, split out the native option, add a link to
2462         the feature documentation, rearrange and slightly rewrite text.
2463         (Aarch64 options, -mcpu): Likewise.
2464         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
2465         +rdma implies Adv. SIMD.
2466
2467 2015-06-29  Marek Polacek  <polacek@redhat.com>
2468
2469         PR c/66322
2470         * function.c (stack_protect_epilogue): Remove a cast to int.
2471         * doc/invoke.texi: Update -Wswitch-bool description.
2472
2473 2015-06-29  Richard Biener  <rguenther@suse.de>
2474
2475         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
2476         * fold-const.c (fold_binary_loc): Move &A - &B simplification
2477         via ptr_difference_const ...
2478         * match.pd: ... here.
2479         When matching (X ^ Y) == Y also match with swapped operands.
2480
2481 2015-06-29  Richard Biener  <rguenther@suse.de>
2482
2483         * lto-streamer.h (LTO_major_version): Bump to 5.
2484
2485 2015-06-29  Richard Biener  <rguenther@suse.de>
2486
2487         PR tree-optimization/66677
2488         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
2489         STMT_VINFO_VEC_STMT clobbering less strict.
2490
2491 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
2492
2493         PR middle-end/64130
2494         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
2495         division, compute max and min when value ranges for dividend and
2496         divisor are available.
2497
2498 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
2499             Sandra Loosemore <sandra@codesourcery.com>
2500
2501         * regrename.h (regrename_do_replace): Change to return bool.
2502         * regrename.c (rename_chains): Check return value of
2503         regname_do_replace.
2504         (regrename_do_replace): Re-validate the modified insns and
2505         return bool status.
2506         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
2507         Update to match rename_chains changes.
2508         * config/c6x/c6x.c (try_rename_operands): Assert that
2509         regrename_do_replace returns true.
2510
2511 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
2512
2513         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
2514         operand 2 here.  Use copy_addr_to_reg to copy non-index
2515         register operand 2 to a temporary.
2516         (<mode>_stx): Ditto for operand 1.
2517         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
2518         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
2519         (ix86_store_bounds): Ditto.
2520
2521 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
2522
2523         * print-tree.c (print_node) [TREE_VEC]: Print its length.
2524
2525 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
2526
2527         * gimple.c (gimple_call_set_fndecl): Remove.
2528         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
2529         build1_loc directly instead of build_fold_addr_expr_loc.
2530
2531 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
2532
2533         * hash-map.h (hash_map::traverse): Use the definition of the
2534         Key typedef rather than the typedef itself.
2535
2536 2015-06-26  Martin Jambor  <mjambor@suse.cz>
2537
2538         PR debug/66301
2539         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
2540         NULL instead of calling dump_enabled_p.
2541
2542 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
2543
2544         * config/aarch64/aarch64.opt: (override): New.
2545         * doc/invoke.texi (override): Document.
2546         * config/aarch64/aarch64.c (aarch64_flag_desc): New
2547         (aarch64_fusible_pairs): Likewise.
2548         (aarch64_tuning_flags): Likewise.
2549         (aarch64_tuning_override_function): Likewise.
2550         (aarch64_tuning_override_functions): Likewise.
2551         (aarch64_parse_one_option_token): Likewise.
2552         (aarch64_parse_boolean_options): Likewise.
2553         (aarch64_parse_fuse_string): Likewise.
2554         (aarch64_parse_tune_string): Likewise.
2555         (aarch64_parse_one_override_token): Likewise.
2556         (aarch64_parse_override_string): Likewise.
2557         (aarch64_override_options): Parse the -override string if it
2558         is present.
2559
2560 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
2561
2562         * config/aarch64/aarch64-protos.h (tune_params): Remove
2563         const from members.
2564         (aarch64_tune_params): Remove const, change to no longer be
2565         a pointer.
2566         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
2567         change to no longer be a pointer, initialize to generic_tunings.
2568         (aarch64_min_divisions_for_recip_mul): Change dereference of
2569         aarch64_tune_params to member access.
2570         (aarch64_reassociation_width): Likewise.
2571         (aarch64_rtx_mult_cost): Likewise.
2572         (aarch64_address_cost): Likewise.
2573         (aarch64_branch_cost): Likewise.
2574         (aarch64_rtx_costs): Likewise.
2575         (aarch64_register_move_cost): Likewise.
2576         (aarch64_memory_move_cost): Likewise.
2577         (aarch64_sched_issue_rate): Likewise.
2578         (aarch64_builtin_vectorization_cost): Likewise.
2579         (aarch64_override_options): Take a copy of the selected tuning
2580         struct in to aarch64_tune_params, rather than just setting
2581         a pointer, change dereferences of aarch64_tune_params to member
2582         accesses.
2583         (aarch64_override_options_after_change): Change dereferences of
2584         aarch64_tune_params to member access.
2585         (aarch64_macro_fusion_p): Likewise.
2586         (aarch_macro_fusion_pair_p): Likewise.
2587         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
2588
2589 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
2590
2591         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
2592         (aarch64_tune_flags): Likewise.
2593         (AARCH64_TUNE_FMA_STEERING): Likewise.
2594         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
2595         to AARCH64_FL_USE_FMA_STEERING_PASS.
2596         (cortex-a57.cortex-a53): Likewise.
2597         (cortex-a72): Use cortexa72_tunings.
2598         (cortex-a72.cortex-a53): Likewise.
2599         (exynos-m1): Likewise.
2600         * config/aarch64/aarch64-protos.h (tune_params): Add
2601         a field: extra_tuning_flags.
2602         * config/aarch64/aarch64-tuning-flags.def: New.
2603         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
2604         (aarch64_extra_tuning_flags): Likewise.
2605         (aarch64_tune_params): Declare here.
2606         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
2607         (cortexa53_tunings): Likewise.
2608         (cortexa57_tunings): Likewise.
2609         (thunderx_tunings): Likewise.
2610         (xgene1_tunings): Likewise.
2611         (cortexa72_tunings): New.
2612         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
2613          (gate): Check against aarch64_tune_params.
2614         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
2615         aarch64-protos.h.
2616
2617 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
2618
2619         * config/aarch64/aarch64-fusion-pairs.def: New.
2620         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
2621         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
2622         aarch64_fusion_pairs.
2623         (AARCH64_FUSE_MOV_MOVK): Likewise.
2624         (AARCH64_FUSE_ADRP_ADD): Likewise.
2625         (AARCH64_FUSE_MOVK_MOVK): Likewise.
2626         (AARCH64_FUSE_ADRP_LDR): Likewise.
2627         (AARCH64_FUSE_CMP_BRANCH): Likewise.
2628
2629 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
2630
2631         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
2632         SYMBOL_SMALL_GOT_28K.
2633         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
2634         relocation modifiers.
2635         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
2636         (ldr_got_small_28k_<mode>): New.
2637         (ldr_got_small_28k_sidi): New.
2638         * config/aarch64/iterators.md (got_modifier): New mode iterator.
2639         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
2640         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
2641         SYMBOL_SMALL_GOT_28K.
2642         (aarch64_rtx_costs): Add costs for new instruction sequences.
2643         (initialize_aarch64_code_model): Initialize new model.
2644         (aarch64_classify_symbol): Recognize new model and new symbol classification.
2645         (aarch64_asm_preferred_eh_data_format): Support new model.
2646         (aarch64_load_symref_appropriately): Generate new instruction
2647         sequences for -fpic.
2648         (TARGET_USE_PSEUDO_PIC_REG): New definition.
2649         (aarch64_use_pseudo_pic_reg): New function.
2650
2651 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
2652
2653         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
2654         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
2655         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
2656         (aarch64_expand_mov_immediate): Ditto.
2657         (aarch64_print_operand): Ditto.
2658         (aarch64_classify_symbol): Ditto.
2659
2660 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
2661
2662         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
2663
2664 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
2665
2666         PR bootstrap/66638
2667         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
2668         assertion failed.  Remove assertion itself.
2669
2670 2015-06-26  Richard Biener  <rguenther@suse.de>
2671
2672         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
2673         and -A CMP CST -> A CMP -CST which is redundant with a pattern
2674         in match.pd.
2675         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
2676         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
2677         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
2678         * match.pd: ... patterns here.
2679
2680 2015-06-26  Marek Polacek  <polacek@redhat.com>
2681
2682         * match.pd ((x | y) & ~(x & y) -> x ^ y,
2683         (x | y) & (~x ^ y) -> x & y): New patterns.
2684
2685 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
2686
2687         * rtl.h (emit): Add an optional boolean parameter to control
2688         whether barriers are emitted.
2689         * emit-rtl.c (emit): Likewise.
2690         * gensupport.c (get_emit_function): Return null rather than "emit".
2691         * genemit.c (gen_emit_seq): Handle the null return value.
2692         Don't emit barriers after the final instruction in the sequence.
2693         * gentarget-def.c (main): Don't emit barriers after the instruction.
2694
2695 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2696
2697         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
2698         TARGET_UNIFIED_ASM.
2699
2700 2015-06-26  Richard Biener  <rguenther@suse.de>
2701
2702         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
2703
2704 2015-06-26  Richard Biener  <rguenther@suse.de>
2705
2706         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
2707         irrespective on whether the inner operation has a single use
2708         of both off are constant.
2709
2710 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
2711             Segher Boessenkool  <segher@kernel.crashing.org>
2712
2713         PR target/66412
2714         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
2715         before doing PUT_MODE or PUT_CODE on operands to avoid
2716         in-place RTX modification.
2717
2718 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
2719
2720         * gentarget-def.c (def_target_insn): Cast return of strtol to
2721         unsigned int.
2722
2723 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
2724
2725         * gimple.h (gimple_call_set_fn): Move inline function.
2726         * gimple.c (gimple_call_set_fn): Relocate here.
2727
2728 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
2729
2730         PR target/65979
2731         PR target/66611
2732         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
2733         the replacement insn will work.
2734
2735 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
2736
2737         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
2738         by default.
2739
2740 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
2741
2742         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
2743         * cgraph.h: Include ipa-ref.h and plugin-api.h.
2744         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
2745         (symtab_node::address_can_be_compared_p): Move function.
2746         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
2747         definition here.
2748         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
2749         * auto-profile.c: Likewise.
2750         * bb-reorder.c: Likewise.
2751         * builtins.c: Likewise.
2752         * calls.c: Likewise.
2753         * cfgexpand.c: Likewise.
2754         * cgraphbuild.c: Likewise.
2755         * cgraphclones.c: Likewise.
2756         * cgraphunit.c: Likewise.
2757         * combine.c: Likewise.
2758         * coverage.c: Likewise.
2759         * data-streamer-in.c: Likewise.
2760         * data-streamer-out.c: Likewise.
2761         * data-streamer.c: Likewise.
2762         * dbxout.c: Likewise.
2763         * dwarf2out.c: Likewise.
2764         * except.c: Likewise.
2765         * expr.c: Likewise.
2766         * final.c: Likewise.
2767         * fold-const.c: Likewise.
2768         * ggc-page.c: Likewise.
2769         * gimple-fold.c: Likewise.
2770         * gimple-iterator.c: Likewise.
2771         * gimple-pretty-print.c: Likewise.
2772         * gimple-streamer-in.c: Likewise.
2773         * gimple-streamer-out.c: Likewise.
2774         * gimple.c: Likewise.
2775         * gimplify.c: Likewise.
2776         * ipa-chkp.c: Likewise.
2777         * ipa-comdats.c: Likewise.
2778         * ipa-cp.c: Likewise.
2779         * ipa-devirt.c: Likewise.
2780         * ipa-icf-gimple.c: Likewise.
2781         * ipa-icf.c: Likewise.
2782         * ipa-inline-analysis.c: Likewise.
2783         * ipa-inline-transform.c: Likewise.
2784         * ipa-inline.c: Likewise.
2785         * ipa-polymorphic-call.c: Likewise.
2786         * ipa-profile.c: Likewise.
2787         * ipa-prop.c: Likewise.
2788         * ipa-pure-const.c: Likewise.
2789         * ipa-ref.c: Likewise.
2790         * ipa-reference.c: Likewise.
2791         * ipa-split.c: Likewise.
2792         * ipa-utils.c: Likewise.
2793         * ipa-visibility.c: Likewise.
2794         * ipa.c: Likewise.
2795         * langhooks.c: Likewise.
2796         * lto-cgraph.c: Likewise.
2797         * lto-compress.c: Likewise.
2798         * lto-opts.c: Likewise.
2799         * lto-section-in.c: Likewise.
2800         * lto-section-out.c: Likewise.
2801         * lto-streamer-in.c: Likewise.
2802         * lto-streamer-out.c: Likewise.
2803         * lto-streamer.c: Likewise.
2804         * omp-low.c: Likewise.
2805         * opts-global.c: Likewise.
2806         * passes.c: Likewise.
2807         * predict.c: Likewise.
2808         * print-tree.c: Likewise.
2809         * profile.c: Likewise.
2810         * ree.c: Likewise.
2811         * sanopt.c: Likewise.
2812         * stor-layout.c: Likewise.
2813         * symtab.c: Likewise.
2814         * toplev.c: Likewise.
2815         * trans-mem.c: Likewise.
2816         * tree-cfg.c: Likewise.
2817         * tree-chkp.c: Likewise.
2818         * tree-eh.c: Likewise.
2819         * tree-emutls.c: Likewise.
2820         * tree-inline.c: Likewise.
2821         * tree-nested.c: Likewise.
2822         * tree-parloops.c: Likewise.
2823         * tree-pretty-print.c: Likewise.
2824         * tree-profile.c: Likewise.
2825         * tree-sra.c: Likewise.
2826         * tree-ssa-alias.c: Likewise.
2827         * tree-ssa-live.c: Likewise.
2828         * tree-ssa-loop-ivcanon.c: Likewise.
2829         * tree-ssa-loop-ivopts.c: Likewise.
2830         * tree-ssa-pre.c: Likewise.
2831         * tree-ssa-sccvn.c: Likewise.
2832         * tree-ssa-strlen.c: Likewise.
2833         * tree-ssa-structalias.c: Likewise.
2834         * tree-streamer-in.c: Likewise.
2835         * tree-streamer-out.c: Likewise.
2836         * tree-streamer.c: Likewise.
2837         * tree-switch-conversion.c: Likewise.
2838         * tree-tailcall.c: Likewise.
2839         * tree-vect-data-refs.c: Likewise.
2840         * tree-vect-stmts.c: Likewise.
2841         * tree-vectorizer.c: Likewise.
2842         * tree.c: Likewise.
2843         * tsan.c: Likewise.
2844         * ubsan.c: Likewise.
2845         * value-prof.c: Likewise.
2846         * varasm.c: Likewise.
2847         * varpool.c: Likewise.
2848         * config/arm/arm.c: Likewise.
2849         * config/bfin/bfin.c: Likewise.
2850         * config/c6x/c6x.c: Likewise.
2851         * config/cris/cris.c: Likewise.
2852         * config/darwin-c.c: Likewise.
2853         * config/darwin.c: Likewise.
2854         * config/i386/i386.c: Likewise.
2855         * config/i386/winnt.c: Likewise.
2856         * config/microblaze/microblaze.c: Likewise.
2857         * config/mips/mips.c: Likewise.
2858         * config/rs6000/rs6000.c: Likewise.
2859         * config/rx/rx.c: Likewise.
2860         * config/s390/s390.c: Likewise.
2861         * config/tilegx/mul-tables.c: Likewise.
2862
2863 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
2864
2865         * config/aarch64/aarch64.c, config/alpha/alpha.c,
2866         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
2867         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
2868         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
2869         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
2870         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
2871         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
2872         config/microblaze/microblaze.c, config/mips/mips.c,
2873         config/mmix/mmix.c, config/mn10300/mn10300.c,
2874         config/moxie/moxie.c, config/msp430/msp430.c,
2875         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
2876         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
2877         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
2878         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
2879         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
2880         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
2881         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
2882         target-def.h include.
2883         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
2884
2885 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
2886
2887         * Makefile.in (TARGET_DEF): Add target-insns.def.
2888         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
2889         (build/gentarget-def.o): New rule.
2890         (genprogrtl): Add target-def.
2891         * target-insns.def, gentarget-def.c: New files.
2892         * target.def: Add targetm.have_* and targetm.gen_* hooks,
2893         based on the contents of target-insns.def.
2894         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
2895         (HAVE_return, gen_return): Delete.
2896         * target-def.h: Include insn-target-def.h.
2897         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
2898         instead of direct calls.  Rely on them to do the appropriate assertions.
2899         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
2900         (convert_jumps_to_returns): Use targetm interface instead of
2901         direct calls.
2902         (thread_prologue_and_epilogue_insns): Likewise.
2903         * reorg.c (find_end_label, dbr_schedule): Likewise.
2904         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
2905         * shrink-wrap.c (convert_to_simple_return): Likewise.
2906         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
2907
2908 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
2909
2910         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
2911         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
2912         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
2913         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
2914         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
2915         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
2916         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
2917         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
2918         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
2919         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
2920         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
2921         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
2922         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
2923         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
2924         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
2925         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
2926         includes to end.
2927
2928 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
2929
2930         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
2931         (unbounded_int_hashmap_traits::key_type): Likewise.
2932         * hash-map.h (hash_map): Get the key type from the traits.
2933         * hash-traits.h (default_hash_traits): By default, inherit from the
2934         template parameter.
2935         * alias.c (alias_set_traits): Delete.
2936         (alias_set_entry_d::children): Use alias_set_hash as the first
2937         template parameter.
2938         (record_alias_subset): Update accordingly.
2939         * except.c (tree_hash_traits): Delete.
2940         (type_to_runtime_map): Use tree_hash as the first template parameter.
2941         (init_eh): Update accordingly.
2942         * genmatch.c (capture_id_map_hasher): Delete.
2943         (cid_map_t): Use nofree_string_hash as first template parameter.
2944         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
2945         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
2946         Use symbol_compare_hash as the first template parameter in
2947         subdivide_hash_map.
2948         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
2949         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
2950         template parameter.
2951         * passes.c (pass_registry_hasher): Delete.
2952         (name_to_pass_map): Use nofree_string_hash as the first template
2953         parameter.
2954         (register_pass_name): Update accordingly.
2955         * sanopt.c (sanopt_tree_map_traits): Delete.
2956         (sanopt_tree_triplet_map_traits): Delete.
2957         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
2958         template parameter.
2959         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
2960         the first template parameter.
2961         * sese.c (rename_map_hasher): Delete.
2962         (rename_map_type): Use tree_ssa_name_hash as the first template
2963         parameter.
2964         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
2965         (function_summary::m_map): Use map_hash as the first template
2966         parameter.
2967         (function_summary::release): Update accordingly.
2968         * tree-if-conv.c (phi_args_hash_traits): Delete.
2969         (predicate_scalar_phi): Use tree_operand_hash as the first template
2970         parameter to phi_arg_map.
2971         * tree-inline.h (dependence_hasher): Delete.
2972         (copy_body_data::dependence_map): Use dependence_hash as the first
2973         template parameter.
2974         * tree-inline.c (remap_dependence_clique): Update accordingly.
2975         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
2976         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
2977         parameter.
2978         (addr_stridxptr): Update accordingly.
2979         * value-prof.c (profile_id_traits): Delete.
2980         (cgraph_node_map): Use profile_id_hash as the first template
2981         parameter.
2982         (init_node_map): Update accordingly.
2983         * config/alpha/alpha.c (string_traits): Delete.
2984         (machine_function::links): Use nofree_string_hash as the first
2985         template parameter.
2986         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
2987         * config/m32c/m32c.c (pragma_traits): Delete.
2988         (pragma_htab): Use nofree_string_hash as the first template parameter.
2989         (m32c_note_pragma_address): Update accordingly.
2990         * config/mep/mep.c (pragma_traits): Delete.
2991         (pragma_htab): Use nofree_string_hash as the first template parameter.
2992         (mep_note_pragma_flag): Update accordingly.
2993         * config/mips/mips.c (mips16_flip_traits): Delete.
2994         (mflip_mips16_htab): Use nofree_string_hash as the first template
2995         parameter.
2996         (mflip_mips16_use_mips16_p): Update accordingly.
2997         (local_alias_traits): Delete.
2998         (mips16_local_aliases): Use nofree_string_hash as the first template
2999         parameter.
3000         (mips16_local_alias): Update accordingly.
3001
3002 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3003
3004         * hash-map-traits.h (default_hashmap_traits): Delete.
3005
3006 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3007
3008         * hash-map-traits.h (unbounded_hashmap_traits): New class.
3009         (unbounded_int_hashmap_traits): Likewise.
3010         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
3011
3012 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3013
3014         * ipa-icf.h (symbol_compare_hash): New class.
3015         (symbol_compare_hashmap_traits): Use it.
3016         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
3017         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
3018         (mem_alloc_description::reverse_mem_map_t): Remove redundant
3019         default_hashmap_traits.
3020         * sanopt.c (sanopt_tree_triplet_hash): New class.
3021         (sanopt_tree_triplet_map_traits): Use it.
3022
3023 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3024
3025         * gengtype-parse.c (require_template_declaration): Allow '+' in
3026         template parameters.  Consolidate cases.
3027         * hash-traits.h (int_hash): New class.
3028         * alias.c (alias_set_hash): New structure.
3029         (alias_set_traits): Use it.
3030         * symbol-summary.h (function_summary::map_hash): New class.
3031         (function_summary::summary_hashmap_traits): Use it.
3032         * tree-inline.h (dependence_hash): New class.
3033         (dependence_hasher): Use it.
3034         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
3035         * value-prof.c (profile_id_hash): New class.
3036         (profile_id_traits): Use it.
3037
3038 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3039
3040         * config/mips/mips.c (mips16_flip_traits): Use it.
3041         (local_alias_traits, mips16_local_aliases): Convert from a map of
3042         rtxes to a map of symbol names.
3043         (mips16_local_alias): Update accordingly.
3044
3045 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3046
3047         * hash-traits.h (string_hash, nofree_string_hash): New classes.
3048         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
3049         * passes.c (pass_registry_hasher): Likewise.
3050         * config/alpha/alpha.c (string_traits): Likewise.
3051         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
3052         * config/m32c/m32c.c (pragma_traits): Likewise.
3053         * config/mep/mep.c (pragma_traits): Likewise.
3054
3055 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3056
3057         * tree-hash-traits.h (tree_hash): New class.
3058         * except.c: Include tree-hash-traits.h.
3059         (tree_hash_traits): Use tree_hash.
3060
3061 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3062
3063         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
3064         * sese.c: Include tree-hash-traits.h.
3065         (rename_map_hasher): Use tree_ssa_name_hasher.
3066
3067 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3068
3069         * tree-hash-traits.h (tree_decl_hash): New class.
3070         * tree-ssa-strlen.c: Include tree-hash-traits.h.
3071         (stridxlist_hash_traits): Use tree_decl_hash.
3072
3073 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3074
3075         * tree-hash-traits.h: New file.
3076         (tree_operand_hash): New class.
3077         * sanopt.c: Include tree-hash-traits.h.
3078         (sanopt_tree_map_traits): Use tree_operand_hash.
3079         * tree-if-conv.c: Include tree-hash-traits.h.
3080         (phi_args_hash_traits): Use tree_operand_hash.
3081         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
3082         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
3083
3084 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3085
3086         * hash-map-traits.h: Include hash-traits.h.
3087         (simple_hashmap_traits): New class.
3088         * mem-stats.h (hash_map): Change the default traits to
3089         simple_hashmap_traits<default_hash_traits<Key> >.
3090
3091 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3092
3093         * hash-table.h: Update comments.
3094
3095 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3096
3097         * hash-traits.h (default_hash_traits): New structure.
3098         * hash-set.h (default_hashset_traits): Delete.
3099         (hash_set): Use default_hash_traits<Key> instead of
3100         default_hashset_traits.  Delete hash_entry type and use Key directly.
3101         * ipa-devirt.c (pair_traits): Delete.
3102         (default_hash_traits <type_pair>): Override.
3103         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
3104         (odr_types_equivalent_p, add_type_duplicate): Likewise.
3105
3106 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3107
3108         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
3109
3110 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3111
3112         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
3113         (has_is_empty, is_empty_helper): Delete.
3114         (has_mark_deleted, mark_deleted_helper): Delete.
3115         (has_mark_empty, mark_empty_helper): Delete.
3116         (hash_table::is_deleted): Call the Descriptor unconditionally.
3117         (hash_table::is_empty): Likewise.
3118         (hash_table::mark_deleted): Likewise.
3119         (hash_table::mark_empty): Likewise.
3120
3121 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3122
3123         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
3124         redundant typedefs and members.
3125         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
3126         redundant typedefs.
3127         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
3128         * ipa-devirt.c (odr_name_hasher): Likewise.
3129         (polymorphic_call_target_hasher): Likewise.
3130         * ira-costs.c (cost_classes_hasher): Likewise.
3131         * statistics.c (stats_counter_hasher): Likewise.
3132         * trans-mem.c (log_entry_hasher): Likewise.
3133         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
3134         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
3135         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
3136         * var-tracking.c (variable_hasher): Likewise.
3137         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
3138         Remove redundant typedefs and members.
3139
3140 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3141
3142         * hash-traits.h (ggc_cache_hasher): Rename to...
3143         (ggc_cache_remove): ...this and remove typedefs.
3144         (ggc_cache_ptr_hash): New class.
3145         * hash-table.h: Update commentary.
3146         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
3147         rather than ggc_cache_hasher.
3148         (const_wide_int_hasher, reg_attr_hasher): Likewise.
3149         (const_double_hasher, const_fixed_hasher): Likewise.
3150         * function.c (insn_cache_hasher): Likewise.
3151         * trans-mem.c (tm_wrapper_hasher): Likewise.
3152         * tree.h (tree_decl_map_cache_hasher): Likewise.
3153         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
3154         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
3155         * ubsan.c (tree_type_map_cache_hasher): Likewise.
3156         * varasm.c (tm_clone_hasher): Likewise.
3157         * config/i386/i386.c (dllimport_hasher): Likewise.
3158         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
3159         (tree_hasher): Likewise.
3160
3161 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3162
3163         * hash-traits.h (ggc_hasher): Rename to...
3164         (ggc_remover): ...this and remove typedefs.
3165         (ggc_cache_hasher): Update accordingly.  Add typedefs.
3166         (ggc_ptr_hash): New class.
3167         * hash-table.h: Update comment.
3168         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
3169         ggc_hasher.
3170         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
3171         (tree_descriptor_hasher): Likewise.
3172         * cgraph.c (function_version_hasher): Likewise.
3173         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
3174         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
3175         (dw_loc_list_hasher, addr_hasher): Likewise.
3176         * function.h (used_type_hasher): Likewise.
3177         * function.c (temp_address_hasher): Likewise.
3178         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
3179         * libfuncs.h (libfunc_hasher): Likewise.
3180         * lto-streamer.h (decl_state_hasher): Likewise.
3181         * optabs.c (libfunc_decl_hasher): Likewise.
3182         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
3183         * varasm.c (section_hasher, object_block_hasher): Likewise.
3184         (const_rtx_desc_hasher): Likewise.
3185         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
3186         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
3187
3188 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3189
3190         * hash-traits.h (free_ptr_hash): New class.
3191         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
3192         rather than typed_free_remove.  Remove redudant typedefs.
3193         (external_ref_hasher): Likewise.
3194         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
3195         (ehspec_hasher): Likewise.
3196         * ggc-common.c (saving_hasher): Likewise.
3197         * gimplify.c (gimplify_hasher): Likewise.
3198         * haifa-sched.c (delay_i2_hasher): Likewise.
3199         * loop-invariant.c (invariant_expr_hasher): Likewise.
3200         * loop-iv.c (biv_entry_hasher): Likewise.
3201         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
3202         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
3203         * tree-cfg.c (locus_discrim_hasher): Likewise.
3204         * tree-eh.c (finally_tree_hasher): Likewise.
3205         * tree-into-ssa.c (var_info_hasher): Likewise.
3206         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
3207         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
3208         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
3209         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
3210         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
3211         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
3212         (shared_bitmap_hasher): Likewise.
3213         * tree-ssa-threadupdate.c (redirection_data): Likewise.
3214         * tree-vectorizer.h (peel_info_hasher): Likewise.
3215         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
3216         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
3217
3218 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3219
3220         * hash-table.h: Update comments.
3221         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
3222         (nofree_ptr_hash): New class.
3223         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
3224         than typed_noop_remove.  Remove redudant typedefs.
3225         * attribs.c (attribute_hasher): Likewise.
3226         * cfg.c (bb_copy_hasher): Likewise.
3227         * cselib.c (cselib_hasher): Likewise.
3228         * dse.c (invariant_group_base_hasher): Likewise.
3229         * dwarf2cfi.c (trace_info_hasher): Likewise.
3230         * dwarf2out.c (macinfo_entry_hasher): Likewise.
3231         (comdat_type_hasher, loc_list_hasher): Likewise.
3232         * gcse.c (pre_ldst_expr_hasher): Likewise.
3233         * genmatch.c (id_base): Likewise.
3234         * genrecog.c (test_pattern_hasher): Likewise.
3235         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
3236         * haifa-sched.c (delay_i1_hasher): Likewise.
3237         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
3238         * ipa-icf.h (congruence_class_group_hash): Likewise.
3239         * ipa-profile.c (histogram_hash): Likewise.
3240         * ira-color.c (allocno_hard_regs_hasher): Likewise.
3241         * lto-streamer.h (string_slot_hasher): Likewise.
3242         * lto-streamer.c (tree_entry_hasher): Likewise.
3243         * plugin.c (event_hasher): Likewise.
3244         * postreload-gcse.c (expr_hasher): Likewise.
3245         * store-motion.c (st_expr_hasher): Likewise.
3246         * tree-sra.c (uid_decl_hasher): Likewise.
3247         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
3248         (ssa_name_var_hash): Likewise.
3249         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
3250         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
3251         * tree-ssa-pre.c (pre_expr_d): Likewise.
3252         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
3253         * vtable-verify.h (registration_hasher): Likewise.
3254         * vtable-verify.c (vtbl_map_hasher): Likewise.
3255         * config/arm/arm.c (libcall_hasher): Likewise.
3256         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
3257         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
3258         * config/sol2.c (comdat_entry_hasher): Likewise.
3259         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
3260         (print_fold_checksum, fold_checksum_tree): Likewise.
3261         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
3262         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
3263         (fold_build_call_array_loc): Likewise.
3264         * tree-ssa-ccp.c (gimple_htab): Likewise.
3265         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
3266         rather than pointer_type.
3267
3268 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3269
3270         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
3271         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
3272
3273 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3274
3275         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
3276         (ggc_hasher::ggc_mx): Likewise.
3277         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
3278         that duplicate ggc_hasher ones.
3279
3280 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3281
3282         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
3283         (gt_cleare_cache): Check here for deleted and empty entries.
3284         Replace handle_cache_entry with a call to keep_cache_entry.
3285         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
3286         (ggc_cache_hasher::keep_cache_entry): New function.
3287         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
3288         (tm_wrapper_hasher::keep_cache_entry): New function.
3289         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
3290         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
3291         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
3292         (type_cache_hasher::keep_cache_entry): New function.
3293         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
3294         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
3295         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
3296         (tree_type_map_cache_hasher::keep_cache_entry): New function.
3297         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
3298         (tm_clone_hasher::keep_cache_entry): New function.
3299         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
3300         (dllimport_hasher::keep_cache_entry): New function.
3301
3302 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3303
3304         * hash-table.h: Include hash-traits.h.
3305         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
3306         (ggc_cache_hasher): Move to...
3307         * hash-traits.h: ...this new file.
3308
3309 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
3310
3311         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
3312         struct cl_optimization.
3313         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
3314         * tree.c (make_node_stat): Allocate cl_optimization struct.
3315         (copy_node_stat): Allocate and copy cl_optimization struct.
3316
3317 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
3318
3319         * function.h (struct incoming_args): Move struct.
3320         (pass_by_reference, reference_callee_copied): Remove prototypes.
3321         * emit-rtl.h (struct incoming_args): Relocate struct here.
3322         * calls.h (pass_by_reference, reference_callee_copied): Relocate
3323         prototypes here.
3324         * function.c (pass_by_reference, reference_callee_copied): Move.
3325         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
3326         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
3327         * ipa-chkp.c: Include calls.h.
3328
3329 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
3330
3331         * alias.h (alias_set_type): Move typedef.
3332         * coretypes.h (alias_set_type): Relocate typedef here.
3333         * rtl.h: Don't include alias.h.
3334
3335 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
3336
3337         * cgraph.h (cgraph_rtl_info): Move to rtl.h
3338         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
3339         and instance.
3340         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
3341         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
3342         doesn't exist.
3343         * calls.c: Include hard-reg-set.h before rtl.h.
3344         * ira.c: Likewise.
3345
3346 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
3347             Vladimir Makarov  <vmakarov@redhat.com>
3348
3349         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
3350         Add assert.
3351
3352 2015-06-25  Richard Biener  <rguenther@suse.de>
3353
3354         * fold-const.c (fold_binary_loc): Move simplification of
3355         (X <<>> C1) & C2 ...
3356         * match.pd: ... here.
3357
3358 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
3359
3360         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
3361
3362 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
3363
3364         * match.pd: Add patterns for vec_conds between 1 and 0.
3365
3366 2015-06-25  Richard Biener  <rguenther@suse.de>
3367
3368         * tree-vect-stmts.c (vectorizable_conversion): Do not set
3369         STMT_VINFO_VEC_STMT for SLP.
3370         (vectorizable_store): Likewise.
3371         (vectorizable_load): Likewise.
3372         (vect_transform_stmt): Catch SLP vectorization clobbering
3373         STMT_VINFO_VEC_STMT.
3374
3375 2015-06-25  Richard Biener  <rguenther@suse.de>
3376
3377         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
3378         dumping.
3379         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
3380         cleanup resulting dead code and parameters.
3381         (vect_transform_slp_perm_load): Adjust.
3382
3383 2015-06-25  Nick Clifton  <nickc@redhat.com>
3384
3385         * config/bfin/bfin.c (bfin_expand_prologue): Set
3386         current_function_static_stack_size if flag_stack_usage_info is set.
3387         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
3388         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
3389         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
3390         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
3391
3392 2015-06-25  Tom de Vries  <tom@codesourcery.com>
3393
3394         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
3395         comment that the generated IV is unsigned.
3396
3397 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3398
3399         PR target/29693
3400         * config/arm/arm.c (arm_dbx_register_number): Return
3401         DWARF_FRAME_REGISTERS by default.
3402
3403 2015-06-25  Tom de Vries  <tom@codesourcery.com>
3404
3405         * dominance.c (calculate_dominance_info): Fix verify_dominators call
3406         argument.  Call verify_dominator when reusing dominator info.
3407
3408 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
3409
3410         PR target/66563
3411         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
3412         an additional element of the unspec vector.  Modify indices
3413         of operands.
3414         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
3415         * config/sh/sh.c (prepare_move_operands): Pass incremented
3416         const_int to gen_GOTaddr2picreg.
3417         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
3418
3419 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
3420
3421         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
3422         Condition on TARGET_FLOAT.
3423
3424 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
3425
3426         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
3427         and (no)crypto.
3428
3429 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
3430
3431         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
3432
3433         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
3434         aarch64_err_no_fpadvsimd.
3435
3436         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
3437         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
3438         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
3439         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
3440         Turn error into assert, test TARGET_FLOAT.
3441         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
3442         TARGET_FLOAT.
3443
3444 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
3445
3446         PR debug/66482
3447         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
3448
3449 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
3450
3451         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
3452
3453 2015-06-24 Renlin Li <renlin.li@arm.com>
3454
3455         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
3456         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
3457
3458 2015-06-24  Richard Biener  <rguenther@suse.de>
3459
3460         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
3461         (main): Likewise.
3462         (lower_opt_convert): Support lowering of conditional view_convert.
3463         (parser::parse_operation): Likewise.
3464         (parser::parse_for): Likewise.
3465
3466 2015-06-24  Renlin Li  <renlin.li@arm.com>
3467
3468         * varasm.c (emit_local): Use unsigned int for align variable.
3469
3470 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3471
3472         PR target/63408
3473         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
3474         for negative numbers.
3475
3476 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3477
3478         PR rtl-optimization/66306
3479         * reload.c (find_reloads): Swap the match_dup info for
3480         commutative operands.
3481
3482 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3483
3484         * config/s390/vx-builtins.md
3485         ("vec_scatter_element<mode>_<non_vec_int>")
3486         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
3487         attribute with bhfgq.
3488
3489 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3490
3491         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
3492
3493 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3494
3495         * config/s390/s390-builtin-types.def: Add flag to indicate the
3496         options under which the function type is needed.
3497         * config/s390/s390-builtins.def: Add flag to indicate the options
3498         under which the builtin is enabled.
3499         * config/s390/s390-builtins.h: Add flags parameter to macro
3500         definitions.
3501         (bflags_for_builtin): New function.
3502         (flags_for_builtin): Renamed to ...
3503         (opflags_for_builtin): ... this.
3504         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
3505         flags_for_builtin to bflags_for_builtin and
3506         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
3507         * config/s390/s390.c: Add initialization of bflags_builtin and
3508         opflags_builtin arrays.
3509         Remove code for flags_builtin.
3510         (s390_init_builtins): Only create builtin function types if one of
3511         their flags is active.
3512         Only create builtins if all of their flags are active.
3513         (s390_expand_builtin): Rename flags_for_builtin to
3514         opflags_for_builtin.
3515
3516 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3517
3518         * config/s390/vecintrin.h: Remove internal builtins.
3519
3520 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3521
3522         * config/s390/s390.c (s390_secondary_reload): Fix check for
3523         GENERAL_REGS register class.
3524
3525 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3526
3527         * config/s390/s390.c (s390_support_vector_misalignment): Call
3528         default implementation for !TARGET_VX.
3529
3530 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3531
3532         * config/s390/s390.c (s390_legitimate_constant_p): Add
3533         TARGET_VX check.
3534
3535 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3536
3537         * config/s390/s390.c (s390_vector_abi): New variable definition.
3538         (s390_check_type_for_vector_abi): New function.
3539         (TARGET_ASM_FILE_END): New macro definition.
3540         (s390_asm_file_end): New function.
3541         (s390_function_arg): Call s390_check_type_for_vector_abi.
3542         (s390_gimplify_va_arg): Likewise.
3543         * configure: Regenerate.
3544         * configure.ac: Check for .gnu_attribute Binutils feature.
3545
3546 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
3547
3548         PR target/65803
3549         * config/bfin/bfin.c (hwloop_optimize): Initialize
3550         JUMP_LABEL for newly created jump.
3551
3552 2015-06-23  Tristan Gingold  <gingold@adacore.com>
3553
3554         * collect-utils.c (collect_wait): Unlink the response file here
3555         instead of...
3556         (do_wait): ...here.
3557         (utils_cleanup): ...and here.
3558
3559 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
3560
3561         * df-scan.c: Don't include target-def.h.
3562         * targhooks.c: Likewise.
3563         * config/arm/arm-c.c: Likewise.
3564         * config/i386/i386-c.c: Likewise.
3565         * config/nds32/nds32-cost.c: Likewise.
3566         * config/nds32/nds32-fp-as-gp.c: Likewise.
3567         * config/nds32/nds32-intrinsic.c: Likewise.
3568         * config/nds32/nds32-isr.c: Likewise.
3569         * config/nds32/nds32-md-auxiliary.c: Likewise.
3570         * config/nds32/nds32-memory-manipulation.c: Likewise.
3571         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
3572         * config/nds32/nds32-predicates.c: Likewise.
3573
3574 2015-06-23  Richard Biener  <rguenther@suse.de>
3575
3576         PR tree-optimization/66636
3577         * tree-vect-stmts.c (vectorizable_store): Properly compute the
3578         def type for further defs for strided stores.
3579
3580 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
3581
3582         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
3583         conditional selects.
3584         (setcc_int<mode>, setcc_float<mode>): Reformat.
3585
3586 2015-06-23  Marek Polacek  <polacek@redhat.com>
3587
3588         * match.pd ((x + y) - (x | y) -> x & y,
3589         (x + y) - (x & y) -> x | y): New patterns.
3590
3591 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
3592
3593         PR 65711
3594         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
3595         '-dynamic-linker' within %{!shared: ...}.
3596
3597 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
3598
3599         PR target/66560
3600         * config/i386/predicates.md (addsub_vm_operator): New predicate.
3601         (addsub_vs_operator): Ditto.
3602         (addsub_vs_parallel): Ditto.
3603         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
3604         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
3605         Put minus RTX before plus and adjust vec_merge selector.
3606         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
3607         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
3608         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
3609         (addsub vec_merge splitters): New combiner splitters.
3610         (addsub vec_select/vec_concat splitters): Ditto.
3611
3612 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
3613
3614         PR tree-optimization/66449
3615         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
3616         POINTER_PLUS_EXPR for pointers.
3617
3618 2015-06-23  Alan Modra  <amodra@gmail.com>
3619
3620         * rtlanal.c (commutative_operand_precedence): Correct comments.
3621         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
3622         declaration.  Return an int.  Distinguish REG,REG return from
3623         others.
3624         (struct simplify_plus_minus_op_data): Make local to function.
3625         (simplify_plus_minus): Don't set canonicalized if merely sorting
3626         registers.  Avoid packing ops if nothing changes.  White space fixes.
3627
3628 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
3629
3630         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
3631         -fdump-ada-spec is passed but not if -fsyntax-only is.
3632
3633 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
3634
3635         PR bootstrap/63740
3636         * lra-lives.c (process_bb_lives): Check insn copying the same
3637         reload pseudo and don't create a copy for it.
3638
3639 2015-06-22  Tom de Vries  <tom@codesourcery.com>
3640
3641         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
3642         for cond_stmt.
3643
3644 2015-06-22  Tom de Vries  <tom@codesourcery.com>
3645
3646         * builtins.def (DEF_GOMP_BUILTIN): Test
3647         'flag_tree_parallelize_loops > 1' instead of
3648         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
3649
3650 2015-06-22  Tom de Vries  <tom@codesourcery.com>
3651
3652         * dominance.c (calculate_dominance_info): Verify dominators if
3653         early-out.
3654
3655 2015-06-22  Marek Polacek  <polacek@redhat.com>
3656
3657         * match.pd ((x ^ y) ^ (x | y) -> x & y,
3658         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
3659         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
3660         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
3661
3662 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
3663
3664         PR target/65871
3665         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
3666         cost of embedded comparison.
3667
3668 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3669
3670         PR target/65914
3671         * config/rs6000/predicates.md (altivec_register_operand): Permit
3672         virtual stack registers.
3673         (vsx_register_operand): Likewise.
3674         (vfloat_operand): Likewise.
3675         (vint_operand): Likewise.
3676         (vlogical_operand): Likewise.
3677
3678 2015-06-22  Richard Biener  <rguenther@suse.de>
3679
3680         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
3681         and single_scalar_iteration_cost members.
3682         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
3683         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
3684         (vect_get_single_scalar_iteration_cost): Remove.
3685         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
3686         Use LOOP_VINFO_SCALAR_ITERATION_COST.
3687         * tree-vect-loop.c (destroy_loop_vec_info): Free
3688         scalar_cost_vec.
3689         (vect_get_single_scalar_iteration_cost): Compute result into
3690         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
3691         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
3692         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
3693         (vect_estimate_min_profitable_iters): Use them.
3694
3695 2015-06-22  Christian Bruel  <christian.bruel@st.com>
3696
3697         PR target/52144
3698         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
3699         (TARGET_INSERT_ATTRIBUTES): Define.
3700         (thumb_flipper): New var.
3701         * config/arm/arm.opt (-mflip-thumb): New switch.
3702
3703 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
3704             Martin Liska  <mliska@suse.cz>
3705
3706         PR ipa/65908
3707         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
3708         construction of arg_types.
3709         (sem_function::sem_function): Likewise.
3710         (sem_function::~sem_function): Remove destruction of arg_types.
3711         (sem_function::compatible_parm_types_p): New function.
3712         (sem_function::equals_wpa): Reorg matching of return values
3713         and parameter types.
3714         (sem_function::equals_private): Reorg mathcing of argument types.
3715         (sem_function::parse_tree_args): Remove.
3716         * ipa-icf.h (init_wpa): Do not call it.
3717         (parse_tree_args): Remove.
3718         (compatible_parm_types_p): Declare.
3719         (result_type): Remove.
3720         (arg_types): Remove.
3721
3722 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
3723
3724         PR ipa/66351
3725         * ipa-polymorphic-call.c
3726         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
3727         initializing alias oracle; fix formating; set base_alias_set if it
3728         is known.
3729
3730 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
3731
3732         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
3733         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
3734         (find_inc): Likewise.
3735         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
3736         swapping.
3737         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
3738         * df-scan.c (df_swap_refs): Remove.
3739         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
3740         * dominance.c (link_roots): Use std::swap instead of manually swapping.
3741         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
3742         * fold-const.c (fold_relational_const): Likewise.
3743         * genattrtab.c (simplify_test_exp): Likewise.
3744         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
3745         gimple_simplify): Likewise.
3746         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
3747         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
3748         * ipa-devirt.c (add_type_duplicate): Likewise.
3749         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
3750         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
3751         * lra.c (lra_create_copy): Likewise.
3752         * lto-streamer-out.c (DFS::DFS): Likewise.
3753         * modulo-sched.c (get_sched_window): Likewise.
3754         * omega.c (omega_pretty_print_problem): Likewise.
3755         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
3756         * reload1.c (reloads_unique_chain_p): Likewise.
3757         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
3758         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
3759         use std::swap.
3760         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
3761         manually swapping.
3762         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
3763         predicate_mem_writes): Likewise.
3764         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
3765         * tree-predcom.c (combine_chains): Likewise.
3766         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
3767         refs_may_alias_p_1): Likewise.
3768         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
3769         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
3770         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
3771         number_of_iterations_cond): Likewise.
3772         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
3773         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
3774         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
3775         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
3776         * tree-vrp.c (extract_range_from_binary_expr_1,
3777         extract_range_from_unary_expr_1): Likewise.
3778
3779 2015-06-20  Marek Polacek  <polacek@redhat.com>
3780
3781         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
3782
3783 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
3784
3785         PR target/66591
3786         * config/sh/sh.c (prepare_move_operands): Replace subreg
3787         index term with R0 for base and index addressing.
3788
3789 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
3790
3791         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
3792         op1 is an fp zero.
3793         (movsf_aarch64): Change condition from register_operand to
3794         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
3795         load1.  Change type for alternative 7 to store1.
3796         (movdf_aarch64): Likewise.
3797
3798 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
3799
3800         * config/vax/vax.md: Adjust sign/zero extend patterns to
3801         handle SUBREGs in operands[1].
3802
3803 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3804
3805         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
3806         of manually swapping.
3807         (expand_vec_perm_interleave2): Likewise.
3808
3809 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
3810
3811         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
3812         reuse bounds created for abnormal ssa names.
3813
3814 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
3815
3816         * config/nvptx/nvptx.md (allocate_stack): Rename to...
3817         (allocate_stack_<mode>): ... this, and add :P on both
3818         match_operand and unspec.
3819         (allocate_stack): New expander.
3820
3821 2015-06-19  Christian Bruel  <christian.bruel@st.com>
3822
3823         PR target/66541
3824         PR target/52144
3825         * config/arm/arm.c (arm_set_current_function): Handle
3826         explicit default options.
3827
3828 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
3829
3830         * config/i386/i386.md (*movsicc_noc_zext): New insn.
3831         (zero-extended cmove with mem peephole2): New pattern.
3832         (cmove with mem peephole2): Merge patterns.
3833
3834 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
3835
3836         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
3837
3838 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
3839
3840         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
3841         * config/mips/mips.md (*madd4<mode>): Ditto.
3842         (*nmadd3<mode>) Ditto.
3843         (*nmadd4<mode>_fastmath): Ditto.
3844         (*nmadd3<mode>_fastmath): Ditto.
3845         (*nmsub4<mode>): Ditto.
3846         (*nmsub3<mode>): Ditto.
3847         (*nmsub4<mode>_fastmath): Ditto.
3848         (*nmsub3<mode>_fastmath): Ditto.
3849
3850 2015-06-18  Michael Matz  <matz@suse.de>
3851
3852         PR middle-end/66253
3853         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
3854         grouped strided stores.
3855         (vectorizable_load): Don't use the DR from first_stmt in
3856         the non-SLP grouped strided case.
3857
3858 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
3859
3860         PR target/66569
3861         * function.c (assign_bounds): Add arguments assign_regs,
3862         assign_special, assign_bt.
3863         (assign_parms): For vararg functions handle bounds in BT
3864         and special slots after incoming vararg bounds.
3865
3866 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
3867
3868         PR middle-end/66568
3869         * cfgexpand.c (expand_return): Handle missing bounds.
3870         (expand_gimple_stmt_1): Likewise.
3871         * tree-chkp.c (chkp_expand_zero_bounds): New.
3872         * tree-chkp.h (chkp_expand_zero_bounds): New.
3873
3874 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
3875
3876         PR middle-end/66567
3877         * ipa-chkp.c (chkp_maybe_create_clone): Require
3878         functions to be instrumentable.
3879         * tree-chkp.c (chkp_replace_function_pointer): Use
3880         chkp_instrumentable_p instead of attribute check.
3881
3882 2015-06-18  Richard Biener  <rguenther@suse.de>
3883
3884         PR tree-optimization/66510
3885         * tree-vect-stmts.c (vectorizable_load): Properly compute the
3886         number of vector loads for SLP permuted loads.
3887         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
3888         check the stride for loop vectorization.
3889         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
3890         vectorization factor.
3891         (vect_analyze_group_access): If the group size is not a power
3892         of two require a epilogue loop.
3893         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
3894         compute and optimizing and alias test pruning after final
3895         vectorization factor computation.
3896         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
3897         vector alignment.
3898         (vect_transform_slp_perm_load): Properly compute the original
3899         number of vector load stmts.
3900
3901 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
3902
3903         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
3904         "unlikely character , in @var" warning.
3905
3906 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
3907
3908         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
3909         (ix86_function_arg_advance): Ditto.
3910         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
3911
3912 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
3913
3914         * function.h (struct rtl_data): Remove struct and accessor macros.
3915         * emit-rtl.h (struct rtl_data): Relocate to here.
3916         * Makefile.in (GTFILES): Add emit-rtl.h.
3917         * df-core.c: Include emit-rtl.h.
3918         * genattrtab.c: Likewise.
3919         * genconditions.c: Likewise.
3920         * genpreds.c: Likewise.
3921         * genrecog.c: Likewise.
3922         * regcprop.c: Likewise.
3923         * resource.c: Likewise.
3924         * sched-rgn.c: Likewise.
3925         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
3926         * config/i386/winnt.c: Likewise.
3927
3928 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
3929
3930         PR middle-end/66429
3931         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
3932         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
3933         and has_force_vectorize_loops flags from cfun into
3934         child_cfun.
3935         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
3936         if simduid is non-NULL.
3937         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
3938         * passes.def (pass_simduid_cleanup): Add new pass after loop
3939         passes.
3940         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
3941         indirection from htab argument's type.
3942         (shrink_simd_arrays): New function.
3943         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
3944         Don't call adjust_simduid_builtins if there are no loops.
3945         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
3946         (pass_simduid_cleanup::execute): New method.
3947         (make_pass_simduid_cleanup): New function.
3948
3949 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
3950
3951         * tree-core.h (tree_target_option): Make opts field a pointer to a
3952         cl_target_option instead of an instance of the struct.
3953         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
3954         the structure.
3955         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
3956         TARGET_OPTION_NODE.
3957         (copy_node_stat): Allocate and copy struct cl_target_option.
3958
3959 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
3960
3961         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
3962         Remove conditional exposure of prototypes.
3963         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
3964         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
3965         definitions in tree.h with functions.
3966         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
3967         anon_aggrname_p.
3968         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
3969
3970 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
3971
3972         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
3973         (*cmp<mode>_signed): ... this.
3974         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
3975         (*cmp<mode>_unsigned): ... this.  Remove %b.
3976
3977 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
3978
3979         * coretypes.h: Include input.h and as-a.h.
3980         * rtl.h: Include input.h and as-a.h for generator files.
3981         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
3982         * vec.c: Don't include diagnostic-core.h.
3983         * alias.c: Do not include input.h, line-map.h or is-a.h.
3984         * asan.c: Likewise.
3985         * attribs.c: Likewise.
3986         * auto-inc-dec.c: Likewise.
3987         * auto-profile.c: Likewise.
3988         * bb-reorder.c: Likewise.
3989         * bt-load.c: Likewise.
3990         * builtins.c: Likewise.
3991         * caller-save.c: Likewise.
3992         * calls.c: Likewise.
3993         * ccmp.c: Likewise.
3994         * cfg.c: Likewise.
3995         * cfganal.c: Likewise.
3996         * cfgbuild.c: Likewise.
3997         * cfgcleanup.c: Likewise.
3998         * cfgexpand.c: Likewise.
3999         * cfghooks.c: Likewise.
4000         * cfgloop.c: Likewise.
4001         * cfgloop.h: Likewise.
4002         * cfgloopanal.c: Likewise.
4003         * cfgloopmanip.c: Likewise.
4004         * cfgrtl.c: Likewise.
4005         * cgraph.c: Likewise.
4006         * cgraphbuild.c: Likewise.
4007         * cgraphclones.c: Likewise.
4008         * cgraphunit.c: Likewise.
4009         * cilk-common.c: Likewise.
4010         * combine-stack-adj.c: Likewise.
4011         * combine.c: Likewise.
4012         * compare-elim.c: Likewise.
4013         * convert.c: Likewise.
4014         * coverage.c: Likewise.
4015         * cppbuiltin.c: Likewise.
4016         * cprop.c: Likewise.
4017         * cse.c: Likewise.
4018         * cselib.c: Likewise.
4019         * data-streamer-in.c: Likewise.
4020         * data-streamer-out.c: Likewise.
4021         * data-streamer.c: Likewise.
4022         * dbxout.c: Likewise.
4023         * dce.c: Likewise.
4024         * ddg.c: Likewise.
4025         * debug.c: Likewise.
4026         * df-core.c: Likewise.
4027         * df-problems.c: Likewise.
4028         * df-scan.c: Likewise.
4029         * df.h: Likewise.
4030         * dfp.c: Likewise.
4031         * diagnostic-core.h: Likewise.
4032         * diagnostic.c: Likewise.
4033         * dojump.c: Likewise.
4034         * dominance.c: Likewise.
4035         * domwalk.c: Likewise.
4036         * double-int.c: Likewise.
4037         * dse.c: Likewise.
4038         * dumpfile.c: Likewise.
4039         * dumpfile.h: Likewise.
4040         * dwarf2asm.c: Likewise.
4041         * dwarf2cfi.c: Likewise.
4042         * dwarf2out.c: Likewise.
4043         * emit-rtl.c: Likewise.
4044         * et-forest.c: Likewise.
4045         * except.c: Likewise.
4046         * explow.c: Likewise.
4047         * expmed.c: Likewise.
4048         * expr.c: Likewise.
4049         * final.c: Likewise.
4050         * fixed-value.c: Likewise.
4051         * fold-const.c: Likewise.
4052         * function.c: Likewise.
4053         * fwprop.c: Likewise.
4054         * gcc-plugin.h: Likewise.
4055         * gcse.c: Likewise.
4056         * generic-match-head.c: Likewise.
4057         * ggc-page.c: Likewise.
4058         * gimple-builder.c: Likewise.
4059         * gimple-expr.c: Likewise.
4060         * gimple-fold.c: Likewise.
4061         * gimple-iterator.c: Likewise.
4062         * gimple-low.c: Likewise.
4063         * gimple-match-head.c: Likewise.
4064         * gimple-pretty-print.c: Likewise.
4065         * gimple-ssa-isolate-paths.c: Likewise.
4066         * gimple-ssa-strength-reduction.c: Likewise.
4067         * gimple-streamer-in.c: Likewise.
4068         * gimple-streamer-out.c: Likewise.
4069         * gimple-streamer.h: Likewise.
4070         * gimple-walk.c: Likewise.
4071         * gimple.c: Likewise.
4072         * gimplify-me.c: Likewise.
4073         * gimplify.c: Likewise.
4074         * godump.c: Likewise.
4075         * graph.c: Likewise.
4076         * graphite-blocking.c: Likewise.
4077         * graphite-dependences.c: Likewise.
4078         * graphite-interchange.c: Likewise.
4079         * graphite-isl-ast-to-gimple.c: Likewise.
4080         * graphite-optimize-isl.c: Likewise.
4081         * graphite-poly.c: Likewise.
4082         * graphite-scop-detection.c: Likewise.
4083         * graphite-sese-to-poly.c: Likewise.
4084         * graphite.c: Likewise.
4085         * haifa-sched.c: Likewise.
4086         * hw-doloop.c: Likewise.
4087         * ifcvt.c: Likewise.
4088         * init-regs.c: Likewise.
4089         * input.c: Likewise.
4090         * internal-fn.c: Likewise.
4091         * ipa-chkp.c: Likewise.
4092         * ipa-comdats.c: Likewise.
4093         * ipa-cp.c: Likewise.
4094         * ipa-devirt.c: Likewise.
4095         * ipa-icf-gimple.c: Likewise.
4096         * ipa-icf.c: Likewise.
4097         * ipa-inline-analysis.c: Likewise.
4098         * ipa-inline-transform.c: Likewise.
4099         * ipa-inline.c: Likewise.
4100         * ipa-polymorphic-call.c: Likewise.
4101         * ipa-profile.c: Likewise.
4102         * ipa-prop.c: Likewise.
4103         * ipa-pure-const.c: Likewise.
4104         * ipa-ref.c: Likewise.
4105         * ipa-reference.c: Likewise.
4106         * ipa-split.c: Likewise.
4107         * ipa-utils.c: Likewise.
4108         * ipa-visibility.c: Likewise.
4109         * ipa.c: Likewise.
4110         * ira-build.c: Likewise.
4111         * ira-color.c: Likewise.
4112         * ira-conflicts.c: Likewise.
4113         * ira-costs.c: Likewise.
4114         * ira-emit.c: Likewise.
4115         * ira-lives.c: Likewise.
4116         * ira.c: Likewise.
4117         * jump.c: Likewise.
4118         * langhooks.c: Likewise.
4119         * lcm.c: Likewise.
4120         * loop-doloop.c: Likewise.
4121         * loop-init.c: Likewise.
4122         * loop-invariant.c: Likewise.
4123         * loop-iv.c: Likewise.
4124         * loop-unroll.c: Likewise.
4125         * lower-subreg.c: Likewise.
4126         * lra-assigns.c: Likewise.
4127         * lra-coalesce.c: Likewise.
4128         * lra-constraints.c: Likewise.
4129         * lra-eliminations.c: Likewise.
4130         * lra-lives.c: Likewise.
4131         * lra-remat.c: Likewise.
4132         * lra-spills.c: Likewise.
4133         * lra.c: Likewise.
4134         * lto-cgraph.c: Likewise.
4135         * lto-compress.c: Likewise.
4136         * lto-opts.c: Likewise.
4137         * lto-section-in.c: Likewise.
4138         * lto-section-out.c: Likewise.
4139         * lto-streamer-in.c: Likewise.
4140         * lto-streamer-out.c: Likewise.
4141         * lto-streamer.c: Likewise.
4142         * mcf.c: Likewise.
4143         * mode-switching.c: Likewise.
4144         * modulo-sched.c: Likewise.
4145         * omega.c: Likewise.
4146         * omp-low.c: Likewise.
4147         * optabs.c: Likewise.
4148         * opts-global.c: Likewise.
4149         * opts.h: Likewise.
4150         * passes.c: Likewise.
4151         * plugin.c: Likewise.
4152         * postreload-gcse.c: Likewise.
4153         * postreload.c: Likewise.
4154         * predict.c: Likewise.
4155         * pretty-print.h: Likewise.
4156         * print-rtl.c: Likewise.
4157         * print-tree.c: Likewise.
4158         * profile.c: Likewise.
4159         * real.c: Likewise.
4160         * realmpfr.c: Likewise.
4161         * recog.c: Likewise.
4162         * ree.c: Likewise.
4163         * reg-stack.c: Likewise.
4164         * regcprop.c: Likewise.
4165         * reginfo.c: Likewise.
4166         * regrename.c: Likewise.
4167         * regstat.c: Likewise.
4168         * reload.c: Likewise.
4169         * reload1.c: Likewise.
4170         * reorg.c: Likewise.
4171         * resource.c: Likewise.
4172         * rtl-chkp.c: Likewise.
4173         * rtl-error.c: Likewise.
4174         * rtlanal.c: Likewise.
4175         * rtlhooks.c: Likewise.
4176         * sanopt.c: Likewise.
4177         * sched-deps.c: Likewise.
4178         * sched-ebb.c: Likewise.
4179         * sched-rgn.c: Likewise.
4180         * sched-vis.c: Likewise.
4181         * sdbout.c: Likewise.
4182         * sel-sched-dump.c: Likewise.
4183         * sel-sched-ir.c: Likewise.
4184         * sel-sched.c: Likewise.
4185         * sese.c: Likewise.
4186         * shrink-wrap.c: Likewise.
4187         * simplify-rtx.c: Likewise.
4188         * stack-ptr-mod.c: Likewise.
4189         * statistics.c: Likewise.
4190         * stmt.c: Likewise.
4191         * stor-layout.c: Likewise.
4192         * store-motion.c: Likewise.
4193         * streamer-hooks.c: Likewise.
4194         * stringpool.c: Likewise.
4195         * symtab.c: Likewise.
4196         * target-globals.c: Likewise.
4197         * targhooks.c: Likewise.
4198         * toplev.c: Likewise.
4199         * tracer.c: Likewise.
4200         * trans-mem.c: Likewise.
4201         * tree-affine.c: Likewise.
4202         * tree-browser.c: Likewise.
4203         * tree-call-cdce.c: Likewise.
4204         * tree-cfg.c: Likewise.
4205         * tree-cfgcleanup.c: Likewise.
4206         * tree-chkp-opt.c: Likewise.
4207         * tree-chkp.c: Likewise.
4208         * tree-chrec.c: Likewise.
4209         * tree-complex.c: Likewise.
4210         * tree-data-ref.c: Likewise.
4211         * tree-dfa.c: Likewise.
4212         * tree-diagnostic.c: Likewise.
4213         * tree-dump.c: Likewise.
4214         * tree-eh.c: Likewise.
4215         * tree-emutls.c: Likewise.
4216         * tree-if-conv.c: Likewise.
4217         * tree-inline.c: Likewise.
4218         * tree-into-ssa.c: Likewise.
4219         * tree-iterator.c: Likewise.
4220         * tree-loop-distribution.c: Likewise.
4221         * tree-nested.c: Likewise.
4222         * tree-nrv.c: Likewise.
4223         * tree-object-size.c: Likewise.
4224         * tree-outof-ssa.c: Likewise.
4225         * tree-parloops.c: Likewise.
4226         * tree-phinodes.c: Likewise.
4227         * tree-predcom.c: Likewise.
4228         * tree-pretty-print.c: Likewise.
4229         * tree-profile.c: Likewise.
4230         * tree-scalar-evolution.c: Likewise.
4231         * tree-sra.c: Likewise.
4232         * tree-ssa-address.c: Likewise.
4233         * tree-ssa-alias.c: Likewise.
4234         * tree-ssa-ccp.c: Likewise.
4235         * tree-ssa-coalesce.c: Likewise.
4236         * tree-ssa-copy.c: Likewise.
4237         * tree-ssa-copyrename.c: Likewise.
4238         * tree-ssa-dce.c: Likewise.
4239         * tree-ssa-dom.c: Likewise.
4240         * tree-ssa-dse.c: Likewise.
4241         * tree-ssa-forwprop.c: Likewise.
4242         * tree-ssa-ifcombine.c: Likewise.
4243         * tree-ssa-live.c: Likewise.
4244         * tree-ssa-loop-ch.c: Likewise.
4245         * tree-ssa-loop-im.c: Likewise.
4246         * tree-ssa-loop-ivcanon.c: Likewise.
4247         * tree-ssa-loop-ivopts.c: Likewise.
4248         * tree-ssa-loop-manip.c: Likewise.
4249         * tree-ssa-loop-niter.c: Likewise.
4250         * tree-ssa-loop-prefetch.c: Likewise.
4251         * tree-ssa-loop-unswitch.c: Likewise.
4252         * tree-ssa-loop.c: Likewise.
4253         * tree-ssa-math-opts.c: Likewise.
4254         * tree-ssa-operands.c: Likewise.
4255         * tree-ssa-phiopt.c: Likewise.
4256         * tree-ssa-phiprop.c: Likewise.
4257         * tree-ssa-pre.c: Likewise.
4258         * tree-ssa-propagate.c: Likewise.
4259         * tree-ssa-reassoc.c: Likewise.
4260         * tree-ssa-sccvn.c: Likewise.
4261         * tree-ssa-scopedtables.c: Likewise.
4262         * tree-ssa-sink.c: Likewise.
4263         * tree-ssa-strlen.c: Likewise.
4264         * tree-ssa-structalias.c: Likewise.
4265         * tree-ssa-tail-merge.c: Likewise.
4266         * tree-ssa-ter.c: Likewise.
4267         * tree-ssa-threadedge.c: Likewise.
4268         * tree-ssa-threadupdate.c: Likewise.
4269         * tree-ssa-uncprop.c: Likewise.
4270         * tree-ssa-uninit.c: Likewise.
4271         * tree-ssa.c: Likewise.
4272         * tree-ssanames.c: Likewise.
4273         * tree-stdarg.c: Likewise.
4274         * tree-streamer-in.c: Likewise.
4275         * tree-streamer-out.c: Likewise.
4276         * tree-streamer.c: Likewise.
4277         * tree-switch-conversion.c: Likewise.
4278         * tree-tailcall.c: Likewise.
4279         * tree-vect-data-refs.c: Likewise.
4280         * tree-vect-generic.c: Likewise.
4281         * tree-vect-loop-manip.c: Likewise.
4282         * tree-vect-loop.c: Likewise.
4283         * tree-vect-patterns.c: Likewise.
4284         * tree-vect-slp.c: Likewise.
4285         * tree-vect-stmts.c: Likewise.
4286         * tree-vectorizer.c: Likewise.
4287         * tree-vrp.c: Likewise.
4288         * tree.c: Likewise.
4289         * tsan.c: Likewise.
4290         * ubsan.c: Likewise.
4291         * valtrack.c: Likewise.
4292         * value-prof.c: Likewise.
4293         * var-tracking.c: Likewise.
4294         * varasm.c: Likewise.
4295         * varpool.c: Likewise.
4296         * vmsdbgout.c: Likewise.
4297         * vtable-verify.c: Likewise.
4298         * web.c: Likewise.
4299         * wide-int.cc: Likewise.
4300         * xcoffout.c: Likewise.
4301         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
4302         * common/common-targhooks.c: Likewise.
4303         * config/aarch64/aarch64-builtins.c: Likewise.
4304         * config/aarch64/aarch64.c: Likewise.
4305         * config/alpha/alpha.c: Likewise.
4306         * config/arc/arc.c: Likewise.
4307         * config/arm/aarch-common.c: Likewise.
4308         * config/arm/arm-builtins.c: Likewise.
4309         * config/arm/arm-c.c: Likewise.
4310         * config/arm/arm.c: Likewise.
4311         * config/avr/avr-c.c: Likewise.
4312         * config/avr/avr-log.c: Likewise.
4313         * config/avr/avr.c: Likewise.
4314         * config/bfin/bfin.c: Likewise.
4315         * config/c6x/c6x.c: Likewise.
4316         * config/cr16/cr16.c: Likewise.
4317         * config/cris/cris.c: Likewise.
4318         * config/darwin-c.c: Likewise.
4319         * config/darwin.c: Likewise.
4320         * config/default-c.c: Likewise.
4321         * config/epiphany/epiphany.c: Likewise.
4322         * config/epiphany/mode-switch-use.c: Likewise.
4323         * config/epiphany/resolve-sw-modes.c: Likewise.
4324         * config/fr30/fr30.c: Likewise.
4325         * config/frv/frv.c: Likewise.
4326         * config/ft32/ft32.c: Likewise.
4327         * config/glibc-c.c: Likewise.
4328         * config/h8300/h8300.c: Likewise.
4329         * config/i386/i386-c.c: Likewise.
4330         * config/i386/i386.c: Likewise.
4331         * config/i386/msformat-c.c: Likewise.
4332         * config/i386/winnt-cxx.c: Likewise.
4333         * config/i386/winnt-stubs.c: Likewise.
4334         * config/i386/winnt.c: Likewise.
4335         * config/ia64/ia64-c.c: Likewise.
4336         * config/ia64/ia64.c: Likewise.
4337         * config/iq2000/iq2000.c: Likewise.
4338         * config/lm32/lm32.c: Likewise.
4339         * config/m32c/m32c-pragma.c: Likewise.
4340         * config/m32c/m32c.c: Likewise.
4341         * config/m32r/m32r.c: Likewise.
4342         * config/m68k/m68k.c: Likewise.
4343         * config/mcore/mcore.c: Likewise.
4344         * config/mep/mep-pragma.c: Likewise.
4345         * config/mep/mep.c: Likewise.
4346         * config/microblaze/microblaze-c.c: Likewise.
4347         * config/microblaze/microblaze.c: Likewise.
4348         * config/mips/mips.c: Likewise.
4349         * config/mmix/mmix.c: Likewise.
4350         * config/mn10300/mn10300.c: Likewise.
4351         * config/moxie/moxie.c: Likewise.
4352         * config/msp430/msp430-c.c: Likewise.
4353         * config/msp430/msp430.c: Likewise.
4354         * config/nds32/nds32-cost.c: Likewise.
4355         * config/nds32/nds32-fp-as-gp.c: Likewise.
4356         * config/nds32/nds32-intrinsic.c: Likewise.
4357         * config/nds32/nds32-isr.c: Likewise.
4358         * config/nds32/nds32-md-auxiliary.c: Likewise.
4359         * config/nds32/nds32-memory-manipulation.c: Likewise.
4360         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
4361         * config/nds32/nds32-predicates.c: Likewise.
4362         * config/nds32/nds32.c: Likewise.
4363         * config/nios2/nios2.c: Likewise.
4364         * config/nvptx/nvptx.c: Likewise.
4365         * config/pa/pa.c: Likewise.
4366         * config/pdp11/pdp11.c: Likewise.
4367         * config/rl78/rl78-c.c: Likewise.
4368         * config/rl78/rl78.c: Likewise.
4369         * config/rs6000/rs6000-c.c: Likewise.
4370         * config/rs6000/rs6000.c: Likewise.
4371         * config/rx/rx.c: Likewise.
4372         * config/s390/s390-c.c: Likewise.
4373         * config/s390/s390.c: Likewise.
4374         * config/sh/sh-c.c: Likewise.
4375         * config/sh/sh-mem.cc: Likewise.
4376         * config/sh/sh.c: Likewise.
4377         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
4378         * config/sh/sh_treg_combine.cc: Likewise.
4379         * config/sol2-c.c: Likewise.
4380         * config/sol2-cxx.c: Likewise.
4381         * config/sol2-stubs.c: Likewise.
4382         * config/sol2.c: Likewise.
4383         * config/sparc/sparc-c.c: Likewise.
4384         * config/sparc/sparc.c: Likewise.
4385         * config/spu/spu-c.c: Likewise.
4386         * config/spu/spu.c: Likewise.
4387         * config/stormy16/stormy16.c: Likewise.
4388         * config/tilegx/mul-tables.c: Likewise.
4389         * config/tilegx/tilegx-c.c: Likewise.
4390         * config/tilegx/tilegx.c: Likewise.
4391         * config/tilepro/mul-tables.c: Likewise.
4392         * config/tilepro/tilepro-c.c: Likewise.
4393         * config/tilepro/tilepro.c: Likewise.
4394         * config/v850/v850-c.c: Likewise.
4395         * config/v850/v850.c: Likewise.
4396         * config/vax/vax.c: Likewise.
4397         * config/visium/visium.c: Likewise.
4398         * config/vms/vms-c.c: Likewise.
4399         * config/vms/vms.c: Likewise.
4400         * config/vxworks.c: Likewise.
4401         * config/winnt-c.c: Likewise.
4402         * config/xtensa/xtensa.c: Likewise.
4403
4404 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
4405
4406         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
4407         function.
4408         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
4409
4410 2015-06-17  Richard Biener  <rguenther@suse.de>
4411
4412         PR tree-optimization/66251
4413         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
4414         stmts for SLP strided stores.
4415
4416         Revert
4417         2015-05-22  Richard Biener  <rguenther@suse.de>
4418
4419         PR tree-optimization/66251
4420         * tree-vect-stmts.c (vectorizable_conversion): Properly
4421         set STMT_VINFO_VEC_STMT even for the SLP case.
4422
4423         2015-05-26  Michael Matz  <matz@suse.de>
4424
4425         PR middle-end/66251
4426         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
4427         STMT_VINFO_VEC_STMT, also with SLP.
4428
4429 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
4430
4431         PR target/56766
4432         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
4433         (*avx_addsubv4df3_1s): Ditto.
4434         (*sse3_addsubv2df3_1): Ditto.
4435         (*sse3_addsubv2df3_1s): Ditto.
4436         (*avx_addsubv8sf3_1): Ditto.
4437         (*avx_addsubv8sf3_1s): Ditto.
4438         (*sse3_addsubv4sf3_1): Ditto.
4439         (*sse3_addsubv4sf3_1s): Ditto.
4440
4441 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
4442
4443         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
4444         (SYSROOT_SUFFIX_SPEC): Update.
4445         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
4446         (STARTFILE_PREFIX_SPEC): Update.
4447         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
4448         (MULTILIB_REQUIRED): New.
4449         (MULTILIB_OSDIRNAMES): New.
4450         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
4451         (MULTILIB_REQUIRED): New.
4452         (MULTILIB_OSDIRNAMES): New.
4453
4454 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
4455
4456         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
4457         * config/aarch64/aarch64-options-extensions.def: Update "fP",
4458         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
4459         * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
4460         (AARCH64_FL_PAN): New.
4461         (AARCH64_FL_LOR): New.
4462         (AARCH64_FL_RDMA): New.
4463         (AARCH64_FL_FOR_ARCH8_1): New.
4464         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
4465         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
4466
4467 2015-06-16  Martin Liska  <mliska@suse.cz>
4468
4469         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
4470         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
4471         guard.
4472
4473 2015-06-16  Richard Biener  <rguenther@suse.de>
4474
4475         * tree-vect-stmts.c (vectorizable_store): Adjust.
4476         (vectorizable_load): Likewise.
4477         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
4478         Simplify.
4479         (vect_create_data_ref_ptr): Likewise.
4480         (bump_vector_ptr): Adjust.
4481
4482 2015-06-16  Richard Biener  <rguenther@suse.de>
4483
4484         * tree-vect-stmts.c (vectorizable_load): Properly start loads
4485         with the first element if this is grouped loads.
4486
4487 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
4488
4489         * config/arm/arm-protos.h (struct tune_params): Rename
4490         log_op_non_sc to log_op_non_short_circuit, and rename enum
4491         values to expand SC to SHORT_CIRCUIT.
4492         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
4493         to LOG_OP_NON_SHORT_CIRCUIT.
4494         (arm_fastmul_tune):Likewise
4495         (arm_strongarm_tune): Likewise.
4496         (arm_xscale_tune): Likewise.
4497         (arm_9e_tune): Likewise.
4498         (arm_marvell_pj4_tune): Likewise.
4499         (arm_v6t2_tune): Likewise.
4500         (arm_cortex_tune): Likewise.
4501         (arm_cortex_a8_tune): Likewise.
4502         (arm_cortex_a7_tune): Likewise.
4503         (arm_cortex_a15_tune): Likewise.
4504         (arm_cortex_a53_tune): Likewise.
4505         (arm_cortex_a57_tune): Likewise.
4506         (arm_xgene1_tune): Likewise.
4507         (arm_cortex_a5_tune): Likewise.
4508         (arm_cortex_a9_tune): Likewise.
4509         (arm_cortex_a12_tune): Likewise.
4510         (arm_v7m_tune): Likewise.
4511         (arm_cortex_m7_tune): Likewise.
4512         (arm_v6m_tune): Likewise.
4513         (arm_fa726te_tune): Likewise.
4514
4515 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
4516
4517         * altivec.md: Delete UNSPEC_VMLADDUHM.
4518         (mulv4si3_p8): New pattern.
4519         (mulv4si3): Use it for POWER8.
4520         (mulv8hi3): Use vmladduhm with zero addend.
4521         (altivec_vmladduhm): Descriptive RTL.
4522
4523 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
4524
4525         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
4526         to use neon_move instead of mov_imm.
4527         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
4528         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
4529
4530         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
4531         aarch64_float_const_zero_rtx_p check before TFmode check.
4532         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
4533         an fp zero.
4534         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
4535         code and attributes to match.  Change condition from register_operand
4536         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
4537         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
4538         to store2.
4539
4540 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
4541
4542         PR debug/66535
4543         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
4544         there is no parent.
4545
4546 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
4547
4548         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
4549         HOST_WIDE_INT parameter.
4550
4551 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
4552
4553         PR ipa/66181
4554         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
4555         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
4556         TYPE_NO_FORCE_BLK.
4557         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
4558
4559 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
4560
4561         * rtl.h (classify_insn): Declare.
4562         * emit-rtl.c (classify_insn): Move to...
4563         * rtl.c: ...here and add generator support.
4564         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
4565         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
4566         * genemit.c (gen_emit_seq): New function.
4567         (gen_expand, gen_split): Use it.
4568
4569 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
4570
4571         * tree.c (make_vector_stat): Fix comment to state that the
4572         function returns a VECTOR_CST.
4573
4574 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
4575
4576         * gensupport.h (add_implicit_parallel): Declare.
4577         * genrecog.c (add_implicit_parallel): Move to...
4578         * gensupport.c (add_implicit_parallel): ...here.
4579         (process_one_cond_exec): Use it.
4580         * genemit.c (gen_insn): Likewise.
4581
4582 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
4583
4584         PR bootstrap/66448
4585         * passes.c (rest_of_decl_compilation): Do not register globals for
4586         early debug if they are declared in built-ins.
4587
4588 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
4589
4590         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
4591
4592 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4593
4594         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
4595         manually swapping.
4596         (noce_try_cmove_arith): Likewise.
4597         (noce_get_alt_condition): Likewise.
4598
4599 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
4600
4601         * common/config/i386/i386-common.c
4602         (OPTION_MASK_ISA_MWAITX_SET): New.
4603         (ix86_handle_option): Handle mwaitx.
4604         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
4605         (x86_64-*-*): Likewise.
4606         * config/i386/mwaitxintrin.h: New header.
4607         * config/i386/cpuid.h (bit_MWAITX):  Define.
4608         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
4609         MWAITX support.
4610         * config/i386/i386.opt (mwaitx): New.
4611         * config/i386/i386-builtin-types.def
4612         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
4613         * config/i386/i386-c.c: Define __MWAITX__ if needed.
4614         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
4615         (PTA_MWAITX): New.
4616         (ix86_option_override_internal): Handle new option.
4617         (processor_alias_table): Added PTA_MWAITX.
4618         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
4619         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
4620         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
4621         IX86_BUILTIN_MONITORX  built-ins.
4622         * config/i386/i386.h (TARGET_MWAITX): New.
4623         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
4624         UNSPEC_MONITORX.
4625         (mwaitx):  New pattern.
4626         (monitorx_<mode>): New pattern.
4627         * config/i386/x86intrin.h: Include mwaitxintrin.h.
4628         * doc/extend.texi: Document monitorx and mwaitx builtins.
4629         * doc/invoke.texi: Document -mmwaitx option.
4630
4631 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
4632
4633         * emit-rtl.c (need_atomic_barrier_p): Mask model with
4634         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
4635
4636 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
4637
4638         * dbxout.c (xcoff_debug_hooks): Provide a function for
4639         register_main_translation_unit hook.
4640
4641 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
4642
4643         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
4644         variants cases from switch.
4645         (rs6000_post_atomic_barrier): Same.
4646         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
4647         (rs6000_expand_atomic_exchange): Same.
4648         (rs6000_expand_atomic_op): Same.
4649         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
4650         SYNC variants cases from switch.
4651         (atomic_load): Same.
4652         (atomic_store): Same.
4653
4654 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
4655
4656         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
4657         CONST_INT for goto.
4658
4659 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
4660
4661         PR bootstrap/66448
4662         * dwarf2out.c (check_die): Check for common duplicate attributes.
4663         (add_location_or_const_value_attribute): Do not add duplicate
4664         attributes.
4665         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
4666         time around.
4667         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
4668         (gen_type_die_with_usage): Call check_die.
4669         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
4670
4671 2015-06-11  Jason Merrill  <jason@redhat.com>
4672
4673         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
4674         dies.
4675
4676 2015-06-11  Marek Polacek  <polacek@redhat.com>
4677
4678         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
4679
4680 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
4681
4682         PR bootstrap/66252
4683         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
4684         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
4685         (*addx_extend_sp32): Fix pasto.
4686         (*subx_extend): Rename into...
4687         (*subx_extend_sp32): ...this.
4688         (*adddi3_extend_sp32): Add earlyclobber.
4689         (*subdi3_insn_sp32): Likewise.
4690         (*subdi3_extend_sp32): Likewise.
4691         (*and_not_di_sp32): Likewise.
4692         (*or_not_di_sp32): Likewise.
4693         (*xor_not_di_sp32): Likewise.
4694         (*negdi2_sp32): Likewise.
4695         (*one_cmpldi2_sp32): Likewise.
4696
4697 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
4698
4699         * debug.h (struct gcc_debug_hooks): Add a
4700         register_main_translation_unit hook.
4701         * debug.c (do_nothing_debug_hooks): Provide a function for this
4702         new hook.
4703         * dbxout.c (dbx_debug_hooks): Likewise.
4704         * sdbout.c (sdb_debug_hooks): Likewise.
4705         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
4706         * dwarf2out.c (main_translation_unit): New global variable.
4707         (dwarf2out_register_main_translation_unit): New function
4708         implementing the new hook.
4709         (dwarf2_debug_hooks): Assign
4710         dwarf2out_register_main_translation_unit to this new hook.
4711         (dwarf2out_init): Associate any main translation unit to
4712         comp_unit_die ().
4713
4714 2015-06-11  Marek Polacek  <polacek@redhat.com>
4715
4716         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
4717
4718 2015-06-11  Marek Polacek  <polacek@redhat.com>
4719
4720         * match.pd: Use single_use throughout.
4721
4722 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4723
4724         * config/arm/arm.c (arm_option_params_internal): When optimising
4725         for speed set max_insns_skipped when arm_restrict_it.
4726
4727 2015-06-11  Christian Bruel  <christian.bruel@st.com>
4728
4729         PR target/52144
4730         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
4731          macros in ...
4732         (arm_cpu_builtins): New function.
4733         (arm_pragma_target_parse): Call arm_cpu_builtins.
4734         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
4735         (arm_register_target_pragmas): Likewise.
4736         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
4737          Call arm_register_target_pragmas.
4738         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
4739         (arm_pragma_target_parse): Likewise.
4740
4741 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
4742
4743         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
4744         of the second operand.
4745
4746 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
4747
4748         PR target/66473
4749         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
4750         to prepare mask operand for AVX512 modes.
4751
4752 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
4753
4754         PR target/66474
4755         * doc/md.texi (Machine Constraints): Document that on the PowerPC
4756         if you use a constraint that targets a VSX register, you must use
4757         %x<n> in the template.
4758
4759 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
4760
4761         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
4762         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
4763         (define_insn "trap"): New definition.
4764
4765 2015-06-10  Richard Biener  <rguenther@suse.de>
4766
4767         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
4768         out from ...
4769         (vect_supported_load_permutation_p): ... here.  Handle
4770         supportable permutations in reductions.
4771         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
4772         for vectorizing strided group loads.
4773
4774 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
4775
4776         PR target/66470
4777         * config/i386/i386.c (ix86_split_long_move): For collisions
4778         involving direct tls segment refs, move the UNSPEC_TP possibly
4779         wrapped in ZERO_EXTEND out of the address for lea, to each of
4780         the memory loads.
4781
4782 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4783
4784         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
4785         dmb sy. Adjust tabs.
4786
4787 2015-06-10  Tom de Vries  <tom@codesourcery.com>
4788
4789         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
4790
4791 2015-06-10  Martin Liska  <mliska@suse.cz>
4792
4793         PR bootstrap/66471
4794         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
4795         all enum values in mem_alloc_origin.
4796         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
4797         name.
4798         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
4799         * bitmap.c (bitmap_register): Likewise.
4800         (dump_bitmap_statistics): Likewise.
4801         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
4802         (ggc_record_overhead): Likewise.
4803         * hash-map.h: Likewise.
4804         * hash-set.h: Likewise.
4805         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
4806         * hash-table.h: Likewise.
4807         * vec.c (vec_prefix::register_overhead): Likewise.
4808         (vec_prefix::release_overhead): Likewise.
4809         (dump_vec_loc_statistics): Likewise.
4810
4811 2015-06-09  Christian Bruel  <christian.bruel@st.com>
4812
4813         PR target/52144
4814         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
4815         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
4816         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
4817         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
4818         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
4819         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
4820         (arm_valid_target_attribute_p): Likewise.
4821         (arm_set_current_function, arm_can_inline_p): Likewise.
4822         (arm_valid_target_attribute_rec): Likewise.
4823         (arm_previous_fndecl): New variable.
4824         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
4825         (TARGET_CAN_INLINE_P): Define.
4826         (arm_asm_trampoline_template): Emit mode.
4827         (arm_file_start): Don't set unified syntax.
4828         (arm_declare_function_name): Set unified syntax and mode.
4829         (arm_option_override): Init target_option_default_node.
4830         and target_option_current_node.
4831         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
4832         (*call_symbol): Likewise.
4833         * doc/extend.texi: Document ARM/Thumb target attribute.
4834         * doc/invoke.texi: Likewise.
4835
4836 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
4837
4838         Revert:
4839         2015-06-09  Alexandre Oliva <aoliva@redhat.com>
4840         PR rtl-optimization/64164
4841         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
4842         * tree-ssa-copyrename.c: Removed.
4843         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
4844         -ftree-coalesce-vars.
4845         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
4846         * common.opt (ftree-copyrename): Ignore.
4847         (ftree-coalesce-inlined-vars): Likewise.
4848         * doc/invoke.texi: Remove the ignored options above.
4849         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
4850         * tree-ssa-coalesce.h: ... here.
4851         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
4852         headers required by it.
4853         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
4854         across variables when flag_tree_coalesce_vars.  Check register
4855         use and promoted modes to allow coalescing.  Moved to
4856         tree-ssa-coalesce.c.
4857         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
4858         with its member functions to tree-ssa-coalesce.c.
4859         (var_map_base_init): Likewise.  Renamed to
4860         compute_samebase_partition_bases.
4861         (partition_view_normal): Drop want_bases parameter.
4862         (partition_view_bitmap): Likewise.
4863         * tree-ssa-live.h: Adjust declarations.
4864         * tree-ssa-coalesce.c: Include explow.h.
4865         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
4866         default defs at the entry point.
4867         (dump_part_var_map): New.
4868         (compute_optimized_partition_bases): New, called by...
4869         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
4870         of compute_samebase_partition_bases.  Adjust.
4871         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
4872         * cfgexpand.c (leader_merge): New.
4873         (get_rtl_for_parm_ssa_default_def): New.
4874         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
4875         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
4876         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
4877         redundant MEM attr setting.
4878         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
4879         from...
4880         (expand_one_stack_var): ... this.  New wrapper to check and
4881         skip already expanded SSA partitions.
4882         (record_alignment_for_reg_var): New, factored out of...
4883         (expand_one_var): ... this.
4884         (expand_one_ssa_partition): New.
4885         (adjust_one_expanded_partition_var): New.
4886         (expand_one_register_var): Check and skip already expanded SSA
4887         partitions.
4888         (expand_used_vars): Don't create DECLs for anonymous SSA
4889         names.  Expand all SSA partitions, then adjust all SSA names.
4890         (pass::execute): Replace the loops that set
4891         SA.partition_to_pseudo from partition leaders and cleared
4892         DECL_RTL for multi-location variables, and that which used to
4893         rename vars and set attrs, with one that clears DECL_RTL and
4894         checks that PARMs and RESULTs default_defs match DECL_RTL.
4895         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
4896         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
4897         * explow.c (promote_ssa_mode): New.
4898         * explow.h (promote_ssa_mode): Declare.
4899         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
4900         * function.c: Include cfgexpand.h.
4901         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
4902         (use_register_for_parm_decl): Wrapper for the above to
4903         special-case the result_ptr.
4904         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
4905         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
4906         multiple locations.
4907         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
4908         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
4909         (assign_parm_setup_block): Prefer SSA-assigned location.
4910         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
4911         if stack_parm is NULL.
4912         (assign_parm_setup_stack): Prefer SSA-assigned location.
4913         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
4914         rtl before testing for pointer bounds.  Special-case result_ptr.
4915         (expand_function_start): Maybe reset DECL_RTL of result.
4916         Prefer SSA-assigned location for result and static chain.
4917         Factor out DECL_RESULT and SET_DECL_RTL.
4918         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
4919         anonymous SSA names.  Use promote_ssa_mode.
4920         (get_temp_reg): Likewise.
4921         (remove_ssa_form): Adjust.
4922         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
4923         and get its reg_usage for reg invalidation.
4924         (compute_bb_dataflow): Pass it insn.
4925         (emit_notes_in_bb): Likewise.
4926         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
4927         fail assert on conversion between unsigned types.
4928
4929 2015-06-09  Tom de Vries  <tom@codesourcery.com>
4930
4931         PR tree-optimization/65460
4932         * omp-low.c (expand_omp_target): Set parallelized_function on
4933         cgraph_node for child_fn.
4934
4935 2015-06-09  Tom de Vries  <tom@codesourcery.com>
4936
4937         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
4938         parallelized_function before add_new_function.
4939
4940 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
4941
4942         * gcc-plugin.h: Move decls to plugin.h and include it.
4943         * plugin.h: Relocate decls from gcc-plugin.h
4944         * ggc-page.c: Include required header files.
4945         * passes.c: Likewise.
4946         * cgraphunit.c: Likewise.
4947
4948 2015-06-09  Tom de Vries  <tom@codesourcery.com>
4949
4950         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
4951
4952 2015-06-09  Jason Merrill  <jason@redhat.com>
4953
4954         PR bootstrap/66448
4955         * toplev.c (check_global_declaration): Don't warn about a clone.
4956
4957 2015-06-09  Marek Polacek  <polacek@redhat.com>
4958
4959         PR tree-optimization/66299
4960         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
4961         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
4962         patterns.
4963
4964 2015-06-09  Richard Biener  <rguenther@suse.de>
4965
4966         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
4967         (vect_analyze_slp_instance): Instead do not falsely drop
4968         load permutations.
4969
4970 2015-06-09  Richard Biener  <rguenther@suse.de>
4971
4972         PR middle-end/66423
4973         * match.pd: Handle A % (unsigned)(1 << B).
4974
4975 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
4976
4977         * varasm.c (output_object_block_htab): Remove.
4978         (output_object_block_compare): New.
4979         (output_object_blocks): Sort named object_blocks before outputting
4980         them.
4981
4982 2015-06-09  Richard Biener  <rguenther@suse.de>
4983
4984         PR tree-optimization/66419
4985         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
4986         consider GROUP_GAP when detecting a perfect subchain.
4987
4988 2015-06-09  Nick Clifton  <nickc@redhat.com>
4989
4990         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
4991         place read only data in the .frodata section.
4992
4993 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
4994
4995         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
4996         (atomic_store<mode>): Likewise.
4997
4998 2015-06-09  Richard Biener  <rguenther@suse.de>
4999
5000         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
5001
5002 2015-06-09  Richard Biener  <rguenther@suse.de>
5003
5004         PR middle-end/66413
5005         * tree-inline.c (insert_init_debug_bind): Unshare value.
5006
5007 2015-06-09  Richard Biener  <rguenther@suse.de>
5008
5009         PR tree-optimization/66396
5010         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
5011         Rename virtual operands.
5012
5013 2015-06-09  Tom de Vries  <tom@codesourcery.com>
5014
5015         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
5016         always return false.
5017
5018 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
5019
5020         PR rtl-optimization/64164
5021         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
5022         * tree-ssa-copyrename.c: Removed.
5023         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
5024         -ftree-coalesce-vars.
5025         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
5026         * common.opt (ftree-copyrename): Ignore.
5027         (ftree-coalesce-inlined-vars): Likewise.
5028         * doc/invoke.texi: Remove the ignored options above.
5029         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
5030         * tree-ssa-coalesce.h: ... here.
5031         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
5032         headers required by it.
5033         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
5034         across variables when flag_tree_coalesce_vars.  Check register
5035         use and promoted modes to allow coalescing.  Moved to
5036         tree-ssa-coalesce.c.
5037         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
5038         with its member functions to tree-ssa-coalesce.c.
5039         (var_map_base_init): Likewise.  Renamed to
5040         compute_samebase_partition_bases.
5041         (partition_view_normal): Drop want_bases parameter.
5042         (partition_view_bitmap): Likewise.
5043         * tree-ssa-live.h: Adjust declarations.
5044         * tree-ssa-coalesce.c: Include explow.h.
5045         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
5046         default defs at the entry point.
5047         (dump_part_var_map): New.
5048         (compute_optimized_partition_bases): New, called by...
5049         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
5050         of compute_samebase_partition_bases.  Adjust.
5051         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
5052         * cfgexpand.c (leader_merge): New.
5053         (get_rtl_for_parm_ssa_default_def): New.
5054         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
5055         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
5056         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
5057         redundant MEM attr setting.
5058         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
5059         from...
5060         (expand_one_stack_var): ... this.  New wrapper to check and
5061         skip already expanded SSA partitions.
5062         (record_alignment_for_reg_var): New, factored out of...
5063         (expand_one_var): ... this.
5064         (expand_one_ssa_partition): New.
5065         (adjust_one_expanded_partition_var): New.
5066         (expand_one_register_var): Check and skip already expanded SSA
5067         partitions.
5068         (expand_used_vars): Don't create DECLs for anonymous SSA
5069         names.  Expand all SSA partitions, then adjust all SSA names.
5070         (pass::execute): Replace the loops that set
5071         SA.partition_to_pseudo from partition leaders and cleared
5072         DECL_RTL for multi-location variables, and that which used to
5073         rename vars and set attrs, with one that clears DECL_RTL and
5074         checks that PARMs and RESULTs default_defs match DECL_RTL.
5075         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
5076         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
5077         * explow.c (promote_ssa_mode): New.
5078         * explow.h (promote_ssa_mode): Declare.
5079         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
5080         * function.c: Include cfgexpand.h.
5081         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
5082         (use_register_for_parm_decl): Wrapper for the above to
5083         special-case the result_ptr.
5084         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
5085         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
5086         multiple locations.
5087         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
5088         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
5089         (assign_parm_setup_block): Prefer SSA-assigned location.
5090         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
5091         if stack_parm is NULL.
5092         (assign_parm_setup_stack): Prefer SSA-assigned location.
5093         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
5094         rtl before testing for pointer bounds.  Special-case result_ptr.
5095         (expand_function_start): Maybe reset DECL_RTL of result.
5096         Prefer SSA-assigned location for result and static chain.
5097         Factor out DECL_RESULT and SET_DECL_RTL.
5098         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
5099         anonymous SSA names.  Use promote_ssa_mode.
5100         (get_temp_reg): Likewise.
5101         (remove_ssa_form): Adjust.
5102         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
5103         and get its reg_usage for reg invalidation.
5104         (compute_bb_dataflow): Pass it insn.
5105         (emit_notes_in_bb): Likewise.
5106         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
5107         fail assert on conversion between unsigned types.
5108
5109 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
5110
5111         PR debug/58315
5112         * tree-inline.c (reset_debug_binding): New.
5113         (reset_debug_bindings): Likewise.
5114         (expand_call_inline): Call it.
5115
5116 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
5117
5118         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
5119         TYPE_STRING_FLAG.
5120
5121 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
5122
5123         * lto-streamer-out.c (lto_output_location): Stream
5124         reserved locations correctly.
5125         * lto-streamer-in.c (lto_output_location): Likewise.
5126
5127 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
5128
5129         * coretypes.h: Include hash-table.h and hash-set.h for host files.
5130         * ggc.h: Don't include statistics.h>
5131         * hash-map.h: Remove all includes.
5132         * hash-set.h: Likewise.
5133         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
5134         the include list. Remove <new>.
5135         * inchash.h: Remove all includes.
5136         * mem-stats.h: Likewise.
5137         * vec.h: No special processing for generators or ggc.
5138         * alias.c : Adjust include files.
5139         * alloc-pool.c : Likewise.
5140         * alloc-pool.h : Likewise.
5141         * asan.c : Likewise.
5142         * attribs.c : Likewise.
5143         * auto-inc-dec.c : Likewise.
5144         * auto-profile.c : Likewise.
5145         * bb-reorder.c : Likewise.
5146         * bitmap.c : Likewise.
5147         * bitmap.h : Likewise.
5148         * bt-load.c : Likewise.
5149         * builtins.c : Likewise.
5150         * caller-save.c : Likewise.
5151         * calls.c : Likewise.
5152         * ccmp.c : Likewise.
5153         * cfg.c : Likewise.
5154         * cfganal.c : Likewise.
5155         * cfgbuild.c : Likewise.
5156         * cfgcleanup.c : Likewise.
5157         * cfgexpand.c : Likewise.
5158         * cfghooks.c : Likewise.
5159         * cfgloop.c : Likewise.
5160         * cfgloop.h : Likewise.
5161         * cfgloopanal.c : Likewise.
5162         * cfgloopmanip.c : Likewise.
5163         * cfgrtl.c : Likewise.
5164         * cgraph.c : Likewise.
5165         * cgraphbuild.c : Likewise.
5166         * cgraphclones.c : Likewise.
5167         * cgraphunit.c : Likewise.
5168         * cilk-common.c : Likewise.
5169         * combine-stack-adj.c : Likewise.
5170         * combine.c : Likewise.
5171         * compare-elim.c : Likewise.
5172         * context.c : Likewise.
5173         * convert.c : Likewise.
5174         * coverage.c : Likewise.
5175         * cppbuiltin.c : Likewise.
5176         * cprop.c : Likewise.
5177         * cse.c : Likewise.
5178         * cselib.c : Likewise.
5179         * data-streamer-in.c : Likewise.
5180         * data-streamer-out.c : Likewise.
5181         * data-streamer.c : Likewise.
5182         * data-streamer.h : Likewise.
5183         * dbxout.c : Likewise.
5184         * dce.c : Likewise.
5185         * ddg.c : Likewise.
5186         * debug.c : Likewise.
5187         * df-core.c : Likewise.
5188         * df-problems.c : Likewise.
5189         * df-scan.c : Likewise.
5190         * df.h : Likewise.
5191         * dfp.c : Likewise.
5192         * dojump.c : Likewise.
5193         * dominance.c : Likewise.
5194         * domwalk.c : Likewise.
5195         * double-int.c : Likewise.
5196         * dse.c : Likewise.
5197         * dumpfile.c : Likewise.
5198         * dwarf2asm.c : Likewise.
5199         * dwarf2cfi.c : Likewise.
5200         * dwarf2out.c : Likewise.
5201         * emit-rtl.c : Likewise.
5202         * et-forest.c : Likewise.
5203         * except.c : Likewise.
5204         * except.h : Likewise.
5205         * explow.c : Likewise.
5206         * expmed.c : Likewise.
5207         * expr.c : Likewise.
5208         * final.c : Likewise.
5209         * fixed-value.c : Likewise.
5210         * fold-const.c : Likewise.
5211         * function.c : Likewise.
5212         * fwprop.c : Likewise.
5213         * gcc-plugin.h : Likewise.
5214         * gcc.c : Likewise.
5215         * gcse-common.c : Likewise.
5216         * gcse.c : Likewise.
5217         * genattrtab.c : Likewise.
5218         * genautomata.c : Likewise.
5219         * genconditions.c : Likewise.
5220         * genemit.c : Likewise.
5221         * generic-match-head.c : Likewise.
5222         * genextract.c : Likewise.
5223         * gengtype-state.c : Likewise.
5224         * gengtype.c : Likewise.
5225         * genhooks.c : Likewise.
5226         * genmatch.c : Likewise.
5227         * genmodes.c : Likewise.
5228         * genrecog.c : Likewise.
5229         * gensupport.c : Likewise.
5230         * ggc-common.c : Likewise.
5231         * ggc-internal.h : Likewise.
5232         * ggc-none.c : Likewise.
5233         * ggc-page.c : Likewise.
5234         * gimple-builder.c : Likewise.
5235         * gimple-expr.c : Likewise.
5236         * gimple-fold.c : Likewise.
5237         * gimple-iterator.c : Likewise.
5238         * gimple-low.c : Likewise.
5239         * gimple-match-head.c : Likewise.
5240         * gimple-pretty-print.c : Likewise.
5241         * gimple-ssa-isolate-paths.c : Likewise.
5242         * gimple-ssa-strength-reduction.c : Likewise.
5243         * gimple-ssa.h : Likewise.
5244         * gimple-streamer-in.c : Likewise.
5245         * gimple-streamer-out.c : Likewise.
5246         * gimple-streamer.h : Likewise.
5247         * gimple-walk.c : Likewise.
5248         * gimple.c : Likewise.
5249         * gimplify-me.c : Likewise.
5250         * gimplify.c : Likewise.
5251         * godump.c : Likewise.
5252         * graph.c : Likewise.
5253         * graphds.c : Likewise.
5254         * graphite-blocking.c : Likewise.
5255         * graphite-dependences.c : Likewise.
5256         * graphite-interchange.c : Likewise.
5257         * graphite-isl-ast-to-gimple.c : Likewise.
5258         * graphite-optimize-isl.c : Likewise.
5259         * graphite-poly.c : Likewise.
5260         * graphite-scop-detection.c : Likewise.
5261         * graphite-sese-to-poly.c : Likewise.
5262         * graphite.c : Likewise.
5263         * haifa-sched.c : Likewise.
5264         * hard-reg-set.h : Likewise.
5265         * hw-doloop.c : Likewise.
5266         * ifcvt.c : Likewise.
5267         * inchash.c : Likewise.
5268         * incpath.c : Likewise.
5269         * init-regs.c : Likewise.
5270         * input.c : Likewise.
5271         * internal-fn.c : Likewise.
5272         * ipa-chkp.c : Likewise.
5273         * ipa-comdats.c : Likewise.
5274         * ipa-cp.c : Likewise.
5275         * ipa-devirt.c : Likewise.
5276         * ipa-icf-gimple.c : Likewise.
5277         * ipa-icf.c : Likewise.
5278         * ipa-inline-analysis.c : Likewise.
5279         * ipa-inline-transform.c : Likewise.
5280         * ipa-inline.c : Likewise.
5281         * ipa-polymorphic-call.c : Likewise.
5282         * ipa-profile.c : Likewise.
5283         * ipa-prop.c : Likewise.
5284         * ipa-pure-const.c : Likewise.
5285         * ipa-ref.c : Likewise.
5286         * ipa-reference.c : Likewise.
5287         * ipa-split.c : Likewise.
5288         * ipa-utils.c : Likewise.
5289         * ipa-visibility.c : Likewise.
5290         * ipa.c : Likewise.
5291         * ira-build.c : Likewise.
5292         * ira-color.c : Likewise.
5293         * ira-conflicts.c : Likewise.
5294         * ira-costs.c : Likewise.
5295         * ira-emit.c : Likewise.
5296         * ira-lives.c : Likewise.
5297         * ira.c : Likewise.
5298         * jump.c : Likewise.
5299         * langhooks.c : Likewise.
5300         * lcm.c : Likewise.
5301         * libfuncs.h : Likewise.
5302         * lists.c : Likewise.
5303         * loop-doloop.c : Likewise.
5304         * loop-init.c : Likewise.
5305         * loop-invariant.c : Likewise.
5306         * loop-iv.c : Likewise.
5307         * loop-unroll.c : Likewise.
5308         * lower-subreg.c : Likewise.
5309         * lra-assigns.c : Likewise.
5310         * lra-coalesce.c : Likewise.
5311         * lra-constraints.c : Likewise.
5312         * lra-eliminations.c : Likewise.
5313         * lra-lives.c : Likewise.
5314         * lra-remat.c : Likewise.
5315         * lra-spills.c : Likewise.
5316         * lra.c : Likewise.
5317         * lto-cgraph.c : Likewise.
5318         * lto-compress.c : Likewise.
5319         * lto-opts.c : Likewise.
5320         * lto-section-in.c : Likewise.
5321         * lto-section-out.c : Likewise.
5322         * lto-streamer-in.c : Likewise.
5323         * lto-streamer-out.c : Likewise.
5324         * lto-streamer.c : Likewise.
5325         * lto-streamer.h : Likewise.
5326         * mcf.c : Likewise.
5327         * mode-switching.c : Likewise.
5328         * modulo-sched.c : Likewise.
5329         * omega.c : Likewise.
5330         * omp-low.c : Likewise.
5331         * optabs.c : Likewise.
5332         * opts-global.c : Likewise.
5333         * opts.h : Likewise.
5334         * passes.c : Likewise.
5335         * plugin.c : Likewise.
5336         * postreload-gcse.c : Likewise.
5337         * postreload.c : Likewise.
5338         * predict.c : Likewise.
5339         * print-rtl.c : Likewise.
5340         * print-tree.c : Likewise.
5341         * profile.c : Likewise.
5342         * read-md.c : Likewise.
5343         * read-md.h : Likewise.
5344         * read-rtl.c : Likewise.
5345         * real.c : Likewise.
5346         * realmpfr.c : Likewise.
5347         * recog.c : Likewise.
5348         * ree.c : Likewise.
5349         * reg-stack.c : Likewise.
5350         * regcprop.c : Likewise.
5351         * reginfo.c : Likewise.
5352         * regrename.c : Likewise.
5353         * regstat.c : Likewise.
5354         * reload.c : Likewise.
5355         * reload1.c : Likewise.
5356         * reorg.c : Likewise.
5357         * resource.c : Likewise.
5358         * rtl-chkp.c : Likewise.
5359         * rtl.c : Likewise.
5360         * rtl.h : Likewise.
5361         * rtlanal.c : Likewise.
5362         * rtlhash.c : Likewise.
5363         * rtlhash.h : Likewise.
5364         * rtlhooks.c : Likewise.
5365         * sanopt.c : Likewise.
5366         * sched-deps.c : Likewise.
5367         * sched-ebb.c : Likewise.
5368         * sched-rgn.c : Likewise.
5369         * sched-vis.c : Likewise.
5370         * sdbout.c : Likewise.
5371         * sel-sched-dump.c : Likewise.
5372         * sel-sched-ir.c : Likewise.
5373         * sel-sched-ir.h : Likewise.
5374         * sel-sched.c : Likewise.
5375         * sese.c : Likewise.
5376         * shrink-wrap.c : Likewise.
5377         * shrink-wrap.h : Likewise.
5378         * simplify-rtx.c : Likewise.
5379         * stack-ptr-mod.c : Likewise.
5380         * statistics.c : Likewise.
5381         * stmt.c : Likewise.
5382         * stor-layout.c : Likewise.
5383         * store-motion.c : Likewise.
5384         * stringpool.c : Likewise.
5385         * symtab.c : Likewise.
5386         * target-globals.c : Likewise.
5387         * targhooks.c : Likewise.
5388         * tlink.c : Likewise.
5389         * toplev.c : Likewise.
5390         * tracer.c : Likewise.
5391         * trans-mem.c : Likewise.
5392         * tree-affine.c : Likewise.
5393         * tree-affine.h : Likewise.
5394         * tree-browser.c : Likewise.
5395         * tree-call-cdce.c : Likewise.
5396         * tree-cfg.c : Likewise.
5397         * tree-cfgcleanup.c : Likewise.
5398         * tree-chkp-opt.c : Likewise.
5399         * tree-chkp.c : Likewise.
5400         * tree-chrec.c : Likewise.
5401         * tree-complex.c : Likewise.
5402         * tree-data-ref.c : Likewise.
5403         * tree-dfa.c : Likewise.
5404         * tree-diagnostic.c : Likewise.
5405         * tree-dump.c : Likewise.
5406         * tree-eh.c : Likewise.
5407         * tree-eh.h : Likewise.
5408         * tree-emutls.c : Likewise.
5409         * tree-hasher.h : Likewise.
5410         * tree-if-conv.c : Likewise.
5411         * tree-inline.c : Likewise.
5412         * tree-inline.h : Likewise.
5413         * tree-into-ssa.c : Likewise.
5414         * tree-iterator.c : Likewise.
5415         * tree-loop-distribution.c : Likewise.
5416         * tree-nested.c : Likewise.
5417         * tree-nrv.c : Likewise.
5418         * tree-object-size.c : Likewise.
5419         * tree-outof-ssa.c : Likewise.
5420         * tree-parloops.c : Likewise.
5421         * tree-phinodes.c : Likewise.
5422         * tree-predcom.c : Likewise.
5423         * tree-pretty-print.c : Likewise.
5424         * tree-profile.c : Likewise.
5425         * tree-scalar-evolution.c : Likewise.
5426         * tree-sra.c : Likewise.
5427         * tree-ssa-address.c : Likewise.
5428         * tree-ssa-alias.c : Likewise.
5429         * tree-ssa-ccp.c : Likewise.
5430         * tree-ssa-coalesce.c : Likewise.
5431         * tree-ssa-copy.c : Likewise.
5432         * tree-ssa-copyrename.c : Likewise.
5433         * tree-ssa-dce.c : Likewise.
5434         * tree-ssa-dom.c : Likewise.
5435         * tree-ssa-dse.c : Likewise.
5436         * tree-ssa-forwprop.c : Likewise.
5437         * tree-ssa-ifcombine.c : Likewise.
5438         * tree-ssa-live.c : Likewise.
5439         * tree-ssa-loop-ch.c : Likewise.
5440         * tree-ssa-loop-im.c : Likewise.
5441         * tree-ssa-loop-ivcanon.c : Likewise.
5442         * tree-ssa-loop-ivopts.c : Likewise.
5443         * tree-ssa-loop-manip.c : Likewise.
5444         * tree-ssa-loop-niter.c : Likewise.
5445         * tree-ssa-loop-prefetch.c : Likewise.
5446         * tree-ssa-loop-unswitch.c : Likewise.
5447         * tree-ssa-loop.c : Likewise.
5448         * tree-ssa-math-opts.c : Likewise.
5449         * tree-ssa-operands.c : Likewise.
5450         * tree-ssa-phiopt.c : Likewise.
5451         * tree-ssa-phiprop.c : Likewise.
5452         * tree-ssa-pre.c : Likewise.
5453         * tree-ssa-propagate.c : Likewise.
5454         * tree-ssa-reassoc.c : Likewise.
5455         * tree-ssa-sccvn.c : Likewise.
5456         * tree-ssa-scopedtables.c : Likewise.
5457         * tree-ssa-sink.c : Likewise.
5458         * tree-ssa-strlen.c : Likewise.
5459         * tree-ssa-structalias.c : Likewise.
5460         * tree-ssa-tail-merge.c : Likewise.
5461         * tree-ssa-ter.c : Likewise.
5462         * tree-ssa-threadedge.c : Likewise.
5463         * tree-ssa-threadupdate.c : Likewise.
5464         * tree-ssa-uncprop.c : Likewise.
5465         * tree-ssa-uninit.c : Likewise.
5466         * tree-ssa.c : Likewise.
5467         * tree-ssanames.c : Likewise.
5468         * tree-stdarg.c : Likewise.
5469         * tree-streamer-in.c : Likewise.
5470         * tree-streamer-out.c : Likewise.
5471         * tree-streamer.c : Likewise.
5472         * tree-streamer.h : Likewise.
5473         * tree-switch-conversion.c : Likewise.
5474         * tree-tailcall.c : Likewise.
5475         * tree-vect-data-refs.c : Likewise.
5476         * tree-vect-generic.c : Likewise.
5477         * tree-vect-loop-manip.c : Likewise.
5478         * tree-vect-loop.c : Likewise.
5479         * tree-vect-patterns.c : Likewise.
5480         * tree-vect-slp.c : Likewise.
5481         * tree-vect-stmts.c : Likewise.
5482         * tree-vectorizer.c : Likewise.
5483         * tree-vectorizer.h : Likewise.
5484         * tree-vrp.c : Likewise.
5485         * tree.c : Likewise.
5486         * tsan.c : Likewise.
5487         * ubsan.c : Likewise.
5488         * valtrack.c : Likewise.
5489         * valtrack.h : Likewise.
5490         * value-prof.c : Likewise.
5491         * var-tracking.c : Likewise.
5492         * varasm.c : Likewise.
5493         * varpool.c : Likewise.
5494         * vec.c: Likewise.
5495         * vmsdbgout.c : Likewise.
5496         * vtable-verify.c : Likewise.
5497         * vtable-verify.h : Likewise.
5498         * web.c : Likewise.
5499         * wide-int.cc : Likewise.
5500         * xcoffout.c : Likewise.
5501         * config/aarch64/aarch64-builtins.c : Likewise.
5502         * config/aarch64/aarch64.c : Likewise.
5503         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
5504         * config/alpha/alpha.c : Likewise.
5505         * config/arc/arc.c : Likewise.
5506         * config/arm/aarch-common.c : Likewise.
5507         * config/arm/arm-builtins.c : Likewise.
5508         * config/arm/arm-c.c : Likewise.
5509         * config/arm/arm.c : Likewise.
5510         * config/avr/avr-c.c : Likewise.
5511         * config/avr/avr-log.c : Likewise.
5512         * config/avr/avr.c : Likewise.
5513         * config/bfin/bfin.c : Likewise.
5514         * config/c6x/c6x.c : Likewise.
5515         * config/cr16/cr16.c : Likewise.
5516         * config/cris/cris.c : Likewise.
5517         * config/darwin-c.c : Likewise.
5518         * config/darwin.c : Likewise.
5519         * config/default-c.c : Likewise.
5520         * config/epiphany/epiphany.c : Likewise.
5521         * config/epiphany/mode-switch-use.c : Likewise.
5522         * config/epiphany/resolve-sw-modes.c : Likewise.
5523         * config/fr30/fr30.c : Likewise.
5524         * config/frv/frv.c : Likewise.
5525         * config/ft32/ft32.c : Likewise.
5526         * config/glibc-c.c : Likewise.
5527         * config/h8300/h8300.c : Likewise.
5528         * config/i386/i386-c.c : Likewise.
5529         * config/i386/i386.c : Likewise.
5530         * config/i386/msformat-c.c : Likewise.
5531         * config/i386/winnt-cxx.c : Likewise.
5532         * config/i386/winnt-stubs.c : Likewise.
5533         * config/i386/winnt.c : Likewise.
5534         * config/ia64/ia64-c.c : Likewise.
5535         * config/ia64/ia64.c : Likewise.
5536         * config/iq2000/iq2000.c : Likewise.
5537         * config/lm32/lm32.c : Likewise.
5538         * config/m32c/m32c-pragma.c : Likewise.
5539         * config/m32c/m32c.c : Likewise.
5540         * config/m32r/m32r.c : Likewise.
5541         * config/m68k/m68k.c : Likewise.
5542         * config/mcore/mcore.c : Likewise.
5543         * config/mep/mep-pragma.c : Likewise.
5544         * config/mep/mep.c : Likewise.
5545         * config/microblaze/microblaze-c.c : Likewise.
5546         * config/microblaze/microblaze.c : Likewise.
5547         * config/mips/mips.c : Likewise.
5548         * config/mmix/mmix.c : Likewise.
5549         * config/mn10300/mn10300.c : Likewise.
5550         * config/moxie/moxie.c : Likewise.
5551         * config/msp430/msp430-c.c : Likewise.
5552         * config/msp430/msp430.c : Likewise.
5553         * config/nds32/nds32-cost.c : Likewise.
5554         * config/nds32/nds32-fp-as-gp.c : Likewise.
5555         * config/nds32/nds32-intrinsic.c : Likewise.
5556         * config/nds32/nds32-isr.c : Likewise.
5557         * config/nds32/nds32-md-auxiliary.c : Likewise.
5558         * config/nds32/nds32-memory-manipulation.c : Likewise.
5559         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
5560         * config/nds32/nds32-predicates.c : Likewise.
5561         * config/nds32/nds32.c : Likewise.
5562         * config/nios2/nios2.c : Likewise.
5563         * config/nvptx/nvptx.c : Likewise.
5564         * config/pa/pa.c : Likewise.
5565         * config/pdp11/pdp11.c : Likewise.
5566         * config/rl78/rl78-c.c : Likewise.
5567         * config/rl78/rl78.c : Likewise.
5568         * config/rs6000/rs6000-c.c : Likewise.
5569         * config/rs6000/rs6000.c : Likewise.
5570         * config/rx/rx.c : Likewise.
5571         * config/s390/s390-c.c : Likewise.
5572         * config/s390/s390.c : Likewise.
5573         * config/sh/sh-c.c : Likewise.
5574         * config/sh/sh-mem.cc : Likewise.
5575         * config/sh/sh.c : Likewise.
5576         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
5577         * config/sh/sh_treg_combine.cc : Likewise.
5578         * config/sol2-c.c : Likewise.
5579         * config/sol2-cxx.c : Likewise.
5580         * config/sol2-stubs.c : Likewise.
5581         * config/sol2.c : Likewise.
5582         * config/sparc/sparc-c.c : Likewise.
5583         * config/sparc/sparc.c : Likewise.
5584         * config/spu/spu-c.c : Likewise.
5585         * config/spu/spu.c : Likewise.
5586         * config/stormy16/stormy16.c : Likewise.
5587         * config/tilegx/mul-tables.c : Likewise.
5588         * config/tilegx/tilegx-c.c : Likewise.
5589         * config/tilegx/tilegx.c : Likewise.
5590         * config/tilepro/mul-tables.c : Likewise.
5591         * config/tilepro/tilepro-c.c : Likewise.
5592         * config/tilepro/tilepro.c : Likewise.
5593         * config/v850/v850-c.c : Likewise.
5594         * config/v850/v850.c : Likewise.
5595         * config/vax/vax.c : Likewise.
5596         * config/visium/visium.c : Likewise.
5597         * config/vms/vms-c.c : Likewise.
5598         * config/vms/vms.c : Likewise.
5599         * config/vxworks.c : Likewise.
5600         * config/winnt-c.c : Likewise.
5601         * config/xtensa/xtensa.c : Likewise.
5602
5603 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
5604
5605         PR lto/65378
5606         * ipa-utils.h (warn_types_mismatch): Update prototype.
5607         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
5608         parameters.
5609         (type_mismatch_p): New function.
5610         (warn_types_mismatch): Reorg to work better on non-C++ types.
5611         (odr_types_equivalent_p): Add loc1/loc2 parameters.
5612         (add_type_duplicate): Update.
5613
5614 2015-06-08  Tom de Vries  <tom@codesourcery.com>
5615
5616         PR rtl-optimization/66444
5617         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
5618         call_used_regs.
5619
5620 2015-06-08  Richard Biener  <rguenther@suse.de>
5621
5622         PR tree-optimization/66422
5623         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
5624         block after inserted gcc_unreachable.
5625
5626 2015-06-08  Nick Clifton  <nickc@redhat.com>
5627
5628         * config/rx/rx.c (rx_function_value): Do not promote vector types.
5629         (rx_promote_function_mode): Likewise.
5630         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
5631
5632 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
5633
5634         * genattrtab.c (insn_alternatives): Change type from int *
5635         to uint64_t *.
5636         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
5637         (get_attr_value): Change type of num_alt to uint64_t.
5638         (compute_alternative_mask): Change return type from
5639         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
5640         (make_alternative_compare, mk_attr_alt): Change argument type
5641         from int to uint64_t.
5642         (simplify_test_exp): Change type of i from int to uint64_t.
5643         Shift ((uint64_t) 1) instead of 1 up.
5644         (main): Adjust oballocvec first argument from int to uint64_t.
5645         Shift ((uint64_t) 1) instead of 1 up.
5646
5647 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
5648
5649         PR other/65366
5650         * gdbhooks.py: Import sys.
5651         (intptr): New function.  Replace int(...) by intptr(...).
5652
5653 2015-06-08  Richard Biener  <rguenther@suse.de>
5654
5655         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
5656         adjustment for gaps at the end of a SLP load group properly.
5657         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
5658         all permutations we can generate.
5659         (vect_transform_slp_perm_load): Use the correct group-size.
5660
5661 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
5662
5663         * genmatch.c (expr::gen_transform): For conditions, guess the type
5664         from the second operand.
5665
5666 2015-06-08  Tom de Vries  <tom@codesourcery.com>
5667
5668         PR tree-optimization/66442
5669         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
5670         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
5671         if the loop latch is not a singleton.  Use
5672         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
5673
5674 2015-06-08  Marek Polacek  <polacek@redhat.com>
5675
5676         PR sanitizer/66452
5677         * toplev.c (check_global_declaration): Don't warn about artificial
5678         decls.
5679
5680 2015-06-08  Tom de Vries  <tom@codesourcery.com>
5681
5682         PR tree-optimization/66436
5683         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
5684         dump file.
5685         * gimplify.c: Add tree-dump.h include.
5686         (gimplify_function_tree): Dump function to gimple dump file.
5687         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
5688         dump file.
5689
5690 2015-06-08  Tom de Vries  <tom@codesourcery.com>
5691
5692         PR tree-optimization/66435
5693         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
5694         function.
5695
5696 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
5697
5698         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
5699         of ptr_type_node to not be ptr_to_node.
5700         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
5701         TREE_TYPE of pointers.
5702         * gimple-expr.c (useless_type_conversion): Reorder the check for
5703         function pointers and TYPE_CANONICAL.
5704
5705 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
5706
5707         PR bootstrap/66319
5708         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
5709         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
5710         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
5711         later.
5712         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
5713         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
5714         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
5715         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
5716         and non iso if unix2003.
5717
5718 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
5719
5720         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
5721
5722 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
5723
5724         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
5725         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
5726         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
5727         except.c, final.c, function.c, gcse-common.c, genemit.c,
5728         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
5729         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
5730         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
5731         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
5732         more derived ones.
5733
5734 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
5735
5736         * combine.c (combine_split_insns): Remove cast.
5737         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
5738         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
5739         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
5740         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
5741         * genemit.c (gen_split): Change return type of generated functions to
5742         rtx_insn.
5743         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
5744         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
5745         gen_peephole2_* functions.
5746         (print_subroutine, main): Likewise.
5747         * recog.c (peephole2_optimize): Remove cast.
5748         (peep2_next_insn): Promote return type to rtx_insn.
5749         * recog.h (peep2_next_insn): Fix prototype.
5750         * rtl.h (try_split, split_insns): Likewise.
5751
5752 2015-06-06  DJ Delorie  <dj@redhat.com>
5753
5754         * config/msp430/msp430.c (msp430_asm_integer): Support addition
5755         and subtraction too.
5756
5757 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
5758
5759         PR target/66410
5760         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
5761         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
5762         instead of Snd.  Disparage Sid/z alternative with '^'.
5763
5764 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
5765
5766         * dwarf2out.c: Remove deferred_locations*.
5767         (dwarf2_debug_hooks): Add early_finish hook.
5768         Remove global_decl hook.
5769         Add early_global_decl and late_global_decl hook.
5770         New global early_dwarf.
5771         New structure set_early_dwarf.
5772         (output_die): Indicate whether a DIE was generated early
5773         when generating assembly with -dA.
5774         (struct limbo_die_struct): Document created_for field.
5775         Remove file_table_last_lookup.
5776         (remove_AT): Return TRUE if successful.
5777         (remove_child_TAG): Clear die_parent.
5778         (reparent_child): New function abstracted from...
5779         (splice_child_die): ...here.
5780         (new_die): ICE if a DIE ends up in limbo too late.
5781         (check_die): New.
5782         (defer_location): Remove.
5783         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
5784         (fill_variable_array_bounds): New.
5785         (decl_start_label): Call fill_variable_array_bounds.
5786         (gen_formal_parameter_die): Rewrite to reuse previously generated
5787         DIEs.
5788         (gen_subprogram_die): Same.
5789         (gen_variable_die): Same.
5790         (gen_const_die): Same.
5791         (gen_label_die): Same.
5792         (gen_lexical_block_die): Same.
5793         (decl_will_get_specification_p): New.
5794         (local_function_static): New.
5795         (gen_struct_or_union_type_die): Fill in variable-length fields.
5796         (gen_typedef_die): Fill in variable-length typedefs.
5797         (gen_tagged_type_die): Gracefully return on error_mark_node.
5798         Handle re-entrancy.
5799         (gen_type_die_with_usage): Handle variable-length types.
5800         Remove duplicate code for ARRAY_TYPE case.
5801         (process_scope_var): Only process imported modules during early
5802         dwarf.
5803         (dwarf2out_early_global_decl): New.
5804         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
5805         (dwarf2out_type_decl): Set early_dwarf while calling
5806         dwarf2out_decl.
5807         (dwarf2out_decl): Verify that we did not recreate a previously
5808         generated DIE.
5809         Do not return on DECL_EXTERNALs in VAR_DECLs.
5810         Abstract some code to local_function_static.
5811         (lookup_filename): Remove use of file_table_last_lookup.
5812         Gracefully exit on missing file_name.
5813         (dwarf2out_finish): Verify limbo list.
5814         Remove deferred_locations_list use.
5815         Move deferred_asm_name and limbo flushing to...
5816         (dwarf2out_early_finish): ...here.  New.
5817         (dwarf2out_c_finalize): Remove set of deferred_location_list,
5818         deferred_asm_name, and file_table_last_lookup.
5819         * cgraph.h (referred_to_p): Add default argument.
5820         * cgraphunit.c (referred_to_p): Add and handle include_self
5821         argument.
5822         (analyze_functions): Add first_time argument.
5823         Call check_global_declaration for all symbols.
5824         Call late_global_decl for nodes for moribund nodes.
5825         (finalize_compilation_unit): Add new argument to
5826         analyze_functions.
5827         Call early_global_decl for functions.
5828         Call early_finish debug hook.
5829         * dbxout.c (dbxout_early_global_decl): New.
5830         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
5831         (dbx_debug_hooks): Add new hooks.
5832         (xcoff_debug_hooks): Same.
5833         * debug.c (do_nothing_debug_hooks): Add early_finish field.
5834         Add early and late debug hooks.
5835         Remove global_decl hook.
5836         * debug.h (struct gcc_debug_hooks): Add early_finish,
5837         early_global_decl, and late_global_decl fields.
5838         Remove global_decl field.
5839         Document gcc_debug_hooks.
5840         * gengtype.c (output_typename): Remove.
5841         * godump.c (go_early_global_decl): New.
5842         (go_late_global_decl): New.
5843         (go_global_decl): Remove.
5844         (dump_go_spec_init): Remove global_decl.  Add
5845         {early,late}_global_decl.
5846         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
5847         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
5848         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
5849         (write_global_declarations): Remove.
5850         (global_decl_processing): New.
5851         * langhooks.h (struct lang_hooks_for_decls): Remove
5852         final_write_globals field.
5853         Add post_compilation_parsing_cleanups field.
5854         * passes.c (rest_of_decl_compilation): Call early_global_decl.
5855         * sdbout.c: Add early and late_global_decl hooks.  Remove
5856         sdbout_global_decl hook.
5857         Add early_finish field for sdb_debug_hooks.
5858         (sdbout_global_decl): Remove.
5859         (sdbout_early_global_decl): New.
5860         (sdbout_late_global_decl): New.
5861         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
5862         * toplev.c (check_global_declaration): Rename from
5863         check_global_declaration_1.
5864         Adapt to use symtab infrastructure.
5865         (check_global_declarations): Remove.
5866         (emit_debug_global_declarations): Remove.
5867         (compile_file): Remove call to final_write_globals langhook.
5868         Run the actual compilation process.
5869         Perform any post compilation parser cleanups.
5870         Generate late debug info.
5871         * toplev.h (check_global_declaration): New.
5872         (check_global_declaration_1): Remove.
5873         (check_global_declarations): Remove.
5874         (write_global_declarations): Remove.
5875         (emit_debug_global_declarations): Remove.
5876         (global_decl_processing): New.
5877         * tree-core.h (struct tree_block): Add DIE field.
5878         * tree.h (BLOCK_DIE): New.
5879         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
5880         throughout.
5881         (vmsdbgout_early_global_decl): New.
5882         (vmsdbgout_late_global_decl): New.
5883         Add early_finish debug hook field to vmsdbg_debug_hooks.
5884         Remove vmsdbgout_decl to vmsdbgout_function_decl.
5885         Add early and late_global_decl debug hooks.
5886
5887 2015-06-05  Julian Brown  <julian@codesourcery.com>
5888             Sandra Loosemore  <sandra@codesourcery.com>
5889
5890         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
5891         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
5892         to print-sysroot-suffix.sh script.
5893
5894 2015-06-05  Tom de Vries  <tom@codesourcery.com>
5895
5896         merge from gomp4 branch:
5897         2015-05-28  Tom de Vries  <tom@codesourcery.com>
5898
5899         PR tree-optimization/65443
5900         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
5901         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
5902         (try_transform_to_exit_first_loop_alt): New function.
5903         (transform_to_exit_first_loop): Use
5904         try_transform_to_exit_first_loop_alt.
5905
5906 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
5907
5908         * builtins.c (expand_builtin_atomic_compare_exchange): Call
5909         emit_cmp_and_jump_insns with the mode of target.
5910
5911 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5912
5913         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
5914
5915 2015-06-04  DJ Delorie  <dj@redhat.com>
5916
5917         * config/msp430/msp430.md (movsi_s): New.  Special case for
5918         storing a 20-bit symbol into a 32-bit register.
5919         * config/msp430/msp430.c (msp430_subreg): Add support for it.
5920         * config/msp430/predicates.md (msp430_symbol_operand): New.
5921
5922 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
5923
5924         * c-family/c-common.c (noplt): New attribute.
5925         (handle_noplt_attribute): New handler.
5926         * calls.c (prepare_call_address): Check for noplt
5927         attribute.
5928         * config/i386/i386.c (ix86_expand_call): Check
5929         for noplt attribute.
5930         (ix86_nopic_noplt_attribute_p): New function.
5931         (ix86_output_call_insn): Output indirect call for non-pic
5932         no plt calls.
5933         * doc/extend.texi (noplt): Document new attribute.
5934         * doc/invoke.texi: Document new attribute.
5935
5936 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
5937
5938         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
5939         real.h, and fixed-value.h when included in host source files.
5940         * double-int.h: Remove redundant #includes listed above.
5941         * fixed-value.h: Likewise.
5942         * real.h: Likewise.
5943         * wide-int.h: Likewise.
5944         * inchash.h: Likewise.
5945         * rtl.h: Add some include files When included from a generator file.
5946         * target.h: Remove wide-int.h and insn-modes.h from the include list.
5947         * internal-fn.h: Don't include coretypes.h.
5948         * alias.c: Adjust includes for restructured coretypes.h.
5949         * asan.c: Likewise.
5950         * attribs.c: Likewise.
5951         * auto-inc-dec.c: Likewise.
5952         * auto-profile.c: Likewise.
5953         * bb-reorder.c: Likewise.
5954         * bt-load.c: Likewise.
5955         * builtins.c: Likewise.
5956         * caller-save.c: Likewise.
5957         * calls.c: Likewise.
5958         * ccmp.c: Likewise.
5959         * cfg.c: Likewise.
5960         * cfganal.c: Likewise.
5961         * cfgbuild.c: Likewise.
5962         * cfgcleanup.c: Likewise.
5963         * cfgexpand.c: Likewise.
5964         * cfghooks.c: Likewise.
5965         * cfgloop.c: Likewise.
5966         * cfgloop.h: Likewise.
5967         * cfgloopanal.c: Likewise.
5968         * cfgloopmanip.c: Likewise.
5969         * cfgrtl.c: Likewise.
5970         * cgraph.c: Likewise.
5971         * cgraphbuild.c: Likewise.
5972         * cgraphclones.c: Likewise.
5973         * cgraphunit.c: Likewise.
5974         * cilk-common.c: Likewise.
5975         * combine-stack-adj.c: Likewise.
5976         * combine.c: Likewise.
5977         * compare-elim.c: Likewise.
5978         * convert.c: Likewise.
5979         * coverage.c: Likewise.
5980         * cppbuiltin.c: Likewise.
5981         * cprop.c: Likewise.
5982         * cse.c: Likewise.
5983         * cselib.c: Likewise.
5984         * data-streamer-in.c: Likewise.
5985         * data-streamer-out.c: Likewise.
5986         * data-streamer.c: Likewise.
5987         * dbxout.c: Likewise.
5988         * dce.c: Likewise.
5989         * ddg.c: Likewise.
5990         * debug.c: Likewise.
5991         * df-core.c: Likewise.
5992         * df-problems.c: Likewise.
5993         * df-scan.c: Likewise.
5994         * df.h: Likewise.
5995         * dfp.c: Likewise.
5996         * dojump.c: Likewise.
5997         * dominance.c: Likewise.
5998         * domwalk.c: Likewise.
5999         * double-int.c: Likewise.
6000         * dse.c: Likewise.
6001         * dumpfile.c: Likewise.
6002         * dwarf2asm.c: Likewise.
6003         * dwarf2cfi.c: Likewise.
6004         * dwarf2out.c: Likewise.
6005         * dwarf2out.h: Likewise.
6006         * emit-rtl.c: Likewise.
6007         * et-forest.c: Likewise.
6008         * except.c: Likewise.
6009         * explow.c: Likewise.
6010         * expmed.c: Likewise.
6011         * expr.c: Likewise.
6012         * final.c: Likewise.
6013         * fixed-value.c: Likewise.
6014         * fold-const.c: Likewise.
6015         * function.c: Likewise.
6016         * fwprop.c: Likewise.
6017         * gcc-plugin.h: Likewise.
6018         * gcse.c: Likewise.
6019         * generic-match-head.c: Likewise.
6020         * ggc-page.c: Likewise.
6021         * gimple-builder.c: Likewise.
6022         * gimple-expr.c: Likewise.
6023         * gimple-fold.c: Likewise.
6024         * gimple-iterator.c: Likewise.
6025         * gimple-low.c: Likewise.
6026         * gimple-match-head.c: Likewise.
6027         * gimple-pretty-print.c: Likewise.
6028         * gimple-ssa-isolate-paths.c: Likewise.
6029         * gimple-ssa-strength-reduction.c: Likewise.
6030         * gimple-streamer-in.c: Likewise.
6031         * gimple-streamer-out.c: Likewise.
6032         * gimple-streamer.h: Likewise.
6033         * gimple-walk.c: Likewise.
6034         * gimple.c: Likewise.
6035         * gimplify-me.c: Likewise.
6036         * gimplify.c: Likewise.
6037         * godump.c: Likewise.
6038         * graph.c: Likewise.
6039         * graphite-blocking.c: Likewise.
6040         * graphite-dependences.c: Likewise.
6041         * graphite-interchange.c: Likewise.
6042         * graphite-isl-ast-to-gimple.c: Likewise.
6043         * graphite-optimize-isl.c: Likewise.
6044         * graphite-poly.c: Likewise.
6045         * graphite-scop-detection.c: Likewise.
6046         * graphite-sese-to-poly.c: Likewise.
6047         * graphite.c: Likewise.
6048         * haifa-sched.c: Likewise.
6049         * hooks.h: Likewise.
6050         * hw-doloop.c: Likewise.
6051         * ifcvt.c: Likewise.
6052         * incpath.c: Likewise.
6053         * init-regs.c: Likewise.
6054         * internal-fn.c: Likewise.
6055         * ipa-chkp.c: Likewise.
6056         * ipa-comdats.c: Likewise.
6057         * ipa-cp.c: Likewise.
6058         * ipa-devirt.c: Likewise.
6059         * ipa-icf-gimple.c: Likewise.
6060         * ipa-icf.c: Likewise.
6061         * ipa-inline-analysis.c: Likewise.
6062         * ipa-inline-transform.c: Likewise.
6063         * ipa-inline.c: Likewise.
6064         * ipa-polymorphic-call.c: Likewise.
6065         * ipa-profile.c: Likewise.
6066         * ipa-prop.c: Likewise.
6067         * ipa-pure-const.c: Likewise.
6068         * ipa-ref.c: Likewise.
6069         * ipa-reference.c: Likewise.
6070         * ipa-split.c: Likewise.
6071         * ipa-utils.c: Likewise.
6072         * ipa-visibility.c: Likewise.
6073         * ipa.c: Likewise.
6074         * ira-build.c: Likewise.
6075         * ira-color.c: Likewise.
6076         * ira-conflicts.c: Likewise.
6077         * ira-costs.c: Likewise.
6078         * ira-emit.c: Likewise.
6079         * ira-lives.c: Likewise.
6080         * ira.c: Likewise.
6081         * jump.c: Likewise.
6082         * langhooks.c: Likewise.
6083         * lcm.c: Likewise.
6084         * loop-doloop.c: Likewise.
6085         * loop-init.c: Likewise.
6086         * loop-invariant.c: Likewise.
6087         * loop-iv.c: Likewise.
6088         * loop-unroll.c: Likewise.
6089         * lower-subreg.c: Likewise.
6090         * lra-assigns.c: Likewise.
6091         * lra-coalesce.c: Likewise.
6092         * lra-constraints.c: Likewise.
6093         * lra-eliminations.c: Likewise.
6094         * lra-lives.c: Likewise.
6095         * lra-remat.c: Likewise.
6096         * lra-spills.c: Likewise.
6097         * lra.c: Likewise.
6098         * lto-cgraph.c: Likewise.
6099         * lto-compress.c: Likewise.
6100         * lto-opts.c: Likewise.
6101         * lto-section-in.c: Likewise.
6102         * lto-section-out.c: Likewise.
6103         * lto-streamer-in.c: Likewise.
6104         * lto-streamer-out.c: Likewise.
6105         * lto-streamer.c: Likewise.
6106         * mcf.c: Likewise.
6107         * mode-switching.c: Likewise.
6108         * modulo-sched.c: Likewise.
6109         * omega.c: Likewise.
6110         * omp-low.c: Likewise.
6111         * optabs.c: Likewise.
6112         * opts-global.c: Likewise.
6113         * passes.c: Likewise.
6114         * plugin.c: Likewise.
6115         * postreload-gcse.c: Likewise.
6116         * postreload.c: Likewise.
6117         * predict.c: Likewise.
6118         * print-rtl.c: Likewise.
6119         * print-tree.c: Likewise.
6120         * profile.c: Likewise.
6121         * real.c: Likewise.
6122         * realmpfr.c: Likewise.
6123         * realmpfr.h: Likewise.
6124         * recog.c: Likewise.
6125         * ree.c: Likewise.
6126         * reg-stack.c: Likewise.
6127         * regcprop.c: Likewise.
6128         * reginfo.c: Likewise.
6129         * regrename.c: Likewise.
6130         * regs.h: Likewise.
6131         * regstat.c: Likewise.
6132         * reload.c: Likewise.
6133         * reload1.c: Likewise.
6134         * reorg.c: Likewise.
6135         * resource.c: Likewise.
6136         * rtl-chkp.c: Likewise.
6137         * rtlanal.c: Likewise.
6138         * rtlhooks.c: Likewise.
6139         * sanopt.c: Likewise.
6140         * sched-deps.c: Likewise.
6141         * sched-ebb.c: Likewise.
6142         * sched-rgn.c: Likewise.
6143         * sched-vis.c: Likewise.
6144         * sdbout.c: Likewise.
6145         * sel-sched-dump.c: Likewise.
6146         * sel-sched-ir.c: Likewise.
6147         * sel-sched.c: Likewise.
6148         * sese.c: Likewise.
6149         * shrink-wrap.c: Likewise.
6150         * shrink-wrap.h: Likewise.
6151         * simplify-rtx.c: Likewise.
6152         * stack-ptr-mod.c: Likewise.
6153         * statistics.c: Likewise.
6154         * stmt.c: Likewise.
6155         * stor-layout.c: Likewise.
6156         * store-motion.c: Likewise.
6157         * stringpool.c: Likewise.
6158         * symtab.c: Likewise.
6159         * target-globals.c: Likewise.
6160         * targhooks.c: Likewise.
6161         * toplev.c: Likewise.
6162         * tracer.c: Likewise.
6163         * trans-mem.c: Likewise.
6164         * tree-affine.c: Likewise.
6165         * tree-affine.h: Likewise.
6166         * tree-browser.c: Likewise.
6167         * tree-call-cdce.c: Likewise.
6168         * tree-cfg.c: Likewise.
6169         * tree-cfgcleanup.c: Likewise.
6170         * tree-chkp-opt.c: Likewise.
6171         * tree-chkp.c: Likewise.
6172         * tree-chrec.c: Likewise.
6173         * tree-complex.c: Likewise.
6174         * tree-data-ref.c: Likewise.
6175         * tree-dfa.c: Likewise.
6176         * tree-diagnostic.c: Likewise.
6177         * tree-dump.c: Likewise.
6178         * tree-eh.c: Likewise.
6179         * tree-emutls.c: Likewise.
6180         * tree-if-conv.c: Likewise.
6181         * tree-inline.c: Likewise.
6182         * tree-into-ssa.c: Likewise.
6183         * tree-iterator.c: Likewise.
6184         * tree-loop-distribution.c: Likewise.
6185         * tree-nested.c: Likewise.
6186         * tree-nrv.c: Likewise.
6187         * tree-object-size.c: Likewise.
6188         * tree-outof-ssa.c: Likewise.
6189         * tree-parloops.c: Likewise.
6190         * tree-phinodes.c: Likewise.
6191         * tree-predcom.c: Likewise.
6192         * tree-pretty-print.c: Likewise.
6193         * tree-pretty-print.h: Likewise.
6194         * tree-profile.c: Likewise.
6195         * tree-scalar-evolution.c: Likewise.
6196         * tree-sra.c: Likewise.
6197         * tree-ssa-address.c: Likewise.
6198         * tree-ssa-alias.c: Likewise.
6199         * tree-ssa-ccp.c: Likewise.
6200         * tree-ssa-coalesce.c: Likewise.
6201         * tree-ssa-copy.c: Likewise.
6202         * tree-ssa-copyrename.c: Likewise.
6203         * tree-ssa-dce.c: Likewise.
6204         * tree-ssa-dom.c: Likewise.
6205         * tree-ssa-dse.c: Likewise.
6206         * tree-ssa-forwprop.c: Likewise.
6207         * tree-ssa-ifcombine.c: Likewise.
6208         * tree-ssa-live.c: Likewise.
6209         * tree-ssa-loop-ch.c: Likewise.
6210         * tree-ssa-loop-im.c: Likewise.
6211         * tree-ssa-loop-ivcanon.c: Likewise.
6212         * tree-ssa-loop-ivopts.c: Likewise.
6213         * tree-ssa-loop-manip.c: Likewise.
6214         * tree-ssa-loop-niter.c: Likewise.
6215         * tree-ssa-loop-prefetch.c: Likewise.
6216         * tree-ssa-loop-unswitch.c: Likewise.
6217         * tree-ssa-loop.c: Likewise.
6218         * tree-ssa-loop.h: Likewise.
6219         * tree-ssa-math-opts.c: Likewise.
6220         * tree-ssa-operands.c: Likewise.
6221         * tree-ssa-phiopt.c: Likewise.
6222         * tree-ssa-phiprop.c: Likewise.
6223         * tree-ssa-pre.c: Likewise.
6224         * tree-ssa-propagate.c: Likewise.
6225         * tree-ssa-reassoc.c: Likewise.
6226         * tree-ssa-sccvn.c: Likewise.
6227         * tree-ssa-scopedtables.c: Likewise.
6228         * tree-ssa-sink.c: Likewise.
6229         * tree-ssa-strlen.c: Likewise.
6230         * tree-ssa-structalias.c: Likewise.
6231         * tree-ssa-tail-merge.c: Likewise.
6232         * tree-ssa-ter.c: Likewise.
6233         * tree-ssa-threadedge.c: Likewise.
6234         * tree-ssa-threadupdate.c: Likewise.
6235         * tree-ssa-uncprop.c: Likewise.
6236         * tree-ssa-uninit.c: Likewise.
6237         * tree-ssa.c: Likewise.
6238         * tree-ssanames.c: Likewise.
6239         * tree-stdarg.c: Likewise.
6240         * tree-streamer-in.c: Likewise.
6241         * tree-streamer-out.c: Likewise.
6242         * tree-streamer.c: Likewise.
6243         * tree-switch-conversion.c: Likewise.
6244         * tree-tailcall.c: Likewise.
6245         * tree-vect-data-refs.c: Likewise.
6246         * tree-vect-generic.c: Likewise.
6247         * tree-vect-loop-manip.c: Likewise.
6248         * tree-vect-loop.c: Likewise.
6249         * tree-vect-patterns.c: Likewise.
6250         * tree-vect-slp.c: Likewise.
6251         * tree-vect-stmts.c: Likewise.
6252         * tree-vectorizer.c: Likewise.
6253         * tree-vrp.c: Likewise.
6254         * tree.c: Likewise.
6255         * tsan.c: Likewise.
6256         * ubsan.c: Likewise.
6257         * valtrack.c: Likewise.
6258         * value-prof.c: Likewise.
6259         * var-tracking.c: Likewise.
6260         * varasm.c: Likewise.
6261         * varpool.c: Likewise.
6262         * vmsdbgout.c: Likewise.
6263         * vtable-verify.c: Likewise.
6264         * web.c: Likewise.
6265         * wide-int-print.cc: Likewise.
6266         * wide-int-print.h: Likewise.
6267         * wide-int.cc: Likewise.
6268         * xcoffout.c: Likewise.
6269         * config/aarch64/aarch64-builtins.c: Likewise.
6270         * config/aarch64/aarch64.c: Likewise.
6271         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
6272         * config/alpha/alpha.c: Likewise.
6273         * config/arc/arc.c: Likewise.
6274         * config/arm/aarch-common.c: Likewise.
6275         * config/arm/arm-builtins.c: Likewise.
6276         * config/arm/arm-c.c: Likewise.
6277         * config/arm/arm.c: Likewise.
6278         * config/avr/avr-c.c: Likewise.
6279         * config/avr/avr-log.c: Likewise.
6280         * config/avr/avr.c: Likewise.
6281         * config/bfin/bfin.c: Likewise.
6282         * config/c6x/c6x.c: Likewise.
6283         * config/cr16/cr16.c: Likewise.
6284         * config/cris/cris.c: Likewise.
6285         * config/darwin-c.c: Likewise.
6286         * config/darwin.c: Likewise.
6287         * config/default-c.c: Likewise.
6288         * config/epiphany/epiphany.c: Likewise.
6289         * config/epiphany/mode-switch-use.c: Likewise.
6290         * config/epiphany/resolve-sw-modes.c: Likewise.
6291         * config/fr30/fr30.c: Likewise.
6292         * config/frv/frv.c: Likewise.
6293         * config/ft32/ft32.c: Likewise.
6294         * config/glibc-c.c: Likewise.
6295         * config/h8300/h8300.c: Likewise.
6296         * config/i386/i386-c.c: Likewise.
6297         * config/i386/i386.c: Likewise.
6298         * config/i386/msformat-c.c: Likewise.
6299         * config/i386/winnt-cxx.c: Likewise.
6300         * config/i386/winnt-stubs.c: Likewise.
6301         * config/i386/winnt.c: Likewise.
6302         * config/ia64/ia64-c.c: Likewise.
6303         * config/ia64/ia64.c: Likewise.
6304         * config/iq2000/iq2000.c: Likewise.
6305         * config/lm32/lm32.c: Likewise.
6306         * config/m32c/m32c-pragma.c: Likewise.
6307         * config/m32c/m32c.c: Likewise.
6308         * config/m32r/m32r.c: Likewise.
6309         * config/m68k/m68k.c: Likewise.
6310         * config/mcore/mcore.c: Likewise.
6311         * config/mep/mep-pragma.c: Likewise.
6312         * config/mep/mep.c: Likewise.
6313         * config/microblaze/microblaze-c.c: Likewise.
6314         * config/microblaze/microblaze.c: Likewise.
6315         * config/mips/mips.c: Likewise.
6316         * config/mmix/mmix.c: Likewise.
6317         * config/mn10300/mn10300.c: Likewise.
6318         * config/moxie/moxie.c: Likewise.
6319         * config/msp430/msp430-c.c: Likewise.
6320         * config/msp430/msp430.c: Likewise.
6321         * config/nds32/nds32-cost.c: Likewise.
6322         * config/nds32/nds32-fp-as-gp.c: Likewise.
6323         * config/nds32/nds32-intrinsic.c: Likewise.
6324         * config/nds32/nds32-isr.c: Likewise.
6325         * config/nds32/nds32-md-auxiliary.c: Likewise.
6326         * config/nds32/nds32-memory-manipulation.c: Likewise.
6327         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
6328         * config/nds32/nds32-predicates.c: Likewise.
6329         * config/nds32/nds32.c: Likewise.
6330         * config/nios2/nios2.c: Likewise.
6331         * config/nvptx/nvptx.c: Likewise.
6332         * config/pa/pa.c: Likewise.
6333         * config/pdp11/pdp11.c: Likewise.
6334         * config/rl78/rl78-c.c: Likewise.
6335         * config/rl78/rl78.c: Likewise.
6336         * config/rs6000/rs6000-c.c: Likewise.
6337         * config/rs6000/rs6000.c: Likewise.
6338         * config/rx/rx.c: Likewise.
6339         * config/s390/s390-c.c: Likewise.
6340         * config/s390/s390.c: Likewise.
6341         * config/sh/sh-c.c: Likewise.
6342         * config/sh/sh-mem.cc: Likewise.
6343         * config/sh/sh.c: Likewise.
6344         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
6345         * config/sh/sh_treg_combine.cc: Likewise.
6346         * config/sol2-c.c: Likewise.
6347         * config/sol2-cxx.c: Likewise.
6348         * config/sol2-stubs.c: Likewise.
6349         * config/sol2.c: Likewise.
6350         * config/sparc/sparc-c.c: Likewise.
6351         * config/sparc/sparc.c: Likewise.
6352         * config/spu/spu-c.c: Likewise.
6353         * config/spu/spu.c: Likewise.
6354         * config/stormy16/stormy16.c: Likewise.
6355         * config/tilegx/mul-tables.c: Likewise.
6356         * config/tilegx/tilegx-c.c: Likewise.
6357         * config/tilegx/tilegx.c: Likewise.
6358         * config/tilepro/mul-tables.c: Likewise.
6359         * config/tilepro/tilepro-c.c: Likewise.
6360         * config/tilepro/tilepro.c: Likewise.
6361         * config/v850/v850-c.c: Likewise.
6362         * config/v850/v850.c: Likewise.
6363         * config/vax/vax.c: Likewise.
6364         * config/visium/visium.c: Likewise.
6365         * config/vms/vms-c.c: Likewise.
6366         * config/vms/vms.c: Likewise.
6367         * config/vxworks.c: Likewise.
6368         * config/winnt-c.c: Likewise.
6369         * config/xtensa/xtensa.c: Likewise.
6370         * common/config/bfin/bfin-common.c: Likewise.
6371
6372 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
6373
6374         * tree.h (tree_code_for_canonical_type_merging): New function.
6375         * tree.c (gimple_canonical_types_compatible_p): Use
6376         tree_code_for_canonical_type_merging..
6377
6378 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6379
6380         PR c++/66192
6381         PR target/66200
6382         * doc/tm.texi: Regenerate.
6383         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
6384         * target.def (TARGET_RELAXED_ORDERING): Likewise.
6385         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
6386         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
6387         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
6388         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
6389         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
6390         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
6391         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
6392
6393 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6394
6395         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
6396         register fma steering pass.
6397         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
6398         AARCH64_TUNE_FMA_STEERING.
6399
6400 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
6401
6402         * tree.c (verify_type_variant): Verify that type and variant is
6403         compatible.
6404         (gimple_canonical_types_compatible_p): Look for main variants.
6405
6406 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
6407
6408         * config.gcc (powerpc*-*-*): Add support for a new configure
6409         option --with-advance-toolchain=<xxx> which overrides using the
6410         default header files, libraries and dynamic linker.
6411
6412         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
6413         specs to support the configure --with-advance-toolchain=<xxx>
6414         option.
6415         (INCLUDE_EXTRA_SPEC): Likewise.
6416         (LINK_OS_EXTRA_SPEC32): Likewise.
6417         (LINK_OK_EXTRA_SPEC64): Likewise.
6418         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
6419         (DYNAMIC_LINKER_PREFIX): Likewise.
6420         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
6421         toolchain support.
6422         (GLIBC_DYNAMIC_LINKER32): Likewise.
6423         (GLIBC_DYNAMIC_LINKER64): Likewise.
6424         (LINK_OS_LINUX_SPEC32): Likewise.
6425         (LINK_OS_LINUX_SPEC64): Likewise.
6426
6427         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
6428         configuration option.
6429
6430 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
6431
6432         PR target/66275
6433         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
6434         to determine current function ABI.
6435         (ix86_function_value_regno_p): Ditto.
6436
6437 2015-06-03  Martin Liska  <mliska@suse.cz>
6438
6439         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
6440         * bitmap.h (struct bitmap_usage): Likewise.
6441         * ggc-common.c (struct ggc_usage): Likewise.
6442         * mem-stats.h (struct mem_location): Likewise.
6443         (struct mem_usage): Likewise.
6444         * vec.c (struct vec_usage): Likewise.
6445
6446 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
6447
6448         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
6449         -Bsymbolic.
6450
6451 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
6452
6453         * doc/plugins.texi (enum plugin_event): New event.
6454         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
6455         and PLUGIN_FINISH_FUNCTION.
6456         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
6457         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
6458
6459 2015-06-03  Richard Biener  <rguenther@suse.de>
6460
6461         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
6462         compute GROUP_GAP for the first element.
6463         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
6464         on in-group gaps.
6465
6466 2015-06-03  Nick Clifton  <nickc@redhat.com>
6467
6468         * config/rl78/rl78-real.md: Add peepholes to avoid a register
6469         copy when calling a function.
6470         * config/rl78/rl78.c (need_to_save): Do not push the frame
6471         pointer in an interrupt handler prologue if it is never used.
6472
6473 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6474
6475         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
6476
6477 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
6478
6479         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
6480         reference when cloning alias node.
6481
6482 2015-06-03  Martin Liska  <mliska@suse.cz>
6483
6484         * alloc-pool.h (struct pool_usage): Correct space padding.
6485         * ggc-page.c (ggc_print_statistics): Align columns in a report.
6486         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
6487         * tree.c (dump_tree_statistics): Align columns in a report.
6488
6489 2015-06-03  Martin Liska  <mliska@suse.cz>
6490
6491         * alloc-pool.c (allocate_pool_descriptor): Remove.
6492         (struct pool_output_info): Likewise.
6493         (print_alloc_pool_statistics): Likewise.
6494         (dump_alloc_pool_statistics): Likewise.
6495         * alloc-pool.h (struct pool_usage): New struct.
6496         (pool_allocator::initialize): Change usage of memory statistics
6497         to a new interface.
6498         (pool_allocator::release): Likewise.
6499         (pool_allocator::allocate): Likewise.
6500         (pool_allocator::remove): Likewise.
6501         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
6502         for a pool allocator.
6503         * mem-stats.h (struct mem_location): Add new ctor.
6504         (struct mem_usage): Add counter for number of
6505         instances.
6506         (mem_alloc_description::register_descriptor): New overload of
6507         * mem-stats.h (mem_location::to_string): New function.
6508         * bitmap.h (struct bitmap_usage): Use this new function.
6509         * ggc-common.c (struct ggc_usage): Likewise.
6510         the function.
6511
6512 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
6513
6514         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
6515         of GCC_INSN_FLAGS_H block.
6516
6517 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
6518
6519         * explow.c (plus_constant): Update check after force_const_mem call
6520         to see if the value returned is not a NULL_RTX.
6521
6522 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
6523
6524         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
6525         remove instumentation thunks calling reachable functions.
6526         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
6527         * lto/lto-partition.c (privatize_symbol_name_1): New.
6528         (privatize_symbol_name): Privatize both decl and orig_decl
6529         names for instrumented functions.
6530         * cgraph.c (cgraph_node::verify_node): Add transparent
6531         alias chain check for instrumented node.
6532
6533 2015-06-03  Marek Polacek  <polacek@redhat.com>
6534
6535         PR c/64223
6536         PR c/29358
6537         * tree.c (attribute_value_equal): Handle attribute format.
6538         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
6539
6540 2015-06-03  Richard Biener  <rguenther@suse.de>
6541
6542         PR tree-optimization/63916
6543         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
6544         Forward-propagate non-invariant addresses by splicing their
6545         reference ops if the result isn't going to be used by PRE.
6546         (vn_reference_lookup_3): Remove pointless assert.
6547
6548 2015-06-03  Richard Biener  <rguenther@suse.de>
6549
6550         PR tree-optimization/66375
6551         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
6552         add to the evolution before following SSA edges.
6553
6554 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
6555
6556         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
6557         (dump_use, dump_cand, find_induction_variables): Pass new argument
6558         to dump_iv.
6559         (record_use): Preserve the ssa name information in IV.
6560
6561 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
6562
6563         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
6564         NO_MODE_TEST.
6565         (add_mode_tests): Don't add mode tests if the predicate only
6566         accepts scalar constant integers.  Otherwise, allow the mode
6567         of "op" to be VOIDmode if the predicate does accept such integers.
6568
6569 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
6570
6571         PR target/66258
6572         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
6573         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
6574         (aarch64_secondary_reload): Likewise
6575         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
6576         to !TARGET_FLOAT.
6577         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
6578         Likewise.
6579
6580 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
6581             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6582
6583         PR target/65768
6584         * cprop.c (try_replace_reg): Check cost of constants before propagating.
6585
6586 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
6587
6588         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
6589         provide access to the IBM extended double floating point mode if
6590         long double is IEEE 128-bit floating point.
6591         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
6592         point if long double is the IBM extended double type.
6593
6594         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
6595         enable adding IEEE 128-bit floating point support.
6596         (-mfloat128-software): Likewise.
6597         (-mfloat128-sw): Likewise.
6598
6599         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
6600         128-bit floating point types to occupy any register if
6601         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
6602         -mfloat128-software is enabled.
6603         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
6604         support.
6605         (rs6000_option_override_internal): Add -mfloat128-* support.
6606         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
6607
6608         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
6609         and float128 type nodes.
6610         (ieee128_float_type_node): Likewise.
6611         (ibm128_float_type_node): Likewise.
6612
6613 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
6614
6615         PR target/66136
6616         * config/aarch64/geniterators.sh: Rewrite in awk.
6617
6618 2015-06-02  Martin Liska  <mliska@suse.cz>
6619
6620         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
6621         values to avoid -Wmaybe-uninitialized errors.
6622
6623 2015-06-02  Richard Biener  <rguenther@suse.de>
6624
6625         PR debug/65549
6626         * dwarf2out.c (lookup_context_die): New function.
6627         (resolve_addr): Avoid forcing a full DIE for the
6628         target of a DW_TAG_GNU_call_site during late compilation.
6629         Instead create a stub DIE without a type if we have a
6630         context DIE present.
6631
6632 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
6633
6634         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
6635
6636 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
6637
6638         PR tree-optimization/48052
6639         * cfgloop.h (struct control_iv): New.
6640         (struct loop): New field control_ivs.
6641         * tree-ssa-loop-niter.c : Include "stor-layout.h".
6642         (number_of_iterations_lt): Set no_overflow information.
6643         (number_of_iterations_exit): Init control iv in niter struct.
6644         (record_control_iv): New.
6645         (estimate_numbers_of_iterations_loop): Call record_control_iv.
6646         (loop_exits_before_overflow): New.  Interface factored out of
6647         scev_probably_wraps_p.
6648         (scev_probably_wraps_p): Factor loop niter related code into
6649         loop_exits_before_overflow.
6650         (free_numbers_of_iterations_estimates_loop): Free control ivs.
6651         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
6652
6653 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
6654
6655         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
6656         the target doesn't belong to the current function.
6657
6658 2015-06-02  Marek Polacek  <polacek@redhat.com>
6659
6660         PR middle-end/66345
6661         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
6662         get_maxval_strlen does not produce an INTEGER_CST.
6663
6664 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
6665
6666         * config/arc/constraints.md: Use lower-case names in match_code.
6667         * config/mmix/constraints.md: Likewise.
6668
6669 2015-06-02  Richard Biener  <rguenther@suse.de>
6670
6671         PR tree-optimization/65961
6672         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
6673         check and clarify dump message.
6674         (vect_build_slp_tree): If all children are built up from scalars
6675         build up the parent from scalars instead.
6676         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
6677
6678 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
6679
6680         PR other/65366
6681         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
6682         instead of print ... .
6683
6684 2015-06-02  Alan Modra  <amodra@gmail.com>
6685
6686         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
6687         2014-08-11 change.
6688
6689 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
6690
6691         PR tree-optimization/52563
6692         PR tree-optimization/62173
6693         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
6694         (alloc_iv, set_iv): New parameter.
6695         (determine_biv_step): Delete.
6696         (find_bivs): Inline original determine_biv_step.  Pass new
6697         argument to set_iv.
6698         (idx_find_step): Use no_overflow information for conversion.
6699         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
6700         resolve_mixers handle folded_casts.
6701         (instantiate_scev_name): Change bool parameter to bool pointer.
6702         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
6703         (instantiate_array_ref, instantiate_scev_not): Ditto.
6704         (instantiate_scev_3, instantiate_scev_2): Ditto.
6705         (instantiate_scev_1, instantiate_scev_r): Ditto.
6706         (instantiate_scev_convert, ): Change parameter.  Pass argument
6707         to chrec_convert_aggressive.
6708         (instantiate_scev): Change argument.
6709         (resolve_mixers): New parameter and set it.
6710         (scev_const_prop): New argument.
6711         * tree-scalar-evolution.h (resolve_mixers): New parameter.
6712         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
6713         of chrec_conert_1.
6714         (chrec_convert): New parameter.  Move definition below.
6715         (chrec_convert_aggressive): New parameter and set it.  Call
6716         convert_affine_scev.
6717         * tree-chrec.h (chrec_convert): New parameter.
6718         (chrec_convert_aggressive): Ditto.
6719
6720 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
6721
6722         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
6723         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
6724         the LHS of a no-return call if its type has variable size.
6725         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
6726         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
6727
6728 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
6729
6730         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
6731         * config.in: Regenerate.
6732
6733 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
6734
6735         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
6736         consecutive accesses within outer-loop with force_vectorize
6737         for references with zero step in inner-loop.
6738
6739 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
6740
6741         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
6742         rather than from gcc/build directory.
6743
6744 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
6745
6746         PR target/65697
6747         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
6748         for __sync memory models, emit initial loads and final barriers as
6749         appropriate.
6750
6751 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
6752
6753         PR target/65697
6754         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
6755         (aarch64_split_atomic_op): Check for __sync memory models, emit
6756         appropriate initial loads and final barriers.
6757
6758 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
6759
6760         * Makefile.in: Fix gcov dependencies that should
6761         not point to a build folder.
6762
6763 2015-06-01  Richard Biener  <rguenther@suse.de>
6764
6765         Revert
6766         2015-05-29  Richard Biener  <rguenther@suse.de>
6767
6768         PR tree-optimization/66314
6769         * tree-ssa-threadupdate.c (create_block_for_threading): Add
6770         parameter that says which loop the new block belongs to.
6771         (ssa_create_duplicates): Blocks duplicated for the threaded
6772         path belong to the loop of the thread destination.
6773
6774 2015-06-01  Martin Liska  <mliska@suse.cz>
6775
6776         * sched-deps.c: Include pool-alloc.h before
6777         cselib.h header file is included.
6778
6779 2015-06-01  Richard Biener  <rguenther@suse.de>
6780
6781         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
6782         functions.
6783
6784 2015-06-01  Martin Liska  <mliska@suse.cz>
6785
6786         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
6787         a function local variable.
6788
6789 2015-06-01  Martin Liska  <mliska@suse.cz>
6790
6791         * alloc-pool.c (create_alloc_pool): Remove.
6792         (empty_alloc_pool): Likewise.
6793         (free_alloc_pool): Likewise.
6794         (free_alloc_pool_if_empty): Likewise.
6795         (pool_alloc): Likewise.
6796         (pool_free): Likewise.
6797         * alloc-pool.h: Remove old declarations.
6798
6799 2015-06-01  Martin Liska  <mliska@suse.cz>
6800
6801         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
6802         (ira_create_object): Likewise.
6803         (ira_create_allocno): Likewise.
6804         (ira_create_live_range): Likewise.
6805         (copy_live_range): Likewise.
6806         (ira_finish_live_range): Likewise.
6807         (ira_free_allocno_costs): Likewise.
6808         (finish_allocno): Likewise.
6809         (finish_allocnos): Likewise.
6810         (initiate_prefs): Likewise.
6811         (ira_create_pref): Likewise.
6812         (finish_pref): Likewise.
6813         (finish_prefs): Likewise.
6814         (initiate_copies): Likewise.
6815         (ira_create_copy): Likewise.
6816         (finish_copy): Likewise.
6817         (finish_copies): Likewise.
6818         (finish_prefs): Likewise.
6819
6820 2015-06-01  Martin Liska  <mliska@suse.cz>
6821
6822         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
6823         (allocate_and_init_ipcp_value): Likewise.
6824         (ipcp_lattice::add_value): Likewise.
6825         (merge_agg_lats_step): Likewise.
6826         (ipcp_driver): Likewise.
6827         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
6828         (ipa_free_all_structures_after_iinln): Likewise.
6829         * ipa-prop.h: Likewise.
6830
6831 2015-06-01  Martin Liska  <mliska@suse.cz>
6832
6833         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
6834         pool allocator.
6835         (set_hint_predicate): Likewise.
6836         (inline_summary_alloc): Likewise.
6837         (reset_inline_edge_summary): Likewise.
6838         (reset_inline_summary): Likewise.
6839         (set_cond_stmt_execution_predicate): Likewise.
6840         (set_switch_stmt_execution_predicate): Likewise.
6841         (compute_bb_predicates): Likewise.
6842         (estimate_function_body_sizes): Likewise.
6843         (inline_free_summary): Likewise.
6844
6845 2015-06-01  Martin Liska  <mliska@suse.cz>
6846
6847         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
6848         (ipa_edge_duplication_hook): Likewise.
6849         (ipa_free_all_structures_after_ipa_cp): Likewise.
6850         (ipa_free_all_structures_after_iinln): Likewise.
6851
6852 2015-06-01  Martin Liska  <mliska@suse.cz>
6853
6854         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
6855         (ipa_profile_generate_summary): Likewise.
6856         (ipa_profile_read_summary): Likewise.
6857         (ipa_profile): Likewise.
6858
6859 2015-06-01  Martin Liska  <mliska@suse.cz>
6860
6861         * tree-ssa-structalias.c (new_var_info): Use new type-based
6862         pool allocator.
6863         (new_constraint): Likewise.
6864         (init_alias_vars): Likewise.
6865         (delete_points_to_sets): Likewise.
6866
6867 2015-06-01  Martin Liska  <mliska@suse.cz>
6868
6869         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
6870         (free_strinfo): Likewise.
6871         (pass_strlen::execute): Likewise.
6872
6873 2015-06-01  Martin Liska  <mliska@suse.cz>
6874
6875         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
6876         pool allocator.
6877         (vn_reference_insert_pieces): Likewise.
6878         (vn_phi_insert): Likewise.
6879         (visit_reference_op_call): Likewise.
6880         (copy_phi): Likewise.
6881         (copy_reference): Likewise.
6882         (process_scc): Likewise.
6883         (allocate_vn_table): Likewise.
6884         (free_vn_table): Likewise.
6885
6886 2015-06-01  Martin Liska  <mliska@suse.cz>
6887
6888         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
6889         pool allocator.
6890         (add_repeat_to_ops_vec): Likewise.
6891         (get_ops): Likewise.
6892         (maybe_optimize_range_tests): Likewise.
6893         (init_reassoc): Likewise.
6894         (fini_reassoc): Likewise.
6895
6896 2015-06-01  Martin Liska  <mliska@suse.cz>
6897
6898         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
6899         pool allocator.
6900         (bitmap_set_new): Likewise.
6901         (get_or_alloc_expr_for_constant): Likewise.
6902         (get_or_alloc_expr_for): Likewise.
6903         (phi_translate_1): Likewise.
6904         (compute_avail): Likewise.
6905         (init_pre): Likewise.
6906         (fini_pre): Likewise.
6907
6908 2015-06-01  Martin Liska  <mliska@suse.cz>
6909
6910         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
6911         (delete_dep_node): Likewise.
6912         (create_deps_list): Likewise.
6913         (free_deps_list): Likewise.
6914         (sched_deps_init): Likewise.
6915         (sched_deps_finish): Likewise.
6916
6917 2015-06-01  Martin Liska  <mliska@suse.cz>
6918
6919         * regcprop.c (free_debug_insn_changes): Use new type-based
6920         pool allocator.
6921         (replace_oldest_value_reg): Likewise.
6922         (pass_cprop_hardreg::execute): Likewise.
6923
6924 2015-06-01  Martin Liska  <mliska@suse.cz>
6925
6926         * ira-build.c (initiate_cost_vectors): Use new type-based
6927         pool allocator.
6928         (ira_allocate_cost_vector): Likewise.
6929         (ira_free_cost_vector): Likewise.
6930         (finish_cost_vectors): Likewise.
6931
6932 2015-06-01  Martin Liska  <mliska@suse.cz>
6933
6934         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
6935         pool allocator.
6936         (free_sched_pools): Likewise.
6937         * sel-sched-ir.h (_list_alloc): Likewise.
6938         (_list_remove): Likewise.
6939
6940 2015-06-01  Martin Liska  <mliska@suse.cz>
6941
6942         * stmt.c (add_case_node): Use new type-based pool allocator.
6943         (expand_case): Likewise.
6944         (expand_sjlj_dispatch_table): Likewise.
6945
6946 2015-06-01  Martin Liska  <mliska@suse.cz>
6947
6948         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
6949         (free_bb): Likewise.
6950         (pass_cse_reciprocals::execute): Likewise.
6951
6952 2015-06-01  Martin Liska  <mliska@suse.cz>
6953
6954         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
6955         (sra_deinitialize) Likewise.
6956         (create_access_1) Likewise.
6957         (build_accesses_from_assign) Likewise.
6958         (create_artificial_child_access) Likewise.
6959
6960 2015-06-01  Martin Liska  <mliska@suse.cz>
6961
6962         * dse.c (get_group_info):Use new type-based pool allocator.
6963         (dse_step0) Likewise.
6964         (free_store_info) Likewise.
6965         (delete_dead_store_insn) Likewise.
6966         (free_read_records) Likewise.
6967         (record_store) Likewise.
6968         (replace_read) Likewise.
6969         (check_mem_read_rtx) Likewise.
6970         (scan_insn) Likewise.
6971         (dse_step1) Likewise.
6972         (dse_step7) Likewise.
6973
6974 2015-06-01  Martin Liska  <mliska@suse.cz>
6975
6976         * df-scan.c (struct df_scan_problem_data):Use new type-based
6977         pool allocator.
6978         (df_scan_free_internal) Likewise.
6979         (df_scan_alloc) Likewise.
6980         (df_grow_reg_info) Likewise.
6981         (df_free_ref) Likewise.
6982         (df_insn_create_insn_record) Likewise.
6983         (df_mw_hardreg_chain_delete) Likewise.
6984         (df_insn_info_delete) Likewise.
6985         (df_free_collection_rec) Likewise.
6986         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
6987         (df_sort_and_compress_mws) Likewise.
6988         (df_ref_create_structure) Likewise.
6989         (df_ref_record) Likewise.
6990
6991 2015-06-01  Martin Liska  <mliska@suse.cz>
6992
6993         * df-problems.c (df_chain_create):Use new type-based pool allocator.
6994         (df_chain_unlink_1) Likewise.
6995         (df_chain_unlink) Likewise.
6996         (df_chain_remove_problem) Likewise.
6997         (df_chain_alloc) Likewise.
6998         (df_chain_free) Likewise.
6999         * df.h (struct dataflow) Likewise.
7000
7001 2015-06-01  Martin Liska  <mliska@suse.cz>
7002
7003         * cselib.c (new_elt_list):Use new type-based pool allocator.
7004         (new_elt_loc_list) Likewise.
7005         (unchain_one_elt_list) Likewise.
7006         (unchain_one_elt_loc_list) Likewise.
7007         (unchain_one_value) Likewise.
7008         (new_cselib_val) Likewise.
7009         (cselib_init) Likewise.
7010         (cselib_finish) Likewise.
7011
7012 2015-06-01  Martin Liska  <mliska@suse.cz>
7013
7014         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
7015         (sh_reorg) Likewise.
7016
7017 2015-06-01  Martin Liska  <mliska@suse.cz>
7018
7019         * cfg.c (initialize_original_copy_tables):Use new type-based
7020         pool allocator.
7021         (free_original_copy_tables) Likewise.
7022         (copy_original_table_clear) Likewise.
7023         (copy_original_table_set) Likewise.
7024
7025 2015-06-01  Martin Liska  <mliska@suse.cz>
7026
7027         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
7028         pool allocator.
7029         (asan_mem_ref_new) Likewise.
7030         (free_mem_ref_resources) Likewise.
7031
7032 2015-06-01  Martin Liska  <mliska@suse.cz>
7033
7034         * var-tracking.c (variable_htab_free):Use new type-based
7035         pool allocator.
7036         (attrs_list_clear) Likewise.
7037         (attrs_list_insert) Likewise.
7038         (attrs_list_copy) Likewise.
7039         (shared_hash_unshare) Likewise.
7040         (shared_hash_destroy) Likewise.
7041         (unshare_variable) Likewise.
7042         (var_reg_delete_and_set) Likewise.
7043         (var_reg_delete) Likewise.
7044         (var_regno_delete) Likewise.
7045         (drop_overlapping_mem_locs) Likewise.
7046         (variable_union) Likewise.
7047         (insert_into_intersection) Likewise.
7048         (canonicalize_values_star) Likewise.
7049         (variable_merge_over_cur) Likewise.
7050         (dataflow_set_merge) Likewise.
7051         (remove_duplicate_values) Likewise.
7052         (variable_post_merge_new_vals) Likewise.
7053         (dataflow_set_preserve_mem_locs) Likewise.
7054         (dataflow_set_remove_mem_locs) Likewise.
7055         (variable_from_dropped) Likewise.
7056         (variable_was_changed) Likewise.
7057         (set_slot_part) Likewise.
7058         (clobber_slot_part) Likewise.
7059         (delete_slot_part) Likewise.
7060         (loc_exp_insert_dep) Likewise.
7061         (notify_dependents_of_changed_value) Likewise.
7062         (emit_notes_for_differences_1) Likewise.
7063         (vt_emit_notes) Likewise.
7064         (vt_initialize) Likewise.
7065         (vt_finalize) Likewise.
7066
7067 2015-06-01  Martin Liska  <mliska@suse.cz>
7068
7069         * ira-color.c (init_update_cost_records):Use new type-based
7070         pool allocator.
7071         (get_update_cost_record) Likewise.
7072         (free_update_cost_record_list) Likewise.
7073         (finish_update_cost_records) Likewise.
7074         (initiate_cost_update) Likewise.
7075
7076 2015-06-01  Martin Liska  <mliska@suse.cz>
7077
7078         * lra.c (init_insn_regs): Use new type-based pool allocator.
7079         (new_insn_reg) Likewise.
7080         (free_insn_reg) Likewise.
7081         (free_insn_regs) Likewise.
7082         (finish_insn_regs) Likewise.
7083         (init_insn_recog_data) Likewise.
7084         (init_reg_info) Likewise.
7085         (finish_reg_info) Likewise.
7086         (lra_free_copies) Likewise.
7087         (lra_create_copy) Likewise.
7088         (invalidate_insn_data_regno_info) Likewise.
7089
7090 2015-06-01  Martin Liska  <mliska@suse.cz>
7091
7092         * lra-lives.c (free_live_range): Use new type-based pool allocator.
7093         (free_live_range_list) Likewise.
7094         (create_live_range) Likewise.
7095         (copy_live_range) Likewise.
7096         (lra_merge_live_ranges) Likewise.
7097         (remove_some_program_points_and_update_live_ranges) Likewise.
7098         (lra_live_ranges_init) Likewise.
7099         (lra_live_ranges_finish) Likewise.
7100
7101 2015-06-01  Martin Liska  <mliska@suse.cz>
7102
7103         * et-forest.c (et_new_occ): Use new type-based pool allocator.
7104         (et_new_tree): Likewise.
7105         (et_free_tree): Likewise.
7106         (et_free_tree_force): Likewise.
7107         (et_free_pools): Likewise.
7108         (et_split): Likewise.
7109
7110 2015-06-01  Martin Liska  <mliska@suse.cz>
7111
7112         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
7113         to header file.
7114         * alloc-pool.h (pool_allocator::pool_allocator): New function.
7115         (pool_allocator::release): Likewise.
7116         (inline pool_allocator::release_if_empty): Likewise.
7117         (inline pool_allocator::~pool_allocator): Likewise.
7118         (pool_allocator::allocate): Likewise.
7119         (pool_allocator::remove): Likewise.
7120
7121 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
7122
7123         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
7124         in comment.
7125
7126 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
7127
7128         * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
7129         to fusible_ops.
7130         * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
7131         (arm_macro_fusion_p): Likewise.
7132         (arm_macro_fusion_pair_p): Likewise.
7133
7134 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
7135
7136         * config/aarch64/aarch64-protos.h (tune_params): Rename
7137         fuseable_ops to fusible_ops.
7138         * config/aarch64/aarch64.c (generic_tunings): Rename
7139         fuseable_ops to fusible_ops.
7140         (cortexa53_tunings): Likewise.
7141         (cortexa57_tunings): Likewise.
7142         (thunderx_tunings): Likewise.
7143         (xgene1_tunings): Likewise.
7144         (aarch64_macro_fusion_p): Likewise.
7145         (aarch64_macro_fusion_pair_p): Likewise.
7146
7147 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7148
7149         * config/s390/driver-native.c: New file.
7150         * config/s390/x-native: New file.
7151         * config.host: Add new files for s390.
7152         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
7153         and -march=native
7154         * config.gcc: Likewise.
7155         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
7156         * config/s390/s390-opts.h (enum processor_type): Ditto.
7157         * config/s390/s390.c (s390_option_override): Catch unhandled
7158         PROCESSOR_NATIVE
7159
7160 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
7161
7162         PR target/65527
7163         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
7164         redirection for instrumented calls.
7165         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
7166         (append_compiler_options): Append -fcheck-pointer-bounds.
7167         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
7168         (chkp_redirect_edge): New.
7169         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
7170         (chkp_redirect_edge): New.
7171
7172 2015-06-01  Richard Biener  <rguenther@suse.de>
7173
7174         PR tree-optimization/66280
7175         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
7176         def-use walking.
7177
7178 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7179
7180         * config/aarch64/aarch64.md
7181         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
7182         logic_shift_imm.
7183
7184 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
7185
7186         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
7187         Remove obsolete kludge.
7188
7189 2015-06-01  Richard Biener  <rguenther@suse.de>
7190
7191         * tree-ssa-reassoc.c (get_rank): Simplify.
7192
7193 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
7194
7195         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
7196         * configure: Regenerated.
7197
7198 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
7199
7200         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
7201         issue (add space between string literal and macro).
7202         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
7203
7204 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
7205
7206         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
7207         implict or explicit -fPIE or -fpie.
7208
7209 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
7210
7211         * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
7212
7213 2015-05-28  DJ Delorie  <dj@redhat.com>
7214
7215         * expmed.c (extract_bit_field_1): Avoid clobbering a
7216         yet-to-be-used base/index register.
7217
7218 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
7219
7220         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
7221         (alias_stats): Add num_universal.
7222         (alias_set_subset_of): Special case pointers; be ready for NULL
7223         children.
7224         (alias_sets_conflict_p): Special case pointers; be ready for NULL
7225         children.
7226         (init_alias_set_entry): Break out from ...
7227         (record_alias_subset): ... here; propagate new fields;
7228         allocate children only when really needed.
7229         (get_alias_set): Do less generous pointer globbing.
7230         (dump_alias_stats_in_alias_c): Update statistics.
7231
7232 2015-05-30  Alan Modra  <amodra@gmail.com>
7233
7234         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
7235         correct block for use of r12.
7236         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
7237
7238 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7239
7240         PR target/66215
7241         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
7242         with -mhotpatch=.
7243
7244 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
7245
7246         PR tree-optimization/66142
7247         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
7248         virtual phis that feed themselves.
7249
7250 2015-05-29  Richard Biener  <rguenther@suse.de>
7251
7252         PR tree-optimization/66314
7253         * tree-ssa-threadupdate.c (create_block_for_threading): Add
7254         parameter that says which loop the new block belongs to.
7255         (ssa_create_duplicates): Blocks duplicated for the threaded
7256         path belong to the loop of the thread destination.
7257
7258 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
7259
7260         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
7261         to cleanup-saved-temps.
7262         * doc/sourcebuild.texi (Clean up generated test files): Expand
7263         introduction.
7264         (dg-keep-saved-temps): Document new proc.
7265         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
7266         cleanup-saved-temps): Remove.
7267
7268 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
7269
7270         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
7271         gcc_AC_CHECK_DECLS.
7272         * configure: Regenerate.
7273
7274 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
7275
7276         * config/nios2/linux.h (CPP_SPEC): Define.
7277
7278 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
7279
7280         * config/microblaze/linux.h (CPP_SPEC): Define.
7281
7282 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
7283
7284         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
7285         -pthread is specified.
7286
7287 2015-05-28  Richard Biener  <rguenther@suse.de>
7288
7289         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
7290         (vect_fixup_scalar_cycles_with_patterns): Likewise.
7291         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
7292         after pattern recog.
7293         (vect_create_epilog_for_reduction): Properly handle reductions
7294         with patterns.
7295         (vectorizable_reduction): Likewise.
7296         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
7297         reduction chains.
7298         (vect_get_constant_vectors): Create the correct number of
7299         initial values for reductions.
7300         (vect_schedule_slp_instance): Handle reduction chains that are
7301         type changing properly.
7302         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
7303
7304 2015-05-28  Richard Biener  <rguenther@suse.de>
7305
7306         PR tree-optimization/66142
7307         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
7308         values better in memcpy destination handling.  Handle non-aliasing
7309         we discover here.
7310
7311 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
7312
7313         PR target/63810
7314         * config/darwin-c.c (version_components): New global enum.
7315         (parse_version, version_as_legacy_macro)
7316         (version_as_modern_macro, macosx_version_as_macro): New functions.
7317         (version_as_macro): Remove.
7318         (darwin_cpp_builtins): Use new function.
7319
7320 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
7321
7322         * builtins.c (expand_builtin_acc_on_device): Mark parameters
7323         with ATTRIBUTE_UNUSED.
7324
7325 2015-05-28  Julian Brown  <julian@codesourcery.com>
7326
7327         PR libgomp/65742
7328
7329         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
7330         sequence for !ACCEL_COMPILER.
7331
7332 2015-05-28  Nick Clifton  <nickc@redhat.com>
7333
7334         * config/rx/rx.c (push_regs): New function.  Extracts code from...
7335         (rx_expand_prologue): ... here.  Use push_regs to push even small
7336         spans of registers.
7337         (pop_regs): New function.
7338         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
7339         registers.
7340
7341 2015-05-28  Richard Biener  <rguenther@suse.de>
7342
7343         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
7344         member.
7345         (SLP_INSTANCE_BODY_COST_VEC): Remove.
7346         (vect_update_slp_costs_according_to_vf): Likewise.
7347         (vect_slp_analyze_operations): Update prototype.
7348         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
7349         vect_update_slp_costs_according_to_vf, adjust.
7350         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
7351         (vect_analyze_slp_cost_1): Likewise.
7352         (vect_analyze_slp_cost): Likewise.  Properly deal with
7353         widening reduction ops.  Commit body costs.
7354         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
7355         cost for loops from here.
7356         (vect_slp_analyze_operations): But do it from here when
7357         the vectorization factor is known and stmts are analyzed.
7358         (vect_bb_vectorization_profitable_p): Simplify.
7359         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
7360         (vect_update_slp_costs_according_to_vf): Remove.
7361
7362 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
7363             H.J. Lu  <hongjiu.lu@intel.com>
7364
7365         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
7366         (BUILD_CFLAGS): Likewise.
7367         (BUILD_CXXFLAGS): Likewise.
7368         (LINKER): Add @NO_PIE_FLAG@.
7369         (BUILD_LDFLAGS): Likewise.
7370         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
7371         --enable-default-pie.
7372         * common.opt (fPIE): Initialize to -1.
7373         (fpie): Likewise.
7374         (no-pie): New option.
7375         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
7376         * configure.ac: Add --enable-default-pie.
7377         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
7378         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
7379         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
7380         * gcc.c (NO_PIE_SPEC): New.
7381         (PIE_SPEC): Likewise.
7382         (NO_FPIE1_SPEC): Likewise.
7383         (FPIE1_SPEC): Likewise.
7384         (NO_FPIE2_SPEC): Likewise.
7385         (FPIE2_SPEC): Likewise.
7386         (NO_FPIE2_SPEC): Likewise.
7387         (FPIE_SPEC): Likewise.
7388         (NO_FPIE_SPEC): Likewise.
7389         (NO_FPIC1_SPEC): Likewise.
7390         (FPIC1_SPEC): Likewise.
7391         (NO_FPIC2_SPEC): Likewise.
7392         (FPIC2_SPEC): Likewise.
7393         (NO_FPIC2_SPEC): Likewise.
7394         (FPIC_SPEC): Likewise.
7395         (NO_FPIC_SPEC): Likewise.
7396         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
7397         (FPIE1_OR_FPIC1_SPEC): Likewise.
7398         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
7399         (FPIE2_OR_FPIC2_SPEC): Likewise.
7400         (NO_FPIE_AND_FPIC_SPEC): Likewise.
7401         (FPIE_OR_FPIC_SPEC): Likewise.
7402         (LD_PIE_SPEC): Likewise.
7403         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
7404         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
7405         * config/darwin.h (PIE_SPEC): Renamed to ...
7406         (DARWIN_PIE_SPEC): This.
7407         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
7408         * config/darwin9.h (PIE_SPEC): Renamed to ...
7409         (DARWIN_PIE_SPEC): This.
7410         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
7411         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
7412         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
7413         FPIE2_OR_FPIC2_SPEC.
7414         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
7415         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
7416         * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
7417         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
7418         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
7419         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
7420         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
7421         * config/m32r/m32r.h (ASM_SPEC): Likewise.
7422         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
7423         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
7424         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
7425         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
7426         * config/sparc/linux.h (ASM_SPEC): Likewise.
7427         * config/sparc/linux64.h (ASM_SPEC): Likewise.
7428         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
7429         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
7430         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
7431         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
7432         * config/sparc/sparc.h (ASM_SPEC): Likewise.
7433         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
7434         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
7435         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
7436         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
7437         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
7438         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
7439         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
7440         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
7441         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
7442         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
7443         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
7444         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
7445         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
7446         * config/vax/linux.h (ASM_SPEC): Likewise.
7447         * doc/install.texi: Document --enable-default-pie.
7448         * doc/invoke.texi: Document -no-pie.
7449         * config.in: Regenerated.
7450         * configure: Likewise.
7451
7452 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7453
7454         PR rtl-optimization/66168
7455         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
7456         can_move_invariant_reg.
7457
7458 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
7459
7460         PR target/66148
7461         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
7462         REG_EQUAL note when doing insert.
7463
7464         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
7465         instead of "%d" for 'o' operand.
7466
7467 2015-05-27  Nathan Sidwell  <nathan@acm.org>
7468
7469         PR c++/66270
7470         * tree.c (build_pointer_type_for_mode): Canonical type does not
7471         inherit can_alias_all.
7472         (build_reference_type_for_mode): Likewise.
7473
7474 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
7475
7476         * expr.h (array_at_struct_end_p): Move to...
7477         (array_ref_element_size): Likewise.
7478         (component_ref_field_offset): Likewise.
7479         * tree.h (array_ref_element_size): ...here.
7480         (array_at_struct_end_p): Likewise.
7481         (component_ref_field_offset): Likewise.
7482         * expr.c (array_ref_element_size): Move to...
7483         (array_ref_low_bound): Likewise.
7484         (array_at_struct_end_p): Likewise.
7485         (array_ref_up_bound): Likewise.
7486         (component_ref_field_offset): Likewise.
7487         * tree.c (array_ref_element_size): ...here.
7488         (array_ref_low_bound): Likewise.
7489         (array_ref_up_bound): Likewise.
7490         (array_at_struct_end_p): Likewise.
7491         (component_ref_field_offset): Likewise.
7492
7493 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
7494             Szabolcs Nagy  <szabolcs.nagy@arm.com>
7495
7496         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
7497
7498 2015-05-27  Jason Merrill  <jason@redhat.com>
7499
7500         PR bootstrap/66304
7501         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
7502         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
7503         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
7504
7505 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
7506
7507         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
7508         is true.
7509
7510         * statistics.c (statistics_fini_pass): Print pass name.
7511
7512 2015-05-27  Richard Biener  <rguenther@suse.de>
7513
7514         PR tree-optimization/66272
7515         Revert parts of
7516         2014-08-15  Richard Biener  <rguenther@suse.de>
7517
7518         PR tree-optimization/62031
7519         * tree-data-ref.c (dr_analyze_indices): Do not set
7520         DR_UNCONSTRAINED_BASE.
7521         (dr_may_alias_p): All indirect accesses have to go the
7522         formerly DR_UNCONSTRAINED_BASE path.
7523         * tree-data-ref.h (struct indices): Remove
7524         unconstrained_base member.
7525         (DR_UNCONSTRAINED_BASE): Remove.
7526
7527 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
7528
7529         * dwarf2out.c: Remove block_map.
7530         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
7531         (gen_lexical_block_die): Same.
7532         (dwarf2out_function_decl): Remove block_map use.
7533         (dwarf2out_c_finalize): Same.
7534         * tree-core.h (struct tree_block): Add die field.
7535         * tree.h (BLOCK_DIE): New.
7536
7537 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7538
7539         PR target/65358
7540         * expr.c (memory_load_overlap): New function.
7541         (emit_push_insn): When pushing partial args to the stack would
7542         clobber the register part load the overlapping part into a pseudo
7543         and put it into the hard reg after pushing.  Change return type
7544         to bool.  Add bool argument.
7545         * expr.h (emit_push_insn): Change return type to bool.
7546         Add bool argument.
7547         * calls.c (expand_call): Cancel sibcall optimization when encountering
7548         partial argument on targets with ARGS_GROW_DOWNWARD and
7549         !STACK_GROWS_DOWNWARD.
7550         (emit_library_call_value_1): Update callsite of emit_push_insn.
7551         (store_one_arg): Likewise.
7552
7553 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
7554
7555         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
7556
7557 2015-05-27  Martin Liska  <mliska@suse.cz>
7558
7559         * Makefile.in: Add additional dependencies related to memory report
7560         enhancement.
7561         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
7562         * bitmap.c (struct bitmap_descriptor_d): Remove.
7563         (struct loc): Likewise.
7564         (struct bitmap_desc_hasher): Likewise.
7565         (bitmap_desc_hasher::hash): Likewise.
7566         (bitmap_desc_hasher::equal): Likewise.
7567         (get_bitmap_descriptor): Likewise.
7568         (bitmap_register): User new memory descriptor API.
7569         (register_overhead): Likewise.
7570         (bitmap_find_bit): Register nsearches and search_iter statistics.
7571         (struct bitmap_output_info): Remove.
7572         (print_statistics): Likewise.
7573         (dump_bitmap_statistics): Use new memory descriptor.
7574         * bitmap.h (struct bitmap_usage): New class.
7575         * genmatch.c: Extend header file inclusion.
7576         * genpreds.c: Likewise.
7577         * ggc-common.c (struct ggc_usage): New class.
7578         (struct ggc_loc_desc_hasher): Remove.
7579         (ggc_loc_desc_hasher::hash): Likewise.
7580         (ggc_loc_desc_hasher::equal): Likewise.
7581         (struct ggc_ptr_hash_entry): Likewise.
7582         (struct ptr_hash_hasher): Likewise.
7583         (ptr_hash_hasher::hash): Likewise.
7584         (ptr_hash_hasher::equal): Likewise.
7585         (make_loc_descriptor): Likewise.
7586         (ggc_prune_ptr): Likewise.
7587         (dump_ggc_loc_statistics): Use new memory descriptor.
7588         (ggc_record_overhead): Likewise.
7589         (ggc_free_overhead): Likewise.
7590         (final_cmp_statistic): Remove.
7591         (cmp_statistic): Likewise.
7592         (ggc_add_statistics): Liekwise.
7593         (ggc_prune_overhead_list): Likewise.
7594         * hash-map-traits.h: New file.
7595         * hash-map.h (struct default_hashmap_traits): Move the traits to a
7596         separate header file.
7597         * hash-set.h: Pass memory statistics info to ctor.
7598         * hash-table.c (void dump_hash_table_loc_statistics): New function.
7599         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
7600         (hash_table::~hash_table): Register memory release operation.
7601         (hash_table::alloc_entries): Handle memory allocation operation.
7602         (hash_table::expand): Likewise.
7603         * inchash.c (iterative_hash_hashval_t): Move implementation to header
7604         file.
7605         (iterative_hash_host_wide_int): Likewise.
7606         * inchash.h (class hash): Likewise.
7607         * mem-stats-traits.h: New file.
7608         * mem-stats.h: New file.
7609         (mem_location): Add new class.
7610         (mem_usage): Likewise.
7611         (mem_alloc_description): Likewise.
7612         * sese.c: Add new header file inclusision.
7613         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
7614         and hash_set.
7615         * tree-sra.c: Add new header file inclusision.
7616         * vec.c (struct vec_descriptor): Remove.
7617         (hash_descriptor): Likewise.
7618         (struct vec_usage): Likewise.
7619         (struct ptr_hash_entry): Likewise.
7620         (hash_ptr): Likewise.
7621         (eq_ptr): Likewise.
7622         (vec_prefix::register_overhead): Use new memory descriptor API.
7623         (vec_prefix::release_overhead): Likewise.
7624         (add_statistics): Remove.
7625         (dump_vec_loc_statistics): Use new memory descriptor API.
7626         * vec.h (struct vec_prefix): Likewise.
7627         (va_heap::reserve): Likewise.
7628         (va_heap::release): Likewise.
7629         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
7630
7631 2015-05-27  Richard Biener  <rguenther@suse.de>
7632
7633         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
7634         earlier and remove ??? comment.
7635         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
7636         and got called from loop analysis bail out.  Always pass the SLP
7637         node to the vectorizable_* functions.
7638         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
7639         the premature SLP check here.
7640         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
7641         detected SLP stmts.
7642         (vect_detect_hybrid_slp_1): Likewise.
7643
7644 2015-05-26  Jeff Law  <law@redhat.com>
7645
7646         * combine.c (find_split_point): Verify that the shift count is a
7647         constant when choosing (plus (ashift ...)) as a split point.
7648
7649         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
7650         No functional changes.
7651
7652 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
7653
7654         * ipa-polymorphic-call.c
7655         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
7656         case when call target is already known.
7657
7658 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
7659
7660         PR target/65979
7661         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
7662         take into account the case that operands[1] and operands[2]
7663         are the same register.
7664
7665 2015-05-26  Michael Matz  <matz@suse.de>
7666
7667         PR middle-end/66251
7668
7669         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
7670         stores.
7671         (vect_create_vectorized_demotion_stmts): Always set
7672         STMT_VINFO_VEC_STMT, also with SLP.
7673         (vectorizable_store): Handle strided group stores.
7674
7675 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
7676
7677         PR target/66049
7678         * config/aarch64/aarch64.md
7679         (*adds_shift_imm_<mode>):  New pattern.
7680         (*subs_shift_imm_<mode>):  Likewise.
7681         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
7682         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
7683         (*add_uxt<mode>_shift2): Likewise.
7684         (*add_uxtsi_shift2_uxtw): Likewise.
7685         (*sub_uxt<mode>_shift2): Likewise.
7686         (*sub_uxtsi_shift2_uxtw): Likewise.
7687
7688 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
7689
7690         * config/rs6000/constraints.md (Y, U): Use match_test.
7691
7692 2015-05-26  Christian Bruel  <christian.bruel@st.com>
7693
7694         PR target/52144
7695         * config/arm/arm.c (arm_option_check_internal)
7696         (arm_option_params_internal): Check opts->target_flags to set macros.
7697         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
7698         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
7699         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
7700         (builtin_define): Replaced with def_or_undef_macro.
7701         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
7702         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
7703         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
7704         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
7705         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
7706         (TARGET_ARM_FEATURE_LDREX_P)
7707         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
7708         * config/arm/arm-c.c (def_or_undef_macro): New function.
7709         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
7710
7711 2015-05-26  Christian Bruel  <christian.bruel@st.com>
7712
7713         * c-common.h (builtin_define_with_int_value)
7714         (builtin_define_type_sizeof): Declare.
7715         * c-cppbuiltin.c (builtin_define_with_int_value)
7716         (builtin_define_type_sizeof): Externalize.
7717         (builtin_define_std): Cleanup declaration.
7718         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
7719         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
7720         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
7721         (builtin_define, builtin_assert): New macros.
7722
7723 2015-05-26  Richard Biener  <rguenther@suse.de>
7724
7725         PR tree-optimization/66142
7726         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
7727         MEM_REFs for the same base address.
7728
7729 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7730
7731         PR ipa/66181
7732         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
7733
7734 2015-05-26  Jason Merrill  <jason@redhat.com>
7735
7736         * configure.ac: Set CXXFLAGS for ISL test.
7737         * configure: Regenerate.
7738
7739         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
7740         strstr and basename.
7741         * configure: Regenerate.
7742
7743 2015-05-26  Richard Biener  <rguenther@suse.de>
7744
7745         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
7746         X % C -> X & (C - 1) for C being a power-of two to ...
7747         * match.pd: ... patterns.
7748
7749 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
7750
7751         * match.pd (swapped_tcc_comparison): New operator list.
7752         (-A CMP -B): New simplification.
7753         * fold-const.c (fold_comparison): Remove corresponding code.
7754
7755 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
7756
7757         * caller-save.c (init_caller_save): Base temporary register numbers
7758         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
7759         * cfgloopanal.c (init_set_costs): Likewise.
7760         * dojump.c (prefer_and_bit_test): Likewise.
7761         * expr.c (init_expr_target): Likewise.
7762         * ira.c (setup_prohibited_mode_move_regs): Likewise.
7763         * lower-subreg.c (init_lower_subreg): Likewise.
7764         * postreload.c (reload_cse_regs_1): Likewise.
7765
7766 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
7767
7768         * gensupport.h (compute_test_codes): Declare.
7769         * gensupport.c (compute_predicate_codes): Rename to...
7770         (compute_test_codes): ...this.  Generalize error message.
7771         (process_define_predicate): Update accordingly.
7772         * genpreds.c (compute_maybe_allows): Delete.
7773         (add_constraint): Use compute_test_codes to determine whether
7774         something can accept a SUBREG, REG or MEM.
7775
7776 2015-05-26  Torvald Riegel  <triegel@redhat.com>
7777
7778         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
7779         'memory model' to align with C++11; fix description of memory orders;
7780         fix a few typos.
7781
7782 2015-05-26  Richard Biener  <rguenther@suse.de>
7783
7784         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
7785         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
7786         detect whether we apply SLP.  Remove call to
7787         vect_update_slp_costs_according_to_vf.
7788         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
7789         vect_update_slp_costs_according_to_vf from here.  Dispatch
7790         to vect_slp_analyze_operations to analyze SLP stmts.
7791         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
7792         unused bb_vec_info parameter, adjust assert.
7793         (vect_slp_analyze_operations): Pass in the slp instance tree
7794         instead of bb_vec_info.
7795         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
7796         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
7797
7798 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
7799
7800         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
7801         Q_REGS.  Expand comment.
7802         (REG_CLASS_NAMES): Ditto.
7803         (REG_CLASS_CONTENTS): Ditto.
7804
7805 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
7806
7807         PR target/66274
7808         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
7809         when LEGACY_INT_REGNO_P is processed.
7810
7811 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
7812
7813         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
7814
7815 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
7816
7817         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
7818         register if not marked dead/unused, before return.
7819
7820 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
7821
7822         PR lto/66180
7823         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
7824         is set; check for assembler name at LTO time.
7825         (type_in_anonymous_namespace): Remove hacks, check that all
7826         anonymous types are called "<anon>"
7827         (odr_type_p): Simplify; add check for "<anon>"
7828         (odr_subtypes_equivalent): Add odr_type_p check.
7829         * tree.c (need_assembler_name_p): Even anonymous namespace needs
7830         assembler name.
7831
7832 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
7833
7834         * ipa-utils.h (method_class_type): Remove.
7835         * cgraphunit.c (walk_polymorphic_call_targets): Use
7836         TYPE_METHOD_BASETYPE.
7837         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
7838         on main variants only.
7839         (method_class_type): Remove.
7840         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
7841         (build_type_inheritance_graph): Likewise.
7842         * ipa-icf.c (sem_function::equals_wpa): Likewise.
7843         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
7844         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
7845
7846 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
7847
7848         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
7849         is_typedef_decl, typedef_variant_p): Constify.
7850         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
7851         is_typedef_decl, typedef_variant_p): Constify.
7852
7853 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7854
7855         * defaults.h (gen_tablejump): New function.
7856         (HAVE_tablejump): Add default value.
7857         * expr.c: Adjust.
7858         * stmt.c: Likewise.
7859
7860 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7861
7862         * defaults.h (gen_store_multiple): New function.
7863         (HAVE_store_multiple): Add default value.
7864         * expr.c (move_block_from_reg): Adjust.
7865
7866 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7867
7868         * defaults.h (gen_load_multiple): New function.
7869         (HAVE_load_multiple): Add default value.
7870         * expr.c (move_block_to_reg): Adjust.
7871
7872 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7873
7874         * defaults.h (gen_mem_signal_fence): New function.
7875         (HAVE_mem_signal_fence): Add default value.
7876         * optabs.c: Adjust.
7877
7878 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7879
7880         * defaults.h (gen_memory_barrier): New function.
7881         (HAVE_memory_barrier): Add default value.
7882         * optabs.c: Adjust.
7883
7884 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7885
7886         * defaults.h (gen_mem_thread_fence): New function.
7887         (HAVE_mem_thread_fence): Add default definition.
7888         * optabs.c: Adjust.
7889
7890 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7891
7892         * combine.c (find_split_point): Check the value of HAVE_lo_sum
7893         instead of if it is defined.
7894         (combine_simplify_rtx): Likewise.
7895         * lra-constraints.c (process_address_1): Likewise.
7896         * config/darwin.c: Adjust.
7897         * genconfig.c (main): Always define HAVE_lo_sum.
7898
7899 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7900
7901         * genmatch.c (parser::parse_operation): Reject expanding
7902         operator-list inside 'for'.
7903
7904 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7905
7906         * genmatch.c (parser::parse_for): Reject iterator if used as
7907         operator-list.
7908
7909 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7910
7911         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
7912         after end of id-list.
7913
7914 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
7915
7916         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
7917         we do not try to compute canonical type for type that does not need
7918         alias set.
7919         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
7920         FUNCITON_TYPE.
7921         * tree.h (type_with_alias_set_p): New.
7922
7923 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
7924
7925         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
7926         function attributes.
7927         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
7928
7929 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
7930
7931         * Makefile.in (check_gcc_parallelize): Delete.
7932         (lang_checks_parallelized): Update comment.
7933
7934 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
7935
7936         PR rtl-optimization/66237
7937         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
7938         location of an "as_a" cast.
7939
7940 2015-05-22  Jeff Law  <law@redhat.com>
7941
7942         * config/pa/pa.md (non-canonical shift-add insns): Remove.
7943         (peepholes with non-canonical RTL sources): Remove.
7944         (peepholes for indexed stores of FP regs in integer modes): Match and
7945         generate canonical RTL.
7946
7947 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
7948
7949         PR tree-optimization/63387
7950         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
7951         ((x ord x) & (y ord y) -> (x ord y),
7952         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
7953         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
7954         vectors like scalars.
7955
7956 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
7957
7958         * convert.c (convert_to_integer, convert_to_vector): Include the
7959         types in the error message.
7960
7961 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
7962
7963         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
7964         simplifications.
7965
7966 2015-05-22  Jeff Law  <law@redhat.com>
7967
7968         * config/pa/pa.md (integer_indexed_store splitters): Use
7969         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
7970         insns -- adjusting the constant 2nd operand accordingly.
7971
7972         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
7973         (plus (ashift X log2) Y) if it is a split point.
7974
7975         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
7976         out of hppa_legitimize_address to handle both forms of a multiply
7977         by 2, 4 or 8.
7978         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
7979         Always generate the ASHIFT variant as the result is not directly
7980         used in a MEM.  Update comments and refactor slightly to improve
7981         readability.
7982
7983 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7984
7985         PR target/65491
7986         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
7987         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
7988         (aarch64_composite_type_p): Return false if given type and mode are
7989         for a short vector.
7990
7991 2015-05-22  Richard Biener  <rguenther@suse.de>
7992
7993         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
7994         member.
7995         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
7996         patterns when determining whether SLP is pure.
7997         (vect_is_slp_reduction): Remove check for pattern stmts.
7998         (vect_is_simple_reduction_1): Remove dead code.
7999         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
8000         (vect_get_and_check_slp_defs): Pass in the stmt number.
8001         Allow the first def in a reduction to be not a pattern stmt when
8002         the rest of the stmts def are patterns.
8003         (vect_build_slp_tree_1): Allow tcc_expression codes like
8004         SAD_EXPR and DOT_PROD_EXPR.
8005         (vect_build_slp_tree): Adjust.
8006         (vect_analyze_slp): Refactor and move BB vect error message ...
8007         (vect_slp_analyze_bb_1): ... here.
8008
8009 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
8010
8011         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
8012         for CSWTCH temporary.
8013
8014 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8015
8016         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
8017         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
8018         unknown unspecs.
8019
8020 2015-05-22  Richard Biener  <rguenther@suse.de>
8021
8022         PR tree-optimization/66251
8023         * tree-vect-stmts.c (vectorizable_conversion): Properly
8024         set STMT_VINFO_VEC_STMT even for the SLP case.
8025
8026 2015-05-22  Marek Polacek  <polacek@redhat.com>
8027
8028         * doc/extend.texi: Use @pxref instead of @xref.
8029
8030 2015-05-22  hiraditya  <hiraditya@msn.com>
8031
8032         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
8033         redundant if.
8034
8035 2015-05-22  Richard Biener  <rguenther@suse.de>
8036
8037         PR tree-optimization/65701
8038         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
8039         Move peeling cost models into one place.  Peel for alignment
8040         for single loads only if an aligned load is cheaper than
8041         an unaligned load.
8042
8043 2015-05-22  Marek Polacek  <polacek@redhat.com>
8044
8045         PR c/47043
8046         * doc/extend.texi (Enumerator Attributes): New section.
8047         Document syntax of enumerator attributes.
8048
8049 2015-05-22  Richard Biener  <rguenther@suse.de>
8050
8051         * tree-vect-loop.c (get_reduction_op): New function.
8052         (vect_model_reduction_cost): Use it, add reduc_index parameter.
8053         Make ready for BB reductions.
8054         (vect_create_epilog_for_reduction): Use get_reduction_op.
8055         (vectorizable_reduction): Init reduc_index to a valid value.
8056         Adjust vect_model_reduction_cost call.
8057         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
8058         operand for reduction defaults.  Add SAD_EXPR support.
8059         Assert we have a neutral op for SLP reductions.
8060         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
8061         walking pattern stmt ops only recurse to SSA names.
8062
8063 2015-05-22  Richard Biener  <rguenther@suse.de>
8064
8065         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
8066         assert with guard, remove check on detected reduction.
8067         (vect_recog_sad_pattern): Likewise.
8068         (vect_recog_widen_sum_pattern): Likewise.
8069
8070 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8071
8072         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
8073         __always_inline__ attribute.
8074         (vaesdq_u8): Likewise.
8075         (vaesmcq_u8): Likewise.
8076         (vaesimcq_u8): Likewise.
8077         (vsha1cq_u32): Likewise.
8078         (vsha1mq_u32): Likewise.
8079         (vsha1pq_u32): Likewise.
8080         (vsha1h_u32): Likewise.
8081         (vsha1su0q_u32): Likewise.
8082         (vsha1su1q_u32): Likewise.
8083         (vsha256hq_u32): Likewise.
8084         (vsha256h2q_u32): Likewise.
8085         (vsha256su0q_u32): Likewise.
8086         (vsha256su1q_u32): Likewise.
8087         (vmull_p64): Likewise.
8088         (vmull_high_p64): Likewise.
8089
8090 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8091
8092         * final.c (final_scan_insn): Don't check HAVE_peephole with the
8093         preprocessor.
8094         * output.h: Likewise.
8095         * genconfig.c (main): Alwways define HAVE_peephole.
8096         * genpeep.c: Don't emit checks of HAVE_peephole.
8097
8098 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8099
8100         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
8101         check HAVE_conditional_move with the preprocessor.
8102
8103 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8104
8105         * genconfig.c (main): Always define HAVE_conditional_move.
8106         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
8107         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
8108         is defined.
8109
8110 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8111
8112         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
8113         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
8114         and FRAME_POINTER_REGNUM with the preprocessor.
8115
8116 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8117
8118         * defaults.h: Add default for STACK_PUSH_CODE.
8119         * expr.c: Don't redefine STACK_PUSH_CODE.
8120         * recog.c: Likewise.
8121
8122 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8123
8124         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
8125         sched-deps.c: Use if instead of preprocessor checks with
8126         STACK_GROWS_DOWNWARD.
8127
8128 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8129
8130         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
8131         is defined.
8132         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
8133         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
8134         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
8135         * doc/tm.texi: Regenerate.
8136
8137 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
8138
8139         PR target/66232
8140         * config/i386/constraints.md (Bg): New constraint for GOT memory
8141         operand.
8142         * config/i386/i386.md (*call_got_x32): New pattern.
8143         (*call_value_got_x32): Likewise.
8144         * config/i386/predicates.md (GOT_memory_operand): New predicate.
8145
8146 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
8147
8148         PR tree-optimization/66233
8149         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
8150         Simplify.
8151
8152 2015-05-21  Jeff Law  <law@redhat.com>
8153
8154         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
8155         than MULT for shadd sequences.
8156
8157 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
8158
8159         * alias.c (alias_stats): New static var.
8160         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
8161         (dump_alias_stats_in_alias_c): New function.
8162         * alias.h (dump_alias_stats_in_alias_c): Declare.
8163         * tree-ssa-alias.c (dump_alias_stats): Call it.
8164
8165 2015-05-08  Michael Matz  <matz@suse.de>
8166
8167         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
8168         to strided_p.
8169         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
8170         (STMT_VINFO_STRIDED_P): ... this.
8171         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
8172         (vect_verify_datarefs_alignment): Likewise.
8173         (vect_enhance_data_refs_alignment): Likewise.
8174         (vect_analyze_data_ref_access): Likewise.
8175         (vect_analyze_data_refs): Accept strided stores.
8176         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
8177         (vect_model_load_cost): Adjust for macro rename.
8178         (vectorizable_mask_load_store): Likewise.
8179         (vectorizable_load): Likewise.
8180         (vectorizable_store): Open code strided stores.
8181
8182 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8183
8184         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
8185         Document sqrt_insn.
8186
8187 2015-05-21  Richard Biener  <rguenther@suse.de>
8188
8189         PR c++/66211
8190         * match.pd: Guard pattern optimzing (int)(float)int
8191         conversions to apply only on GIMPLE.
8192
8193 2015-05-21  Jeff Law  <law@redhat.com>
8194
8195         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
8196         multiply-accumulate/shift-add insn generation.
8197
8198 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
8199
8200         PR target/54236
8201         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
8202         operands[1] are the same.
8203
8204 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
8205
8206         PR middle-end/66221
8207         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
8208         build_distinct_type_copy to copy bounds.
8209
8210 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
8211
8212         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
8213         Change to unsigned int.
8214
8215 2015-05-20  Jeff Law  <law@redhat.com>
8216
8217         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
8218         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
8219         (pa_shadd_constant_p): Allow constants for shadd insns rather
8220         than valid scaling constants for memory addresses.
8221         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
8222         * config/pa/predicates.md (mem_shadd_operand): New predicate.
8223         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
8224         (shift-add insns using ASHIFT): New patterns.
8225
8226 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
8227
8228         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
8229         feasible.
8230         (fix_up_fall_thru_edges): Likewise.
8231         (fix_crossing_conditional_branches): Likewise. Promote jump targets
8232         from to rtx_insn to rtx_code_label where feasible.
8233         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
8234         gen_move_insn (returned type changed to rtx_insn).
8235         * builtins.c (expand_errno_check): Fix arguments of
8236         do_compare_rtx_and_jump (now expects rtx_code_label).
8237         (expand_builtin_acc_on_device): Likewise.
8238         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
8239         invert_jump (now exprects rtx_jump_insn).
8240         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
8241         (construct_init_block): Use rtx_code_label.
8242         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
8243         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
8244         calling redirect_jump.
8245         (patch_jump_insn): Likewise.
8246         (redirect_branch_edge): Likewise.
8247         (force_nonfallthru_and_redirect): Likewise.
8248         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
8249         when suitable.
8250         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
8251         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
8252         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
8253         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
8254         to store the value retured by gen_label_rtx.
8255         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
8256         rtx_jump_insn.
8257         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
8258         (split_branches): Fix calls of redirect_jump.
8259         * dojump.c (jumpifnot): Promote argument type from rtx to
8260         rtx_code_label.
8261         (jumpifnot_1): Likewise.
8262         (jumpif): Likewise.
8263         (jumpif_1): Likewise.
8264         (do_jump_1): Likewise.
8265         (do_jump): Likewise. Use rtx_code_label when feasible.
8266         (do_jump_by_parts_greater_rtx): Likewise.
8267         (do_jump_by_parts_zero_rtx): Likewise.
8268         (do_jump_by_parts_equality_rtx): Likewise.
8269         (do_compare_rtx_and_jump): Likewise.
8270         * dojump.h: Update function prototypes.
8271         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
8272         returns rtx_insn).
8273         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
8274         rtx_jump_insn.
8275         (emit_label_before): Likewise.
8276         (emit_jump_insn_after_noloc): Likewise.
8277         (emit_jump_insn_after_setloc): Likewise.
8278         (emit_jump_insn_after): Likewise
8279         (emit_jump_insn_before_setloc): Likewise.
8280         (emit_jump_insn_before): Likewise.
8281         (emit_label_before): Promote return type to rtx_code_label.
8282         (emit_label): Likewise.
8283         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
8284         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
8285         gen_move_insn.
8286         (emit_stack_restore): Likewise.
8287         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
8288         (do_cmp_and_jump): Likewise.
8289         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
8290         from rtx to rtx_code_label.
8291         (gen_move_insn_uncast): New function.
8292         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
8293         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
8294         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
8295         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
8296         invert_jump_1 and redirect_jump_1.
8297         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
8298         do_compare_rtx_and_jump.
8299         (expand_addsub_overflow): Likewise.
8300         (expand_neg_overflow): Likewise.
8301         (expand_mul_overflow): Likewise.
8302         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
8303         return value of gen_move_insn.
8304         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
8305         * loop-doloop.c (add_test): Use rtx_code_label.
8306         (doloop_modify): Likewise.
8307         (doloop_optimize): Likewise.
8308         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
8309         * lra-constraints.c (emit_spill_move): Remove cast of value returned
8310         by gen_move_insn.
8311         (inherit_reload_reg): Add cast when calling dump_insn_slim.
8312         (split_reg): Likewise.
8313         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
8314         gen_move_insn.
8315         * optabs.c (expand_binop_directly): Remove casts of values returned by
8316         maybe_gen_insn.
8317         (expand_unop_direct): Likewise.
8318         (expand_abs): Likewise.
8319         (maybe_emit_unop_insn): Likewise.
8320         (maybe_gen_insn): Promote return type to rtx_insn.
8321         * optabs.h: Update prototype of maybe_gen_insn.
8322         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
8323         redundant cast.
8324         * recog.c (struct peep2_insn_data): Promote type of insn field to
8325         rtx_insn.
8326         (peep2_reinit_state): Use NULL instead of NULL_RTX.
8327         (peep2_attempt): Remove casts of insn in peep2_insn_data.
8328         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
8329         * recog.h (struct insn_gen_fn): Promote return types of function
8330         pointers and operator ().from rtx to rtx_insn.
8331         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
8332         (fill_eager_delay_slots): Likewise.
8333         (relax_delay_slots): Likewise.
8334         (make_return_insns): Likewise.
8335         (dbr_schedule): Likewise.
8336         (optimize_skips): Likewise.
8337         (reorg_redirect_jump): Likewise.
8338         (fill_slots_from_thread): Likewise.
8339         * reorg.h: Update prototypes.
8340         * resource.c (find_dead_or_set_registers): Use dyn_cast to
8341         rtx_jump_insn instead of check.  Use it's jump_target method.
8342         * rtl.h (rtx_jump_insn::jump_label): Define new method.
8343         (rtx_jump_insn::jump_target): Define new method.
8344         (rtx_jump_insn::set_jump_target): Define new method.
8345         * rtlanal.c (tablejump_p): Promote type of one local variable.
8346         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
8347         (sched_analyze_insn): Likewise.
8348         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
8349         (print_insn): Likewise.
8350         * stmt.c (label_rtx): Promote return type to rtx_insn.
8351         (force_label_rtx): Likewise.
8352         (jump_target_rtx): Define new function.
8353         (expand_label): Use it, get rid of one cast.
8354         (expand_naked_return): Promote rtx to rtx_code_label.
8355         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
8356         (expand_case): Use rtx_code_label instread of rtx where feasible.
8357         (expand_sjlj_dispatch_table): Likewise.
8358         (emit_case_nodes): Likewise.
8359         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
8360         * store-motion.c (insert_store): Make use of new return type of
8361         gen_move_insn and remove a cast.
8362         (replace_store_insn): Likewise.
8363
8364 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
8365
8366         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
8367         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
8368
8369 2015-05-20  Jeff Law  <law@redhat.com>
8370
8371         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
8372         dispose of the jump thread path when the jump threading
8373         opportunity is cancelled.
8374
8375 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8376
8377         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
8378         when printing the caret character.
8379
8380 2015-05-20  Marek Polacek  <polacek@redhat.com>
8381
8382         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
8383
8384 2015-05-20  Marek Polacek  <polacek@redhat.com>
8385
8386         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
8387         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
8388         * gimple-fold.c (canonicalize_bool): Likewise.
8389         (same_bool_result_p): Likewise.
8390         * tree-if-conv.c (parse_predicate): Likewise.
8391
8392 2015-05-20  Marek Polacek  <polacek@redhat.com>
8393
8394         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
8395         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
8396
8397 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8398
8399         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
8400         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
8401         values.
8402
8403 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
8404
8405         * config/mips/mips.h (micromips_globals): Declare.
8406
8407 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
8408
8409         * timevar.def (TV_INITIALIZE_RTL): New.
8410         * toplev.c (initialize_rtl): Use an auto_timevar to account this
8411         function's time to TV_INITIALIZE_RTL.
8412
8413 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
8414
8415         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
8416         gimple_build_nop calls.
8417         (chkp_find_bounds_for_elem): Likewise.
8418         (chkp_get_zero_bounds): Likewise.
8419         (chkp_get_none_bounds): Likewise.
8420         (chkp_get_bounds_by_definition): Likewise.
8421         (chkp_generate_extern_var_bounds): Likewise.
8422         (chkp_get_bounds_for_decl_addr): Likewise.
8423         (chkp_get_bounds_for_string_cst): Likewise.
8424
8425 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
8426
8427         PR tree-optimization/65447
8428         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
8429         (dump_use, dump_uses): Support to dump sub use.
8430         (record_use): New parameters to support sub use.  Remove call to
8431         dump_use.
8432         (record_sub_use, record_group_use): New functions.
8433         (compute_max_addr_offset, split_all_small_groups): New functions.
8434         (group_address_uses, rewrite_use_address): New functions.
8435         (strip_offset): New declaration.
8436         (find_interesting_uses_address): Call record_group_use.
8437         (add_candidate): New assertion.
8438         (infinite_cost_p): Move definition forward.
8439         (add_costs): Check INFTY cost and return immediately.
8440         (get_computation_cost_at): Clear setup cost and dependent bitmap
8441         for sub uses.
8442         (determine_use_iv_cost_address): Compute cost for sub uses.
8443         (rewrite_use_address_1): Rename from old rewrite_use_address.
8444         (free_loop_data): Free sub uses.
8445         (tree_ssa_iv_optimize_loop): Call group_address_uses.
8446
8447 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
8448             Jim Wilson  <jim.wilson@linaro.org>
8449
8450         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
8451         new  fields loadv and storev.
8452         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
8453         Initialize loadv and storev.
8454         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
8455         (cortexa53_extra_costs): Likewise.
8456         (cortexa57_extra_costs): Likewise.
8457         (xgene1_extra_costs): Likewise.
8458         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
8459         rtx_costs.
8460
8461 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
8462
8463         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
8464          storev.
8465         (cortexa8_extra_costs): Likewise.
8466         (cortexa5_extra_costs): Likewise.
8467         (cortexa7_extra_costs): Likewise.
8468         (cortexa12_extra_costs): Likewise.
8469         (cortexa15_extra_costs): Likewise.
8470         (v7m_extra_costs): Likewise.
8471
8472 2015-05-20  Jeff Law  <law@redhat.com>
8473
8474         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
8475         instead of open-coded version.  Also delete the jump thread created
8476         within this function.
8477
8478 2015-05-20  Alan Modra  <amodra@gmail.com>
8479
8480         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
8481         stack adjusting insn.  Formatting.
8482         (rs6000_emit_prologue): Track stack adjusting insn, and use of
8483         r12.  If possible, emit first -fsplit-stack arg pointer insn
8484         before stack adjust.  Don't use r12 to save cr if split-stack.
8485
8486 2015-05-20  Alan Modra  <amodra@gmail.com>
8487
8488         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
8489         Define.
8490         (rs6000_supports_split_stack): New function.
8491         * gcc/config/rs6000/rs6000.c (machine_function): Add
8492         split_stack_arg_pointer.
8493         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
8494         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
8495         rather than virtual_incoming_args_rtx.
8496         (rs6000_va_start): Likewise.
8497         (split_stack_arg_pointer_used_p): New function.
8498         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
8499         (morestack_ref): New var.
8500         (gen_add3_const, rs6000_expand_split_stack_prologue,
8501         rs6000_internal_arg_pointer, rs6000_live_on_entry,
8502         rs6000_split_stack_space_check): New functions.
8503         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
8504         * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
8505         (UNSPECV_SPLIT_STACK_RETURN): Define.
8506         (split_stack_prologue, load_split_stack_limit,
8507         load_split_stack_limit_di, load_split_stack_limit_si,
8508         split_stack_return, split_stack_space_check): New expands and insns.
8509         * gcc/config/rs6000/rs6000-protos.h
8510         (rs6000_expand_split_stack_prologue): Declare.
8511         (rs6000_split_stack_space_check): Declare.
8512
8513 2015-05-20  Alan Modra  <amodra@gmail.com>
8514
8515         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
8516         (direct_return): Test vrsave_size rather than vrsave_mask.
8517         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
8518         (rs6000_emit_epilogue): Likewise.
8519
8520 2015-05-20  Alan Modra  <amodra@gmail.com>
8521
8522         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
8523         when not saving registers.
8524         (debug_stack_info): Adjust to omit printing unused offsets,
8525         as before.
8526         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
8527         expression.
8528
8529 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8530
8531         PR c++/65835
8532         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
8533         value_type to const char *.
8534
8535 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
8536
8537         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
8538         to build a biarch toolchain again.
8539
8540 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
8541
8542         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
8543         or implicit declarations.
8544         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
8545         into it.
8546         (get_odr_type): Check type has linkage before adding bases.
8547         (register_odr_type): Check that type has linkage before adding it.
8548         (type_known_to_have_no_deriavations_p): Rename to ..
8549         (type_known_to_have_no_derivations_p): This one.
8550         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
8551         (type_known_to_have_no_derivations_p): This one.
8552         * ipa-polymorphic-call.c
8553         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
8554         type has linkage.
8555
8556 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
8557
8558         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
8559         (layout_type): Use RECORD_OR_UNION_TYPE_P.
8560
8561 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8562
8563         * config/s390/s390.c (s390_vector_bool_type_p): New function.
8564         (s390_invalid_binary_op): New function.
8565         (TARGET_INVALID_BINARY_OP): Define macro.
8566
8567 2015-05-19  David Sherwood  <david.sherwood@arm.com>
8568
8569         * loop-invariant.c (create_new_invariant): Don't calculate address cost
8570         if mode is not a scalar integer.
8571         (get_inv_cost): Increase computational cost for unused invariants.
8572
8573 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8574
8575         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
8576         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
8577         * config/s390/s390-builtin-types.def: New file.
8578         * config/s390/s390-builtins.def: New file.
8579         * config/s390/s390-builtins.h: New file.
8580         * config/s390/s390-c.c: New file.
8581         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
8582         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
8583         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
8584         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
8585         prototypes.
8586         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
8587         Include.
8588         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
8589         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
8590         variable definitions.
8591         (s390_const_operand_ok): New function.
8592         (s390_expand_builtin): Rewrite.
8593         (s390_init_builtins): New function.
8594         (s390_handle_vectorbool_attribute): New function.
8595         (s390_attribute_table): Add s390_vector_bool attribute.
8596         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
8597         (s390_branch_condition_mask): Generate masks for new modes.
8598         (s390_expand_vec_compare_cc): New function.
8599         (s390_mangle_type): Add mangling for vector bool types.
8600         (enum s390_builtin): Remove.
8601         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
8602         efpc builtins.
8603         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
8604         s390_cpu_cpp_builtins.
8605         (REGISTER_TARGET_PRAGMAS): New macro.
8606         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
8607         (insn_cmp mode attribute): Add new CC modes.
8608         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
8609         (lcbb): New pattern definition.
8610         * config/s390/s390intrin.h: Include vecintrin.h.
8611         * config/s390/t-s390: New file.
8612         * config/s390/vecintrin.h: New file.
8613         * config/s390/vector.md: Include vx-builtins.md.
8614         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
8615         support.
8616
8617 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8618
8619         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
8620         CCVFHE.
8621         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
8622         (s390_select_ccmode): Likewise.
8623         (s390_canonicalize_comparison): Swap operands if necessary.
8624         (s390_expand_vec_compare_scalar): Expand DFmode compare using
8625         single element vector instructions.
8626         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
8627         (s390_branch_condition_mask): Generate CC masks for the new modes.
8628         * config/s390/s390.md (v0, vf, vd): New mode attributes.
8629         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
8630         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
8631         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
8632         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
8633         (*extend<DSF:mode><BFP:mode>2): New insn definition.
8634         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
8635         (extend<DSF:mode><BFP:mode>2): Turn into expander.
8636         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
8637         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
8638         (sqrt<mode>2): Add vector instruction.
8639
8640 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8641
8642         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
8643         constraints.
8644         * config/s390/predicates.md (const0_operand, constm1_operand)
8645         (constable_operand): Accept vector operands.
8646         * config/s390/s390-modes.def: Add supported vector modes.
8647         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
8648         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
8649         (s390_bytemask_vector_p, s390_expand_vec_strlen)
8650         (s390_expand_vec_compare, s390_expand_vcond)
8651         (s390_expand_vec_init): Add prototypes.
8652         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
8653         (s390_vector_mode_supported_p): New function.
8654         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
8655         (s390_contiguous_bitmask_vector_p): New function.
8656         (s390_bytemask_vector_p): New function.
8657         (s390_split_ok_p): Vector regs don't work either.
8658         (regclass_map): Add VEC_REGS.
8659         (s390_legitimate_constant_p): Handle vector constants.
8660         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
8661         (legitimate_reload_vector_constant_p): New function.
8662         (s390_preferred_reload_class): Handle CONST_VECTOR.
8663         (s390_reload_symref_address):  Likewise.
8664         (s390_secondary_reload): Vector memory instructions only support
8665         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
8666         (s390_emit_ccraw_jump): New function.
8667         (s390_expand_vec_strlen): New function.
8668         (s390_expand_vec_compare): New function.
8669         (s390_expand_vcond): New function.
8670         (s390_expand_vec_init): New function.
8671         (s390_dwarf_frame_reg_mode): New function.
8672         (print_operand): Handle addresses with 'O' and 'R' constraints.
8673         (NR_C_MODES, constant_modes): Add vector modes.
8674         (s390_output_pool_entry): Handle vector constants.
8675         (s390_hard_regno_mode_ok): Handle vector registers.
8676         (s390_class_max_nregs): Likewise.
8677         (s390_cannot_change_mode_class): New function.
8678         (s390_invalid_arg_for_unprototyped_fn): New function.
8679         (s390_function_arg_vector): New function.
8680         (s390_function_arg_float): Remove size variable.
8681         (s390_pass_by_reference): Handle vector arguments.
8682         (s390_function_arg_advance): Likewise.
8683         (s390_function_arg): Likewise.
8684         (s390_return_in_memory): Vector values are returned in a VR if
8685         possible.
8686         (s390_function_and_libcall_value): Handle vector arguments.
8687         (s390_gimplify_va_arg): Likewise.
8688         (s390_call_saved_register_used): Consider the arguments named.
8689         (s390_conditional_register_usage): Disable v16-v31 for non-vec
8690         targets.
8691         (s390_preferred_simd_mode): New function.
8692         (s390_support_vector_misalignment): New function.
8693         (s390_vector_alignment): New function.
8694         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
8695         (TARGET_VECTOR_MODE_SUPPORTED_P)
8696         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
8697         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
8698         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
8699         (TARGET_VECTOR_ALIGNMENT): Define target macro.
8700         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
8701         (FIRST_PSEUDO_REGISTER): Increase value.
8702         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
8703         (VECTOR_REG_P): Define macros.
8704         (FIXED_REGISTERS, CALL_USED_REGISTERS)
8705         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
8706         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
8707         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
8708         Add vector registers.
8709         (CANNOT_CHANGE_MODE_CLASS): Call C function.
8710         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
8711         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
8712         memory.
8713         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
8714         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
8715         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
8716         (VR*_REGNUM): New constants.
8717         (ALL): New mode iterator.
8718         (INTALL): Remove mode iterator.
8719         Include vector.md.
8720         (movti): Implement TImode moves for VRs.
8721         Disable TImode splitter for VR targets.
8722         Implement splitting TImode GPR<->VR moves.
8723         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
8724         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
8725         reload<mode>_la_in, reload<mode>_la_out.
8726         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
8727         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
8728         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
8729         (mov<mode> SF SD): Prefer lder, lde for loading.
8730         Add lrl and strl instructions.
8731         Add vector instructions.
8732         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
8733         Call s390_expand_vec_strlen on z13.
8734         (*cc_to_int): Change predicate to nonimmediate_operand.
8735         (addti3): Rename to *addti3.  New expander.
8736         (subti3): Rename to *subti3.  New expander.
8737         * config/s390/vector.md: New file.
8738
8739 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8740
8741         * common/config/s390/s390-common.c (processor_flags_table): Add
8742         z13.
8743         * config.gcc: Add z13.
8744         * config/s390/s390-opts.h (enum processor_type): Add
8745         PROCESSOR_2964_Z13.
8746         * config/s390/s390.c (s390_adjust_priority): Check for
8747         PROCESSOR_2964_Z13.
8748         (s390_reorg): Likewise.
8749         (s390_sched_reorder): Likewise.
8750         (s390_sched_variable_issue): Likewise.
8751         (s390_loop_unroll_adjust): Likewise.
8752         (s390_option_override): Likewise. Default to -mvx when available.
8753         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
8754         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
8755         (TARGET_VX_ABI): Define macros.
8756         macros.
8757         (TARGET_DEFAULT): Add MASK_OPT_VX.
8758         * config/s390/s390.md ("cpu" attribute): Add z13.
8759         ("cpu_facility" attribute): Add vec.
8760         * config/s390/s390.opt (processor_type): Add z13.
8761         (mvx): New options.
8762         * doc/invoke.texi: Add z13 option for -march.
8763
8764 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8765
8766         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
8767         mode check to make sure that only scalar integer values are
8768         accepted.
8769
8770 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
8771
8772         * tree.c (verify_type_variant): Fix #undef.
8773         (gimple_canonical_types_compatible_p): Move here from lto.c
8774         (verify_type): Verify TYPE_CANONICAL compatibility.
8775         * tree.h (gimple_canonical_types_compatible_p): Declare.
8776
8777 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
8778
8779         PR middle-end/66199
8780         * tree.h (OMP_TEAMS_COMBINED): Define.
8781         * gimplify.c (enum gimplify_omp_var_data): Add
8782         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
8783         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
8784         (omp_notice_variable): Accept both ORT_TEAMS
8785         and ORT_COMBINED_TEAMS.  Don't recurse if
8786         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
8787         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
8788         GOVD_FIRSTPRIVATE.
8789         (omp_no_lastprivate): New function.
8790         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
8791         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
8792         notice_outer and set appropriate bits, otherwise make
8793         sure default(none) combined constructs won't complain.
8794         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
8795         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
8796         omp_no_lastprivate either remove the clause or turn it
8797         into OMP_CLAUSE_PRIVATE.
8798         (gimplify_omp_for): Fix up handling of implicit
8799         lastprivate or linear iterators.
8800         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
8801         ORT_COMBINED_TEAMS.
8802         * omp-low.c (lower_omp_for_lastprivate): For combined
8803         for simd use fd.loop.n2 from the for rather than simd.
8804
8805 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
8806
8807         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
8808         instead of gen_rtx_raw_REG.
8809         (cris_expand_epilogue): Likewise.
8810         * config/microblaze/microblaze.c (microblaze_classify_address):
8811         Likewise.
8812         * config/sparc/sparc.md: Likewise.
8813
8814 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
8815
8816         * config/alpha/alpha.c (alpha_legitimize_reload_address)
8817         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
8818         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
8819         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
8820         Use CASE_CONST_SCALAR_INT.
8821         (print_operand) <case 'M'>: Use mode_width_operand to check the
8822         value of the constant.
8823         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
8824         * config/alpha/predicates.md (input_operand): Use general_operand
8825         instead of match_code as operand check.
8826         (symbolic_operand): Use match_code with subexpression digits.
8827         * config/alpha/constraints.md (Q): Ditto.
8828
8829 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8830
8831         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
8832
8833 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8834
8835         * config/s390/s390.c (s390_secondary_reload): Fix check for
8836         load/store relative.
8837
8838 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8839
8840         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
8841         alternative_mask to uint64_t.
8842
8843 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
8844
8845         PR tree-optimization/66187
8846         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
8847         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
8848         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
8849
8850 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
8851
8852         * diagnostic.c (diagnostic_report_current_module): Strengthen
8853         local "new_map" from const line_map * to
8854         const line_map_ordinary *.
8855         * genmatch.c (error_cb): Likewise for local "map".
8856         (output_line_directive): Likewise for local "map".
8857         * input.c (expand_location_1): Likewise for local "map".
8858         Pass NULL rather than &map to
8859         linemap_unwind_to_first_non_reserved_loc, since the value is never
8860         read from there, and the value written back not read from here.
8861         (is_location_from_builtin_token): Strengthen local "map" from
8862         const line_map * to const line_map_ordinary *.
8863         (dump_location_info): Strengthen locals "map" from
8864         line_map *, one to const line_map_ordinary *, the other
8865         to const line_map_macro *.
8866         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
8867         const line_map * to const line_map_macro *.
8868         (maybe_unwind_expanded_macro_loc): Add a call to
8869         linemap_check_macro when writing to the "map" field of the
8870         loc_map_pair.
8871         Introduce local const line_map_ordinary * "ord_map", using it in
8872         place of "map" in the part of the function where we know we have
8873         an ordinary map.  Strengthen local "m" from const line_map * to
8874         const line_map_ordinary *.
8875
8876 2015-05-19  Nick Clifton  <nickc@redhat.com>
8877
8878         PR target/66156
8879         * config/msp430/msp430.md (zero_extendhisi2): Add support for
8880         separate source and destination registers.
8881
8882 2015-05-19  Richard Biener  <rguenther@suse.de>
8883
8884         PR tree-optimization/66165
8885         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
8886         for no load permutation.
8887
8888         PR tree-optimization/66185
8889         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
8890         when building the SLP node from scalars.
8891
8892 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
8893             Tristan Gingold  <gingold@adacore.com>
8894
8895         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
8896         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
8897         (expand_stack_restore): Call record_new_stack_level.
8898         (expand_stack_save): Do not call do_pending_stack_adjust.
8899         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
8900         * calls.c (expand_call): Call record_new_stack_level for alloca.
8901         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
8902         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
8903         (update_sjlj_context): New global function.
8904         * except.h (update_sjlj_context): Declare.
8905         * explow.c (record_new_stack_level): New global function.
8906         (allocate_dynamic_stack_space): Call record_new_stack_level.
8907         * explow.h (record_new_stack_level): Declare.
8908         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
8909         * cfgrtl.c (duplicate_insn_chain): Likewise.
8910
8911 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8912
8913         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
8914         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
8915         STACK_GROWS_DOWNWARD as normal if.
8916         (expand_call): Likewise.
8917
8918 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
8919
8920         PR target/54236
8921         * config/sh/sh.md (*round_int_even): New insn_and_split and
8922         accompanying new unnamed split.
8923
8924 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
8925
8926         * bitmap.c (bitmap_set_range): Handle count==1 specially.
8927         (bitmap_clear_range): Likewise.
8928         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
8929         bitmap_set_range unconditionally.
8930         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
8931         * df-scan.c (df_mark_reg): Likewise.
8932         * haifa-sched.c (setup_ref_regs): Likewise.
8933         * sched-rgn.c (update_live_1): Likewise.
8934
8935 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
8936
8937         * regs.h (END_HARD_REGNO): Delete.
8938         (END_REGNO): Move to...
8939         * rtl.h: ...here.
8940         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
8941         * caller-save.c (mark_set_regs): Likewise.
8942         * combine.c (move_deaths, distribute_notes): Likewise.
8943         * cse.c (invalidate, invalidate_for_call): Likewise.
8944         * df-scan.c (df_ref_record): Likewise.
8945         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
8946         (record_last_reg_set_info): Likewise.
8947         * reg-stack.c (convert_regs_exit): Likewise.
8948         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
8949         * resource.c (update_live_status): Likewise.
8950         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
8951
8952 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
8953
8954         * rtl.h (reg_info): Add an nregs field.
8955         (REG_NREGS): Use it.
8956         (SET_REGNO_RAW): Delete.
8957         (set_regno_raw): New function.
8958         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
8959         (END_REGNO): Redefine in terms of REG_NREGS.
8960         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
8961         SET_REGNO_RAW.
8962         * emit-rtl.c (set_mode_and_regno): Likewise.
8963         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
8964         instead of SET_REGNO_RAW.
8965
8966 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
8967
8968         * rtl.h (PUT_MODE_RAW): New macro.
8969         (PUT_REG_NOTE_KIND): Use it.
8970         (set_mode_and_regno): Declare.
8971         (gen_raw_REG): Change regno to "unsigned int".
8972         (gen_rtx_REG): Change "unsigned" to "unsigned int".
8973         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
8974         use set_mode_and_regno to change the mode of registers.
8975         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
8976         * emit-rtl.c (set_mode_and_regno): New function.
8977         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
8978         * caller-save.c (reg_save_code): Use set_mode_and_regno.
8979         * expr.c (init_expr_target): Likewise.
8980         * ira.c (setup_prohibited_mode_move_regs): Likewise.
8981         * postreload.c (reload_cse_simplify_operands): Likewise.
8982
8983 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
8984
8985         * caller-save.c (init_caller_save): Use word_mode and
8986         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
8987         * expr.c (init_expr_target): Likewise.
8988         * ira.c (setup_prohibited_mode_move_regs): Likewise.
8989         * postreload.c (reload_cse_regs_1): Likewise.
8990
8991 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
8992
8993         * rtl.def (REG): Change format to "r".
8994         * rtl.h (rtunion): Remove rt_reg.
8995         (reg_info): New structure.
8996         (rtx_def): Add reg field to main union.
8997         (X0REGATTR): Delete.
8998         (REG_CHECK): New macro.
8999         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
9000         * rtl.c (rtx_format): Document "r".
9001         (rtx_code_size): Handle REG specially.
9002         * gengenrtl.c (special_format): Return true for formats
9003         that include 'r'.
9004         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
9005         Deal with REG_ATTRS after the field loop.
9006         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
9007         * expmed.c (init_expmed): Call gen_raw_REG instead of
9008         gen_rtx_raw_REG.
9009         * expr.c (init_expr_target): Likewise.
9010         * regcprop.c (maybe_mode_change): Likewise.
9011         * varasm.c (make_decl_rtl): Likewise.
9012         * final.c (leaf_renumber_regs_insn): Return early after
9013         handling REGs.
9014         * genemit.c (gen_exp): Handle 'r' fields.
9015         * genpeep.c (match_rtx): Likewise.
9016         * gensupport.c (subst_pattern_match): Likewise.
9017         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
9018         (alter_constraints, subst_dup): Likewise.
9019         * read-rtl.c (read_rtx_code): Likewise.
9020         * print-rtl.c (print_rtx): Likewise.
9021         * genrecog.c (find_operand, find_matching_operand): Likewise.
9022         (validate_pattern, match_pattern_2): Likewise.
9023         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
9024         (rtx_test::regno_field): New function.
9025         (operator ==, safe_to_hoist_p, transition_parameter_type)
9026         (parameter_type_string, print_parameter_value)
9027         (print_nonbool_test, print_test): Handle new enum values.
9028         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
9029         * lra-constraints.c (operands_match_p): Likewise.
9030
9031 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
9032
9033         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
9034         Change type of new_regno to unsigned int.
9035         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
9036         new_regno to unsigned int.
9037         (df_ref_change_reg_with_loc): Remove old_regno parameter.
9038         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
9039         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
9040         (SET_REGNO_RAW): Add space after ",".
9041
9042 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
9043
9044         * rtl.h (REG_NREGS): New macro
9045         * alias.c (record_set): Use it.
9046         * cfgcleanup.c (mark_effect): Likewise.
9047         * combine.c (likely_spilled_retval_1): Likewise.
9048         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
9049         (move_deaths, distribute_notes): Likewise.
9050         * cselib.c (cselib_record_set): Likewise.
9051         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
9052         * df-scan.c (df_mark_reg): Likewise.
9053         * dse.c (look_for_hardregs): Likewise.
9054         * dwarf2out.c (reg_loc_descriptor): Likewise.
9055         (multiple_reg_loc_descriptor): Likewise.
9056         * expr.c (write_complex_part, read_complex_part): Likewise.
9057         (emit_move_complex): Likewise.
9058         * haifa-sched.c (setup_ref_regs): Likewise.
9059         * ira-lives.c (mark_hard_reg_live): Likewise.
9060         * lra.c (lra_set_insn_recog_data): Likewise.
9061         * mode-switching.c (create_pre_exit): Likewise.
9062         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
9063         (reload_combine_recognize_pattern): Likewise.
9064         (reload_combine_note_use, move2add_record_mode): Likewise.
9065         (reload_cse_move2add): Likewise.
9066         * reg-stack.c (subst_stack_regs_pat): Likewise.
9067         * regcprop.c (kill_value, copy_value): Likewise.
9068         (copyprop_hardreg_forward_1): Likewise.
9069         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
9070         (build_def_use): Likewise.
9071         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
9072         (deps_analyze_insn): Likewise.
9073         * sched-rgn.c (check_live_1, update_live_1): Likewise.
9074         * sel-sched.c (count_occurrences_equiv): Likewise.
9075         * valtrack.c (dead_debug_insert_temp): Likewise.
9076
9077 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
9078
9079         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
9080         * dse.c (note_add_store): Likewise.
9081         * ira-lives.c (mark_hard_reg_dead): Likewise.
9082         * loop-invariant.c (mark_reg_store): Likewise.
9083         (mark_reg_death): Likewise.
9084         * postreload.c (reload_combine): Likewise.
9085         (reload_combine_note_store): Likewise.
9086         (reload_combine_note_use): Likewise.
9087         * recog.c (peep2_reg_dead_p): Likewise.
9088
9089 2015-05-19  Alan Modra  <amodra@gmail.com>
9090
9091         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
9092         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
9093         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
9094         unused predicates.
9095         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
9096         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
9097         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
9098         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
9099
9100 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
9101
9102         * config/mips/mips.md (JOIN_MODE): New mode iterator.
9103         (join2_load_Store<JOIN_MODE:mode>): New pattern.
9104         (join2_loadhi): Likewise.
9105         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
9106         load-load and store-stores.
9107         * config/mips/mips.opt (mload-store-pairs): New option.
9108         (TARGET_LOAD_STORE_PAIRS): New macro.
9109         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
9110         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
9111         * config/mips/mips.c (mips_load_store_bonding_p): New function.
9112
9113 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
9114
9115         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
9116         explicit swaps.
9117         * dojump.c (do_compare_rtx_and_jump): Likewise.
9118         * expmed.c (emit_store_flag_1): Likewise.
9119         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
9120         * final.c (sprint_ul): Use std::reverse for reversing a string.
9121         * fold-const.c (extract_muldiv_1): Use std::swap.
9122         * genmodes.c (emit_mode_int_n): Likewise.
9123         * ifcvt.c (dead_or_predicable): Likewise.
9124         * ira-build.c (ira_merge_live_ranges): Likewise.
9125         (swap_allocno_copy_ends_if_necessary): Likewise.
9126         * ira.c (ira_setup_alts): Likewise.
9127         * loop-iv.c (iv_analyze_expr): Likewise.
9128         (implies_p): Likewise.
9129         (canon_condition): Likewise.
9130         * lra-constraints.c (swap_operands): Likewise.
9131         * lra-lives.c (lra_merge_live_ranges): Likewise.
9132         * omega.c (swap): Remove.
9133         (bswap): Remove.
9134         (omega_unprotect_1): Use std::swap.
9135         (omega_solve_geq): Likewise.
9136         * optabs.c (expand_binop_directly): Likewise.
9137         (expand_binop): Likewise.
9138         (emit_conditional_move): Likewise.
9139         (emit_conditional_add): Likewise.
9140         * postreload.c (reload_cse_simplify_operands): Likewise.
9141         * reg-stack.c (emit_swap_insn): Likewise.
9142         (swap_to_top): Likewise.
9143         (compare_for_stack_reg): Likewise.
9144         (subst_asm_stack_regs): Likewise.
9145         * reload.c (find_reloads): Likewise.
9146         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
9147         * sel-sched.c (invoke_reorder_hooks): Likewise.
9148         (create_block_for_bookkeeping): Likewise.
9149         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
9150         (lambda_matrix_right_hermite): Use std::swap.
9151         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
9152         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
9153         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
9154         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
9155         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
9156         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
9157         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
9158         * tree-vrp.c (compare_ranges): Likewise.
9159         * var-tracking.c (add_with_sets): Likewise.
9160         (vt_find_locations): Likewise.
9161
9162 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
9163
9164         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
9165         pie executables.
9166         (FBSD_ENDFILE_SPEC): Likewise.
9167         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
9168         config/freebsd-spec.h.
9169         (ENDFILE_SPEC): Likewise.
9170
9171 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
9172             Richard Henderson  <rth@redhat.com>
9173
9174         PR target/57032
9175         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
9176         Check for a memory location that is not a reference (using an AND)
9177         to an unaligned location here.
9178         * config/alpha/predicates.md (normal_memory_operand): Remove.
9179
9180 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
9181
9182         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
9183         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
9184
9185 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
9186
9187         * config/mips/mips.c (micromips_globals): New variable.
9188         (mips_set_compression_mode): Save and reinitialize target-dependent
9189         state for microMIPS.
9190
9191 2015-05-18  Martin Liska  <mliska@suse.cz>
9192
9193         * dbgcnt.def: Add new counter.
9194         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
9195
9196 2015-05-18  Martin Liska  <mliska@suse.cz>
9197
9198         * dbgcnt.def: Sort counters.
9199         * opts.c (common_handle_option): Do not compile if
9200         -fdbg-cnt-list is enabled.
9201
9202 2015-05-18  Tom de Vries  <tom@codesourcery.com>
9203
9204         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
9205         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
9206         address operator to va_list operand.
9207         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
9208         unconditionally.
9209         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
9210         operand.
9211         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
9212         * config/s390/s390.c (s390_gimplify_va_arg): Same.
9213         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
9214
9215 2015-05-18  Tom de Vries  <tom@codesourcery.com>
9216
9217         * tree-ssa-tail-merge.c: Fix whitespace.
9218
9219 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
9220
9221         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
9222         cortex-a17, and cortex-a17.cortex-a7.
9223
9224 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
9225
9226         PR target/54236
9227         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
9228
9229 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
9230
9231         PR target/66174
9232         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
9233         QImode inner modes for TARGET_AVX512BW.  Force mask operand
9234         to a register for AVX512F modes.
9235
9236 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
9237
9238         * toplev.c (emit_debug_global_declarations): Do not output debug info
9239         when doing slim LTO objects.
9240
9241 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
9242
9243         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
9244         odr_types_equivalent_p): Declare.
9245         (odr_type_p): Use gcc_checking_assert.
9246         (type_in_anonymous_namespace_p) Declare.
9247         (type_with_linkage_p): Declare.
9248         * common.opt (Wlto-type-mismatch): New warning.
9249         * ipa-devirt.c (compound_type_base): New function.
9250         (odr_or_derived_type_p): New function.
9251         (odr_types_equivalent_p): New function.
9252         (add_type_duplicate): Simplify.
9253         (type_with_linkage_p): Add hack to prevent false positives on C types
9254         (type_in_anonymous_namespace_p): Likewise.
9255         * tree.c (need_assembler_name_p): Use type_with_linkage.
9256         * tree.h (type_in_anonymous_namespace_p): Remove.
9257         * doc/invoke.texi (-Wlto-type-mismatch): Document
9258
9259 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
9260
9261         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
9262         (verify_type): Verify STRING_FLAG.
9263
9264 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9265
9266         PR fortran/44054
9267         * tree-pretty-print.c (percent_K_format): Replace locus pointer
9268         with accessor function.
9269         * tree-diagnostic.c (diagnostic_report_current_function): Use
9270         diagnostic_location function.
9271         (maybe_unwind_expanded_macro_loc): Likewise.
9272         (virt_loc_aware_diagnostic_finalizer): Likewise.
9273         (default_tree_printer): Replace locus pointer with accessor function.
9274         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
9275         (diagnostic_set_info_translated): Initialize second location.
9276         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
9277         (diagnostic_show_locus): Handle two locations. Call
9278         diagnostic_print_caret_line.
9279         (diagnostic_print_caret_line): New.
9280         (default_diagnostic_starter): Use diagnostic_location function.
9281         (diagnostic_report_diagnostic): Use diagnostic_location function.
9282         (verbatim): Do not set text.locus.
9283         * diagnostic.h (struct diagnostic_info): Remove location field.
9284         (struct diagnostic_context): Make caret_chars an array of two.
9285         (diagnostic_location): New inline.
9286         (diagnostic_expand_location): Handle two locations.
9287         (diagnostic_same_line): New inline.
9288         (diagnostic_print_caret_line): Declare.
9289         (CARET_LINE_MARGIN): New constant.
9290         * pretty-print.c (pp_printf): Do not set text.locus.
9291         (pp_verbatim): Do not set text.locus.
9292         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
9293         (struct text_info): Replace locus pointer with locations
9294         array. Add accessor functions.
9295
9296 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
9297             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
9298
9299         PR target/65768
9300         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
9301         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
9302          large constants in register instead of splitting them.
9303
9304 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
9305
9306         PR target/66140
9307         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
9308         replacements in memory addresses.
9309         (get_unaligned_address): Ditto.
9310
9311 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
9312
9313         * config/ft32/*: New files for FT32 port.
9314         * doc/install.texi: Add FT32 information.
9315         * doc/invoke.texi: Add FT32 information.
9316         * doc/md.texi: Add FT32 information.
9317         * doc/contrib.texi: Self added.
9318
9319 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
9320
9321         PR tree-optimization/64454
9322         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
9323         (-1 - A -> ~A): Remove unnecessary condition.
9324
9325 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
9326
9327         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
9328         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
9329         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
9330
9331 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
9332
9333         * ipa-chkp.h (chkp_wrap_function): New.
9334         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
9335         (chkp_wrap_function_name): New.
9336         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
9337         to get wrapper name.
9338         * lto-cgraph.c: Include ipa-chkp.h.
9339         (input_cgraph_1): Avoid alias chain for wrappers.
9340
9341 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
9342
9343         PR middle-end/66134
9344         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
9345         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
9346
9347 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9348
9349         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
9350         (AARCH64_FL_SLOWMUL): Delete.
9351         (AARCH64_FL_CRC): Redefine to 1<<3.
9352         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
9353
9354 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9355
9356         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
9357         casting.
9358
9359 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
9360
9361         * config/alpha/alpha.md (extendqidi2): Use general_operand
9362         instead of some_operand for operand[1] predicate.
9363         (extendhidi2): Ditto.
9364         (cbranchdi4): Use general_operand instead of some_operand
9365         for operand[1] and operands[2] predicates.
9366         (cstoredi4): Ditto.
9367         * config/alpha/predicates.md (some_operand): Remove unused predicate.
9368         (some_ni_operand): Ditto.
9369
9370 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
9371
9372         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
9373         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
9374         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
9375         low part of the constant using alpha_emit_set_const_1.
9376         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
9377
9378 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
9379
9380         * varasm.c (output_constant_pool_1): Pass down alignment from
9381         constant pool entry's descriptor to output_constant_pool_2.
9382         (output_object_block): Add comment prior to call to
9383         output_constant_pool_1.
9384
9385 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
9386
9387         PR rtl-optimization/65862
9388         * target.def (ira_change_pseudo_allocno_class): New hook.
9389         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
9390         value of the hook.
9391         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
9392         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
9393         hook.
9394         * ira-costs.c (find_costs_and_classes): Call the hook and change
9395         classes when it is necessary.
9396         * doc/tm.texi: Update.
9397
9398 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
9399
9400         * config/i386/i386.md (sibcall_memory): Check that register with
9401         callee address is not also used as one of the arguments, instead
9402         of checking that it is not live after the sibcall.
9403         (sibcall_pop_memory): Ditto.
9404         (sibcall_value_memory): Ditto.
9405         (sibcall_value_pop_memory): Ditto.
9406
9407 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
9408
9409         * generic-match-head.c (types_match): Handle non-types.
9410         * gimple-match-head.c (types_match): Likewise.
9411         * match.pd: Remove unnecessary TREE_TYPE for types_match.
9412
9413 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
9414
9415         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
9416         (csneg3<mode>_insn): Enable expansion of pattern.
9417
9418 2015-05-14  Nick Clifton  <nickc@redhat.com>
9419
9420         * config/rl78/rl78.c (rl78_select_section): Select the correct
9421         default section based upon the category of the decl.
9422
9423 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
9424
9425         PR rtl-optimization/30967
9426         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
9427         destination mode for the cost of scc patterns.
9428
9429 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
9430
9431         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
9432         using SWIM248 mode iterator.
9433         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
9434         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
9435         for operand[2] constraint.
9436         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
9437
9438 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
9439
9440         PR middle-end/66133
9441         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
9442         make sure it is never noreturn, even when the task body does not
9443         return.
9444         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
9445         right before GIMPLE_OMP_RETURN.
9446         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
9447         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
9448         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
9449
9450 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9451
9452         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
9453         * tree-ssa-math-opts.c: Include params.h
9454         (pow_synth_sqrt_info): New struct.
9455         (representable_as_half_series_p): New function.
9456         (get_fn_chain): Likewise.
9457         (print_nested_fn): Likewise.
9458         (dump_fractional_sqrt_sequence): Likewise.
9459         (dump_integer_part): Likewise.
9460         (expand_pow_as_sqrts): Likewise.
9461         (gimple_expand_builtin_pow): Use above to attempt to expand
9462         pow as series of square roots.  Removed now unused variables.
9463
9464 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
9465
9466         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
9467         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
9468         Remove *p0 and *p1 arguments.  Rewrite function.
9469         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
9470         (alpha_split_const_mov): Update calls to alpha_extract_integer and
9471         alpha_emit_set_long_const.
9472         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
9473         (alpha_output_mi_thunk_osf): Ditto.
9474         * config/alpha/alpha.md (movti): Do not check operands[1]
9475         for CONST_DOUBLE.
9476
9477 2015-05-13  Richard Biener  <rguenther@suse.de>
9478
9479         PR tree-optimization/66129
9480         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
9481         commutative.
9482         (vect_schedule_slp_instance): Fix typo.
9483
9484 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
9485
9486         * common.opt (fdump-internal-locations): New option.
9487         * input.c: Include diagnostic-core.h.
9488         (get_end_location): New function.
9489         (write_digit): New function.
9490         (write_digit_row): New function.
9491         (dump_location_range): New function.
9492         (dump_labelled_location_range): New function.
9493         (dump_location_info): New function.
9494         * input.h (dump_location_info): New prototype.
9495         * toplev.c (compile_file): Handle flag_dump_locations.
9496
9497 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
9498
9499         * gimple-expr.h (is_gimple_constant): Reorder.
9500         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
9501
9502 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
9503
9504         * combine.c (simplify_set): When generating a CC set, if the
9505         source already is in the correct mode, do not wrap it in a
9506         compare.  Simplify the rest of that code.
9507
9508 2015-05-13  Richard Biener  <rguenther@suse.de>
9509
9510         PR tree-optimization/66123
9511         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
9512         a taken edge.
9513
9514 2015-05-13  Richard Biener  <rguenther@suse.de>
9515
9516         PR middle-end/66110
9517         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
9518         specially.
9519         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
9520
9521 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
9522
9523         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
9524         * aclocal.m4: Regenerated with automake-1.11.6.
9525
9526 2015-05-13  Tom de Vries  <tom@codesourcery.com>
9527
9528         PR tree-optimization/66010
9529         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
9530         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
9531         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
9532         and rval based on do_deref.
9533
9534 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
9535
9536         PR target/65103
9537         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
9538         link time constants into adress expressions and therefore set
9539         their cost to 0.
9540
9541 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
9542
9543         PR target/66112
9544         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
9545         Use SWI248 iterator instead of SWI.
9546         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
9547         Use eq_attr "alternative" "0" instead of match_test in
9548         length_immediate attribute computation.
9549         (*mulvhi4, *mulvhi4_1): New define_insns.
9550
9551         PR target/66112
9552         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
9553         SIGNED to get precision of non-negative value.
9554
9555 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
9556
9557         PR target/66048
9558         * function.c (diddle_return_value_1): Process bounds first.
9559         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
9560         register.
9561
9562 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9563
9564         PR rtl-optimization/64616
9565         * loop-invariant.c (can_move_invariant_reg): New.
9566         (move_invariant_reg): Call above new function to decide whether
9567         instruction can just be moved, skipping creation of temporary
9568         register.
9569
9570 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
9571
9572         PR target/pr66047.c
9573         * i386.c (ix86_function_sseregparm): Only return -1 if local function
9574         with implied regparm is called from -mno-sse function.
9575         (init_cumulative_args): Output error if ix86_function_sseregparm
9576         return -1 and SSE register would be needed.
9577         (function_arg_advance_32): Likewise.
9578         (function_arg_32): Likewise.
9579         * i386.h (ix86_args): Add decl field.
9580
9581 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
9582
9583         PR ipa/65873
9584         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
9585         inlines across optimization boundary.
9586
9587 2015-05-12  Jason Merrill  <jason@redhat.com>
9588
9589         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
9590         string literal and macro name.
9591
9592 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
9593
9594         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
9595         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
9596         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
9597
9598 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
9599
9600         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
9601         (-Wmisleading-indentation): New option.
9602         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
9603
9604 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
9605
9606         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
9607         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
9608         (alpha_extract_integer): Ditto.
9609         (alpha_legitimate_constant_p): Ditto.
9610         (alpha_split_tmode_pair): Ditto.
9611         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
9612         (alpha_expand_mov): Ditto.
9613         (print_operand): Remove handling of 'H' modifier.
9614         <case 'm'>: Remove CONST_DOUBLE handling.
9615         (summarize_insn): Handle CONST_WIDE_INT.
9616         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
9617         (anddi3): Ditto.
9618         (movti): Handle CONST_WIDE_INT.
9619         * config/alpha/constraints.md ('H'): Remove constraint definition.
9620         ('G'): Do not match MODE_FLOAT class.
9621         * config/alpha/predicates.md (const0_operand): Also match
9622         const_wide_int.
9623         (non_add_const_operand): Ditto.
9624         (non_zero_const_operand): Ditto.
9625         (some_operand): Ditto.
9626         (input_operand): Ditto.  Handle CONST_WIDE_INT.
9627         (and_operand): Do not match const_double.
9628         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
9629
9630 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
9631
9632         PR target/65697
9633         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
9634         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
9635         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
9636         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
9637         is_mm_seq_cst, is_mm_sync): New accessor functions.
9638         * builtins.c (expand_builtin_sync_operation,
9639         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
9640         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
9641         (get_memmodel,  expand_builtin_atomic_compare_exchange,
9642         expand_builtin_atomic_load, expand_builtin_atomic_store,
9643         expand_builtin_atomic_clear): Use new accessor routines.
9644         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
9645         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
9646         (maybe_emit_sync_lock_test_and_set): Use new accessors and
9647         MEMMODEL_SYNC_ACQUIRE.
9648         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
9649         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
9650         expand_atomic_store): Use new accessors.
9651         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
9652         * tsan.c (instrument_builtin_call): Update check for memory model beyond
9653         final enum to use MEMMODEL_LAST.
9654         * c-family/c-common.c: Use new accessor for memmodel_base.
9655         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
9656         accessors.
9657         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
9658         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
9659         mem_thread_fence, *dmb): Likewise.
9660         * config/alpha/alpha.c (alpha_split_compare_and_swap,
9661         alpha_split_compare_and_swap_12): Likewise.
9662         * config/arm/arm.c (arm_expand_compare_and_swap,
9663         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
9664         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
9665         atomic_loaddi): Likewise.
9666         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
9667         Likewise.
9668         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
9669         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
9670         use new accessors.
9671         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
9672         atomic_store<mode>, atomic_compare_and_swap<mode>,
9673         atomic_exchange<mode>): Use new accessors.
9674         * config/mips/mips.c (mips_process_sync_loop): Likewise.
9675         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
9676         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
9677         rs6000_post_atomic_barrier): Add new cases.
9678         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
9679         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
9680         (atomic_load<mode>): Add new cases and use new accessors.
9681         (store_quadpti): Add new cases.
9682         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
9683         accessors.
9684         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
9685         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
9686         model, not 8.
9687
9688 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
9689
9690         * ipa-devirt.c (type_with_linkage_p): New function.
9691         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
9692         type has linkage.
9693         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
9694         (can_be_name_hashed_p): Simplify.
9695         (hash_odr_name): Check that type has linkage before checking if it is
9696         anonymous.
9697         (types_same_for_odr): Likewise.
9698         (odr_name_hasher::equal): Likewise.
9699         (odr_subtypes_equivalent_p): Likewise.
9700         (warn_types_mismatch): Likewise.
9701         (get_odr_type): Likewise.
9702         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
9703         * ipa-utils.h (odr_type_p): Move offline.
9704         * tree.c (need_assembler_name_p): Fix handling of types
9705         without linkages.
9706         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
9707
9708 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
9709
9710         * timevar.c (timevar_enable): Delete in favor of...
9711         (g_timer): New global.
9712         (struct timevar_def): Move to timevar.h inside class timer.
9713         (struct timevar_stack_def): Likewise.
9714         (timevars): Delete global in favor of field "m_timevars" within
9715         class timer in timevar.h
9716         (stack): Likewise, in favor of field "m_stack".
9717         (unused_stack_instances): Likewise, in favor of field
9718         "m_unused_stack_instances".
9719         (start_time): Likewise, in favor of field "m_start_time".
9720         (get_time): Eliminate check for timevar_enable.
9721         (timer::timer): New function, built from part of timevar_init.
9722         (timevar_init): Rewrite idempotency test from using
9723         "timevar_enable" bool to using dynamic allocation of "g_timer".
9724         Move rest of implementation into timer's constructor.
9725         (timevar_push_1): Rename to...
9726         (timer::push): ...this, adding "m_" prefixes to variables that
9727         are now fields of timer.
9728         (timevar_pop_1): Likewise, rename to...
9729         (timer::pop): ...this, and add "m_" prefixes.
9730         (timevar_start): Replace test for "timevar_enable" with one for
9731         "g_timer", and move bulk of implementation to...
9732         (timer::start): ...here, adding "m_" prefixes.
9733         (timevar_stop): Likewise, from here...
9734         (timer::stop): ...to here.
9735         (timevar_cond_start): Likewise, from here...
9736         (timer::cond_start): ...to here.
9737         (timevar_cond_stop): Likewise, from here...
9738         (timer::cond_stop): ...to here.
9739         (validate_phases): Rename to...
9740         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
9741         locals "total" and "tv" const.
9742         (timevar_print): Rename to...
9743         (timer::print): ...this, and add "m_" prefixes.  Make locals
9744         "total" and "tv" const.  Eliminate test for timevar_enable.
9745         * timevar.h (timevar_enable): Eliminate.
9746         (g_timer): New declaration.
9747         (timevar_push_1): Eliminate.
9748         (timevar_pop_1): Eliminate.
9749         (timevar_print): Eliminate.
9750         (class timer): New class.
9751         (timevar_push): Rewrite to use g_timer.
9752         (timevar_pop): Likewise.
9753         * toplev.c (toplev::~toplev): Likewise.
9754
9755 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
9756
9757         * arm-protos.h (arm_sched_autopref): Delete.
9758         (tune_params): Re-organize, use enums for flag values.
9759         (FUSE_OPS): New macro.
9760         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
9761         (ARM_PREFETCH_BENEFICIAL): Likewise.
9762         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
9763         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
9764         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
9765         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
9766         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
9767         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
9768         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
9769         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
9770         format.
9771         (arm_option_override, thumb2_reorg, arm_print_tune_info)
9772         (aarch_macro_fusion_pair_p): Update uses of current_tune.
9773         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
9774
9775 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
9776
9777         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
9778         "break".
9779
9780 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
9781             Sandra Loosemore <sandra@codesourcery.com>
9782
9783         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
9784         value.
9785         (REG_CLASS_NAMES): Add "IJMP_REGS".
9786         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
9787         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
9788         use new "c" register constraint.
9789         * config/nios2/constraint.md (c): New register constraint
9790         corresponding to IJMP_REGS.
9791
9792 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
9793
9794         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
9795         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
9796         define_splits): Delete, revamp, transmogrify into ...
9797         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
9798         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
9799         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
9800         New.
9801
9802 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
9803
9804         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
9805         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
9806
9807 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
9808
9809         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
9810         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
9811         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
9812         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
9813         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
9814         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
9815         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
9816         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
9817         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
9818         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
9819         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
9820         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
9821         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
9822         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
9823         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
9824         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
9825         and 30 corresponding splitters): Delete.
9826
9827 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
9828
9829         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
9830         zero_extract.
9831
9832 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
9833
9834         * combine.c (recog_for_combine_1): New function, factored out
9835         from recog_for_combine.
9836         (change_zero_ext): New function.
9837         (recog_for_combine): If recog fails, try again with the pattern
9838         modified by change_zero_ext; if that still fails, restore the
9839         pattern.
9840
9841 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
9842
9843         * combine.c (get_undo_marker): New function.
9844         (undo_to_marker): New function, largely factored out from ...
9845         (undo_all): ... this.  Adjust.
9846
9847 2015-05-12  Richard Biener  <rguenther@suse.de>
9848
9849         PR tree-optimization/66101
9850         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
9851         fixup if we turn a loop exit edge to a fallthru edge.
9852
9853 2015-05-12  Richard Biener  <rguenther@suse.de>
9854
9855         PR tree-optimization/37021
9856         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
9857         (SLP_TREE_TWO_OPERATORS): New define.
9858         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
9859         SLP_TREE_TWO_OPERATORS.
9860         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
9861         SLP node.
9862         (vect_build_slp_tree): Adjust.
9863         (vect_analyze_slp_cost_1): Likewise.
9864         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
9865         emitting two vector stmts and mixing the results.
9866
9867 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9868
9869         * call.c (print_z_candidates): Remove dead code.
9870
9871 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9872
9873         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
9874         and zEC12_simple_fp.
9875         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
9876         to 1.
9877
9878 2015-05-12  Tom de Vries  <tom@codesourcery.com>
9879
9880         PR tree-optimization/66010
9881         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
9882         ifn_va_arg.
9883         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
9884         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
9885         va_lists are passed, and remove corresponding handling.
9886         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
9887         do_deref argument to ifn_va_arg.
9888         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
9889         ifn_va_arg.
9890
9891 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9892
9893         PR target/65955
9894         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
9895         REG before taking its REGNO.
9896
9897 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9898
9899         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
9900         rsp->sign_bit_copies and rsp->nonzero_bits into ...
9901         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
9902         present to get more accurate information about the number of sign bit
9903         copies and non zero bits.
9904
9905 2015-05-12  Richard Biener  <rguenther@suse.de>
9906
9907         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
9908         do not allow unrolling.
9909
9910 2015-05-11  Richard Henderson  <rth@redhat.com>
9911
9912         * config/i386/i386-modes.def (CCP): New.
9913         * config/i386/i386.c (put_condition_code): Handle it.
9914         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
9915
9916 2015-05-11  Richard Henderson  <rth@redhat.com>
9917
9918         * target.def (md_asm_clobbers): Replace with...
9919         (md_asm_adjust): this.
9920         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
9921         (TARGET_MD_ASM_ADJUST): New.
9922         * tm.texi: Rebuild.
9923         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
9924         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
9925         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
9926
9927         * cfgexpand.c (check_operand_nalternatives): Accept vector of
9928         constraints instead of lists of outputs and inputs.
9929         (expand_asm_stmt): Save and restore input_location around the
9930         body of the function.  Move asm data into vectors instead of
9931         building tree lists.  Generate cleanup sequences as needed,
9932         rather than waiting til the end.  Use new md_asm_adjust hook.
9933
9934         * config/vxworks.c: Include vec.h before target.h.
9935         * gimple.c: Likewise.
9936         * incpath.c: Likewise.
9937         * mode-switching.c: Likewise.
9938
9939         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
9940         (cris_md_asm_adjust): this.
9941         (TARGET_MD_ASM_CLOBBERS): Remove.
9942         (TARGET_MD_ASM_ADJUST): New.
9943         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
9944         (ix86_md_asm_adjust): this.
9945         (TARGET_MD_ASM_CLOBBERS): Remove.
9946         (TARGET_MD_ASM_ADJUST): New.
9947         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
9948         (mn10300_md_asm_adjust): this.
9949         (TARGET_MD_ASM_CLOBBERS): Remove.
9950         (TARGET_MD_ASM_ADJUST): New.
9951         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
9952         (rs6000_md_asm_adjust): this.
9953         (TARGET_MD_ASM_CLOBBERS): Remove.
9954         (TARGET_MD_ASM_ADJUST): New.
9955         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
9956         (visium_md_asm_adjust): this.
9957         (TARGET_MD_ASM_CLOBBERS): Remove.
9958         (TARGET_MD_ASM_ADJUST): New.
9959
9960 2015-05-11  Richard Henderson  <rth@redhat.com>
9961
9962         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
9963         if noutputs is zero.
9964         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
9965
9966         * cfgexpand.c (expand_asm_operands): Merge into...
9967         (expand_asm_stmt): ... here.
9968
9969         * cfgexpand.c (expand_asm_operands): Don't call
9970         resolve_asm_operand_names.
9971         * stmt.c (resolve_asm_operand_names): Clarify block comment.
9972
9973 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
9974
9975         * dwarf2out.c (gen_member_die): Sanity check that we access
9976         TYPE_MAIN_VARIANT for TYPE_METHODS.
9977         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
9978         checking TYPE_METHODS.
9979         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
9980         if non-null.
9981         (build_distinct_type_copy): Clear TYPE_METHODS.
9982         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
9983         (verify_type): Allow TYPE_METHODS to be error_mark_node.
9984         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
9985
9986 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
9987
9988         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
9989         (emit_pattern_before_setloc): Likewise.
9990
9991 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
9992
9993         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
9994         for define_peephole2s.
9995         (get_peephole2_pattern): New function.
9996         (main): Use it.  Call validate_pattern.
9997
9998 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
9999
10000         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
10001         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
10002         (Last callee saved reg is different for AVR_TINY architecture)
10003
10004 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
10005
10006         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
10007         when looking for memory references.
10008
10009 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
10010
10011         PR target/65753
10012         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
10013         via function pointers.
10014
10015 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
10016
10017         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
10018         indirect call by forcing address into a pseudo with -fno-plt.
10019         * common.opt (flag_plt): New option.
10020         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
10021         ([-fno-plt]): Document.
10022
10023 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
10024
10025         PR bootstrap/66105
10026         * config/rs6000/option-defaults.h: Add space between string literal
10027         and macro name.
10028
10029 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10030
10031         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
10032         accross ARM targets.
10033
10034 2015-05-11  Christian Bruel  <christian.bruel@st.com>
10035
10036         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
10037         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
10038
10039 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
10040
10041         PR rtl-optimization/66076
10042         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
10043         Don't grow the heap array if it is already big enough from a
10044         previous iteration.
10045
10046 2015-05-11  Christian Bruel  <christian.bruel@st.com>
10047
10048         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
10049         (is_called_in_ARM_mode): Remove.
10050         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
10051         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
10052         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
10053          arm_declare_function_name.
10054
10055 2015-05-11  Christian Bruel  <christian.bruel@st.com>
10056
10057         * config/arm/arm.c (arm_option_override): Reoganized and split into :
10058         (arm_option_params_internal); New function.
10059         (arm_option_check_internal): New function.
10060         (arm_option_override_internal): New function.
10061         (thumb_code, thumb1_code): Remove.
10062         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
10063         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
10064         (thumb_code, thumb1_code): Remove.
10065         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
10066
10067 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
10068
10069         * config/alpha/alpha.c (alpha_emit_set_const_1)
10070         (alpha_emit_set_long_const, alpha_extract_integer)
10071         (alpha_legitimate_constant_p, alpha_split_const_mov)
10072         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
10073         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
10074         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
10075         HOST_WIDE_INT_1U.
10076         * config/alpha/predicates.md (mode_mask_operand): Do not match
10077         const_double RTX.
10078         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
10079         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
10080         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
10081         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
10082         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
10083
10084 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
10085
10086         PR target/65780
10087         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
10088         default_binds_local_p_2.
10089         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
10090         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
10091
10092 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
10093
10094         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
10095
10096 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
10097
10098         Patch by Richard Biener
10099         * coverage.c (coverage_obj_init): Delay building of type variant
10100         until the type is finished.
10101
10102 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
10103
10104         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
10105         mismatch between C and C++ type; compoare correctly ARG_TYPES
10106         for non-prototypes and output correctly parameter index for METHOD_TYPE.
10107         (odr_types_equivalent_p): Fix wording of warning about attributes;
10108         it is OK to match prototype and non-prototype.
10109
10110 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
10111
10112         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
10113         TYPE_ARG_TYPES list.
10114         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
10115         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
10116
10117 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
10118
10119         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
10120         * tree.h (is_lang_specific): Constify.
10121
10122 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
10123
10124         PR tree-optimization/64454
10125         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
10126         Rewrite.
10127
10128 2015-05-08  Jason Merrill  <jason@redhat.com>
10129
10130         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
10131         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
10132         config/darwin.h, config/darwin9.h, config/elfos.h,
10133         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
10134         config/microblaze/microblaze.h, config/mips/mips.h,
10135         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
10136         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
10137         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
10138         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
10139         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
10140         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
10141         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
10142         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
10143         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
10144         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
10145         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
10146         between string literal and macro name.
10147
10148 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10149
10150         * jump.c: Change argument types to rtx_insn *.
10151         * rtl.h: Adjust.
10152
10153 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10154
10155         * lra-constraints.c: Change argument type to rtx_insn *.
10156
10157 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10158
10159         * df-problems.c: Change argument type to rtx_insn *.
10160
10161 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10162
10163         * combine.c: Change argument type to rtx_insn *.
10164
10165 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10166
10167         * rtl.h: Adjust.
10168         * rtlanal.c: Change argument type to rtx_insn *.
10169
10170 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10171
10172         * sched-deps.c: Change argument types to rtx_insn *.
10173         * sched-int.h: Adjust.
10174
10175 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10176
10177         * dwarf2cfi.c: Change argument type to rtx_insn *.
10178
10179 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10180
10181         * ira.c (decrease_live_ranges_number): Changetype of local
10182         variable to rtx_insn *.
10183         * recog.c: Change argument types to rtx_insn *.
10184         * recog.h: Adjust.
10185
10186 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10187
10188         * reorg.c: Change argument types to rtx_insn *.
10189
10190 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10191
10192         * ira-color.c: Change argument types to rtx_insn *.
10193         * lra-eliminations.c: Likewise.
10194         * ira.h: Adjust.
10195
10196 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10197
10198         * gcse.c: Change argument types to rtx_insn *.
10199
10200 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10201
10202         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
10203
10204 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10205
10206         * emit-rtl.c (emit_debug_insn_before): Change argument type to
10207         rtx_insn *.
10208         * rtl.h: Adjust.
10209
10210 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10211
10212         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
10213         * rtl.h: Adjust.
10214
10215 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10216
10217         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
10218         * rtl.h: Adjust.
10219
10220 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10221
10222         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
10223         * rtl.h: Adjust.
10224
10225 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10226
10227         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
10228         * rtl.h: Adjust.
10229
10230 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10231
10232         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
10233         to rtx_insn *.
10234         * rtl.h: Adjust.
10235
10236 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10237
10238         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
10239         to rtx_insn *.
10240         * rtl.h: Likewise.
10241
10242 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10243
10244         * except.c (can_nonlocal_goto): Change type of argument to
10245         rtx_insn *.
10246         * rtl.h: Adjust.
10247
10248 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10249
10250         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
10251         * rtl.h: Adjust.
10252
10253 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10254
10255         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
10256         * cfgrtl.c (can_delete_label_p): Adjust.
10257         * rtl.h: likewise.
10258
10259 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10260
10261         * reorg.c (stop_search_p): Change argument to rtx_insn *.
10262
10263 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10264
10265         * except.c (make_reg_eh_region_note): Change argument to
10266         rtx_insn *.
10267         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
10268         * except.h: Adjust.
10269
10270 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10271
10272         * mode-switching.c (commit_mode_sets): Change type of local
10273         variable from rtx to rtx_insn *.
10274
10275 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
10276
10277         * doc/install.texi (--enable-languages): Add missing jit and lto info.
10278         Add ^ to grep command.
10279         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
10280         arg to last gimple_simplify declaration.  Add missing gimple_build
10281         declaration for built-in function case with four tree args.
10282
10283 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
10284             Szabolcs Nagy  <szabolcs.nagy@arm.com>
10285
10286         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
10287         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
10288         (GNU_USER_DYNAMIC_LINKERN32): Update.
10289
10290 2015-05-08  Richard Biener  <rguenther@suse.de>
10291
10292         PR tree-optimization/66036
10293         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
10294         Handle strided group loads.
10295         (vect_verify_datarefs_alignment): Likewise.
10296         (vect_enhance_data_refs_alignment): Likewise.
10297         (vect_analyze_group_access): Likewise.
10298         (vect_analyze_data_ref_access): Likewise.
10299         (vect_analyze_data_ref_accesses): Likewise.
10300         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
10301         (vectorizable_load): Likewise.
10302
10303 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
10304
10305         * config/rs6000/rs6000.md: Require operand inequality in one
10306         of the peepholes.
10307
10308 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
10309             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10310
10311         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
10312         from (set ...).
10313         * config/rx/rx.md (movdi, movdf): Likewise.
10314         Likewise for define_peephole2s.
10315
10316 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
10317
10318         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
10319         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
10320         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
10321         vtst_u64): Rewrite using gcc vector extensions.
10322
10323 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
10324
10325         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
10326         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
10327
10328 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
10329
10330         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
10331
10332 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
10333
10334         * config/glibc-stdint.h (OPTION_MUSL): Define.
10335         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
10336         Change the definition based on OPTION_MUSL for 64 bit targets.
10337         * config/linux.h (OPTION_MUSL): Redefine.
10338         * config/alpha/linux.h (OPTION_MUSL): Redefine.
10339         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
10340         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
10341
10342 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
10343             Szabolcs Nagy  <szabolcs.nagy@arm.com>
10344
10345         * config.gcc (LIBC_MUSL): New tm_defines macro.
10346         * config/linux.h (OPTION_MUSL): Define.
10347         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
10348         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
10349         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
10350         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
10351         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
10352         * config/linux.opt (mmusl): New option.
10353         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
10354         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
10355         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
10356         * configure: Regenerate.
10357
10358 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
10359             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
10360
10361         PR target/48904
10362         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
10363         * config/i386/knetbsd-gnu64.h: New file.
10364
10365 2015-05-08  Marek Polacek  <polacek@redhat.com>
10366
10367         PR c/64918
10368         * doc/invoke.texi: Document -Woverride-init-side-effects.
10369
10370 2015-05-07  Marek Polacek  <polacek@redhat.com>
10371
10372         PR c/65179
10373         * doc/invoke.texi: Document -Wshift-negative-value.
10374
10375 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
10376
10377         * gcov-tool.c (do_merge): Refactore to remove int ret.
10378         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
10379         !type == FUNC to type != FUNC.
10380         * reload.h (struct target_reload): Changee to type of
10381         x_spill_indirect_levels from bool to unsigned char.
10382
10383 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
10384
10385         * rtl.h (always_void_p): New function.
10386         * gengenrtl.c (always_void_p): Likewise.
10387         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
10388         with code foo are always VOIDmode.
10389         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
10390         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
10391         compare-elim.c, config/aarch64/aarch64.c,
10392         config/aarch64/aarch64.md, config/alpha/alpha.c,
10393         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
10394         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
10395         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
10396         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
10397         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
10398         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
10399         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
10400         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
10401         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
10402         config/ia64/vect.md, config/iq2000/iq2000.c,
10403         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
10404         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
10405         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
10406         config/mep/mep.c, config/microblaze/microblaze.c,
10407         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
10408         config/mn10300/mn10300.c, config/msp430/msp430.c,
10409         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
10410         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
10411         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
10412         config/rs6000/altivec.md, config/rs6000/rs6000.c,
10413         config/rs6000/rs6000.md, config/rs6000/vector.md,
10414         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
10415         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
10416         config/sh/sh.md, config/sh/sh_treg_combine.cc,
10417         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
10418         config/spu/spu.md, config/stormy16/stormy16.c,
10419         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
10420         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
10421         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
10422         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
10423         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
10424         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
10425         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
10426         var-tracking.c: Update calls accordingly.
10427
10428 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
10429
10430         PR middle-end/192
10431         PR middle-end/54303
10432         * varasm.c (function_mergeable_rodata_prefix): New function.
10433         (mergeable_string_section): Use it.
10434         (mergeable_constant_section): Use it.
10435
10436 2015-05-07  Jeff Law  <law@redhat.com>
10437
10438         PR target/39726
10439         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
10440         simplifier to narrow arithmetic.
10441         * generic-match-head.c: (types_match, single_use): New functions.
10442         * gimple-match-head.c: (types_match, single_use): New functions.
10443
10444 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
10445
10446         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
10447         rtx type.
10448
10449 2015-05-07  Richard Biener  <rguenther@suse.de>
10450
10451         PR tree-optimization/66002
10452         * passes.def: Schedule another pass_merge_phi after ifcombine, right
10453         before phiopt.
10454
10455 2015-05-07  Marek Polacek  <polacek@redhat.com>
10456             Martin Uecker  <uecker@eecs.berkeley.edu>
10457
10458         * doc/invoke.texi: Document -fsanitize=bounds-strict.
10459         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
10460         into SANITIZE_NONDEFAULT.
10461         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
10462
10463 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
10464
10465         PR target/66015
10466         * config/alpha/alpha.c (alpha_override_options_after_change): New.
10467         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
10468         (alpha_override_options): Move align_loops, align_jumps and
10469         align_functions handling into alpha_override_options_after_change.
10470
10471 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
10472             Chris Jones  <chrisj@nvidia.com>
10473             Joshua Conner  <jconner@nvidia.com>
10474
10475         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
10476         linking of crtfastmath.o.
10477         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
10478
10479 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
10480
10481         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
10482         (cstore<mode>4_unsigned_imm): New expander.
10483         (cstore<mode>4): Remove empty constraint strings.  Use the new
10484         expanders.
10485
10486 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
10487
10488         PR target/64208
10489         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
10490         alternatives.
10491
10492 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
10493
10494         * config/aarch64/geniterators.sh: Use standard BRE in sed.
10495
10496 2015-05-06  Alan Modra  <amodra@gmail.com>
10497
10498         PR target/66033
10499         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
10500         (UNSPEC_NOP): Define.
10501         (reload_vsx_from_gpr<mode>): Add missing DONE.
10502         (reload_gpr_from_vsx<mode>): Likewise.
10503         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
10504         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
10505
10506 2015-05-06  Christian Bruel  <christian.bruel@st.com>
10507
10508         PR target/66015
10509         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
10510         align_jumps, align_functions into aarch64_override_options_after_change.
10511
10512 2015-05-06  Richard Biener  <rguenther@suse.de>
10513
10514         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
10515         vect_transform_slp_perm_load to check if we support a permutation
10516         for basic-block vectorization.
10517
10518 2015-05-06  Nick Clifton  <nickc@redhat.com>
10519
10520         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
10521         used, even if it is not being used as a frame pointer.
10522
10523 2015-05-05  Jason Merrill  <jason@redhat.com>
10524
10525         * dwarf2out.c (gen_member_die): Don't emit anything for an
10526         anonymous class constructor.
10527
10528 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
10529
10530         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
10531         that it reflects the block structure.
10532         (afdo_propagate_edge): Likewise.
10533         (afdo_calculate_branch_prob): Likewise.
10534         (afdo_annotate_cfg): Likewise.
10535         * cfgcleanup.c (equal_different_set_p): Likewise.
10536         (try_crossjump_to_edge): Likewise.
10537         * cgraph.c (cgraph_node::verify_node): Likewise.
10538         * cgraphunit.c (expand_all_functions): Likewise.
10539         * config/i386/i386.c (ix86_expand_copysign): Likewise.
10540         (exact_dependency_1): Likewise.
10541         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
10542         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
10543         * gensupport.c (process_define_subst): Likewise.
10544         * lto-wrapper.c (merge_and_complain): Likewise.
10545         * tree-if-conv.c (if_convertible_bb_p): Likewise.
10546         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
10547         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
10548         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
10549         * tree-vect-loop.c (vectorizable_reduction): Likewise.
10550         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
10551         * tree-vect-stmts.c (vectorizable_shift): Likewise.
10552         * tree-vrp.c (vrp_finalize): Likewise.
10553         * tree.c (variably_modified_type_p): Likewise.
10554
10555 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
10556
10557         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
10558         on darwin12 and later.
10559         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
10560         file to pass -rdynamic on darwin12 and later.
10561         * config/darwin.opt (rdynamic): Add.
10562
10563 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
10564
10565         * doc/extend.texi (C Extensions): Update menu for moved Variable
10566         Attributes and Type Attributes sections.
10567
10568 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
10569
10570         PR target/65990
10571         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
10572         if rep_8byte stringop strategy was specified for 32-bit target.
10573
10574 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
10575
10576         PR target/65915
10577         * config/i386/i386.md (vector convert to float spltiter): Check for
10578         xmm16+, when splitting scalar float conversion.
10579         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
10580
10581 2015-05-05  Nick Clifton  <nickc@redhat.com>
10582
10583         * config/msp430/msp430-opts.h (enum msp430_regions): New.
10584         * config/msp430/msp430.c (msp430_override_options): Complain if
10585         -mcode-region or -mdata-region is used on a non MSP430X.
10586         (msp430_section_attr): New function.  Checks lower, upper and
10587         either attributes.
10588         (msp430_attribute_table): Add lower, upper and either.
10589         (gen_prefix): New function.  Generates a prefix for a section
10590         name.
10591         (msp430_select_section): New function - handles the choice of
10592         section for an object.  Takes into account memory region
10593         attributes and options.
10594         (msp430_function_section): Use gen_prefix.
10595         (TARGET_SECTION_TYPE_FLAGS): Define.
10596         (msp430_section_type_flags): New function.
10597         (TARGET_ASM_UNIQUE_SECTION): Define.
10598         (msp430_unique_section): New function.
10599         (msp430_output_aligned_decl_common): New function.
10600         (msp430_do_not_relax_short_jumps): New function.
10601         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
10602         Define.
10603         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
10604         * config/msp430/msp430-protos.h
10605         (msp430_do_not_relax_short_jumps): New prototype.
10606         (msp430_output_aligned_decl_common): New prototype.
10607         * config/msp430/msp430.md (length): New attribute.
10608         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
10609         then use a long code sequence for short jumps.
10610         * config/msp430/msp430.opt (mcode-region): New.
10611         (mdata-region): New.
10612         * doc/invoke.texi: Document new options.
10613         * doc/extend.texi: Document new attributes.
10614
10615 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
10616
10617         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
10618         (tune_params): Add field branch_costs.
10619         (aarch64_branch_cost): Declare.
10620         * gcc/config/aarch64.c (generic_branch_cost): New.
10621         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
10622         (cortexa53_tunings): Likewise.
10623         (cortexa57_tunings): Likewise.
10624         (thunderx_tunings): Likewise.
10625         (xgene1_tunings): Likewise.
10626         (aarch64_branch_cost): Define.
10627         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
10628
10629 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
10630
10631         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
10632         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
10633         * config/i386/i386.md: Ditto.
10634         * config/i386/winnt.c: Ditto.
10635
10636 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
10637
10638         * doc/extend.texi (__atomic Builtins): Move implementation details
10639         to the end of the description, rewrite opening paragraphs, state
10640         difference with __sync builtins, state C11/C++11 assumptions,
10641         weaken itemized descriptions, add explanation of memory model
10642         behaviour, expand description of compare-exchange, simplify text.
10643
10644 2015-05-05  Renlin Li  <renlin.li@arm.com>
10645
10646         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
10647
10648 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
10649
10650         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
10651         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
10652         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
10653         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
10654         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
10655         * configure: Regenerate.
10656         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
10657         * doc/install.texi (aarch64*-*-*): Document new
10658         --enable-fix-cortex-a53-843419 option.
10659         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
10660         and -mno-fix-cortex-a53-843419 options.
10661
10662 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
10663
10664         PR target/65871
10665         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
10666
10667 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
10668
10669         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
10670         fix overactive TYPE_MIN_VALUE check and add FIXME for type
10671         compatibility problems.
10672
10673 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
10674
10675         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
10676         constraints.
10677         (cbranchsi4_reg): New.
10678         * config/microblaze/microblaze.c
10679         (microblaze_expand_conditional_branch_reg): New.
10680         * config/microblaze/microblaze-protos.h
10681         (microblaze_expand_conditional_branch_reg): New prototype.
10682
10683 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
10684
10685         * config/microblaze/microblaze.md (peephole2): New.
10686
10687 2015-05-04  Jeff Law  <law@redhat.com>
10688
10689         Revert:
10690         2015-05-04  Jeff Law  <law@redhat.com>
10691
10692         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
10693         simplifier to narrow arithmetic.
10694         * generic-match-head.c: (types_match, single_use): New functions.
10695         * gimple-match-head.c: (types_match, single_use): New functions.
10696
10697 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
10698
10699         PR target/65987
10700         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
10701         (split_branches): Likewise.
10702
10703 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
10704
10705         * common.opt (fdelete-null-pointer-checks): Init to -1.
10706         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
10707         override flag_delete_null_pointer_checks default.
10708         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
10709         behavior re address zero.  Better document target-specific behavior.
10710         (-fisolate-errneous-paths-dereference): Mention relationship to
10711         -fdelete-null-pointer-checks.
10712
10713 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
10714
10715         PR tree-optimization/65984
10716         * ubsan.c: Include tree-cfg.h.
10717         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
10718         stmt_could_throw_p test, rename can_throw variable to ends_bb.
10719
10720 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
10721
10722         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
10723         to CONST_DOUBLE_P predicate.
10724         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
10725         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
10726         allow only operands that satisfy standard_sse_constant_p predicate.
10727         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
10728         to CONST_DOUBLE_P predicate.
10729
10730 2015-05-04  Jeff Law  <law@redhat.com>
10731
10732         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
10733         simplifier to narrow arithmetic.
10734         * generic-match-head.c: (types_match, single_use): New functions.
10735         * gimple-match-head.c: (types_match, single_use): New functions.
10736
10737 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
10738
10739         * config/arm/arm.c: Restore bootstrap.
10740
10741 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
10742
10743         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
10744         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
10745         as CONST_WIDE_INT, not CONST_DOUBLE.
10746         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
10747         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
10748         (ix86_find_base_term): Do not check for CONST_DOUBLE.
10749         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
10750         (ix86_build_signbit_mask): Rewrite using wide ints.
10751         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
10752         (ix86_rtx_costs): Handle CONST_WIDE_INT.
10753         (find_constant): Ditto.
10754         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
10755         using gen_int_mode.
10756         * config/i386/predicates.md (x86_64_immediate_operand)
10757         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
10758         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
10759         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
10760         (const0_operand): Also match const_wide_int.
10761         (constm1_operand): Ditto.
10762         (const1_operand): Ditto.
10763
10764 2015-05-04  Richard Biener  <rguenther@suse.de>
10765
10766         PR tree-optimization/65965
10767         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
10768         store groups at gaps.
10769
10770 2015-05-04  Richard Biener  <rguenther@suse.de>
10771
10772         PR tree-optimization/65935
10773         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
10774         then make sure to apply that swapping to the IL.
10775
10776 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
10777
10778         * Makefile.in (PATCHLEVEL_c): New variable.
10779         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
10780         expand the same way as if DEVPHASE_c was non-empty.
10781
10782 2015-05-04  Kai Tietz  <ktietz@redhat.com>
10783
10784         PR target/65559
10785         * lto-wrapper.c (run_gcc): Open filename
10786         in binary-mode.
10787
10788 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
10789
10790         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
10791         sections up in file, to immediately after the Function Attributes
10792         section.
10793
10794 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
10795
10796         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
10797
10798 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10799
10800         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
10801         (insert_partition_copy_on_edge): Adjust.
10802         (insert_rtx_to_part_on_edge): Likewise.
10803         (insert_part_to_rtx_on_edge): Likewise.
10804
10805 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10806
10807         * function.c (set_return_jump_label): Change type of argument to
10808         rtx_insn *.
10809         * function.h (set_return_jump_label): Adjust.
10810
10811 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10812
10813         * reload.h (struct reg_equivs_t): Change type of init to
10814         rtx_insn *.
10815         * ira.c (fix_reg_equiv_init): Adjust.
10816         * reload1.c (eliminate_regs_1): Likewise.
10817         (init_eliminable_invariants): Likewise.
10818
10819 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10820
10821         * cselib.c (fp_setter_insn): Take a rtx_insn *.
10822         * cselib.h (fp_setter_insn): Adjust.
10823
10824 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10825
10826         * recog.c (struct validate_replace_src_data): Change type of
10827         insn field to rtx_insn *.
10828         (validate_replace_src_group): Change type of argument to rtx_insn *.
10829         * recog.h (validate_replace_src_group): Adjust.
10830
10831 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10832
10833         * haifa-sched.c: Change the type of some variables to rtx_insn *.
10834         * sched-deps.c: Likewise.
10835         * sched-int.h: Likewise.
10836         * sched-rgn.c: Likewise.
10837         * sel-sched.c: Likewise.
10838
10839 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10840
10841         to rtx_insn *.
10842         * config/i386/i386.c: Change the type of some arguments to
10843         rtx_insn *.
10844         * config/arm/arm.c: Likewise.
10845
10846 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10847
10848         * lra-constraints.c: Change type of some arguments to rtx_insn *.
10849
10850 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10851
10852         * regcprop.c (kill_autoinc_value): Change type of argument to
10853         rtx_insn *.
10854
10855 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10856
10857         * genrecog.c (print_subroutine): Adjust.
10858         * recog.c (get_bool_attr_mask_uncached): Likewise.
10859         * recog.h (struct recog_data_d): Change the type of insn to
10860         rtx_insn *.
10861
10862 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10863
10864         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
10865
10866 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10867
10868         * df-problems.c (df_set_note): Change type of argument to
10869         rtx_insn *.
10870
10871 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10872
10873         * builtins.c (expand_builtin_trap): Change type of local
10874         variable to rtx_insn *.
10875         (add_sched_insns_for_speculation): Likewise.
10876         (ix86_emit_save_regs): Likewise.
10877         (get_scratch_register_on_entry): Likewise.
10878         (ix86_emit_restore_reg_using_pop): Likewise.
10879         (ix86_emit_leave): Likewise.
10880         (ix86_emit_restore_regs_using_mov): Likewise.
10881         (ix86_expand_epilogue): Likewise.
10882         Likewise.
10883         (rl78_alloc_physical_registers_umul): Likewise.
10884         * cselib.c (discard_useless_locs): Likewise.
10885         (cselib_invalidate_regno): Likewise.
10886         (cselib_invalidate_mem): Likewise.
10887         * function.c (expand_function_start): Likewise.
10888         (emit_use_return_register_into_block): Likewise.
10889         * gcse.c: Likewise.
10890         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
10891         * ifcvt.c (noce_get_alt_condition): Likewise.
10892         * loop-doloop.c (doloop_condition_get): Likewise.
10893         * lra-constraints.c (inherit_in_ebb): Likewise.
10894         * modulo-sched.c (sms_schedule_by_order): Likewise.
10895         * recog.c (next_insn_tests_no_inequality): Likewise.
10896         * reorg.c (emit_delay_sequence): Likewise.
10897         (update_reg_dead_notes): Likewise.
10898         (fix_reg_dead_note): Likewise.
10899         (fill_slots_from_thread): Likewise.
10900         (delete_computation): Likewise.
10901
10902 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
10903
10904         * doc/extend.texi (Variable Attributes): Add menu and proper
10905         @nodes to subsections.  Move Microsoft Windows attributes to
10906         their own subsection.
10907         (Type Attributes): Reorganize introduction to remove duplicate
10908         list of attributes.  Add menu and proper @nodes to subsections.
10909         Alphabetize the main table of common attributes.
10910
10911 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
10912
10913         * match.pd: New simplification patterns.
10914         (x + (x & 1))  -> ((x + 1) & ~1)
10915         (x & ~(x & y)) -> ((x & ~y))
10916         (x | ~(x | y)) -> ((x | ~y))
10917
10918 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10919
10920         * target.def (attribute_table): Mention that struct attribute_spec
10921         is defined in tree-core.h rather than tree.h
10922         * doc/tm.texi: Regenerate.
10923
10924 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
10925
10926         * genrecog.c (test): Rename to rtx_test.  Update rest of file
10927         accordingly.
10928
10929 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
10930
10931         PR translation/65959
10932         * params.h (DEFPARAM): Rename msgid to nocmsgid.
10933
10934 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
10935
10936         * gcc/config/aarch64/aarch64-protos.h (tune_params):
10937         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
10938         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
10939         Return value depending on target.
10940         (generic_tunings): Initialize new target settings.
10941         (cortexa53_tunings): Likewise.
10942         (cortexa57_tunings): Likewise.
10943         (thunderx_tunings): Likewise.
10944         (xgene1_tunings): Likewise.
10945
10946 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
10947
10948         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
10949         Make Cortex-A53 shift costs more accurate.
10950
10951 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10952
10953         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
10954         UNSIGNED_FLOAT.
10955
10956 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
10957
10958         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
10959         Calculate cost of op0 and op1 in PLUS and MINUS cases.
10960
10961 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10962
10963         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
10964         Add cost of op0 in the compare-with-fpzero case.
10965
10966 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
10967
10968         * builtins.c (fold_builtin_1): Remove spurious second
10969         semicolon.
10970         * cgraph.h (symtab_node::get_availability): Likewise.
10971         * opts.c (common_handle_option): Remove spurious second semicolon.
10972         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
10973         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
10974
10975 2015-04-30  Caroline Tice  <cmtice@google.com>
10976
10977         PR gcov-profile/65929
10978         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
10979         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
10980         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
10981         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
10982         * doc/tm.texi: Regenerate.
10983         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
10984         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
10985         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
10986         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
10987
10988 2015-04-30  Marek Polacek  <polacek@redhat.com>
10989
10990         * varasm.c (handle_cache_entry): Fix logic.
10991
10992 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10993
10994         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
10995         (*extrsi5_insn_uxtw_alt): Likewise.
10996         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
10997         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
10998         operations.
10999
11000 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11001
11002         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
11003         fabd in ABS case.
11004
11005 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11006
11007         * config/aarch64/aarch64.md
11008         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
11009         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
11010         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
11011         appropriately.  Handle alternative EON form.
11012
11013 2015-04-30  Renlin Li  <renlin.li@arm.com>
11014
11015         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
11016         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
11017
11018 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
11019
11020         PR ipa/65873
11021         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
11022         -fstrict-aliasing boundaries.
11023
11024 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11025
11026         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
11027         and [SU]MNEGL patterns.
11028
11029 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11030
11031         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
11032         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
11033         combined arithmetic-shift ops.  Properly handle all shift and extend
11034         operations that can occur in combination with PLUS/MINUS.
11035         Rename maybe_fma to compound_p.
11036         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
11037         arithmetic and shift operations.
11038
11039 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11040
11041         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
11042         rather than arith_shift cost when costing ADD/MINUS of an
11043         extended value.
11044
11045 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
11046
11047         PR lto/65948
11048         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
11049         to itself.
11050
11051 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
11052
11053         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
11054         are for the same position.
11055
11056 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
11057
11058         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
11059         vectorize_loops.
11060         (vectorize_loops): Use it.
11061
11062 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
11063
11064         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
11065         for aggregate types.
11066         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
11067         type to be non_ODR.
11068         * tree.c (need_assembler_name_p): Compute mangled name for
11069         non-fundamental types and integer types.
11070
11071 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
11072
11073         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
11074         manual swaps.
11075         * expr.c (expand_expr_real_2): Likewise.
11076
11077 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
11078
11079         * tree.c (build_common_builtin_nodes): Do not build
11080         __builtin_alloca_with_align as equivalent of library alloca.
11081
11082 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
11083
11084         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
11085         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
11086         bugus variants.
11087         * tree.c: Include print-tree.h and ipa-utils.h
11088         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
11089         (free_lang_data_in_cgraph): Call verify_type.
11090         (verify_type_variant): New function.
11091         (verify_type): New function.
11092         * tree.h (verify_type): Declare.
11093
11094 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
11095
11096         * config/mips/mips-cpus.def: (mips4): Change default processor
11097         from PROCESSOR_R8000 to PROCESSOR_R10000.
11098
11099 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
11100
11101         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
11102         la/jalr instead of jal.
11103
11104 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
11105
11106         PR target/65871
11107         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
11108         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
11109         (setcc+movzbl peephole2): Check also clobbered reg.
11110         (setcc+andl peephole2): Ditto.
11111
11112 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
11113
11114         PR libgomp/65099
11115         * config/nvptx/mkoffload.c (target_ilp32): New variable.
11116         (main): Set it depending on "-foffload-abi=[...]".
11117         (compile_native, main): Use it to pass "-m32" or "-m64" to the
11118         compiler.
11119
11120 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
11121
11122         PR target/65770
11123         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
11124         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
11125         Flip lane index back at assembly time for bigendian.
11126
11127 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
11128
11129         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
11130         * gimplify.c (gimplify_omp_workshare): Use it.
11131
11132 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
11133
11134         * Makefile.in (build/genrecog.o): Depend on inchash.h.
11135         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
11136         build/inchash.o
11137         * genrecog.c: Rewrite most of the code except for the third page.
11138
11139 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
11140
11141         * inchash.h, inchash.c: Include bconfig.h for build objects.
11142         * Makefile.in (build/inchash.o): New rule.
11143
11144 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
11145
11146         PR target/65924
11147         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
11148         number in type attribute expression.
11149
11150 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
11151
11152         * loop-iv.c (canon_condition): Generalize to all types of integer
11153         constant.
11154
11155 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
11156
11157         * gimple-walk.c: Prune duplicate or unneeded includes.
11158         (walk_gimple_asm): Only call parse_input_constraint or
11159         parse_output_constraint if their findings are used.
11160         Honour parse_input_constraint and parse_output_constraint
11161         result.
11162
11163 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
11164
11165         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
11166
11167 2015-04-29  Tom de Vries  <tom@codesourcery.com>
11168
11169         PR tree-optimization/65893
11170         * passes.def (pass_all_optimizations): Move pass_stdarg to after
11171         pass_dce.
11172
11173 2015-04-29  Richard Biener  <rguenther@suse.de>
11174
11175         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
11176         compute GROUP_SIZE for basic-block SLP.
11177         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
11178         take into account gaps.
11179         (vect_get_mask_element): Properly reject references to previous
11180         vectors.
11181         (vect_transform_slp_perm_load): Likewise.
11182
11183 2015-04-29  Christian Bruel  <christian.bruel@st.com>
11184
11185         PR target/64835
11186         * config/i386/i386.c (ix86_default_align): New function.
11187         (ix86_override_options_after_change): Call ix86_default_align.
11188         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
11189         (ix86_override_options_after_change): New function.
11190
11191 2015-04-28  Jeff Law  <law@redhat.com>
11192
11193         * tree-ssa-dom.c (record_equality); Fix comment typos.
11194
11195 2015-04-28  Tom de Vries  <tom@codesourcery.com>
11196
11197         PR tree-optimization/65887
11198         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
11199
11200 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
11201
11202         * doc/extend.texi (Declaring Attributes of Functions): Split into
11203         subsections by target.  Alphabetize the table of common attributes.
11204         Rewrite some of the introductory text to reflect the new structure.
11205         Update some cross-references to point to the new subsections.
11206         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
11207         duplicate copies in the discussion of function, label, and type
11208         attributes.
11209
11210 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
11211
11212         PR bootstrap/65910
11213         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
11214
11215 2015-04-28  Jason Merrill  <jason@redhat.com>
11216
11217         PR c++/65734
11218         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
11219         (finalize_type_size): Respect TYPE_USER_ALIGN.
11220         (layout_type) [ARRAY_TYPE]: Likewise.
11221
11222 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
11223
11224         * config/arm/arm.md (*arm_movt): Fix type attribute.
11225         (*cmpsi_shiftsi): Likewise.
11226         (*cmpsi_shiftsi_swp): Likewise.
11227         (*movsicc_insn): Likewise.
11228         (*cond_move): Likewise.
11229         (*if_plus_move): Likewise.
11230         (*if_move_plus): Likewise.
11231         (*if_arith_move): Likewise.
11232         (*if_move_arith): Likewise.
11233         (*if_shift_move): Likewise.
11234         (*if_move_shift): Likewise.
11235         (*arm_movtas_ze): Likewise.
11236         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
11237         redundancy and type attribute.
11238         (*thumb2_movsi_insn): Fix type attribute.
11239         (*thumb2_addsi_short): Likewise.
11240         (thumb2_addsi3_compare0): Likewise.
11241         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
11242         attributes accordingly.
11243
11244 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
11245
11246         PR other/65911
11247         * function.c (pad_to_arg_alignment): Add parentheses.
11248
11249 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
11250
11251         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
11252         libgcc/config/frv/elf-lib.h.
11253
11254 2015-04-28  Tom de Vries  <tom@codesourcery.com>
11255
11256         * tree-call-cdce.c: Fix example in header comment.
11257
11258 2015-04-28  Richard Biener  <rguenther@suse.de>
11259
11260         PR tree-optimization/62283
11261         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
11262         fails fatally and we are vectorizing a basic-block simply
11263         cause the child to be constructed piecewise.
11264         (vect_analyze_slp_cost_1): Adjust.
11265         (vect_detect_hybrid_slp_stmts): Likewise.
11266         (vect_bb_slp_scalar_cost): Likewise.
11267         (vect_get_constant_vectors): For piecewise constructed
11268         constants place them after the last def.
11269         (vect_get_slp_defs): Adjust.
11270         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
11271         externals for basic-block vectorization.
11272
11273 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11274
11275         PR target/63503
11276         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
11277         aarch64-*-*.
11278         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
11279         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
11280         (AARCH64_TUNE_FMA_STEERING): Likewise.
11281         * config/aarch64/aarch64-cores.def: Set
11282         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
11283         FMUL/FMADD instructions.
11284         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
11285         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
11286         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
11287         * config/aarch64/cortex-a57-fma-steering.h: New file.
11288         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
11289
11290 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
11291
11292         * gensupport.c (std_preds): Add missing codes to address_operand entry.
11293
11294 2015-04-28  Richard Biener  <rguenther@suse.de>
11295
11296         PR tree-optimization/65851
11297         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
11298         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
11299         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
11300         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
11301         (ccp_visit_phi_node): Adjust.
11302         (evaluate_stmt): For simplifications to SSA names return its
11303         lattice value if that isn't VARYING.  Return immediately when
11304         simplified to a constant.
11305         (visit_assignment): Adjust.
11306         (ccp_visit_stmt): Likewise.
11307
11308 2015-04-28  Tom de Vries  <tom@codesourcery.com>
11309
11310         PR tree-optimization/65818
11311         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
11312         evaluated.
11313
11314 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11315
11316         * calls.c (save_fixed_argument_area): Don't check
11317         ARGS_GROW_DOWNWARD with the preprocessor.
11318         (restore_fixed_argument_area): Likewise.
11319         (mem_overlaps_already_clobbered_arg_p): Likewise.
11320         (check_sibcall_argument_overlap): Likewise.
11321         (expand_call): Likewise.
11322         (emit_library_call_value_1): Likewise.
11323         (store_one_arg): Likewise.
11324         * function.c (assign_parms): Likewise.
11325         (locate_and_pad_parm): Likewise.
11326         (pad_to_arg_alignment): Likewise.
11327         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
11328
11329 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11330
11331         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
11332         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
11333         * calls.c (save_fixed_argument_area): Don't chekc if
11334         ARGS_GROW_DOWNWARD is defined.
11335         (restore_fixed_argument_area): Likewise.
11336         (mem_overlaps_already_clobbered_arg_p): Likewise.
11337         (check_sibcall_argument_overlap): Likewise.
11338         (expand_call): Likewise.
11339         (emit_library_call_value_1): Likewise.
11340         (store_one_arg): Likewise.
11341         * function.c (assign_parms): Likewise.
11342         (locate_and_pad_parm): Likewise.
11343         (pad_to_arg_alignment): Likewise.
11344         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
11345
11346 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11347
11348         * defaults.h (gen_epilogue): New function.
11349         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
11350         defined.
11351         * cfgrtl.c (cfg_layout_finalize): Likewise.
11352         * df-scan.c: Likewise.
11353         * function.c (thread_prologue_and_epilogue_insns): Likewise.
11354         (reposition_prologue_and_epilogue_notes): Likewise.
11355         * reorg.c (find_end_label): Likewise.
11356         * toplev.c: Likewise.
11357
11358 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11359
11360         * bb-reorder.c (HAVE_return): Don't check if its undefined.
11361         * defaults.h (gen_simple_return): New function.
11362         (gen_simple_return): Likewise.
11363         (HAVE_return): Add default definition to false.
11364         (HAVE_simple_return): Likewise.
11365         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
11366         HAVE_return and HAVE_simple_return are defined.
11367         * function.c (gen_return_pattern): Likewise.
11368         (convert_jumps_to_returns): Likewise.
11369         (thread_prologue_and_epilogue_insns): Likewise.
11370         * reorg.c (find_end_label): Likewise.
11371         (dbr_schedule): Likewise.
11372         * shrink-wrap.c: Likewise.
11373         * shrink-wrap.h: Likewise.
11374
11375 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11376
11377         * defaults.h (EPILOGUE_USES): Add default definition of false.
11378         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
11379         * resource.c (init_resource_info): Likewise.
11380
11381 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11382
11383         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
11384         to false.
11385         * dwarf2out.c (field_byte_offset): REmove check if
11386         PCC_BITFIELD_TYPE_MATTERS is defined.
11387         * stor-layout.c (layout_decl): Likewise.
11388         (update_alignment_for_field): Likewise.
11389         (place_field): Likewise.
11390
11391 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11392
11393         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
11394         true.
11395         * regrename.c (check_new_reg_p): Remove check if
11396         HARD_REGNO_RENAME_OK is defined.
11397         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
11398
11399 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11400
11401         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
11402         * cse.c (fold_rtx): Likewise.
11403         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
11404         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
11405         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
11406         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
11407         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
11408         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
11409         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
11410         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
11411         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
11412         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
11413         * Likewise.
11414         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
11415         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
11416         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
11417         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
11418         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
11419         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
11420         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
11421         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
11422         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
11423         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
11424         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
11425         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
11426         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
11427         * doc/tm.texi: Regenerate.
11428         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
11429         either true or false.
11430
11431 2015-04-27  Jeff Law  <law@redhat.com>
11432
11433         PR tree-optimization/65217
11434         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
11435         of them has a single use, make sure it is the LHS of the implied
11436         copy.
11437
11438 2015-04-28  Alan Modra  <amodra@gmail.com>
11439
11440         PR target/65810
11441         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
11442         (offsettable_ok_by_alignment): Use minimum of decl and toc
11443         pointer alignment.  Replace dead code with assertion.
11444         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
11445         case if size exceeds toc pointer alignment.
11446         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
11447         (rs6000_emit_move): Likewise.
11448         * configure.ac: Add linker toc pointer alignment check.
11449         * configure: Regenerate.
11450         * config.in: Regenerate.
11451
11452 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
11453
11454         * config.gcc: Add h8300-*-linux.
11455         * config/h8300/linux.h: New.
11456         * config/h8300/t-linux: New.
11457         * config/h8300/h8300.c (h8300_option_override): Normal mode
11458         is not supported for h8300-*-linux.
11459         (h8300_file_start): Target priority change.
11460         (get_shift_alg): Likewise.
11461         (h8300_shift_need_scratch_p): Likewise.
11462         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
11463         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
11464
11465 2015-04-27  Caroline Tice  <cmtice@google.com>
11466
11467         * final.c (final_scan_insn):  Output cold_function_name as function
11468         type.
11469         * varasm.c (cold_function_name):  Make global.
11470         (assemble_start_function):  Re-set cold_function_name.
11471         (assemble_end_function): Output cold partition size.
11472         * varasm.h (cold_function_name):  Declare global.
11473
11474 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
11475
11476         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
11477         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
11478         constraint.
11479         (*movxi_internal_avx512f): Ditto.
11480         (define_split): Check for xmm16+, when splitting scalar float_extend.
11481         (*extendsfdf2_mixed): Use "v" constraint.
11482         (define_split): Check for xmm16+, when splitting scalar float_truncate.
11483         (*truncdfsf_fast_sse): Use "v" constraint.
11484         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
11485         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
11486         (define_peephole2): Check for xmm16+, when converting scalar
11487         float_truncate.
11488         (define_peephole2): Check for xmm16+, when converting scalar
11489         float_extend.
11490         (*fop_<mode>_comm_mixed): Use "v" constraint.
11491         (*fop_<mode>_comm_sse): Ditto.
11492         (*fop_<mode>_1_mixed): Ditto.
11493         (*sqrt<mode>2_sse): Ditto.
11494         (*ieee_s<ieee_maxmin><mode>3): Ditto.
11495
11496 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11497
11498         * combine.c (simplify_if_then_else): Use std::swap instead
11499         of manually swapping.
11500         (known_cond): Likewise.
11501         (simplify_comparison): Likewise.
11502
11503 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
11504
11505         PR target/64579
11506         * config/rs6000/htm.md: Remove all define_expands.
11507         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
11508         UNSPECV_HTM_TABORTWCI): Remove.
11509         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
11510         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
11511         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
11512         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
11513         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
11514         tabortwci_internal): Remove define_insns.
11515         (tabort<wd>c, tabort<wd>ci): New define_insns.
11516         (tabort): Use gpc_reg_operand.
11517         (tcheck): Remove operand.
11518         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
11519         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
11520         expected value.
11521         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
11522         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
11523         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
11524         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
11525         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
11526         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
11527         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
11528         (tcheck): Remove builtin argument.
11529         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
11530         not TARGET_64BIT.
11531         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
11532         tabortdc and tabortdci builtins when not in 64-bit mode.
11533         Modify code to handle the loss of the HTM define_expands.
11534         Emit code to copy the CR register to TARGET.
11535         (htm_init_builtins): Modify code to handle the loss of the HTM
11536         define_expands.
11537         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
11538         (RS6000_BTC_64BIT): Likewise.
11539         (RS6000_BTC_CR): New macro.
11540         * doc/extend.texi: Update documentation for htm builtins.
11541
11542 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11543
11544         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
11545         of manually swapping.
11546         (simplify_associative_operation): Likewise.
11547         (simplify_binary_operation): Likewise.
11548         (simplify_plus_minus): Likewise.
11549         (simplify_relational_operation): Likewise.
11550         (simplify_ternary_operation): Likewise.
11551
11552 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
11553
11554         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
11555         (xs_hi_nonmemory_operand): Remove error.
11556         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
11557         general_operand rather than xs_hi_general_operand.
11558
11559 2015-04-27  Richard Biener  <rguenther@suse.de>
11560
11561         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
11562         (record_equivalences_from_stmt): Valueize rhs.
11563         (record_equality): Canonicalize x and y order via
11564         tree_swap_operands_p.  Do not swap operands for same loop depth.
11565
11566 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
11567
11568         PR target/65296
11569         PR target/65895
11570         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
11571         Add hint how to use own spec file.
11572
11573 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
11574
11575         PR tree-optimization/65875
11576         * tree-vrp.c (update_value_range): If in is_new case setting
11577         old_vr to VR_VARYING, also set new_vr to it.  Remove
11578         old_vr->type == VR_VARYING test.
11579         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
11580         SSA_PROP_INTERESTING if update_value_range returned true,
11581         but new range is VR_VARYING.
11582
11583 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11584
11585         * combine.c (sign_extend_short_imm): New.
11586         (set_nonzero_bits_and_sign_copies): Use above new function for sign
11587         extension of src short immediate.
11588         (reg_nonzero_bits_for_combine): Likewise for tem.
11589
11590 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
11591
11592         * stor-layout.c (self_referential_component_ref_p): New predicate.
11593         (copy_self_referential_tree_r): Use it.
11594         (self_referential_size): Punt for simple operations directly involving
11595         self-referential component references.
11596         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
11597
11598 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
11599
11600         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
11601
11602 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
11603
11604         * vec.h (vec): Make splice arguments const.  Update definitions
11605         accordingly.
11606
11607 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
11608
11609         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
11610         alternatives.
11611
11612 2015-04-26  Tom de Vries  <tom@codesourcery.com>
11613
11614         PR tree-optimization/65826
11615         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
11616
11617 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
11618
11619         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
11620         (*madd3<mode>): Ditto.
11621         (*msub4<mode>): Ditto.
11622         (*msub3<mode>): Ditto.
11623         (*nmadd4<mode>): Ditto.
11624         (*nmadd3<mode>): Ditto.
11625         (*nmadd4<mode>_fastmath): Ditto.
11626         (*nmadd3<mode>_fastmath): Ditto.
11627         (*nmsub4<mode>): Ditto.
11628         (*nmsub3<mode>): Ditto.
11629         (*nmsub4<mode>_fastmath): Ditto.
11630         (*nmsub3<mode>_fastmath): Ditto.
11631
11632 2015-04-24  Jason Merrill  <jason@redhat.com>
11633
11634         PR c++/50800
11635         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
11636         down when building TYPE_CANONICAL.
11637         (build_pointer_type_for_mode): Likewise.
11638
11639 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
11640
11641         * genrecog.c (validate_pattern): Check matching constraint refers
11642         to a lower numbered operand.
11643
11644 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
11645
11646         PR target/65849
11647         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
11648         save to independent variables use the Save attribute.  This will
11649         allow these options to be modified with the #pragma/attribute
11650         target support.
11651         (-mallow-movmisalign): Likewise.
11652         (-mallow-df-permute): Likewise.
11653         (-msched-groups): Likewise.
11654         (-malways-hint): Likewise.
11655         (-malign-branch-targets): Likewise.
11656         (-mvectorize-builtins): Likewise.
11657         (-msave-toc-indirect): Likewise.
11658
11659         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
11660         can be set via the #pragma/attribute target support.
11661         (rs6000_opt_vars): Likewise.
11662         (rs6000_inner_target_options): If VSX was set, also set
11663         -mno-avoid-indexed-addresses.
11664
11665 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11666
11667         * config/arm/iterators.md (shiftable_ops): Rename to...
11668         (SHIFTABLE_OPS): ... This.  Update use in comments.
11669         (ior_xor): Rename to...
11670         (IOR_XOR): ... This.
11671         (vqh_ops): Rename to...
11672         (VQH_OPS): ... This.
11673         (vqhs_ops): Rename to...
11674         (VQHS_OPS): ... This.
11675         (rshifts): Rename to...
11676         (RSHIFTS): ... This.
11677         (returns): Rename to...
11678         (RETURNS): ... This.
11679         * config/arm/arm.md: Update uses of the above.
11680         * config/arm/neon.md: Likewise.
11681
11682 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11683
11684         * config.host (case ${host}): Add aarch64*-*-linux case.
11685         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
11686         fields to all the cores.
11687         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
11688         Add MCPU_MTUNE_NATIVE_SPECS.
11689         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
11690         field to all extensions.
11691         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
11692         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
11693         Adjust definition of AARCH64_OPT_EXTENSION.
11694         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
11695         (MCPU_MTUNE_NATIVE_SPECS): Define.
11696         * config/aarch64/driver-aarch64.c: New file.
11697         * config/aarch64/x-arch64: New file.
11698         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
11699         -mtune and -march.
11700
11701 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
11702             Wei Mi  <wmi@google.com>
11703
11704         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
11705         * config/i386/i386.c (extract_base_offset_in_addr): New function.
11706         (ix86_operands_ok_for_move_multiple): Ditto.
11707         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
11708         (movlpd/movhpd to movupd peephole2): Ditto.
11709
11710 2015-04-24  Marek Polacek  <polacek@redhat.com>
11711
11712         PR c/61534
11713         * input.h (from_macro_expansion_at): Define.
11714
11715         PR c/63357
11716         * doc/invoke.texi: Update description of -Wlogical-op.
11717
11718 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11719
11720         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
11721         ternary operator in fprintf and harmonize spacing.
11722
11723 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
11724
11725         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
11726         Mark operand1 commutative.
11727
11728 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
11729
11730         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
11731         input operands in memory.
11732         (*vec_concatv2si_sse4_1): Ditto.
11733         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
11734         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
11735         register_operand.
11736         (vec_extract_hi_v32hi): Ditto.
11737         (vec_extract_hi_v64hi): Ditto.
11738         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
11739
11740 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11741             Steven Bosscher <steven@gcc.gnu.org>
11742
11743         PR rtl-optimization/34503
11744         * cprop.c (cprop_reg_p): New.
11745         (hash_scan_set): Use above function to check if register can be
11746         propagated.
11747         (find_avail_set): Return up to two sets, one whose source is a
11748         register and one whose source is a constant.  Sets are returned in an
11749         array passed as parameter rather than as a return value.
11750         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
11751         sets returned by find_avail_set, starting with the one whose source is
11752         a constant. Use cprop_reg_p to check if register can be propagated.
11753         (do_local_cprop): Use cprop_reg_p to check if register can be
11754         propagated.
11755         (implicit_set_cond_p): Likewise.
11756
11757 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
11758
11759         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
11760         (sem_function::equals): IGNORED_NODES parameter is now unused;
11761         update call of equals_private.
11762         (sem_function::equals_private): Do not call equals_wpa; skip
11763         gimple body matching if there is no body.
11764         (sem_function::init): Add logic to hash tthunk info.
11765         (sem_function::parse): Also parse thunks.
11766         * ipa-icf.h (equals_private): Update declaration.
11767
11768 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11769
11770         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
11771         asterisk from name so this can be generated directly.
11772         (*altivec_stvx_<mode>_internal): Likewise.
11773         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
11774         that this is never called during or after reload/lra.
11775         (rs6000_frame_related): Remove split_reg
11776         argument and logic that references it.
11777         (emit_frame_save): Remove last parameter from call to
11778         rs6000_frame_related.
11779         (rs6000_emit_prologue): Remove last parameter from eight calls to
11780         rs6000_frame_related.  Force generation of stvx instruction for
11781         Altivec register saves.  Remove split_reg handling, which is no
11782         longer needed.
11783         (rs6000_emit_epilogue):  Force generation of lvx instruction for
11784         Altivec register restores.
11785
11786 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11787
11788         * config/rs6000/rs6000.opt (mcrypto): Change option description to
11789         match category changes in ISA 2.07B.
11790
11791 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11792
11793         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
11794         iterators.
11795         (cmp_op, cmp_type): New code attributes.
11796         (NEON_VCMP, NEON_VACMP): New int iterators.
11797         (cmp_op_unsp): New int attribute.
11798         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
11799         (neon_vceq<mode>): Delete.
11800         (neon_vc<cmp_op><mode>_insn): New pattern.
11801         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
11802         (neon_vcgeu<mode>): Delete.
11803         (neon_vcle<mode>): Likewise.
11804         (neon_vclt<mode>: Likewise.
11805         (neon_vcage<mode>): Likewise.
11806         (neon_vcagt<mode>): Likewise.
11807         (neon_vca<cmp_op><mode>): New define_expand.
11808         (neon_vca<cmp_op><mode>_insn): New pattern.
11809         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
11810
11811 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
11812
11813         * tree.h (attribute_value_equal): Declare.
11814         * tree.c (attribute_value_equal): Export.
11815
11816 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
11817
11818         * ipa-icf.c (sem_item::compare_attributes): New function.
11819         (sem_item::compare_referenced_symbol_properties): Compare variable
11820         attributes.
11821         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
11822         (sem_function::param_used_p): New function.
11823         (sem_function::equals_wpa): Fix attribute comparsion; match
11824         parameter type codes; do not compare paremter flags when
11825         they are not used; compare edge flags; compare indirect calls.
11826         (sem_item::update_hash_by_addr_refs): Hash reference type.
11827         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
11828         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
11829         reference use type.
11830         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
11831         * ipa-icf.h (compare_attributes, param_used_p): Declare.
11832
11833 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
11834
11835         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
11836         cleanup.
11837         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
11838         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
11839         (sem_item::compare_referenced_symbol_properties): New.
11840         (sem_item::hash_referenced_symbol_properties): New.
11841         (sem_item::compare_cgraph_references): Rename to ...
11842         (sem_item::compare_symbol_references): ... this one; use
11843         compare_referenced_symbol_properties.
11844         (sem_function::equals_wpa): Do not compare
11845         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
11846         DECL_IS_OPERATOR_NEW; compare pointer sizes.
11847         (sem_item::update_hash_by_addr_refs): Call
11848         hash_referenced_symbol_properties.
11849         (sem_item::update_hash_by_local_refs): Cleanup.
11850         (sem_function::merge): Do not mix up symbol properties.
11851         (sem_variable::equals_wpa): Use compare_symbol_references.
11852         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
11853         (sem_item::hash_referenced_symbol_properties): New.
11854         (sem_item::compare_symbol_references): New.
11855         (sem_item::compare_cgraph_references): Remove.
11856
11857 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
11858
11859         PR target/26702
11860         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
11861         Emit size of local.
11862
11863 2015-04-23  Nick Clifton  <nickc@redhat.com>
11864
11865         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
11866         ATTRIBUTE_UNUSED to x parameter.
11867         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
11868
11869 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11870
11871         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
11872         TARGET_CRYPTO to TARGET_P8_VECTOR>
11873         (crypto_vpermxor_<mode>): Likewise.
11874         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
11875         (BU_CRYPTO_3A): Likewise.
11876         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
11877         (BU_CRYPTO_OVERLOAD_3A): New #define.
11878         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
11879         (VPMSUMH): Likewise.
11880         (VPMSUMW): Likewise.
11881         (VPMSUMD): Likewise.
11882         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
11883         (VPERMXOR_V4SI): Likewise.
11884         (VPERMXOR_V8HI): Likewise.
11885         (VPERMXOR_V16QI): Likewise.
11886         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
11887         BU_CRYPTO_OVERLOAD_2A.
11888         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
11889         BU_CRYPTO_OVERLOAD_3A.
11890         * config/rs6000/rs6000.opt (mcrypto): Change description of
11891         option.
11892
11893 2015-04-23  Richard Biener  <rguenther@suse.de>
11894
11895         * passes.def: Remove copy propagation passes run directly after CCP.
11896         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
11897         SSA names.
11898         (ccp_visit_phi_node): Rework to handle first executable edge
11899         specially.
11900
11901 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
11902
11903         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
11904         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
11905         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
11906         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
11907         (thumb_legimitimize_reload_address): Remove.
11908         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
11909         Remove.
11910         (thumb_legimitimize_reload_address): Remove.
11911
11912 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11913
11914         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
11915
11916 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11917
11918         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
11919         MAX_LDM_STM_OPS.
11920         (store_multiple): Likewise.
11921
11922 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11923
11924         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
11925         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
11926         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
11927         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
11928         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
11929         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
11930         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
11931         Specify issue_rate value.
11932         (arm_issue_rate): Look up issue rate from tuning structs. Remove
11933         large switch statement.
11934         (arm_marvell_pj4_tune): New struct.
11935         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
11936         struct.
11937
11938 2015-04-23  Richard Biener  <rguenther@suse.de>
11939
11940         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
11941         (vect_find_last_store_in_slp_instance): Rename to ...
11942         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
11943         (vect_analyze_slp_cost_1): Use vector_load for constant defs
11944         and vec_construct for external defs when estimating prologue cost.
11945         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
11946         Compute costs here only when vectorizing loops.
11947         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
11948         have been determined.
11949         (vect_schedule_slp_instance): Simplify vectorized code placement
11950         and prepare for in-BB external defs.
11951         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
11952         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
11953         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
11954         guard.
11955         (vect_model_load_cost): Likewise.
11956         (vectorizable_store): Instead add it here.
11957         (vectorizable_load): Likewise.
11958         (vect_is_simple_use): Dump def type textually.
11959
11960 2015-04-23  Richard Biener  <rguenther@suse.de>
11961
11962         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
11963         * cfgloop.c (verify_loop_structure): Verify the root loop node.
11964         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
11965         instead of get_eh_region_from_lp_number.
11966         * loop-init.c (fix_loop_structure): If we removed a loop, reset
11967         the SCEV cache.
11968
11969 2015-04-23  Anton Blanchard  <anton@samba.org>
11970
11971         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
11972         need for -mprofile-kernel to save LR to stack.
11973
11974 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11975
11976         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
11977         adjustments.
11978         (insn_is_swappable_p): Return 1 for a convert from double to
11979         single precision when all of its uses are splats of BE element
11980         zero.
11981
11982 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
11983
11984         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
11985
11986 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11987
11988         PR target/65456
11989         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
11990         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
11991         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
11992         option.
11993         (rs6000_builtin_mask_for_load): Return 0 for targets with
11994         efficient unaligned VSX accesses so that the vectorizer will use
11995         direct unaligned loads.
11996         (rs6000_builtin_support_vector_misalignment): Always return true
11997         for targets with efficient unaligned VSX accesses.
11998         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
11999         stores on targets with efficient unaligned VSX accesses is almost
12000         always the same as the cost of an aligned load or store, so model
12001         it that way.
12002         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
12003         unaligned vectors if we have efficient unaligned VSX accesses.
12004         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
12005         undocumented option.
12006
12007 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12008
12009         Revert:
12010         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
12011
12012         * config.gcc (LIBC_MUSL): New tm_defines macro.
12013         * config/linux.h (OPTION_MUSL): Define.
12014         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
12015         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
12016         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
12017
12018         * config/linux.opt (mmusl): New option.
12019         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
12020         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
12021
12022         * configure: Regenerate.
12023
12024 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
12025
12026         * config.gcc (LIBC_MUSL): New tm_defines macro.
12027         * config/linux.h (OPTION_MUSL): Define.
12028         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
12029         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
12030         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
12031
12032         * config/linux.opt (mmusl): New option.
12033         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
12034         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
12035
12036         * configure: Regenerate.
12037
12038 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
12039
12040         * doc/invoke.texi (-fsanitize-sections): Update description.
12041         * asan.c (set_sanitized_sections): Parse incoming arg.
12042         (section_sanitized_p): Support wildcards.
12043
12044 2015-04-22  Tom de Vries  <tom@codesourcery.com>
12045
12046         PR tree-optimization/65823
12047         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
12048         equality between ap_copy and ap.
12049
12050 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
12051
12052         PR target/47098
12053         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
12054
12055 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
12056
12057         PR target/47122
12058         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
12059
12060 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
12061
12062         PR target/55144
12063         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
12064         remove already contained t-files.
12065
12066 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
12067
12068         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
12069         Remove unneeded forward declarations.
12070         (suitable_for_tail_call_opt_p): Commentary typo fix.
12071
12072 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
12073
12074         * varasm.c (emit_bss): Remove redundant guard.
12075
12076 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
12077
12078         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
12079
12080 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
12081
12082         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
12083
12084 2015-04-22  Hale Wang  <hale.wang@arm.com>
12085             Terry Guo  <terry.guo@arm.com>
12086
12087         PR rtl-optimization/64818
12088         * combine.c (can_combine_p): Don't combine user-specified
12089         register if it is in an asm input.
12090
12091 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
12092
12093         PR ipa/65076
12094         * passes.def (early_optimizations): Add pass_dse.
12095
12096 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12097
12098         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
12099         * reorg.c (redundant_insn): Remove ifdef
12100         INSN_REFERENCES_ARE_DELAYED.
12101         * resource.c (mark_referenced_resources): Likewise.
12102
12103 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12104
12105         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
12106         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
12107         * resource.c (mark_set_resources): Likewise.
12108
12109 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12110
12111         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
12112         * cfgcleanup.c (flow_find_cross_jump): Likewise.
12113         (flow_find_head_matching_sequence): Likewise.
12114         (try_head_merge_bb): Likewise.
12115         * combine.c (can_combine_p): Likewise.
12116         (try_combine): Likewise.
12117         (distribute_notes): Likewise.
12118         * df-problems.c (can_move_insns_across): Likewise.
12119         * final.c (final): Likewise.
12120         * gcse.c (insert_insn_end_basic_block): Likewise.
12121         * ira.c (find_moveable_pseudos): Likewise.
12122         * reorg.c (try_merge_delay_insns): Likewise.
12123         (fill_simple_delay_slots): Likewise.
12124         (fill_slots_from_thread): Likewise.
12125         * sched-deps.c (sched_analyze_2): Likewise.
12126
12127 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12128
12129         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
12130         PIC_OFFSET_TABLE_REGNUM.
12131
12132 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12133
12134         * alias.c (init_alias_target): Remove ifdef
12135         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
12136         * df-scan.c (df_insn_refs_collect): Likewise.
12137         (df_get_regular_block_artificial_uses): Likewise.
12138         (df_get_eh_block_artificial_uses): Likewise.
12139         (df_get_entry_block_def_set): Likewise.
12140         (df_get_exit_block_use_set): Likewise.
12141         * emit-rtl.c (gen_rtx_REG): Likewise.
12142         * ira.c (ira_setup_eliminable_regset): Likewise.
12143         * reginfo.c (init_reg_sets_1): Likewise.
12144         * regrename.c (rename_chains): Likewise.
12145         * reload1.c (reload): Likewise.
12146         (eliminate_regs_in_insn): Likewise.
12147         * resource.c (mark_referenced_resources): Likewise.
12148         (init_resource_info): Likewise.
12149
12150 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12151
12152         * defaults.h (MASK_RETURN_ADDR): New definition.
12153         * except.c (expand_builtin_extract_return_addr): Remove ifdef
12154         MASK_RETURN_ADDR.
12155
12156 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12157
12158         * defaults.h (RETURN_ADDR_OFFSET): New definition.
12159         * except.c (expand_builtin_extract_return_addr): Remove ifdef
12160         RETURN_ADDR_OFFSET.
12161         (expand_builtin_frob_return_addr): Likewise.
12162
12163 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12164
12165         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
12166         (try_redirect_by_replacing_jump): Likewise.
12167         (rtl_tidy_fallthru_edge): Likewise.
12168         * combine.c (insn_a_feeds_b): Likewise.
12169         (find_split_point): Likewise.
12170         (simplify_set): Likewise.
12171         * cprop.c (cprop_jump): Likewise.
12172         * cse.c (cse_extended_basic_block): Likewise.
12173         * df-problems.c (can_move_insns_across): Likewise.
12174         * function.c (emit_use_return_register_into_block): Likewise.
12175         * haifa-sched.c (sched_init): Likewise.
12176         * ira.c (find_moveable_pseudos): Likewise.
12177         * loop-invariant.c (find_invariant_insn): Likewise.
12178         * lra-constraints.c (curr_insn_transform): Likewise.
12179         * postreload.c (reload_combine_recognize_const_pattern):
12180         * Likewise.
12181         * reload.c (find_reloads): Likewise.
12182         * reorg.c (delete_scheduled_jump): Likewise.
12183         (steal_delay_list_from_target): Likewise.
12184         (steal_delay_list_from_fallthrough): Likewise.
12185         (redundant_insn): Likewise.
12186         (fill_simple_delay_slots): Likewise.
12187         (fill_slots_from_thread): Likewise.
12188         (delete_computation): Likewise.
12189         * sched-rgn.c (add_branch_dependences): Likewise.
12190
12191 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12192
12193         * genconfig.c (main): Always define HAVE_cc0.
12194         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
12195         HAVE_cc0.
12196         * cfgcleanup.c (flow_find_cross_jump): Likewise.
12197         (flow_find_head_matching_sequence): Likewise.
12198         (try_head_merge_bb): Likewise.
12199         * cfgrtl.c (rtl_merge_blocks): Likewise.
12200         (try_redirect_by_replacing_jump): Likewise.
12201         (rtl_tidy_fallthru_edge): Likewise.
12202         * combine.c (do_SUBST_MODE): Likewise.
12203         (insn_a_feeds_b): Likewise.
12204         (combine_instructions): Likewise.
12205         (can_combine_p): Likewise.
12206         (try_combine): Likewise.
12207         (find_split_point): Likewise.
12208         (subst): Likewise.
12209         (simplify_set): Likewise.
12210         (distribute_notes): Likewise.
12211         * cprop.c (cprop_jump): Likewise.
12212         * cse.c (cse_extended_basic_block): Likewise.
12213         * df-problems.c (can_move_insns_across): Likewise.
12214         * final.c (final): Likewise.
12215         (final_scan_insn): Likewise.
12216         * function.c (emit_use_return_register_into_block): Likewise.
12217         * gcse.c (insert_insn_end_basic_block): Likewise.
12218         * haifa-sched.c (sched_init): Likewise.
12219         * ira.c (find_moveable_pseudos): Likewise.
12220         * loop-invariant.c (find_invariant_insn): Likewise.
12221         * lra-constraints.c (curr_insn_transform): Likewise.
12222         * optabs.c (prepare_cmp_insn): Likewise.
12223         * postreload.c (reload_combine_recognize_const_pattern):
12224         * Likewise.
12225         * reload.c (find_reloads): Likewise.
12226         (find_reloads_address_1): Likewise.
12227         * reorg.c (delete_scheduled_jump): Likewise.
12228         (steal_delay_list_from_target): Likewise.
12229         (steal_delay_list_from_fallthrough): Likewise.
12230         (try_merge_delay_insns): Likewise.
12231         (redundant_insn): Likewise.
12232         (fill_simple_delay_slots): Likewise.
12233         (fill_slots_from_thread): Likewise.
12234         (delete_computation): Likewise.
12235         (relax_delay_slots): Likewise.
12236         * sched-deps.c (sched_analyze_2): Likewise.
12237         * sched-rgn.c (add_branch_dependences): Likewise.
12238
12239 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12240
12241         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
12242         that is trivially ded on non cc0 targets.
12243         (simplify_set): Likewise.
12244         (mark_used_regs_combine): Likewise.
12245         * cse.c (new_basic_block): Likewise.
12246         (fold_rtx): Likewise.
12247         (cse_insn): Likewise.
12248         (cse_extended_basic_block): Likewise.
12249         (set_live_p): Likewise.
12250         * rtlanal.c (canonicalize_condition): Likewise.
12251         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
12252
12253 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12254
12255         * conditions.h: Define macros even if HAVE_cc0 is undefined.
12256         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
12257         * final.c: Likewise.
12258         * jump.c: Likewise.
12259         * recog.c: Likewise.
12260         * recog.h: Declare functions even when HAVE_cc0 is undefined.
12261         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
12262
12263 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12264
12265         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
12266         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
12267         * builtins.c (expand_builtin): Remove check if
12268         EH_RETURN_DATA_REGNO is defined.
12269         * df-scan.c (df_bb_refs_collect): Likewise.
12270         (df_get_exit_block_use_set): Likewise.
12271         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
12272         * ira-lives.c (process_bb_node_lives): Likewise.
12273         * lra-lives.c (process_bb_lives): Likewise.
12274
12275 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
12276
12277         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
12278         FIRST_PSEUDO_REG): New.
12279         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
12280         (ARG_POINTER_REGNUM): Define to ARGP_REG.
12281         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
12282         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
12283         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
12284         (FIRST_INT_REG): New.
12285         (LAST_INT_REG): New.
12286         (FIRST_*_REG): Define using *_REG.
12287         (LAST_*_REG): Ditto.
12288         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
12289         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
12290         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
12291
12292 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12293
12294         * expmed.c: (synth_mult): Only assume overlapping
12295         shift with previous steps in alg_sub_t_m2 case.
12296
12297 2015-04-21  Richard Biener  <rguenther@suse.de>
12298
12299         PR tree-optimization/65650
12300         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
12301         transitions involving copies.
12302         (set_lattice_value): Adjust for copy lattice state.
12303         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
12304         if that doesn't dominate the merge point.
12305         (bit_value_unop): Adjust what we treat as varying mask.
12306         (bit_value_binop): Likewise.
12307         (bit_value_assume_aligned): Likewise.
12308         (evaluate_stmt): When we simplified to a SSA name record a copy
12309         instead of dropping to varying.
12310         (visit_assignment): Simplify.
12311
12312         * gimple-match.h (gimple_simplify): Add another callback.
12313         * gimple-fold.c (fold_stmt_1): Adjust caller.
12314         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
12315         for the 2nd callback.
12316         * gimple-match-head.c (gimple_simplify): Add a callback that is
12317         used to valueize the stmt operands and use it that way.
12318
12319 2015-04-21  Richard Biener  <rguenther@suse.de>
12320
12321         PR tree-optimization/65788
12322         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
12323
12324 2015-04-21  Richard Biener  <rguenther@suse.de>
12325
12326         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
12327         vec_construct cost by vec_stmt_cost.
12328
12329 2015-04-21  Richard Biener  <rguenther@suse.de>
12330
12331         * cfghooks.h (create_basic_block): Replace with two overloads
12332         for RTL and GIMPLE.
12333         (split_block): Likewise.
12334         * cfghooks.c (split_block): Rename to ...
12335         (split_block_1): ... this.
12336         (split_block): Add two type-safe overloads for RTL and GIMPLE.
12337         (split_block_after_labels): Call split_block_1.
12338         (create_basic_block): Rename to ...
12339         (create_basic_block_1): ... this.
12340         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
12341         (create_empty_bb): Call create_basic_block_1.
12342         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
12343         split_block_after_labels.
12344         * omp-low.c (expand_parallel_call): Likewise.
12345         (expand_omp_target): Likewise.
12346         (simd_clone_adjust): Likewise.
12347         * tree-chkp.c (chkp_get_entry_block): Likewise.
12348         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
12349         create_basic_block overload.
12350         (cgraph_node::expand_thunk): Likewise.
12351         * tree-cfg.c (make_blocks): Likewise.
12352         (handle_abnormal_edges): Likewise.
12353         * tree-inline.c (copy_bb): Likewise.
12354
12355 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12356
12357         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
12358         New pattern.
12359         (*xor_one_cmplsidi3_ze): Likewise.
12360
12361 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12362
12363         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
12364         use df_remove_problem rather than manually removing problems, leaving
12365         holes in df->problems_in_order[].
12366
12367 2015-04-21  Tom de Vries  <tom@codesourcery.com>
12368
12369         PR tree-optimization/65802
12370         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
12371
12372 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12373
12374         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
12375         Increase to 128.
12376         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
12377         at '.'.  Assert that there's enough space for everything.
12378
12379 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
12380
12381         PR tree-optimization/64950
12382         Revert:
12383         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
12384
12385         PR target/41089
12386         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
12387         as volatile.
12388
12389 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
12390
12391         PR rtl-optimization/64916
12392         * cfgcleanup.c (values_equal_p): New function.
12393         (can_replace_by): Use it.
12394
12395 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
12396
12397         PR c++/65801
12398         * doc/invoke.texi ([-Wnarrowing]): Update.
12399
12400 2015-04-20  Jeff Law  <law@redhat.com>
12401
12402         PR tree-optimization/65658
12403         * tree-ssa-threadupdate.c (redirection_block_p): Remove
12404         redundant test for GIMPLE_ASSIGN in last change.
12405
12406 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
12407
12408         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
12409         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
12410         (legitimize_tls_address): Ditto.
12411         (ix86_expand_move): Ditto.
12412         (ix86_expand_binary_operator): Remove reload_in_progress checks.
12413         (ix86_expand_unary_operator): Ditto.
12414         * config/i386/predicates.md (index_register_operand): Ditto.
12415
12416 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
12417
12418         * reorg.c (try_merge_delay_insns): Improve correctness checking
12419         for targets with multiple delay slots.
12420
12421 2015-04-20  Jeff Law  <law@redhat.com>
12422
12423         PR tree-optimization/65658
12424         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
12425         statements too.
12426
12427 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
12428
12429         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
12430         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
12431         Delete.
12432
12433 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
12434
12435         PR debug/65807
12436         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
12437
12438 2015-04-20  Richard Biener  <rguenther@suse.de>
12439
12440         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
12441         * gimple-fold.c (gimple_build_valueize): New function.
12442         (gimple_build): Always use gimple_build_valueize as valueize hook.
12443
12444 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
12445
12446         PR target/64134
12447         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
12448         and overwrite variable parts if <= 1/2 the elements are variable.
12449
12450 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
12451
12452         PR rtl-optimization/65805
12453         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
12454         Don't use difference of offset and previous offset if
12455         update_sp_offset is non-zero.
12456         (eliminate_regs_in_insn): Ditto.
12457         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
12458         lra_eliminate_regs_1 call.
12459         * lra-constraints.c (get_equiv_with_elimination): Ditto.
12460
12461 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
12462
12463         * hash-table.h: Remove version of hash_table that stored value_type *.
12464         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
12465         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
12466         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
12467         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
12468         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
12469         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
12470         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
12471         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
12472         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
12473         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
12474         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
12475         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
12476         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
12477         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
12478         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
12479         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
12480
12481 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12482             Jakub Jelinek  <jakub@redhat.com>
12483
12484         PR target/65787
12485         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
12486         subsequent SH_NONE operand does not overwrite an existing *special
12487         value.
12488         (adjust_extract): Handle case where a vec_extract operation is
12489         wrapped in a PARALLEL.
12490
12491 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
12492
12493         PR target/65780
12494         * config/i386/i386.c (ix86_binds_local_p): Define only if
12495         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
12496
12497 2015-04-17  Jeff Law  <law@redhat.com>
12498
12499         PR tree-optimization/47679
12500         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
12501         * tree-ssa-scopedtables.c: New file.
12502         * tree-ssa-scopedtables.h: New file.
12503         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
12504         (const_and_copies): Change name/type.
12505         (record_const_or_copy): Move into tree-ssa-scopedtables.c
12506         (record_const_or_copy_1): Similarly.
12507         (restore_vars_to_original_value): Similarly.
12508         (pass_dominator::execute): Create and destroy const_and_copies table.
12509         (thread_across_edge): Update passing of const_and_copies.
12510         (record_temporary_equivalence): Use method calls rather than
12511         manipulating const_and_copies directly.
12512         (record_equality, cprop_into_successor_phis): Similarly.
12513         (dom_opt_dom_walker::before_dom_children): Similarly.
12514         (dom_opt_dom_walker::after_dom_children): Similarly.
12515         (eliminate_redundant_computations): Similarly.
12516         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
12517         (record_temporary_equivalence): Likewise.
12518         (invalidate_equivalences): Likewise.
12519         (record_temporary_equivalences_from_phis): Update due to type
12520         change of const_and_copies.  Use method calls rather than
12521         manipulating the stack directly.
12522         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
12523         (thread_through_normal_block, thread_across_edge): Likewise.
12524         (thread_across_edge): Likewise.
12525         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
12526         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
12527         of equiv_stack.
12528         (identify_jump_threads): Update due to type change of equiv_stack.
12529         (finalize_jump_threads): Delete the equiv_stack when complete.
12530
12531 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
12532
12533         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
12534         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
12535         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
12536
12537 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
12538
12539         PR target/65535
12540         * config.gcc: Exit with a comment when we do not have a major version
12541         number for the FreeBSD target.
12542
12543 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
12544
12545         PR target/65689
12546         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
12547         maybe_allows_mem bitfields.
12548         (maybe_allows_none_start, maybe_allows_none_end,
12549         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
12550         maybe_allows_mem_end): New variables.
12551         (compute_maybe_allows): New function.
12552         (add_constraint): Use it to initialize maybe_allows_reg and
12553         maybe_allows_mem fields.
12554         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
12555         is_address constraints such that those that allow neither mem nor
12556         reg come first, then those that only allow reg but not mem, then
12557         those that only allow mem but not reg, then the rest.
12558         (write_allows_reg_mem_function): New function.
12559         (write_tm_preds_h): Call it.
12560         * stmt.c (parse_output_constraint, parse_input_constraint): Use
12561         the generated insn_extra_constraint_allows_reg_mem function
12562         instead of always setting *allows_reg = true; *allows_mem = true;
12563         for unknown extra constraints.
12564
12565 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
12566
12567         PR target/65780
12568         * output.h (default_binds_local_p_3): New.
12569         * varasm.c (default_binds_local_p_3): Make it public.  Take an
12570         argument to indicate if common symbol may be local.  If common
12571         symbol may be local, treat non-external variable as defined
12572         locally.
12573         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
12574         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
12575         * config/i386/i386.c (ix86_binds_local_p): New.
12576         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
12577         ix86_binds_local_p.
12578
12579 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
12580
12581         PR debug/65771
12582         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
12583         trying mem_loc_descriptor on XEXP (rtl, 0).
12584
12585 2015-04-17  Martin Liska  <mliska@suse.cz>
12586
12587         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
12588         Release symbol_compare_collection.
12589         * ipa-reference.c: Add TODO that a vector should be released.
12590
12591 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
12592
12593         PR target/65296
12594         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
12595         to new AVR-LibC file layout (bug #44574).
12596         (*avrlibc_devicelib): Same.
12597         * config/avr/avr-mcus.def: Adjust comments.
12598         * config/avr/avr.opt (nodevicelib): Adjust help.
12599
12600 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
12601
12602         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
12603
12604 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
12605
12606         PR c++/64527
12607         * gimplify.c (gimplify_init_constructor): Always emit a
12608         side-effecting constructor.
12609
12610 2015-04-17  Tom de Vries  <tom@codesourcery.com>
12611
12612         PR tree-optimization/64950
12613         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
12614         in cfun->curr_properties.
12615         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
12616         if we generate an IFN_VA_ARG.
12617         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
12618         function if PROP_gimple_lva is not set in src function.
12619
12620 2015-04-17  Tom de Vries  <tom@codesourcery.com>
12621             Michael Matz  <matz@suse.de>
12622
12623         PR tree-optimization/64950
12624         * gimple-iterator.c (update_modified_stmts): Remove static.
12625         * gimple-iterator.h (update_modified_stmts): Declare.
12626         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
12627         (gimplify_va_arg_internal): New function.
12628         (gimplify_va_arg_expr): Use IFN_VA_ARG.
12629         * gimplify.h (gimplify_va_arg_internal): Declare.
12630         * internal-fn.c (expand_VA_ARG): New unreachable function.
12631         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
12632         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
12633         (expand_ifn_va_arg): New function.
12634         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
12635         (pass_stdarg::execute): Call expand_ifn_va_arg.
12636         (pass_data_lower_vaarg): New pass_data.
12637         (pass_lower_vaarg): New gimple_opt_pass.
12638         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
12639         (make_pass_lower_vaarg): New function.
12640         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
12641         properties_required field.
12642         * passes.def (all_passes): Add pass_lower_vaarg.
12643         * tree-pass.h (PROP_gimple_lva): Add define.
12644         (make_pass_lower_vaarg): Declare.
12645
12646 2015-04-17  Tom de Vries  <tom@codesourcery.com>
12647
12648         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
12649         * calls.c (call_expr_flags): Same.
12650
12651 2015-04-17  Tom de Vries  <tom@codesourcery.com>
12652
12653         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
12654         (pass_stdarg::execute): ... here.
12655
12656 2015-04-17  Tom de Vries  <tom@codesourcery.com>
12657             Michael Matz  <matz@suse.de>
12658
12659         * tree-cfg.c (make_blocks_1): Factor out of ...
12660         (make_blocks): ... here.
12661         (make_edges_bb): Factor out of ...
12662         (make_edges): ... here.
12663         (gimple_find_sub_bbs): New function.
12664         * tree-cfg.h (gimple_find_sub_bbs): Declare.
12665
12666 2015-04-17  Tom de Vries  <tom@codesourcery.com>
12667
12668         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
12669
12670 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
12671
12672         * asan.c (set_sanitized_sections): New function.
12673         (section_sanitized_p): Ditto.
12674         (asan_protect_global): Optionally sanitize user-defined
12675         sections.
12676         * asan.h (set_sanitized_sections): Declare new function.
12677         * common.opt (fsanitize-sections): New option.
12678         * doc/invoke.texi (-fsanitize-sections): Document new option.
12679         * opts-global.c (handle_common_deferred_options): Handle new
12680         option.
12681
12682 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
12683
12684         PR debug/65771
12685         * dwarf2out.c (loc_list_from_tree): Return NULL
12686         for DEBUG_EXPR_DECL.
12687
12688 2015-04-17  Christian Bruel  <christian.bruel@st.com>
12689
12690         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
12691         same attributes.
12692
12693 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
12694
12695         * ira-color.c (setup_left_conflict_sizes_p): Do not process
12696         node itself when computing left conflict subnode size.
12697
12698 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
12699
12700         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
12701         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
12702         *fop_<mode>_1_sse using enabled attribute.  Use
12703         register_mixssei387nonimm_operand operand 1 predicate. Change
12704         alternative 3 constraints from "x" to "v".
12705
12706 2015-04-16  Richard Biener  <rguenther@suse.de>
12707
12708         PR tree-optimization/65774
12709         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
12710         bit-value tracking on.
12711
12712 2015-04-16  Richard Biener  <rguenther@suse.de>
12713
12714         PR tree-optimization/64277
12715         * tree-vrp.c (check_array_ref): Fix anti-range handling,
12716         simplify upper bound handling.
12717         (search_for_addr_array): Simplify.
12718         (check_array_bounds): Handle ADDR_EXPRs here.
12719         (check_all_array_refs): Simplify.
12720
12721 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
12722
12723         * config/i386/i386.c (print_reg): Rewrite function.
12724
12725 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12726
12727         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
12728         Invert the condition.
12729
12730 2015-04-16  Renlin Li  <renlin.li@arm.com>
12731
12732         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
12733         simplifications for UNSIGNED_FLOAT.
12734
12735 2015-04-16  Nick Clifton  <nickc@redhat.com>
12736
12737         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
12738         MUL_UNINIT.
12739         (enum rl78_cpu_type): New.
12740         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
12741         (umulhi3_shift_virt): Remove m constraint from operand 1.
12742         (umulqihi3_virt): Likewise.
12743         * config/rl78/rl78.c (rl78_option_override): Add code to process
12744         -mcpu and -mmul options.
12745         (rl78_alloc_physical_registers): Add code to handle divhi and
12746         divsi valloc attributes.
12747         (set_origin): Likewise.
12748         * config/rl78/rl78.h (RL78_MUL_G14): Define.
12749         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
12750         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
12751         __RL78_Gxx__.
12752         (ASM_SPEC): Pass -mcpu on to assembler.
12753         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
12754         (mulqi3_rl78): Likewise.
12755         (mulhi3_g13): Likewise.
12756         (mulhi3): Generate the G13 or G14 versions of the insn directly.
12757         (mulsi3): Likewise.
12758         (mulhi3_g14): Add clobbers of AX and BC.
12759         (mulsi3_g14): Likewise.
12760         (mulsi3_g13): Likewise.
12761         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
12762         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
12763         * config/rl78/rl78.opt (mmul): Initialise value to
12764         RL78_MUL_UNINIT.
12765         (mcpu): New option.
12766         (m13, m14, mrl78): New option aliases.
12767         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
12768         (MULTILIB_DIRNAMES): Add g13 and g14.
12769         * doc/invoke.texi: Document -mcpu and -mmul options.
12770
12771 2015-04-16  Richard Biener  <rguenther@suse.de>
12772
12773         * tree-ssa-ccp.c (likely_value): See if we have operands that
12774         are marked as never simulate again and return CONSTANT in this
12775         case.
12776         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
12777         not have any operands that will be simulated again as
12778         not being simulated again.
12779
12780 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
12781
12782         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
12783         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
12784         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
12785         attribute.
12786         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
12787         enabled attribute.
12788         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
12789         *float<SWI48:mode><MODEF:mode>2_sse.
12790         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
12791         enabled attribute.
12792         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
12793         enabled attribute.
12794
12795 2015-04-15  Tom de Vries  <tom@codesourcery.com>
12796
12797         PR other/65487
12798         * function.c (push_dummy_function): New function.
12799         (init_dummy_function_start): Use push_dummy_function.
12800         (pop_dummy_function): New function.  Factored out of ...
12801         (expand_dummy_function_end): ... here.
12802         * function.h (push_dummy_function, pop_dummy_function): Declare.
12803         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
12804         pop_dummy_function.
12805         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
12806
12807 2015-04-15  Jeff Law  <law@redhat.com>
12808
12809         PR tree-optimization/47679
12810         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
12811         need for forward declaration in upcoming changes.
12812         (record_conditions, record_edge_info): Likewise.
12813
12814         PR rtl-optimization/42522
12815         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
12816         SIGN_EXTRACT as a whole object rather than simplifying
12817         its operand.
12818
12819 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
12820
12821         PR ipa/65765
12822         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
12823         and GIMPLE_PREDICT use break instead of return true. For
12824         GIMPLE_EH_DISPATCH, compare dispatch region.
12825
12826 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
12827
12828         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
12829         details about the implementation.  Make clear preference for
12830         __atomic builtins.  Reduce possibility of future change.
12831
12832 2015-04-15  Nick Clifton  <nickc@redhat.com>
12833
12834         * config/rx/rx.opt (mallow-string-insns): New option.
12835         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
12836         builtin if string instructions are denied.
12837         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
12838         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
12839         appropriate.
12840         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
12841         * config/rx/rx.md (movstr): Enable pattern only if string
12842         instructions are allowed.
12843         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
12844         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
12845         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
12846         (MULTILIB_DIRNAMES): Add no-strings.
12847         * doc/invoke.texi: Document -mno-allow-string-insns.
12848
12849 2015-04-15  Alan Modra  <amodra@gmail.com>
12850
12851         PR target/65408
12852         PR target/58744
12853         PR middle-end/36043
12854         * calls.c (load_register_parameters): Don't load past end of
12855         mem unless suitably aligned.
12856
12857 2015-04-15  Nick Clifton  <nickc@redhat.com>
12858
12859         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
12860         decrement instruction as being frame related.
12861         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
12862         based addresses.
12863         If zero extending a function address enclose the operation in
12864         %code(...).
12865         (rl78_preferred_reload_class): New function.
12866         (TARGET_PREFERRED_RELOAD_CLASS): Define.
12867         * config/rl78/rl78.md: Remove useless constraints in expanders.
12868         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
12869         (mulhi3_rl78): Likewise.
12870         (mulhi3_g13): Likewise.
12871         (mulsi3_rl78): Likewise.
12872         (es_addr): Move to before the multiply patterns.
12873
12874 2015-04-15  Alan Modra  <amodra@gmail.com>
12875
12876         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
12877         and sequence_stack.  Add seq.
12878         (seq_stack): Delete.
12879         * function.c (prepare_function_start): Don't access x_last_insn.
12880         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
12881         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
12882         * emit_rtl.c (start_sequence, push_topmost_sequence,
12883         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
12884         sequence accessors.
12885         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
12886         remove_insn): Likewise.  Simplify.
12887         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
12888         and pop_topmost_sequence.
12889         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
12890         debug insns.
12891         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
12892
12893 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
12894
12895         PR target/65729
12896         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
12897         the assertiion.
12898
12899 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
12900
12901         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
12902         (LEGACY_INT_REGNO_P): Ditto.
12903         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
12904         (ANY_MASK_REG_P): Remove.
12905         (BND_REG_P): Rename from ANY_BND_REG_P.
12906         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
12907         legacy integer registers.  Do not handle MMX_REG_P in a special way.
12908         Merge 64byte and 32byte SSE handling.
12909
12910 2015-04-14  Nick Clifton  <nickc@redhat.com>
12911
12912         * expr.c (expand_assignment): Force an address offset computation
12913         into a register before changing its mode.
12914         (expand_expr_real_1): Likewise.
12915
12916 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
12917
12918         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
12919         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
12920         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
12921         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
12922         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
12923         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
12924         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
12925         and __aarch64_vget_lane_any.
12926
12927 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
12928
12929         PR rtl-optimization/65761
12930         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
12931         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
12932
12933 2015-04-14  Richard Biener  <rguenther@suse.de>
12934
12935         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
12936         (graphite_can_represent_scev): Use POINTER_TYPE_P.
12937
12938 2015-04-14  Richard Biener  <rguenther@suse.de>
12939
12940         PR tree-optimization/65758
12941         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
12942         against -1.
12943         (ccp_lattice_meet): Likewise.
12944         (bit_value_unop): Likewise.
12945         (bit_value_binop): Likewise.
12946         (bit_value_assume_aligned): Likewise.
12947
12948 2015-04-14  Christian Bruel  <christian.bruel@st.com>
12949
12950         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
12951         function.
12952
12953 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
12954
12955         PR tree-optimization/63387
12956         * match.pd ((x unord x) | (y unord y) -> (x unord y),
12957         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
12958
12959 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
12960
12961         * config/i386/predicates.md (any_QIreg_operand): Rename from
12962         q_regs_operand.  Do not process subregs.
12963         (QIreg_operand): Use QI_REGNO_P predicate.
12964         (ext_QIreg_operand): Ditto.
12965         (ext_register_operand): Ditto.
12966         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
12967         (AND splitters): Ditto.
12968         (AND with -65536 splitter): Add SWI48 mode for operand 0.
12969         (AND with -256 splitter): Use any_QIreg_operand predicate and
12970         SWI248 mode for operand 0.
12971         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
12972         mode for operand 0.
12973         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
12974
12975 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
12976
12977         * doc/plugins.texi: Rewrite first introductory paragraph.
12978
12979 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
12980
12981         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
12982         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
12983
12984 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
12985
12986         * ipa-profie.c (ipa_profile): Check number of parameters
12987         and possible polymorphic call targets before
12988         devirtualizing.
12989
12990 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
12991
12992         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
12993         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
12994
12995 2015-04-13  Richard Biener  <rguenther@suse.de>
12996
12997         PR tree-optimization/65204
12998         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
12999         takens for bit-CCP.
13000
13001 2015-04-13  Richard Biener  <rguenther@suse.de>
13002
13003         PR target/65660
13004         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
13005         and cond_not_taken_branch_cost to 4 and 2.
13006         (bdver2_cost): Likewise.
13007         (bdver3_cost): Likewise.
13008         (bdver4_cost): Likewise.
13009
13010 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
13011
13012         * hash-table.h (hash_table constructor): Add mem stats.
13013         (alloc_entries): Likewise.
13014
13015 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
13016
13017         * ipa-cp.c (ipcp_driver): Relase prev_edge.
13018         * passes.c (execute_one_pass): Only add transform if pass has one.
13019
13020 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
13021
13022         * config/i386/i386.c (ix86_option_override_internal): Don't set
13023         -fprefetch-loop-arrays if optimizing for size.
13024
13025 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
13026             Gerald Pfeifer  <gerald@pfeifer.com>
13027
13028         * doc/contrib.texi (Contributors): Add Martin Jambor and
13029         Michael Matz.
13030
13031 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
13032
13033         * BASE-VER: Set to 6.0.0.
13034
13035         PR tree-optimization/65747
13036         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
13037         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
13038
13039 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
13040
13041         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
13042         sentence.  Improve grammar.
13043
13044 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
13045
13046         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
13047
13048 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
13049
13050         PR ipa/65743
13051         * ipa-inline-transform.c (speculation_removed): Remove static var.
13052         (check_speculations): New function.
13053         (clone_inlined_nodes): Do not check spculations.
13054         (inline_call): Call check_speculations.
13055         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
13056         consider non-invariants.
13057
13058 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
13059             Martin Liska  <mliska@suse.cz>
13060
13061         PR ipa/65722
13062         * ipa-icf.c (sem_item::compare_cgraph_references): function and
13063         variable can not match.
13064         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
13065         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
13066
13067 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
13068
13069         PR tree-optimization/65735
13070         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
13071         Remove visited_phis argument, add visited_bbs, avoid recursing into the
13072         same bb rather than just into the same phi node.
13073         (thread_through_normal_block): Adjust caller.
13074
13075 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
13076
13077         * doc/contrib.texi (Contributors): Add Ira Rosen.
13078
13079 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
13080
13081         * gcov.c (find_source): Fix miswording in error message.
13082         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
13083         (ix86_expand_sse_comi_round): Fix typo in error message.
13084
13085 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
13086
13087         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
13088
13089 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
13090
13091         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
13092
13093 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
13094
13095         PR target/65710
13096         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
13097         Print bad_spills_num and insn_pseudos_num.
13098
13099 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13100
13101         PR target/65694
13102         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
13103         when creating +1 values for SImode.
13104
13105 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
13106
13107         PR target/65729
13108         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
13109         assert.
13110
13111 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
13112             Iain Sandoe  <iain@codesourcery.com>
13113
13114         PR target/65351
13115         * configure: Regenerate.
13116
13117 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
13118
13119         PR target/65671
13120         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
13121
13122 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
13123
13124         * doc/contrib.texi (Contributors): Add John Marino.
13125
13126 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
13127
13128         PR tree-optimization/65709
13129         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
13130         TREE_TYPE (TREE_TYPE (t)).
13131
13132 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
13133
13134         PR target/65710
13135         * lra-int.h (lra_bad_spill_regno_start): New.
13136         * lra.c (lra_bad_spill_regno_start): New.
13137         (lra): Set up lra_bad_spill_regno_start.  Set up
13138         lra_constraint_new_regno_start unconditionally.
13139         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
13140         spill preferences.
13141
13142 2015-04-09  Marek Polacek  <polacek@redhat.com>
13143             Jakub Jelinek  <jakub@redhat.com>
13144
13145         PR middle-end/65554
13146         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
13147         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
13148         of STRIP_NOPS.
13149
13150 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
13151
13152         PR rtl-optimization/65693
13153         * combine.c (is_parallel_of_n_reg_sets): Move outside of
13154         #ifndef HAVE_cc0.
13155
13156 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
13157
13158         PR target/65296
13159         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
13160         device specs file if "device-specs%s" didn't resolve to a path.
13161
13162 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
13163
13164         PR target/65676
13165         * config/i386/i386.c (fixup_modeless_constant): New.
13166         (ix86_expand_args_builtin): Fixup modeless constant operand.
13167         (ix86_expand_round_builtin): Ditto.
13168         (ix86_expand_special_args_builtin): Ditto.
13169         (ix86_expand_builtin): Ditto.
13170
13171 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
13172
13173         PR target/65693
13174         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
13175         any pow2 integer in between 2 and 0x80000000U inclusive.
13176
13177 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
13178
13179         PR rtl-optimization/65693
13180         * combine.c (is_parallel_of_n_reg_sets): Change first argument
13181         from an rtx_insn * to an rtx.
13182         (try_combine): Adjust both callers.  Use it once more.
13183
13184 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
13185
13186         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
13187         (chkp_make_static_const_bounds): Search existing
13188         symbol by assembler name.  Use make_decl_one_only.
13189         (chkp_get_zero_bounds_var): Remove node search which
13190         is now performed in chkp_make_static_const_bounds.
13191         (chkp_get_none_bounds_var): Likewise.
13192
13193 2015-04-08  Michael Witten  <mfwitten@gmail.com>
13194
13195         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
13196         to an example.
13197
13198 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13199
13200         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
13201
13202 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
13203
13204         * doc/extend.texi (__sync Builtins): Fix grammar.
13205
13206 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13207
13208         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
13209
13210 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13211
13212         * varasm.c (emit_local): Move definition of align.
13213
13214 2015-04-08  Julian Brown  <julian@codesourcery.com>
13215
13216         * config/nvptx/mkoffload.c (process): Support variable mapping.
13217
13218 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
13219
13220         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
13221         alpha_links **.
13222         (alpha_write_one_linkage): Correct typo.
13223
13224 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
13225
13226         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
13227
13228 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
13229
13230         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
13231
13232 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
13233
13234         * tree-chkp.h (chkp_insert_retbnd_call): New.
13235         * tree-chkp.c (chkp_insert_retbnd_call): New.
13236         * ipa-split.c (insert_bndret_call_after): Remove.
13237         (split_function): Use chkp_insert_retbnd_call.
13238         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
13239         bounds for instrumented functions.
13240
13241 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
13242
13243         PR ipa/65540
13244         * calls.c (initialize_argument_information): When producing tail
13245         call also turn SSA_NAMES passed by references to original PARM_DECLs
13246
13247 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
13248
13249         PR target/65648
13250         * lra-remat.c (do_remat): Process input and non-input insn
13251         registers separately.
13252
13253 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
13254
13255         PR debug/65678
13256         * valtrack.c (debug_lowpart_subreg): New function.
13257         (dead_debug_insert_temp): Use it.
13258
13259         PR middle-end/65680
13260         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
13261         into signed HOST_WIDE_INT the same as negative bit_offset.
13262
13263 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
13264
13265         * ipa-comdats.c (ipa_comdats): Visit all thunks
13266         to set proper comdat group.
13267
13268 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13269
13270         PR target/65489
13271         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
13272         on constants for NEON VSTRUCT modes.
13273
13274 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
13275             Iain Sandoe  <iain@codesourcery.com>
13276
13277         PR target/65351
13278         * configure: Regenerate.
13279
13280 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
13281
13282         PR target/65614
13283         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
13284         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
13285         that LFD is used to load double constants instead of LFS.  Add
13286         defaults for all costs structures.  Add comments for missing
13287         initialization fields.
13288         (size32_cost): Likewise.
13289         (size64_cost): Likewise.
13290         (rs64a_cost): Likewise.
13291         (mpccore_cost): Likewise.
13292         (ppc403_cost): Likewise.
13293         (ppc405_cost): Likewise.
13294         (ppc440_cost): Likewise.
13295         (ppc476_cost): Likewise.
13296         (ppc601_cost): Likewise.
13297         (ppc603_cost): Likewise.
13298         (ppc604_cost): Likewise.
13299         (ppc604e_cost): Likewise.
13300         (ppc620_cost): Likewise.
13301         (ppc630_cost): Likewise.
13302         (ppccell_cost): Likewise.
13303         (ppc750_cost): Likewise.
13304         (ppc7450_cost): Likewise.
13305         (ppc8540_cost): Likewise.
13306         (ppce300c2c3_cost): Likewise.
13307         (ppce500mc_cost): Likewise.
13308         (ppce500mc64_cost): Likewise.
13309         (ppce5500_cost): Likewise.
13310         (ppce6500_cost): Likewise.
13311         (titan_cost): Likewise.
13312         (power4_cost): Likewise.
13313         (power6_cost): Likewise.
13314         (power7_cost): Likewise.
13315         (power8_cost): Likewise.
13316         (ppca2_cost): Likewise.
13317         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
13318
13319         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
13320         instead of XXLOR to copy SFmode to clear out dirty bits created
13321         when SFmode denormals are generated.
13322         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
13323         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
13324
13325 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
13326
13327         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
13328         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
13329         * config/aarch64/aarch64-tune.md: Regenerate.
13330
13331 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
13332
13333         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
13334         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
13335         * config/arm/arm-cores.def (exynos-m1): New core.
13336         * config/arm/arm-tune.md: Regenerate.
13337         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
13338         * config/arm/bpabi.h: Likewise.
13339
13340 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
13341
13342         * ipa-cp (set_single_call_flag): Remove too
13343         restrictive assert.
13344
13345 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
13346
13347         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
13348         GOMP_offload_unregister from the destructor.
13349
13350 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
13351
13352         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
13353         flags for instrumentation thunk.
13354         (chkp_produce_thunks): Likewise.
13355
13356 2015-04-05  Martin Liska  <mliska@suse.cz>
13357
13358         PR ipa/65665
13359         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
13360         has computed data structure.
13361         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
13362
13363 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
13364
13365         * invoke.texi (inline-unit-growth): Increase growth to 20%
13366         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
13367
13368 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
13369
13370         PR target/65647
13371         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
13372         value checking.
13373         (lra_rematerialization_iter): New.
13374         * lra.c (lra): Initialize lra_rematerialization_iter.
13375         Stop updating lra_constraint_new_regno_start after switching of
13376         inheritance and rematerialization.
13377         * lra-remat.c (lra_rematerialization_iter): New.
13378         (lra_remat): Add printing pass iteration.  Do rematerialization
13379         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
13380
13381 2015-04-04  Richard Biener  <rguenther@suse.de>
13382
13383         PR tree-optimization/64909
13384         PR tree-optimization/65660
13385         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
13386         to take a cost vector for scalar iteration cost.
13387         (vect_get_single_scalar_iteration_cost): Likewise.
13388         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
13389         Compute the scalar iteration cost into a cost vector.
13390         (vect_get_known_peeling_cost): Use the scalar cost vector to
13391         account for the cost of the peeled iterations.
13392         (vect_estimate_min_profitable_iters): Likewise.
13393         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
13394         Likewise.
13395
13396 2015-04-04  Alan Modra  <amodra@gmail.com>
13397
13398         PR target/65576
13399         PR target/65240
13400         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
13401         0.0 constant unless TARGET_VSX.
13402         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
13403         alternative.
13404
13405 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
13406
13407         PR ipa/65654
13408         * ipa-inline-transform.c (inline_call): Skip sanity check to work
13409         around the ICE
13410
13411 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
13412
13413         PR ipa/65655
13414         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
13415         speculative indirect edges to avoid ordering issue.
13416
13417 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
13418
13419         PR ipa/65076
13420         * ipa-inline.c (edge_badness): Add combined size to the denominator.
13421
13422 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
13423
13424         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
13425         TYPE_ARTIFICIAL on the .omp_data* types.
13426
13427 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
13428
13429         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
13430         instrumentation thunks.
13431
13432 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
13433
13434         * config/i386/i386.c (ix86_expand_call): Avoid nested
13435         PARALLEL in returned call value.
13436
13437 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
13438
13439         * lto-cgraph.c (input_cgraph_1): Always link instrumented
13440         assembler name with original one.
13441
13442 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
13443
13444         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
13445
13446 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
13447
13448         Revert parts of r216820.
13449         * config/i386/i386.md (movqi_internal): Correct type calculation
13450         for alternatives 3 and 5.
13451
13452 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
13453
13454         PR preprocessor/61977
13455         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
13456         predefine __vector/__bool/__pixel macros nor context sensitive
13457         macros for CLK_ASM.
13458         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
13459
13460 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
13461
13462         * config/pa/pa.c (pa_output_move_double): Directly handle register
13463         indexed memory operand.  Simplify handling of scaled register indexed
13464         memory operands.
13465
13466 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
13467
13468         PR driver/65444
13469         * config/i386/linux-common.h (MPX_SPEC): New.
13470         (CHKP_SPEC): Add MPX_SPEC.
13471         * doc/invoke.texi (-fcheck-pointer-boudns): Document
13472         possible issues with '-z bndplt' support in linker.
13473
13474 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
13475
13476         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
13477         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
13478         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
13479         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
13480         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
13481
13482 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
13483
13484         * config/i386/sync.md (UNSPEC_MOVA): Remove.
13485         (atomic_load<mode>): Change operand 0 predicate to
13486         nonimmediate_operand and fix up the destination when needed.
13487         Use UNSPEC_LDA.
13488         (atomic_loaddi_fpu): Use UNSPEC_LDA.
13489         (atomic_store<mode>): Change operand 1 predicate to
13490         nonimmendate_operand and move the source to register when needed.
13491         Use UNSPEC_STA.
13492         (atomic_store<mode>_1): Use UNSPEC_STA.
13493         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
13494         Fix moves from memory operand.  Use UNSPEC_STA.
13495
13496 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13497
13498         * expmed.c (strict_volatile_bitfield_p): Check that the access will
13499         not cross a MODESIZE boundary.
13500         (store_bit_field, extract_bit_field): Added assertions in the
13501         strict volatile bitfields code path.
13502
13503 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
13504
13505         PR target/65624
13506         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
13507         Increase args array size by one to avoid buffer overflow.
13508
13509 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
13510
13511         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
13512         split_part.
13513         * ipa-inline.c (edge_badness): Add wrapper penalty.
13514         (sum_callers): Move up.
13515         (inline_small_functions): Set single_caller.
13516         * ipa-inline.h (inline_summary): Add single_caller.
13517         * ipa-split.c (split_function): Set split_part.
13518         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
13519         * cgraph.h (cgraph_node): Add split_part.
13520
13521 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
13522
13523         PR target/58945
13524         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
13525         Do not split operands 0 and operands 2 to halfmode.
13526         (atomic_compare_and_swap<mode>): Update for
13527         atomic_compare_and_swap<dwi>_doubleword changes.
13528
13529 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
13530
13531         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
13532         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
13533         no caching is done.
13534
13535 2015-03-31  Martin Liska  <mliska@suse.cz>
13536
13537         PR ipa/65557
13538         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
13539         has already filled up function summary.
13540         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
13541
13542 2015-03-31  Richard Biener  <rguenther@suse.de>
13543
13544         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
13545         of types.
13546
13547 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13548
13549         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
13550         nested functions.
13551         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
13552         (s390_asm_output_function_label): Adapt to new signature of
13553         s390_function_num_hotpatch_hw
13554         Optimise the code generating assembler output.
13555         Add comments to assembler file.
13556
13557 2015-03-31  Richard Biener  <rguenther@suse.de>
13558
13559         PR middle-end/65626
13560         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
13561         of the noreturn call so it is last and cleanup_control_flow_bb
13562         can do the CFG part.
13563
13564 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
13565
13566         PR target/65531
13567         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
13568         same_comdat_group for external symbols.
13569         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
13570         infinite same_comdat_group traversal loop.
13571
13572 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
13573
13574         PR plugins/61176
13575         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
13576         automatically to $headers.
13577
13578 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
13579
13580         PR ipa/65610
13581         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
13582         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
13583         function.
13584         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
13585         Use it.
13586         * ipa-prop.c (param_type_may_change_p): Likewise.
13587         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
13588         (remove_unused_scope_block_p): Add in_ctor_dtor_block
13589         argument.  Before inlining, preserve
13590         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
13591         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
13592         recursive calls.
13593         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
13594
13595 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
13596
13597         PR ipa/65076
13598         * ipa-inline.c (edge_badness): Base denominator on callee's
13599         grwoth squared.
13600
13601 2015-03-27  Martin Jambor  <mjambor@suse.cz>
13602
13603         PR ipa/65478
13604         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
13605         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
13606         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
13607         node_calling_single_call.
13608         * ipa-cp.c (count_callers): New function.
13609         (set_single_call_flag): Likewise.
13610         (initialize_node_lattices): Count callers and set single_flag_call if
13611         necessary.
13612         (incorporate_penalties): New function.
13613         (good_cloning_opportunity_p): Use it, dump new flags.
13614         (propagate_constants_topo): Set node_within_scc flag if appropriate.
13615         * doc/invoke.texi (ipa-cp-recursion-penalty,
13616         ipa-cp-single-call-pentalty): Document.
13617
13618 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
13619
13620         PR ipa/65588
13621         * symtab.c (symtab_node::get_partitioning_class): Register vars
13622         are duplicated.
13623         * varpool.c (symbol_table::output_variables) Do not assemble unefined
13624         decls for non-symbols.
13625
13626 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13627
13628         PR target/65248
13629         * output.h (default_binds_local_p_2): New.
13630         * varasm.c (default_binds_local_p_2): Renamed to ...
13631         (default_binds_local_p_3): This.  Don't return true on protected
13632         data symbol if protected data may be external.
13633         (default_binds_local_p): Use default_binds_local_p_3.
13634         (default_binds_local_p_1): Likewise.
13635         (default_binds_local_p_2): New.
13636         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
13637         default_binds_local_p_2 if TARGET_MACHO is undefined.
13638
13639 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
13640
13641         PR target/65593
13642         * config/i386/i386.c (legitimize_pic_address): If base
13643         is SYMBOL_REF or LABEL_REF using %rip addressing, force
13644         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
13645
13646 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
13647
13648         PR target/65531
13649         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
13650         comdat groups.
13651
13652 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
13653
13654         PR ipa/65600
13655         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
13656         of optimized out indirect call.
13657         (redirect_to_unreachable): Always build symbol table node for
13658         BUILT_IN_UNREACHABLE
13659
13660 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
13661
13662         PR target/65407
13663         * ira-costs.c (record_reg_classes): Process all constraint string
13664         containing 0-9.
13665
13666 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
13667
13668         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
13669         memory_operand.
13670
13671         PR target/65052
13672         * config/c6x/constraints.md (S3): New constraint.
13673         * config/c6x/c6x.md (real_jump): Use it.
13674
13675 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
13676
13677         PR middle-end/65595
13678         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
13679         do redirection if the call is not optimized out.
13680
13681 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
13682
13683         PR target/65495
13684         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
13685         (fchkp-check-incomplete-type): Add LTO.
13686         (fchkp-zero-input-bounds-for-main): Likewise.
13687         (fchkp-first-field-has-own-bounds): Likewise.
13688         (fchkp-narrow-bounds): Likewise.
13689         (fchkp-narrow-to-innermost-array): Likewise.
13690         (fchkp-use-static-bounds): Likewise.
13691         (fchkp-use-static-const-bounds): Likewise.
13692         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
13693
13694 2015-03-27  Marek Polacek  <polacek@redhat.com>
13695
13696         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
13697
13698 2015-03-27  Marek Polacek  <polacek@redhat.com>
13699
13700         PR sanitizer/65583
13701         * ubsan.c (ubsan_create_edge): New function.
13702         (instrument_bool_enum_load): Call it.
13703         (instrument_nonnull_arg): Likewise.
13704         (instrument_nonnull_return): Likewise.
13705         (instrument_object_size): Likewise.
13706
13707 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
13708
13709         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
13710         auto_vec.
13711
13712 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
13713
13714         PR lto/65536
13715         * lto-streamer.h (class lto_location_cache): New.
13716         (struct data_in): Add location_cache.
13717         (lto_input_location): Update prototype.
13718         (stream_input_location_now): New.
13719         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
13720         pointer to location.
13721         (stream_input_location): Update.
13722         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
13723         (warn_odr): Apply location cache before warning.
13724         (lto_input_location): Update prototype.
13725         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
13726         Use stream_input_location_now.
13727         * lto-streamer-in.c (lto_location_cache::current_cache): New static
13728         variable.
13729         (lto_location_cache::cmp_loc): New function.
13730         (lto_location_cache::apply_location_cache): New function.
13731         (lto_location_cache::accept_location_cache): New function.
13732         (lto_location_cache::revert_location_cache): New function.
13733         (lto_location_cache::input_location): New function.
13734         (lto_input_location): Do location caching.
13735         (stream_input_location_now): New function.
13736         (input_eh_region, input_struct_function_base): Use
13737         stream_input_location_now.
13738         (lto_data_in_create): use new.
13739         (lto_data_in_delete): Use delete.
13740         * tree-streamer-in.c (unpack_ts_block_value_fields,
13741         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
13742         lto_input_ts_exp_tree_pointers): Update for cached location api.
13743
13744 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
13745
13746         PR ipa/65076
13747         * passes.def: Add pass_nothrow.
13748         * ipa-pure-const.c: (pass_data_nothrow): New.
13749         (pass_nothrow): New.
13750         (pass_nothrow::execute): New.
13751         (make_pass_nothrow): New.
13752         * tree-pass.h (make_pass_nothrow): Declare.
13753
13754 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
13755
13756         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
13757         edge to change by speculation resolution or redirection.
13758         (edge_set_predicate): Likewise.
13759         (inline_summary_t::duplicate): Likewise.
13760         (remap_edge_summaries): Likewise.
13761
13762 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
13763
13764         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
13765         New macros.
13766         (can_inline_edge_p): Relax option matching for always inline functions.
13767
13768 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
13769
13770         PR target/65561
13771         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
13772         Check operand 4 and operand 0 for equality.
13773         (avx512f_vextract<shuffletype>32x4_1_maskm):
13774         Check operand 6 and operand 0 for equality.
13775         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
13776         for equality.
13777         (vec_extract_hi_<mode>_maskm): Ditto.
13778
13779 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
13780
13781         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
13782         dead calls back to live.
13783         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
13784         cross check to ...
13785         (cgraph_node::verify_node): ... here; verify only callee edges,
13786         not caller.
13787         * cif-code.def (CILK_SPAWN): New code.
13788
13789 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
13790
13791         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
13792         (edge_set_predicate): Use it to mark unreachable edges.
13793         (inline_summary_t::duplicate): Remove unnecesary code.
13794         (remap_edge_summaries): Likewise.
13795         (dump_inline_summary): Report contains_cilk_spawn.
13796         (compute_inline_parameters): Compute contains_cilk_spawn.
13797         (inline_read_section, inline_write_summary): Stream
13798         contains_cilk_spawn.
13799         * ipa-inline.c (can_inline_edge_p): Do not touch
13800         DECL_STRUCT_FUNCTION that may not be available;
13801         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
13802         remove check for callee_fun->can_throw_non_call_exceptions and
13803         replace it by optimization attribute check; check for flag_exceptions.
13804         * ipa-inline-transform.c (inline_call): Maintain
13805         DECL_FUNCTION_PERSONALITY
13806         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
13807
13808 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
13809
13810         PR tree-optimization/65551
13811         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
13812         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
13813
13814 2015-03-26  Richard Biener  <rguenther@suse.de>
13815
13816         PR middle-end/65555
13817         * tree-cfg.c (verify_gimple_call): Do not require a call to
13818         have no LHS if it wasn't recognized as control altering yet.
13819
13820 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
13821
13822         PR tree-optimization/64715
13823         * passes.def: Add another instance of pass_object_sizes before ccp1.
13824         * tree-object-size.c (pass_object_sizes::execute): In
13825         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
13826         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
13827         __bos result and the computed constant.  Remove redundant
13828         checks, obsoleted by gimple_call_builtin_p test.
13829
13830         * var-tracking.c (variable_tracking_main_1): Don't track
13831         variables for targetm.no_register_allocation targets.
13832
13833 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
13834
13835         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
13836         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
13837
13838 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
13839
13840         PR target/65569
13841         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
13842         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
13843         0.0 is correctly setup.
13844         (extenddftf2_internal): Likewise.
13845
13846 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
13847
13848         PR tree-optimization/65177
13849         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
13850         (bb_in_bbs): New.
13851         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
13852         edges not adjacent on the path to the original code.
13853
13854 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
13855
13856         PR bootstrap/65537
13857         * doc/install.texi (Building a native compiler): Document new
13858         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
13859         configuration assumes that the host supports the linker plugin.
13860
13861 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
13862
13863         PR target/65508
13864         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
13865         chain for generated call.
13866
13867 2015-03-25  Richard Biener  <rguenther@suse.de>
13868
13869         * passes.c (pass_manager::execute_early_local_passes): Guard
13870         execution of pass_chkp_instrumentation_passes with
13871         flag_check_pointer_bounds.
13872         (pass_chkp_instrumentation_passes::gate): Likewise.
13873
13874 2015-03-25  Martin Liska  <mliska@suse.cz>
13875
13876         PR tree-optimization/65538
13877         * symbol-summary.h (function_summary::~function_summary):
13878         Relese memory for allocated summaries.
13879         (function_summary::release): New function.
13880
13881 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
13882
13883         PR lto/65515
13884         * lto-streamer-out.c (DFS::worklist): New struct.
13885         (DFS::worklist_vec): New data member.
13886         (DFS::next_dfs_num): Remove.
13887         (DFS::DFS): Rewritten using worklist instead of recursion,
13888         using most of code from DFS::DFS_write_tree.
13889         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
13890         pass it to DFS_write_tree calls.
13891         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
13892         quick initial checks push it into worklist_vec and return.
13893
13894 2015-03-25  Richard Biener  <rguenther@suse.de>
13895
13896         PR middle-end/65519
13897         * genmatch.c (expr::gen_transform): Re-write to avoid
13898         using gimple_build.
13899
13900 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
13901
13902         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
13903
13904 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
13905
13906         * config/arm/arm.opt (print_tune_info): New option.
13907         * config/arm/arm.c (arm_print_tune_info): New function.
13908         (arm_file_start): Call arm_print_tune_info.
13909         * config/arm/arm-protos.h (struct tune_params): Add comment.
13910         * doc/invoke.texi (@item -mprint-tune-info): New item.
13911         (-mtune): mention it in ARM Option Summary.
13912
13913 2015-03-25  DJ Delorie  <dj@redhat.com>
13914
13915         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
13916         correct clause.
13917
13918 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
13919             Martin Liska  <mliska@suse.cz>
13920
13921         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
13922         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
13923         (sem_item::add_type): New function.
13924         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
13925         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
13926         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
13927         (sem_function::equals_wpa): Fix typo.
13928         * ipa-icf.h (sem_item::add_type): New function.
13929         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
13930         order.
13931
13932 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
13933
13934         PR tree-optimization/65533
13935         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
13936         with swapped operands, call vect_free_slp_tree on
13937         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
13938         vector.
13939
13940 2015-03-24  Richard Biener  <rguenther@suse.de>
13941
13942         PR middle-end/65517
13943         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
13944         for fixup if necessary.
13945
13946 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
13947
13948         * doc/extend.texi (Function Attributes): Add @cindex entries
13949         for all attributes and regularize their format.  Delete text
13950         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
13951         information about "eightbit_data", "tiny_data", and "model"
13952         variable attributes to the Variable Attributes section.  Fix
13953         some obvious typos and copy-editing issues.
13954         (Variable Attributes, Type Attributes): Likewise add/fix
13955         @cindex entries for all attributes.
13956
13957 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
13958
13959         PR target/65523
13960         * tree-chkp.c (chkp_build_returned_bound): Ignore
13961         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
13962
13963 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
13964
13965         PR target/65505
13966         * config/sh/predicates.md (simple_mem_operand,
13967         displacement_mem_operand): Add test for reg.
13968         (short_displacement_mem_operand): Test for displacement_mem_operand
13969         before invoking sh_disp_addr_displacement.
13970         * config/sh/constraints.md (Sdd, Sra): Simplify.
13971         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
13972         Remove redundant displacement_mem_operand tests.
13973
13974 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
13975
13976         PR target/65296
13977         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
13978         the same -mmcu=MCU more than once.
13979
13980 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
13981
13982         PR bootstrap/65522
13983         * ipa-devirt.c: Remove duplicate demangle.h include.
13984
13985         PR target/65504
13986         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
13987         on the pseudo.
13988         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
13989         REG_POINTER on *destptr after adjusting it for prologue size.
13990
13991         PR ipa/65521
13992         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
13993         ultimate_alias_target ()->order ints instead of
13994         ultimate_alias_target () pointers.
13995
13996 2015-03-23  Richard Biener  <rguenther@suse.de>
13997
13998         PR tree-optimization/65518
13999         * tree-vect-stmts.c (vectorizable_load): Reject single-element
14000         interleaving cases we generate absymal code for.
14001
14002 2015-03-23  Richard Biener  <rguenther@suse.de>
14003
14004         PR tree-optimization/65494
14005         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
14006         matches here.
14007         (vect_analyze_slp_instance): But do that here, always and once.
14008
14009 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14010
14011         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
14012         adding T or multiplying by T+1 and subracting T.
14013
14014 2015-03-22  Jeff Law  <law@redhat.com>
14015
14016         PR rtl-optimization/64317
14017         * Makefile.in (OBJS): Add gcse-common.c
14018         * gcse.c: Include gcse-common.h
14019         (struct modify_pair_s): Move structure definition to gcse-common.h
14020         (compute_transp): Move function to gcse-common.c.
14021         (canon_list_insert): Similarly.
14022         (record_last_mem_set_info): Break out some code and put it into
14023         gcse-common.c.  Call into the new common code.
14024         (compute_local_properties): Pass additional arguments to compute_transp.
14025         * postreload-gcse.c: Include gcse-common.h and df.h
14026         (modify_mem_list_set, blocks_with_calls): New variables.
14027         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
14028         (get_bb_avail_insn): Pass in the expression index too.
14029         (alloc_mem): Allocate memory for the new bitmaps and lists.
14030         (free_mem): Free memory for the new bitmaps and lists.
14031         (insert_expr_in_table): Record a bitmap index for each entry we
14032         add to the table.
14033         (record_last_mem_set_info): Call into common code in gcse-common.c.
14034         (get_bb_avail_insn): If no available insn was found in the requested
14035         BB.  If BB has a single predecessor, see if the expression is
14036         transparent in BB and available in that single predecessor.
14037         (compute_expr_transp): New wrapper for compute_transp.
14038         (eliminate_partially_redundant_load): Pass expression's bitmap_index
14039         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
14040         (gcse_after_reload_main): If there are elements in the hash table,
14041         then compute transparency for all the elements in the hash table.
14042         * gcse-common.h: New file.
14043         * gcse-common.c: New file.
14044
14045 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
14046
14047         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
14048         as an adjective.
14049         (System Headers): Likewise.
14050         (Ifdef): Likewise.
14051         (Traditional macros): Likewise.
14052         (Invocation): Likewise.
14053         (Option Index): Likewise.
14054         * doc/cppopts.texi (-M): Likewise.
14055         (-finput-charset): Likewise.
14056         (--help): Likewise.
14057         * doc.invoke.texi (AVR Options): Likewise.
14058         (V850 Options): Likewise.
14059
14060 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
14061
14062         PR ipa/65475
14063         * ipa-devirt.c: Include demangle.h
14064         (odr_type_d): Add field rtti_broken.
14065         (odr_subtypes_equivalent_p): Do not require name to match.
14066         (compare_virtual_tables): Fix typo; if type already has ODR violation,
14067         bypass the tests; be ready for function referneces in vtables that are
14068         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
14069         (warn_odr): Give up for nameless types.
14070         (warn_types_mismatch): Report mismatch in mangled names;
14071         report mismatch in anonymous namespaces; look into component types to
14072         give useful error; report when mismatch is dragged in from other ODR
14073         type.
14074         (odr_types_equivalent_p): Match types for being polymorphic; avoid
14075         duplicated diagnostics.
14076         (add_type_duplicate): Reorder checks so more informative ones come
14077         first; fix typo; do not output "the extra base is defined here" when
14078         we did not warn.
14079         (BINFO_N_BASE_BINFOS): Relax sanity check.
14080
14081 2015-03-22  Martin Liska  <mliska@suse.cz>
14082             Jakub Jelinek  <jakub@redhat.com>
14083
14084         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
14085         masks that can potentially include a builtin.
14086         (ix86_add_new_builtins): Introduce fast filter for isa values
14087         that cannot trigger builtin inclusion.
14088
14089 2015-03-22  Martin Liska  <mliska@suse.cz>
14090
14091         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
14092         (sem_item::update_hash_by_local_refs): Likewise.
14093         (sem_variable::get_hash): Empty line is fixed.
14094         (sem_item_optimizer::execute): Include adding of hash references.
14095         (sem_item_optimizer::update_hash_by_addr_refs): New function.
14096         (sem_item_optimizer::build_hash_based_classes): Use local hash.
14097         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
14098         (sem_item::update_hash_by_local_refs): Likewise.
14099
14100 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
14101
14102         PR ipa/65502
14103         * ipa-comdats.c (enqueue_references): Walk through thunks.
14104         (ipa_comdats): Likewise.
14105         (set_comdat_group_1): New function.
14106
14107 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
14108
14109         PR ipa/65475
14110         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
14111         non-polymorphic
14112
14113 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
14114             Gerald Pfeifer  <gerald@pfeifer.com>
14115
14116         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
14117
14118 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
14119             Sandra Loosemore  <sandra@codesourcery.com>
14120
14121         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
14122         function parameter declaration.
14123         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
14124         Update arguments to nios2_adjust_call_address().
14125         (sibcall_internal): Rename from *sibcall.
14126         (sibcall_value_internal): Rename from *sibcall_value.
14127         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
14128         (nios2_large_got_address): Add target temp reg parameter.
14129         (nios2_got_address): Adjust call to nios2_large_got_address, add
14130         force_reg around it.
14131         (nios2_load_pic_address): Add target temp reg parameter, replace call
14132         to nios2_got_address with corresponding code.
14133         (nios2_legitimize_constant_address): Update call to
14134         nios2_load_pic_address.
14135         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
14136         to use temp reg for PIC loading purposes.
14137         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
14138         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
14139         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
14140
14141 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
14142
14143         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
14144         usage of "the @option{...}".
14145         (-Wopenmp-simd): Likewise.
14146         (-fsanitize-recover): Likewise.
14147         (-fsanitize-undefined-trap-on-error): Likewise.
14148         (-flto): Likewise.
14149         (tracer-dynamic-coverage-feedback): Likewise.
14150         (reorder-block-duplicate-feedback): Likewise.
14151         (loop-unroll-jam-size): Likewise.
14152         (-B): Likewise.
14153         (-I-): Likewise.
14154         (-mabs=legacy): Likewise.
14155         (-mupper-regs-df): Likewise.
14156         (-mupper-regs-sf): Likewise.
14157         (-mpointers-to-nested-functions): Likewise.
14158
14159 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
14160
14161         * doc/extend.texi (Cilk Plus Builtins): Add markup.
14162
14163 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
14164
14165         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
14166         additional index entries and cross-references.
14167         (-fchkp-check-incomplete-type): Likewise.
14168         (-fchkp-first-field-has-own-bounds): Likewise.
14169         (-fchkp-narrow-to-innermost-array): Likewise.
14170         (-fchkp-use-fast-string-functions): Likewise.
14171         (-fchkp-use-nochk-string-functions): Likewise.
14172         (-fchkp-use-static-const-bounds): Likewise.
14173         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
14174         (-fchkp-instrument-marked-only): Likewise.
14175         (-fchkp-use-wrappers): Likewise.
14176         (-static-libmpx): Likewise.
14177         (-static-libmpxwrappers): Likewise.
14178         * doc/extend.texi (bnd_legacy): Likewise.
14179         (bnd_instrument): Likewise.
14180         (bnd_variable_size): Likewise.
14181         (Pointer Bounds Checker builtins): Likewise.
14182
14183 2015-03-21  Tom de Vries  <tom@codesourcery.com>
14184
14185         PR tree-optimization/65458
14186         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
14187         * cgraph.h (cgraph_node): Add parallelized_function field.
14188         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
14189         (input_overwrite_node): Read parallelized_function field.
14190         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
14191         parallelized_function on cgraph_node for child_fn.
14192         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
14193         Remove include of gt-tree-parloops.h.
14194         (parallelized_functions): Remove static variable.
14195         (parallelized_function_p): Rewrite using parallelized_function field of
14196         cgraph_node.
14197         (create_loop_fn): Remove adding to parallelized_functions.
14198         * Makefile.in (GTFILES): Remove tree-parloops.c
14199
14200 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
14201
14202         PR rtl-optimization/64366
14203         * lra.c (lra_update_insn_regno_info): Consider regs in
14204         CALL_INSN_FUNCTION_USAGE memory.
14205
14206 2015-03-20  Richard Biener  <rguenther@suse.de>
14207
14208         PR middle-end/64715
14209         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
14210         for type comparison and gcc_checking_assert.
14211         (chrec_fold_plus_poly_poly): Likewise.
14212         (chrec_fold_multiply_poly_poly): Likewise.
14213         (chrec_convert_1): Likewise.
14214         * gimplify.c (gimplify_expr): Remove premature folding of
14215         &X + CST to &MEM[&X, CST].
14216
14217 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
14218
14219         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
14220         already is final.
14221         (ipa_inline): Recompute inline_failed codes.
14222         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
14223         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
14224         CIF_FINAL_ERROR.
14225
14226 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
14227
14228         PR rtl-optimization/60851
14229         * recog.c (constrain_operands): Accept a pseudo register before reload
14230         for LRA enabled targets.
14231
14232 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
14233
14234         PR target/65240
14235         * config/rs6000/predicates.md (easy_fp_constant): Remove special
14236         -ffast-math handling that kept non-0 constants live in the RTL
14237         until reload.  Remove logic testing the number of instructions it
14238         took to create a constant in a GPR that was never used, due to a
14239         test for soft-float earlier.
14240         (memory_fp_constant): Delete, no longer used.
14241
14242         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
14243         alternatives for loading non-0 constants into GPRs for hard
14244         floating point that is no longer needed due to changes in
14245         easy_fp_constant.  Add support for loading 0.0 into GPRs.
14246         (mov<mode>_hardfloat32): Likewise.
14247         (mov<mode>_hardfloat64): Likewise.
14248         (mov<mode>_64bit_dm): Likewise.
14249         (movtd_64bit_nodm): Likewise.
14250         (pre-reload move FP constant define_split): Delete define_split,
14251         since it is no longer used.
14252         (extenddftf2_internal): Remove GHF constraints that are not valid
14253         for extenddftf2.
14254
14255 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
14256
14257         PR rtl-optimization/63491
14258         * lra-constraints.c (check_and_process_move): Use src instead of
14259         sreg.  Remove some dead code.
14260
14261 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
14262
14263         PR ipa/65380
14264         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
14265         (sem_variable::merge): Likewise.
14266
14267 2015-03-19  Martin Liska  <mliska@suse.cz>
14268
14269         PR ipa/65465
14270         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
14271         all fields of cgraph_thunk_info.
14272
14273 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
14274
14275         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
14276         clone instrumented thunks.
14277
14278 2015-03-19  Richard Biener  <rguenther@suse.de>
14279
14280         Revert
14281         2015-03-10  Richard Biener  <rguenther@suse.de>
14282
14283         PR middle-end/63155
14284         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
14285         * tree-ssa-coalesce.c: Include timevar.h.
14286         (attempt_coalesce): Handle graph being NULL.
14287         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
14288         Split out abnormal coalescing to ...
14289         (perform_abnormal_coalescing): ... this function.
14290         (coalesce_ssa_name): Perform abnormal coalescing without computing
14291         live/conflict.
14292         (verify_ssa_coalescing_worker): New function.
14293         (verify_ssa_coalescing): Likewise.
14294
14295 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14296             Jakub Jelinek  <jakub@redhat.com>
14297
14298         PR sanitizer/65400
14299         * tsan.c (instrument_gimple): Clear tail call flag on
14300         calls.
14301
14302 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
14303
14304         PR sanitizer/65400
14305         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
14306         call in the return bb.
14307         (find_split_points): Add RETURN_BB argument, don't call
14308         find_return_bb.
14309         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
14310         if true append TSAN_FUNC_EXIT internal call after the call to
14311         the split off function.
14312         (execute_split_functions): Call find_return_bb here.
14313         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
14314         Adjust find_split_points and split_function calls.
14315
14316 2015-03-18  DJ Delorie  <dj@redhat.com>
14317
14318         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
14319         (iorqi3_virt): Likewise.
14320
14321 2015-03-18  Tom de Vries  <tom@codesourcery.com>
14322
14323         * tree-parloops.c (parallelize_loops): Make static.
14324         * tree-parloops.h (parallelize_loops): Remove extern declaration.
14325
14326 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
14327
14328         PR middle-end/64491
14329         Revert:
14330         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
14331
14332         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
14333         condition would be removed due to undefined behaviour.
14334
14335 2015-03-18  Martin Liska  <mliska@suse.cz>
14336
14337         PR ipa/65432
14338         * cgraph.c (cgraph_node::get_create): Remove unnecessary
14339         xstrdup_for_dump wrapper.
14340         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
14341         sem_item::name.
14342         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
14343         with xstrdup_for_dump.
14344         (sem_variable::equals): Likewise.
14345         (sem_item_optimizer::read_section): Use symtab_node::name instead of
14346         sem_item::name.
14347         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
14348         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
14349         symtab_node::asm_name with xstrdup_for_dump.
14350         (congruence_class::dump): Use symtab_node::name instead of
14351         sem_item::name.
14352         * ipa-icf.h (symtab_node::name): Remove.
14353         (symtab_node::asm_name): Likewise.
14354
14355 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
14356
14357         PR tree-optimization/65450
14358         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
14359         function.
14360         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
14361         it instead of duplicate_ssa_name_ptr_info.
14362
14363         PR target/65222
14364         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
14365
14366 2015-03-18  Richard Biener  <rguenther@suse.de>
14367
14368         * tree-data-ref.h (struct access_matrix): Remove.
14369         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
14370         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
14371         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
14372         (am_vector_index_for_loop): Likewise.
14373         (struct data_reference): Remove access_matrix member.
14374         (DR_ACCESS_MATRIX): Remove.
14375         (lambda_vector_new): Add comment.
14376         (lambda_matrix_new): Use XOBNEWVEC.
14377
14378 2015-03-18  Richard Biener  <rguenther@suse.de>
14379
14380         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
14381         (pass_ch::execute): Cleanup the CFG only if we did sth.
14382         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
14383
14384 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14385
14386         * expmed.c (synth_mult): Use std::swap instead of manually
14387         swapping algorithms.
14388
14389 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
14390
14391         PR target/65078
14392         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
14393
14394 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
14395
14396         PR target/65296
14397         * config/avr/avr.opt (-nodevicelib): New option.
14398         * doc/invoke.texi (AVR Options): Document it.
14399         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
14400         libgcc.a, libc.a, libm.a.
14401         * config/avr/specs.h: Same.
14402         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
14403         which don't (directly) depend on the device.  Print more help.
14404         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
14405         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
14406         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
14407         case of an error.
14408         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
14409         for specs file name.
14410         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
14411         * config/avr/avr-mcus.def: Adjust initializers and comments.
14412
14413 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
14414
14415         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
14416         DECL_ONE_ONLY to check if decl is one only.
14417         * ipa-split.c (consider_split): Limit splitt of one only functions.
14418
14419 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
14420
14421         PR tree-optimization/65427
14422         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
14423         functions.
14424         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
14425
14426 2015-03-16  Marek Polacek  <polacek@redhat.com>
14427
14428         * cgraph.h (add_new_static_var): Remove declaration.
14429         * varpool.c (add_new_static_var): Remove function.
14430
14431 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
14432
14433         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
14434         instead of vec<tree> * with vec_alloc and release for args.
14435         Adjust all users.
14436
14437         PR middle-end/65431
14438         * omp-low.c (delete_omp_context): Only splay_tree_delete
14439         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
14440         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
14441
14442 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
14443
14444         PR sanitizer/64820
14445         * cfgexpand.c (align_base): New function.
14446         (alloc_stack_frame_space): Call it.
14447         (expand_stack_vars): Align prev_frame to be sure
14448         data->asan_vec elements aligned properly.
14449
14450 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
14451
14452         PR middle-end/65409
14453         * expr.c (store_field): Do not do a direct block copy if the source is
14454         a PARALLEL with BLKmode.
14455
14456 2015-03-16  Tom de Vries  <tom@codesourcery.com>
14457
14458         PR middle-end/65414
14459         Revert:
14460         2015-03-12  Tom de Vries  <tom@codesourcery.com>
14461
14462         PR rtl-optimization/64895
14463         * lra-lives.c (check_pseudos_live_through_calls): Use
14464         actual_call_used_reg_set instead of call_used_reg_set, if available.
14465
14466 2015-03-16  Alan Modra  <amodra@gmail.com>
14467
14468         PR target/63150
14469         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
14470         Modify Z->r bswapdi splitter to use dest in place of scratch.
14471         In r->Z and Z->r bswapdi splitter rename word_high, word_low
14472         to word1, word2 and rearrange logic to suit.
14473         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
14474         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
14475         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
14476         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
14477         early clobber.
14478
14479 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
14480
14481         PR tree-optimization/65369
14482         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
14483         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
14484         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
14485
14486         PR tree-optimization/65418
14487         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
14488         are casts in the first PLUS_EXPR operand, ensure tbias and
14489         *totallowp are in the inner type.
14490
14491         PR rtl-optimization/65401
14492         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
14493         argument.  If true, adjust_address_nv of x with big-endian
14494         correction for the mode widening to GET_MODE (y).
14495         (make_field_assignment): Don't do MEM mode widening here.
14496         Use MEM_P instead of GET_CODE == MEM.
14497
14498 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
14499
14500         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
14501         the external decls.
14502
14503 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14504
14505         PR target/64600
14506         * config/arm/arm.c (arm_gen_constant, AND case): Use
14507         ARM_SIGN_EXTEND when constructing AND mask.
14508
14509 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14510
14511         * graph.c (print_graph_cfg): Make function names visible and append
14512         parenthesis to it.  Also make groups of basic blocks belonging to the
14513         same function visible.
14514
14515 2015-03-12  Richard Biener  <rguenther@suse.de>
14516
14517         PR middle-end/44563
14518         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
14519         to avoid quadratic behavior with inline expansion splitting blocks.
14520         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
14521         with the successor if the predecessor will be merged with it.
14522         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
14523         entry block with its successor.
14524
14525 2015-03-13  Richard Biener  <rguenther@suse.de>
14526
14527         PR middle-end/44563
14528         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
14529         (cleanup_tree_cfg_1): Do not call it.
14530         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
14531         (fixup_noreturn_call): Mark the stmt as control altering.
14532         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
14533         here.
14534         (pass_data_fixup_cfg): Produce a dump file.
14535         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
14536         (need_noreturn_fixup): New global.
14537         (pass_dominator::execute): Fixup queued noreturn calls.
14538         (optimize_stmt): Queue calls that became noreturn for fixup.
14539         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
14540         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
14541         (el_to_fixup): New global.
14542         (eliminate_dom_walker::before_dom_childre): Queue calls that
14543         became noreturn for fixup.
14544         (eliminate): Fixup queued noreturn calls.
14545         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
14546         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
14547         (substitute_and_fold_dom_walker::before_dom_children): Queue
14548         alls that became noreturn for fixup.
14549         (substitute_and_fold): Fixup queued noreturn calls.
14550
14551 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
14552
14553         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
14554         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
14555         are building; for methods check ODR type of class they belong to if
14556         they may lead to a polymorphic call.
14557         (sem_function::compare_polymorphic_p): Be bit smarter about testing
14558         when function may lead to a polymorphic call.
14559         (sem_function::compare_type_list): Remove.
14560         (sem_variable::equals): Update use of compatible_types_p.
14561         (sem_variable::parse_tree_refs): Remove.
14562         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
14563         cdtor.
14564         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
14565         matching here.
14566         (func_checker::compatible_polymorphic_types_p): Break out from ...
14567         (unc_checker::compatible_types_p): ... here.
14568         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
14569         Declare.
14570         (unc_checker::compatible_types_p): Update.
14571         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
14572         Remove.
14573
14574 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14575
14576         PR rtl-optimization/65235
14577         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
14578         When first element of vec_concat is const_int, calculate its size
14579         using second element.
14580
14581 2015-03-12  Richard Biener  <rguenther@suse.de>
14582
14583         PR middle-end/65270
14584         * fold-const.c (operand_equal_p): Fix ordering of resetting
14585         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
14586
14587 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14588
14589         * config/s390/s390.c (s390_reorg): Move code to output nops after label
14590         to s390_reorg ().
14591         (s390_asm_output_function_label): Likewise.
14592         * config/s390/s390.c (s390_asm_output_function_label):
14593         Fix function label alignment with -mhtopatch.
14594         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
14595         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
14596         ("nop_2_byte"): New define_insn.
14597         ("nop_4_byte"): Likewise.
14598         ("nop_6_byte"): Likewise.
14599         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
14600         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
14601
14602 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
14603
14604         PR target/65103
14605         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
14606         register.
14607
14608 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
14609
14610         PR target/65044
14611         * toplev.c (process_options): Restrict Pointer Bounds Checker
14612         usage with Address Sanitizer.
14613
14614 2015-03-12  Richard Biener  <rguenther@suse.de>
14615
14616         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
14617         to split on.
14618         * omp-low.c (expand_omp_taskreg): Split block before removing
14619         the stmt.
14620         (expand_omp_target): Likewise.
14621         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
14622         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
14623         stmt to split_block.
14624
14625 2015-03-12  Tom de Vries  <tom@codesourcery.com>
14626
14627         PR rtl-optimization/64895
14628         * lra-lives.c (check_pseudos_live_through_calls): Use
14629         actual_call_used_reg_set instead of call_used_reg_set, if available.
14630
14631 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
14632
14633         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
14634         (cgraph_node::remove): Likewise.
14635         (cgraph_node::get_untransformed_body): Likewise.
14636         * varpool.c (varpool_node::remove): Likewise.
14637         (varpool_node::get_constructor): Add sanity check.
14638
14639 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
14640
14641         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
14642         old GCC versions.
14643         (-fabi-compat-version): Likewise.
14644         (-ffriend-injection): Likewise.
14645         (-Wdeclaration-after-statement): Likewise.
14646         (-fomit-frame-pointer): Likewise.
14647         (-ftree-coalesce-inlined-vars): Likewise.
14648         (-fvisibility=): Likewise.
14649         * doc/extend.texi (Typeof): Likewise.
14650         (Zero Length): Likewise.
14651         (Escaped Newlines): Likewise.
14652         (Compound Literals): Likewise.
14653         (Function Attributes): Likewise.
14654         (Label Attributes): Likewise.
14655         (Type Attributes): Likewise.
14656         (Function Names): Likewise.
14657         (Other Builtins): Likewise.
14658         (Function Specific Option Pragmas): Likewise.
14659         (C++ Interface): Likewise.
14660
14661 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
14662
14663         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
14664
14665 2015-03-11  Marek Polacek  <polacek@redhat.com>
14666
14667         PR tree-optimization/65388
14668         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
14669
14670 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
14671
14672         PR target/65296
14673         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
14674         * configure: Regenerate.
14675         * config.in: Regenerate.
14676         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
14677         [-mn-flash]: Document it.
14678         [__AVR_ARCH__]: Document avrtiny.
14679
14680         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
14681         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
14682         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
14683
14684 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14685
14686         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
14687
14688 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
14689
14690         PR target/65242
14691         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
14692         allow reloads of PLUS in floating point/VSX registers.
14693
14694 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
14695
14696         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
14697         crypto_sha256_fast.
14698         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
14699
14700 2015-03-11  Richard Biener  <rguenther@suse.de>
14701
14702         PR tree-optimization/65310
14703         * tree-sra.c (build_ref_for_offset): Also preserve larger
14704         alignment.
14705
14706 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
14707
14708         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
14709
14710 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
14711
14712         PR target/65368
14713         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
14714         new define_expand.
14715         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
14716
14717 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
14718
14719         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
14720         (sem_function::equals_wpa): ... here.
14721
14722 2015-03-10  Marek Polacek  <polacek@redhat.com>
14723             Jakub Jelinek  <jakub@redhat.com>
14724
14725         PR sanitizer/65367
14726         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
14727         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
14728         separately.
14729
14730 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
14731
14732         PR target/65286
14733         * config/rs6000/t-linux: For powerpc64* target set
14734         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
14735
14736 2015-03-10  Richard Biener  <rguenther@suse.de>
14737
14738         PR middle-end/44563
14739         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
14740         for redirect_all_calls.
14741
14742 2015-03-10  Marek Polacek  <polacek@redhat.com>
14743
14744         * gdbinit.in (pcfun): Define and document.
14745
14746 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
14747
14748         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
14749         of libgomp-plugin.h.
14750         (find_target_compiler): Support a case when the path to gcc is
14751         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
14752         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
14753         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
14754         libgomp-plugin.h.
14755         (main): Use GCC_INSTALL_NAME as target_driver_name.
14756         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
14757         define.
14758         (mkoffload.o): Remove obsolete include path and defines.
14759         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
14760
14761 2015-03-10  Richard Biener  <rguenther@suse.de>
14762
14763         PR middle-end/63155
14764         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
14765         * tree-ssa-coalesce.c: Include timevar.h.
14766         (attempt_coalesce): Handle graph being NULL.
14767         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
14768         Split out abnormal coalescing to ...
14769         (perform_abnormal_coalescing): ... this function.
14770         (coalesce_ssa_name): Perform abnormal coalescing without computing
14771         live/conflict.
14772         (verify_ssa_coalescing_worker): New function.
14773         (verify_ssa_coalescing): Likewise.
14774
14775 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
14776
14777         PR target/65296
14778         * config.gcc (extra_options) [avr]: Remove.
14779         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
14780         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
14781         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
14782
14783         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
14784         (-mmcu=): Add Var and MissingArgError properties.
14785         (-march=): Remove.
14786         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
14787         * config/avr/t-multilib: Regenerate.
14788         * config/avr/specs.h: New file.
14789         * config/avr/driver-avr.c: New file.
14790         * config/avr/genopt.sh: Remove file.
14791         * config/avr/avr-tables.opt: Remove file.
14792         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
14793         * config/avr/avr-c.c: Same.
14794         * avr-arch.h: Same.
14795         (avr_current_device): Remove proto.
14796         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
14797         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
14798         (EXTRA_SPEC_FUNCTIONS): Define.
14799         (avr_devicespecs_file): New specs function proto.
14800         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
14801         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
14802         (avr_current_device): Remove definition and usage.
14803         (avr_set_core_architecture): New static function.
14804         (avr_option_override): Use it.
14805         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
14806         (mcu_name): New static array.
14807         (comparator, avr_archs_str, avr_mcus_str): New static functions.
14808         (avr_inform_devices, avr_inform_core_architectures): New functions.
14809         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
14810         (avrlibc.h) [WITH_AVRLIBC]: Include.
14811         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
14812         (print_mcu): Rewrite from scratch.
14813         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
14814         Forward to avr-specific specs defined in device-specs file.
14815         * config/avr/t-avr (driver-avr.o): New rule.
14816         (avr-devices.o): Depend on avr-arch.h.
14817         (avr-mcus): No more depend on avr-tables.opt.
14818         (avr-tables.opt): Remove rule.
14819         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
14820
14821 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
14822
14823         * c-family/c.opt (fchkp-use-wrappers): New.
14824         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
14825         (chkp_wrap_function): New.
14826         (chkp_build_instrumented_fndecl): Support wrapped
14827         functions.
14828         * doc/invoke.texi (-fcheck-pointer-bounds): New.
14829         (-fchkp-check-incomplete-type): New.
14830         (-fchkp-first-field-has-own-bounds): New.
14831         (-fchkp-narrow-bounds): New.
14832         (-fchkp-narrow-to-innermost-array): New.
14833         (-fchkp-optimize): New.
14834         (-fchkp-use-fast-string-functions): New.
14835         (-fchkp-use-nochk-string-functions): New.
14836         (-fchkp-use-static-bounds): New.
14837         (-fchkp-use-static-const-bounds): New.
14838         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
14839         (-fchkp-check-read): New.
14840         (-fchkp-check-write): New.
14841         (-fchkp-store-bounds): New.
14842         (-fchkp-instrument-calls): New.
14843         (-fchkp-instrument-marked-only): New.
14844         (-fchkp-use-wrappers): New.
14845         (-static-libmpx): New.
14846         (-static-libmpxwrappers): New.
14847
14848 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
14849
14850         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
14851         (CHKP_SPEC): Add wrappers library.
14852         * c-family/c.opt (static-libmpxwrappers): New.
14853
14854 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
14855
14856         * config/i386/linux-common.h (LIBMPX_LIBS): New.
14857         (LIBMPX_SPEC): New.
14858         (CHKP_SPEC): New.
14859         * gcc.c (CHKP_SPEC): New.
14860         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
14861         * c-family/c.opt (static-libmpx): New.
14862
14863 2015-03-10  Richard Biener  <rguenther@suse.de>
14864
14865         PR middle-end/44563
14866         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
14867         for compare_type.
14868         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
14869         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
14870         (cgraph_add_edge_to_call_site_hash): Likewise.
14871         (cgraph_node::get_edge): Likewise.
14872         (cgraph_edge::set_call_stmt): Likewise.
14873         (cgraph_edge::remove_caller): Likewise.
14874
14875 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
14876
14877         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
14878         (callee_saved_gpr_regs_size): ... this.
14879         (callee_saved_regs_first_regno): Rename to ...
14880         (callee_saved_first_gpr_regno): ... this.
14881         (callee_saved_regs_last_regno) Rename to ...
14882         (callee_saved_last_gpr_regno): ... this.
14883         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
14884         variables.
14885         (nds32_initial_elimination_offset): Likewise.
14886         (nds32_expand_prologue): Likewise.
14887         (nds32_expand_epilogue): Likewise.
14888         (nds32_expand_prologue_v3push): Likewise.
14889         (nds32_expand_epilogue_v3pop): Likewise.
14890         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
14891         Adjust renamed variables.
14892         (nds32_output_stack_pop): Likewise.
14893
14894 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14895
14896         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
14897         code in comment.
14898
14899 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
14900
14901         PR rtl-optimization/65321
14902         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
14903         than shift mode.
14904         * var-tracking.c (use_narrower_mode): Likewise.
14905
14906 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
14907
14908         PR tree-optimization/65355
14909         * varasm.c (notice_global_symbol): Do not produce RTL.
14910         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
14911         anchor.
14912         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
14913         check for section anchors.
14914
14915 2015-03-10  Alan Modra  <amodra@gmail.com>
14916
14917         PR target/65286
14918         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
14919         to be single-arch by default.  Set cpu_is_64bit for powerpc64
14920         given --with-cpu=native.
14921         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
14922         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
14923         and powerpc64le.
14924         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
14925         rs6000_isa_flags rather than TARGET_64BIT.
14926
14927 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
14928             Kaz Kojima  <kkojima@gcc.gnu.org>
14929
14930         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
14931
14932 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
14933
14934         PR lto/65361
14935         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
14936         on a TREE_BINFO, instead use BINFO_TYPE.
14937
14938 2015-03-09  Richard Biener  <rguenther@suse.de>
14939
14940         PR middle-end/65270
14941         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
14942         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
14943         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
14944         of that.  When comparing dereferences compare alignment.
14945         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
14946
14947 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
14948
14949         * ipa-inline-analysis.c (check_callers): Check
14950         node->can_remove_if_no_direct_calls_and_refs_p.
14951         (growth_likely_positive): Reorganize to call
14952         can_remove_if_no_direct_calls_p later.
14953         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
14954         will_be_removed_from_program_if_no_direct_calls_p): Add
14955         will_inline parameter.
14956         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
14957         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
14958         Handle inliner case correctly.
14959
14960 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14961
14962         PR tree-optimization/63743
14963         * cfgexpand.c (reorder_operands): Also reorder if only second operand
14964         had its definition forwarded by TER.
14965
14966 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
14967
14968         PR lto/65316
14969         * ipa-utils.h (types_odr_comparable): Add strict argument.
14970         * ipa-devirt.c: Fix whitespace;
14971         (odr_hasher): Remove.
14972         (odr_name_hasher, odr_vtable_hasher): New hashers.
14973         (can_be_name_hashed_p): New predicate.
14974         (hash_type_name): remove.
14975         (hash_odr_name): New.
14976         (odr_name_hasher::hash): new.
14977         (can_be_vtable_hashed_p): New.
14978         (hash_odr_vtable): New.
14979         (odr_vtable_hasher::hash): New.
14980         (types_same_for_odr): Add strict parameter.
14981         (types_odr_comparable): Likewise.
14982         (odr_name_hasher::equal): New.
14983         (odr_vtable_hasher::equal): New.
14984         (odr_name_hasher::remove): New.
14985         (odr_hash_type): Change to hash_table<odr_name_hasher>.
14986         (odr_vtable_hash_type): New.
14987         (odr_vtable_hash): New.
14988         (odr_subtypes_equivalent_p): Do strict comparsion.
14989         (add_type_duplicate): Merge type names; cleanup; avoid type
14990         duplicates.
14991         (register_odr_type): Initialize vtable hash.
14992         (build_type_inheritance_graph): Likewise
14993         (get_odr_type): Reorg to use two hashes.
14994         (dump_possible_polymorphic_call_targets): Move sanity check after debug
14995         output.
14996         (ipa_devirt): Dump type_inheritance_graph.
14997         (types_same_for_odr): Add strict mode.
14998
14999 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
15000
15001         PR ipa/65334
15002         * cgraph.h (symtab_node): Add definition_alignment,
15003         can_increase_alignment_p and increase_alignment.
15004         * symtab.c (symtab_node::can_increase_alignment_p,
15005         increase_alignment_1, symtab_node::increase_alignment,
15006         symtab_node::definition_alignment): New.
15007         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
15008         can_increase_alignment_p.
15009         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
15010         * tree-vect-stmts.c (ensure_base_align): Likewise.
15011         * varasm.c (function_section_1): Use definition_alignment.
15012         (assemble_start_function): Likewise.
15013         (emit_local): likewise.
15014         (build_constant_desc): Likewsie.
15015         (output_constant_def_contents): Likewise.
15016         (place_block_symbol): Likewise.
15017         (output_object_block): Likewise.
15018
15019 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
15020
15021         PR ipa/65316
15022         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
15023         when outputting debug.
15024
15025 2015-03-07  Marek Polacek  <polacek@redhat.com>
15026             Martin Uecker  <uecker@eecs.berkeley.edu>
15027
15028         PR sanitizer/65280
15029         * doc/invoke.texi: Update description of -fsanitize=bounds.
15030
15031 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
15032
15033         * tree-ssa-phiopt.c (neg_replacement): Remove.
15034         (tree_ssa_phiopt_worker): Remove negate optimization.
15035
15036 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
15037
15038         PR ipa/65302
15039         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
15040
15041 2015-03-06  Richard Biener  <rguenther@suse.de>
15042
15043         PR middle-end/64928
15044         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
15045         and liveout_obstack members.
15046         (calculate_live_on_exit): Remove.
15047         (calculate_live_ranges): Change declaration.
15048         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
15049         (new_tree_live_info): Adjust.
15050         (calculate_live_ranges): Delete livein when not wanted.
15051         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
15052         Deal with partly deleted live info.
15053         (loe_visit_block): Remove temporary bitmap by using
15054         bitmap_ior_and_compl_into.
15055         (live_worklist): Adjust accordingly.
15056         (calculate_live_on_exit): Make static.
15057         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
15058         we do not need livein.
15059
15060 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
15061
15062         * real.c (real_from_string): Fix typo in assertion.
15063
15064 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
15065
15066         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
15067         the patch.
15068
15069 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
15070
15071         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
15072
15073 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
15074
15075         PR target/64342
15076         * lra-assigns.c (find_hard_regno_for): Rename to
15077         find_hard_regno_for_1.  Add a new parameter.
15078         (find_hard_regno_for): New function using find_hard_regno_for_1.
15079
15080 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15081
15082         PR rtl-optimization/65067
15083         * expmed.c (store_bit_field, extract_bit_field): Reworked the
15084         strict volatile bitfield handling.
15085
15086 2015-03-05  Martin Liska  <mliska@suse.cz>
15087
15088         PR ipa/65318
15089         * ipa-icf.c (sem_variable::equals): Compare variables types.
15090
15091 2015-03-05  Richard Henderson  <rth@redhat.com>
15092
15093         PR target/65121
15094         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
15095         correctly check weak symbol binding.
15096
15097 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
15098
15099         PR middle-end/65315
15100         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
15101         needed alignment.
15102
15103 2015-03-05  Martin Liska  <mliska@suse.cz>
15104
15105         * ipa-inline.c (inline_small_functions): Set default value to
15106         prevent warning during bootstrap.
15107         * tree.h: Add pragma guard that ignores false positives during
15108         bootstrap.
15109
15110 2015-03-05  Richard Biener  <rguenther@suse.de>
15111
15112         PR tree-optimization/65310
15113         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
15114         Properly preserve alignment of the base of the access.
15115
15116 2015-03-05  Richard Biener  <rguenther@suse.de>
15117
15118         PR ipa/65270
15119         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
15120         Compare dependence info.
15121
15122 2015-03-05  Richard Biener  <rguenther@suse.de>
15123
15124         PR middle-end/65233
15125         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
15126         tree-into-ssa.h.
15127         (walk_ssa_copies): Revert last chage.  Instead do not walk
15128         SSA names registered for SSA update.
15129
15130 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
15131
15132         PR ipa/65270
15133         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
15134         vtable references for their containing type.
15135         (sem_function::equals_wpa): Compare TYPE_RESTRICT
15136         and type attributes.
15137
15138 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
15139
15140         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
15141         before negating it.
15142         * stor-layout.c (finalize_record_size): Revert latest change.
15143
15144 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
15145
15146         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
15147
15148 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
15149
15150         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
15151         for correct comdat handling.
15152         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
15153         Likewise.
15154         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
15155         (used_from_object_file_p_worker): Remove.
15156         (cgraph_node::only_called_directly_or_alised): Add
15157         used_from_object_file_p.
15158         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
15159         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
15160         can_remove_if_no_direct_calls_and_refs_p.
15161
15162 2015-03-04  Nick Clifton  <nickc@redhat.com>
15163
15164         * config/rl78/rl78.h (enum reg_class): Remove real registers from
15165         General register class.
15166         * config/rl78/rl78-real.md: Replace general register constraints
15167         with real+virtual register constraints.
15168
15169 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15170
15171         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
15172         from checking for -mhtm option.
15173
15174 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
15175
15176         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
15177         (struct ipa_sra_check_caller_data): Add has_thunk field.
15178         (ipa_sra_check_caller): Check for thunk.
15179         (ipa_sra_preliminary_function_checks): Give up on function with
15180         thunks.
15181         (ipa_early_sra): Use call_for_symbol_and_aliases.
15182
15183 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
15184
15185         PR target/65249
15186         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
15187         called for __stack_chk_guard symbol.
15188
15189 2015-03-03  DJ Delorie  <dj@redhat.com>
15190
15191         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
15192         inc/dec.
15193         (*addhi3_real): Likewise.
15194         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
15195         pattern to match incrementing memory.
15196         * config/rl78/predicates.md (rl78_1_2_operand): New.
15197         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
15198         it's the same and only mem.
15199         (rl78_alloc_physical_registers_op2): If there's effectively only
15200         one MEM, transcode it into HL.
15201         (rl78_far_p): Reject addresses that aren't legitimate.
15202
15203 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
15204
15205         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
15206         negating it.
15207
15208         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
15209
15210 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
15211
15212         Implement call0 ABI for xtensa
15213         * config/xtensa/constraints.md ("a" constraint): Include stack
15214         pointer in case of call0 ABI.
15215         ("q" constraint): Make empty in case of call0 ABI.
15216         ("D" constraint): Include stack pointer in case of call0 ABI.
15217         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
15218         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
15219         prototypes.
15220         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
15221         variable.
15222         (xtensa_regno_to_class): Make it a local variable in the
15223         function xtensa_regno_to_class.
15224         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
15225         macro, function prototype and implementation.
15226         (reg_nonleaf_alloc_order): Make it a local variable in the
15227         function order_regs_for_local_alloc.
15228         (xtensa_conditional_register_usage): New function.
15229         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
15230         (xtensa_valid_move): Allow direct moves to stack pointer
15231         register in call0 ABI.
15232         (xtensa_setup_frame_addresses): Only spill register windows in
15233         windowed ABI.
15234         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
15235         call0 ABI respectively.
15236         (xtensa_function_arg_1): Only mark a7 register for copying in
15237         windowed ABI.
15238         (xtensa_call_save_reg): New function.
15239         (compute_frame_size): Add space for callee saved register
15240         storage to the frame size in call0 ABI.
15241         (xtensa_expand_prologue): Generate code to set up stack frame
15242         and save callee-saved registers in call0 ABI.
15243         (xtensa_expand_epilogue): New function.
15244         (xtensa_set_return_address): New function.
15245         (xtensa_return_addr): Calculate return address in call0 ABI.
15246         (xtensa_builtin_saveregs): Only mark a7 register for copying and
15247         emit copying code in windowed ABI.
15248         (order_regs_for_local_alloc): Add preferred register allocation
15249         order for non-leaf function in call0 ABI.
15250         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
15251         (xtensa_asm_trampoline_template): Add trampoline generation for
15252         call0 ABI.
15253         (xtensa_trampoline_init): Add trampoline initialization for
15254         call0 ABI.
15255         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
15256         functions.
15257         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
15258         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
15259         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
15260         ABI call-used registers.
15261         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
15262         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
15263         call0 ABI.
15264         (REG_CLASS_CONTENTS): Include all registers into the preferred
15265         reload registers set, adjust the set in the
15266         xtensa_conditional_register_usage.
15267         (xtensa_regno_to_class): Drop variable declaration.
15268         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
15269         function.
15270         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
15271         respectively.
15272         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
15273         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
15274         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
15275         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
15276         location in call0 ABI.
15277         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
15278         stack adjustment size when handling exception.
15279         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
15280         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
15281         definitions.
15282         ("return" pattern): Generate ret.n/ret in call0 ABI.
15283         ("epilogue" pattern): Expand epilogue.
15284         ("nonlocal_goto" pattern): Use default in call0 ABI.
15285         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
15286         emit eh_set_a0_* depending on ABI.
15287         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
15288         ("eh_set_a0_call0", "blockage"): New patterns.
15289
15290 2015-03-03  Martin Liska  <mliska@suse.cz>
15291
15292         PR ipa/65287
15293         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
15294
15295 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
15296
15297         PR 65138/target
15298         * config/rs6000/rs6000-tables.opt: Regenerate table.
15299
15300 2015-03-03  Renlin Li  <renlin.li@arm.com>
15301
15302         * doc/md.texi (@item ^): Change ? into ^.
15303
15304 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
15305
15306         * doc/tm.texi: Regenerated.
15307
15308 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
15309
15310         * builtins.c (expand_builtin_return_addr): Add
15311         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
15312         surrounding #ifdef.
15313         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
15314         definition to 1.
15315         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
15316         Likewise.
15317         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
15318         undefined.
15319         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
15320         paragraph.
15321
15322 2015-03-03  Martin Jambor  <mjambor@suse.cz>
15323             Eric Botcazou  <ebotcazou@adacore.com>
15324
15325         * tree-sra.c (ipa_sra_check_caller_data): New type.
15326         (has_caller_p): Removed.
15327         (ipa_sra_check_caller): New function.
15328         (ipa_sra_preliminary_function_checks): Use it.
15329
15330 2015-03-03  Martin Liska  <mliska@suse.cz>
15331
15332         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
15333         instead of if branch.
15334
15335 2015-03-03  Martin Liska  <mliska@suse.cz>
15336
15337         PR ipa/65282
15338         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
15339
15340 2015-03-23  Jeff Law  <law@redhat.com>
15341
15342         PR tree-optimization/65241
15343         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
15344         hash table if INSERT is true.
15345
15346 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
15347
15348         PR target/65296
15349         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
15350
15351 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
15352
15353         PR target/64331
15354         * config/avr/avr.c (context.h, tree-pass.h): Include them.
15355         (avr_pass_data_recompute_notes): New static variable.
15356         (avr_pass_recompute_notes): New class.
15357         (avr_register_passes): New static function.
15358         (avr_option_override): Call it.
15359
15360 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
15361
15362         Fix various problems with specs file generation.
15363
15364         PR target/65296
15365         * config.gcc (extra_gcc_objs) [avr]: Remove.
15366         * config/avr/driver-avr.c: Remove file.
15367         * config/avr/t-avr (driver-avr.o): Remove rule.
15368         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
15369         INCLUDES to build.  Depend on TM_H.
15370         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
15371         build warnings.  Fix non-matching types and non-existing %-codes.
15372         (tm.h): Include.
15373         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
15374         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
15375         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
15376         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
15377         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
15378         (LIBGCC_SPEC): Remove definitions.
15379
15380 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
15381
15382         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
15383         to create a register in testing mode.
15384
15385 2015-03-03  Martin Liska  <mliska@suse.cz>
15386             Jan Hubicka  <hubicka@ucw.cz>
15387
15388         PR ipa/65263
15389         * cgraph.c (cgraph_node::has_thunk_p): New function.
15390         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
15391         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
15392         (sem_function::merge): Assert is changed.
15393
15394 2015-03-03  Martin Liska  <mliska@suse.cz>
15395             Martin Jambor  <mjambor@suse.cz>
15396
15397         PR ipa/65087
15398         * ipa-icf.c (sem_item_optimizer::execute): Change function
15399         return value to boolean.
15400         (sem_item_optimizer::merge_classes): Likewise.
15401         (ipa_icf_driver): Return TODO_remove_functions in case there's
15402         a merge operation processed.
15403         * ipa-icf.h: Change function return value to boolean.
15404
15405 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
15406
15407         PR 65138/target
15408         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
15409         processor type for 64-bit little endian PowerPC.
15410
15411         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
15412         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
15413         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
15414         printing built-in mask so it does not pass NULL pointers.
15415
15416         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
15417         -mcpu=powerpc64le.
15418
15419 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
15420
15421         PR target/58158
15422         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
15423         !ISA_HAS_FP_CONDMOVE.
15424
15425 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
15426
15427         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
15428         reload_completed.
15429
15430 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
15431
15432         * doc/invoke.texi (Options for Code Generation Conventions):
15433         Fix URL of DSO paper.
15434
15435 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
15436
15437         PR ipa/65130
15438         * ipa-inline.c (check_callers): Looks for recursion.
15439         (inline_to_all_callers): Give up on uninlinable or recursive edges.
15440         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
15441         summary of inline clones.
15442         (do_estimate_growth_1): Fix recursion check.
15443
15444 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
15445
15446         PR ipa/64988
15447         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
15448         comdat groups.
15449
15450 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
15451             Aldy Hernandez  <aldyh@redhat.com>
15452
15453         PR lto/65276
15454         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
15455         when checking TYPE_BINFO.
15456
15457 2015-03-02  Richard Biener  <rguenther@suse.de>
15458
15459         PR ipa/65270
15460         * ipa-icf-gimple.c: Include builtins.h.
15461         (func_checker::compare_memory_operand): Compare base alignment.
15462
15463 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
15464
15465         PR target/65184
15466         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
15467         are never passed by reference.
15468
15469 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
15470
15471         PR target/65183
15472         * tree-chkp.c (chkp_check_lower): Don't check against
15473         zero bounds for already instrumented functions.
15474         (chkp_check_upper): Likewise.
15475         (chkp_fini): Clean pass local data to avoid wrong reusage.
15476
15477 2015-02-28  Martin Liska  <mliska@suse.cz>
15478             Jan Hubicka  <hubicka@ucw.cz>
15479
15480         * ipa-icf.c (sem_variable::equals): Improve debug output;
15481         get variable constructor.
15482         (sem_variable::parse): Do not filter out too early; give up on
15483         volatile and register vars.
15484         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
15485         variables.
15486         * ipa-icf.h (sem_variable::init): Do not set ctor.
15487         (sem_variable::ctor): Remove.
15488
15489 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
15490
15491         PR middle-end/65233
15492         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
15493
15494 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
15495
15496         * ipa-icf.c: Include stor-layout.h
15497         (sem_function::compare_cgraph_references): Rename to ...
15498         (sem_item::compare_cgraph_references): ... this one.
15499         (sem_variable::equals_wpa): New function
15500         (sem_variable::equals): Do not check stuff already verified by
15501         equals_wpa.
15502         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
15503         * ipa-icf.h (sem_item): Add compare_cgraph_references.
15504         (sem_function): Remove compare_cgraph_references.
15505         (sem_variable): Turns equals_wpa into non-inline.
15506
15507 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
15508
15509         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
15510         (sem_item::add_expr): New function.
15511         (sem_function::hash_stmt): Handle operands of most statements.
15512         (sem_variable::get_hash): Hash the actual constructor.
15513         * ipa-icf.h (sem_item): Add add_expr.
15514         (sem_function): Update prototype of hash_stmt
15515
15516 2015-02-28  Martin Liska  <mliska@suse.cz>
15517             Jan Hubicka  <hubicka@ucw.cz>
15518
15519         PR ipa/65245
15520         * ipa-icf-gimple.c (func_checker::compare_function_decl):
15521         Remove.
15522         (func_checker::compare_variable_decl): Skip symtab vars.
15523         (func_checker::compare_cst_or_decl): Update.
15524         * ipa-icf.c (sem_function::parse): Do not consider aliases.
15525         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
15526         use correct symtab predicates.
15527         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
15528         (sem_variable::parse):  Update comment.
15529         (sem_item_optimizer::build_graph): Consider ultimate aliases
15530         for references.
15531
15532 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
15533
15534         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
15535         of OBJ_TYPE_REF.
15536
15537 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
15538
15539         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
15540         (sem_variable::merge) Likewise.
15541
15542 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
15543
15544         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
15545         target; also match flag_ipa_devirt.
15546
15547 2015-03-01  Martin Liska  <mliska@suse.cz>
15548             Jan Hubicka  <hubicka@ucw.cz>
15549
15550         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
15551         Validate variable alignment.
15552         * ipa-icf.c (sem_function::equals_private): Be more precise
15553         about non-common function attributes.
15554         (sem_variable::equals): Likewise.
15555
15556 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
15557
15558         PR ipa/65237
15559         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
15560         across COMDAT group boundary.
15561
15562 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
15563
15564         PR ipa/65232
15565         * ipa-icf.c (clear_decl_rtl): New function.
15566         (sem_function::merge): Clear RTL before forming alias.
15567         (sem_variable::merge): Clear RTL before forming alias.
15568
15569 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
15570
15571         PR ipa/65236
15572         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
15573
15574 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
15575
15576         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
15577         to neon_to_gp<q>.
15578
15579 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
15580
15581         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
15582         a typo in the description.
15583
15584 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
15585
15586         PR target/64317
15587         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
15588         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
15589         * lra-constraints.c: Include "params.h".
15590         (EBB_PROBABILITY_CUTOFF): Use
15591         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
15592         (lra_inheritance): Use '<' instead of '<=' for
15593         EBB_PROBABILITY_CUTOFF.
15594         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
15595         Document change.
15596
15597 2015-02-27  Martin Liska  <mliska@suse.cz>
15598
15599         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
15600         vector length condition.
15601
15602 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
15603
15604         * doc/extend.texi (x86 transactional memory intrinsics):
15605         Reorganize discussion of _xbegin.  Clarify that the return
15606         value is a bit mask.  Expand example and move to end of section.
15607
15608 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
15609             Aldy Hernandez  <aldyh@redhat.com>
15610
15611         PR rtl-optimization/65220
15612         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
15613
15614 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
15615
15616         PR target/65032
15617         * lra-remat.c (update_scratch_ops): New.
15618         (do_remat): Call it.
15619         * lra.c (lra_register_new_scratch_op): New. Take code from ...
15620         (remove_scratches): ... here.
15621         * lra-int.h (lra_register_new_scratch_op): New prototype.
15622
15623 2015-02-27  Marek Polacek  <polacek@redhat.com>
15624
15625         PR c/65040
15626         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
15627         -Wformat-signedness anymore.
15628
15629 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15630
15631         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
15632         function.
15633         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
15634
15635 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15636
15637         * config/s390/s390.c (enum s390_builtin):
15638         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
15639         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
15640         (s390_init_builtins): Generate new builtin functions.
15641         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
15642         (s390_sfpc, s390_efpc): New pattern definitions.
15643
15644 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15645
15646         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
15647         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
15648         (s390_builtin_decls): New array.
15649         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
15650         (s390_builtin_decl): New function.
15651         (TARGET_BUILTIN_DECL): Define macro.
15652
15653 2015-02-27  Richard Biener  <rguenther@suse.de>
15654
15655         PR middle-end/63175
15656         * builtins.c (get_object_alignment_2): Make sure to re-apply
15657         the ANDed mask after recursing to its operand gets us a new
15658         misalignment bit position.
15659
15660 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
15661             Martin Liska  <mliska@suse.cz>
15662
15663         PR bootstrap/65150
15664         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
15665         Use address_matters_p.
15666         (redirect_all_callers, set_addressable): New functions.
15667         (sem_function::merge): Reorganize and fix merging issues.
15668         (sem_variable::merge): Likewise.
15669         (sem_variable::compare_sections): Remove.
15670         * common.opt (fmerge-all-constants, fmerge-constants): Remove
15671         Optimization flag.
15672         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
15673         redirect them.
15674         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
15675         decl is used.
15676         (address_matters_1): New function.
15677         (symtab_node::address_matters_p): New function.
15678         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
15679         check for merged flag.
15680         * cgraph.h (address_matters_p): Declare.
15681         (symtab_node::address_taken_from_non_vtable_p): Remove.
15682         (symtab_node::address_can_be_compared_p): New method.
15683         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
15684         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
15685         Remove.
15686         (comdat_can_be_unshared_p_1) Use address_matters_p.
15687         (update_vtable_references): Fix formating.
15688         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
15689         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
15690         * cgraphclones.c: Preserve merged and icf_merged flags.
15691
15692 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
15693
15694         * doc/extend.texi (Function Attributes): Fix spelling and typos.
15695         (Label Attributes): Likewise.
15696         (Cilk Plus Builtins): Likewise.
15697         (ARC SIMD Built-in Functions): Likewise.
15698         (ARM C Language Extensions (ACLE)): Likewise.
15699         (PowerPC Built-in Functions): Likewise.
15700         (PowerPC Hardware Transactional Memory Built-in Functions):
15701         Likewise.
15702
15703 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
15704
15705         PR tree-optimization/65216
15706         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
15707         new stmt and new SSA_NAME for lhs whenever the arguments have
15708         changed and weren't just swapped.  Fix comment typo.
15709
15710         PR tree-optimization/65215
15711         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
15712         for PDP endian targets.
15713         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
15714         Fix up formatting issues.
15715         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
15716         size is smaller than the original, adjust MEM_REF offset by the
15717         difference of sizes.  Use is_gimple_mem_ref_addr instead of
15718         is_gimple_min_invariant test to avoid adding address temporaries.
15719
15720 2015-02-26  Martin Liska  <mliska@suse.cz>
15721             Jan Hubicka  <hubicka@ucw.cz>
15722
15723         PR ipa/64693
15724         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
15725         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
15726         (sem_item_optimizer::process_cong_reduction): Include division by
15727         sensitive references.
15728         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
15729         * ipa-ref.c (ipa_ref::address_matters_p): New function.
15730         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
15731
15732 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
15733
15734         PR target/65192
15735         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
15736         Remove.
15737         * config/avr/avr.c: Same.
15738         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
15739         Refuse any constant address not in 0..0xbf.
15740         * config/avr/avr.md (*mov<mode>, *movsf): Remove
15741         tiny_valid_direct_memory_access_range from insn conditions.
15742         (mov<mode>): Don't special-case expansion of avrtiny addresses.
15743
15744 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
15745
15746         PR target/61142
15747         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
15748         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
15749         * config/sh/predicates.md (const_logical_operand): New predicate.
15750         * config/sh/sh.md: Add new peephole2 patterns.
15751
15752 2015-02-26  Marek Polacek  <polacek@redhat.com>
15753
15754         PR ipa/65008
15755         * ipa-inline.c (early_inliner): Recompute inline parameters.
15756
15757 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15758
15759         PR target/65171
15760         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
15761         instructions with TImode operands are included in the analysis.
15762
15763 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
15764
15765         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
15766         of an EDGE_FSM_THREAD.
15767
15768 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
15769
15770         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
15771
15772 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
15773
15774         PR debug/46102
15775         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
15776
15777 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
15778
15779         PR tree-optimization/65048
15780         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
15781         (thread_through_all_blocks): Call valid_jump_thread_path.
15782         Remove invalid FSM jump-thread paths.
15783
15784 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
15785
15786         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
15787         (ipa_write_optimization_summaries): Likewise.
15788         * tree-streamer.h: Include data-streamer.h.
15789         (streamer_mode_table): Declare extern variable.
15790         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
15791         * lto-streamer-out.c (lto_output_init_mode_table,
15792         lto_write_mode_table): New functions.
15793         (produce_asm_for_decls): Call lto_write_mode_table when streaming
15794         offloading LTO.
15795         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
15796         (lto_create_simple_input_block): Add mode_table argument to the
15797         lto_input_block constructors.
15798         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
15799         Likewise.
15800         * data-streamer-in.c (string_for_index): Likewise.
15801         * ipa-inline-analysis.c (inline_read_section): Likewise.
15802         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
15803         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
15804         * lto-streamer-in.c (lto_read_body_or_constructor,
15805         lto_input_toplevel_asms): Likewise.
15806         (lto_input_mode_table): New function.
15807         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
15808         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
15809         Use bp_pack_machine_mode.
15810         * real.h (struct real_format): Add name field.
15811         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
15812         (class lto_input_block): Add mode_table member.
15813         (lto_input_block::lto_input_block): Add mode_table_ argument,
15814         initialize mode_table.
15815         (struct lto_file_decl_data): Add mode_table field.
15816         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
15817         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
15818         unpack_ts_decl_common_value_fields,
15819         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
15820         * tree-streamer.c (streamer_mode_table): New variable.
15821         * real.c (ieee_single_format, mips_single_format,
15822         motorola_single_format, spu_single_format, ieee_double_format,
15823         mips_double_format, motorola_double_format,
15824         ieee_extended_motorola_format, ieee_extended_intel_96_format,
15825         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
15826         ibm_extended_format, mips_extended_format, ieee_quad_format,
15827         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
15828         decimal_single_format, decimal_double_format, decimal_quad_format,
15829         ieee_half_format, arm_half_format, real_internal_format): Add name
15830         field.
15831         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
15832
15833 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
15834
15835         PR target/65161
15836         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
15837         reordering for selective scheduling.
15838
15839 2015-02-26  Terry Guo  <terry.guo@arm.com>
15840
15841         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
15842         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
15843         (arm_arch_no_volatile_ce): Declare new global variable.
15844         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
15845         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
15846         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
15847         (TARGET_NO_VOLATILE_CE): New macro.
15848         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
15849         volatile memory access in IT block
15850
15851 2015-02-25  Kai Tietz  <ktietz@redhat.com>
15852
15853         PR tree-optimization/61917
15854         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
15855         that reduc_def_stmt is null.
15856
15857 2015-02-25  Martin Liska  <mliska@suse.cz>
15858
15859         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
15860         hard register variables.
15861
15862 2015-02-25  Kai Tietz  <ktietz@redhat.com>
15863
15864         PR target/64212
15865         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
15866         (symtab::noninterposable_alias): Likewise.
15867
15868 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
15869
15870         PR target/65167
15871         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
15872         bounds registers.
15873         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
15874
15875 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
15876
15877         PR target/64997
15878         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
15879         as split condition; force split via '#' in output pattern.
15880
15881 2015-02-25  Richard Biener  <rguenther@suse.de>
15882             Kai Tietz  <ktietz@redhat.com>
15883
15884         PR tree-optimization/61917
15885         * tree-vect-loop.c (vectorizable_reduction): Allow
15886         vect_internal_def without reduction to exit graceful.
15887
15888 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
15889
15890         PR target/65196
15891         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
15892         only with NONDEBUG_INSN_P.
15893
15894 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
15895
15896         Use variadic macros with avr-log.c.
15897
15898         * config/avr/avr-protos.h (avr_vdump): New prototype.
15899         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
15900         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
15901         * config/avr/avr-log.c: Adjust comments.
15902         (avr_vdump): New function.
15903         (avr_vadump): Pass caller as 2nd argument instead of format string.
15904         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
15905         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
15906
15907 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
15908
15909         PR lto/64374
15910         * target.def (target_option_stream_in): New target hook.
15911         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
15912         targetm.target_option.post_stream_in if non-NULL.
15913         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
15914         * doc/tm.texi: Updated.
15915         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
15916         function.
15917         (TARGET_OPTION_POST_STREAM_IN): Redefine.
15918
15919 2015-02-24  Jeff Law  <law@redhat.com>
15920
15921         PR target/65117
15922         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
15923         of operand 0 and operand 2.
15924         (zero_cost_loop_end, loop_end): Similarly.
15925
15926 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
15927
15928         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
15929         CXX_MEM_STAT_INFO.
15930
15931 2015-02-24  DJ Delorie  <dj@redhat.com>
15932
15933         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
15934         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
15935         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
15936         instead of hardcoding SImode.
15937
15938 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
15939
15940         * omp-low.c (create_omp_child_function): Tag entrypoint
15941         functions with a special attribute.
15942
15943 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
15944
15945         PR target/65058
15946         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
15947
15948 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
15949
15950         PR rtl-optimization/65123
15951         * lra-remat.c (operand_to_remat): Check hard regs in insn
15952         definition too.
15953
15954 2015-02-24  Nick Clifton  <nickc@redhat.com>
15955
15956         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
15957         to the assembler.
15958
15959 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
15960
15961         PR libgomp/64625
15962         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
15963         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
15964         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
15965         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
15966         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
15967         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
15968         (BUILT_IN_GOACC_PARALLEL): Specify as
15969         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
15970         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
15971         * builtin-types.def
15972         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
15973         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
15974         Remove function types.
15975         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
15976         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
15977         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
15978         New function types.
15979
15980 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
15981
15982         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
15983
15984 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
15985
15986         PR tree-optimization/65170
15987         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
15988         if val[1] < 0, clear also val[2] and return 3.
15989
15990 2015-02-24  Alan Modra  <amodra@gmail.com>
15991
15992         PR target/65172
15993         * config/rs6000/rs6000.c (get_memref_parts): Only return true
15994         when *base is a reg.  Handle nested plus addresses.  Simplify
15995         pre_modify test.
15996
15997 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
15998
15999         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
16000         use natural alignment when optimizing for size.
16001
16002 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
16003
16004         PR target/65153
16005         * config/sh/sh.md (movsicc_true+3): Remove peephole.
16006         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
16007         * config/sh/sh.c (replace_n_hard_rtx): Remove.
16008
16009 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
16010
16011         PR fortran/63427
16012         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
16013         too big for a wide_int.  Implement missing wrapping operation.
16014
16015 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
16016
16017         PR target/65163
16018         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
16019         instead of const_int 4294901760.
16020
16021 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
16022
16023         * config/avr/t-avr: Fix typo in comment.
16024
16025 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
16026
16027         * doc/rtl.texi (fma): Clarify documentation.
16028
16029 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
16030
16031         PR debug/58123
16032         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
16033         over input_location.
16034
16035 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
16036
16037         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
16038         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
16039         restrict alignments to absolute_biggest_alignment.
16040         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
16041         Define.
16042         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
16043         * doc/tm.texi: Regenerate.
16044         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
16045
16046 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
16047
16048         PR target/64172
16049         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
16050
16051 2015-02-20  Richard Biener  <rguenther@suse.de>
16052
16053         PR tree-optimization/65136
16054         * tree-ssa-propagate.c: Include cfgloop.h.
16055         (replace_phi_args_in): Avoid replacing loop latch edge PHI
16056         arguments with constants.
16057
16058 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
16059             Martin Liska  <mliska@suse.cz>
16060
16061         PR target/63892
16062         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
16063         don't try to create_thunk if stdarg_p.  If
16064         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
16065         redirect_callers if possible.
16066         (sem_item_optimizer::execute): Call unregister_hooks here...
16067         (ipa_icf_driver): ... instead of here.
16068
16069 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16070
16071         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
16072         Mark operand 0 as earlyclobber in 2nd alternative.
16073         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
16074         Write negated shift amount into QI lowpart operand 0 and use it
16075         in the shift step.
16076         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
16077
16078 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
16079
16080         * cgraph.h (clone_function_name_1): Declare.
16081         * cgraphclones.c (clone_function_name_1): New function.
16082         (clone_function_name): Use it.
16083         * lto-partition.c: Include "stringpool.h".
16084         (must_not_rename, maybe_rewrite_identifier)
16085         (validize_symbol_for_target): New static functions.
16086         (privatize_symbol_name): Use must_not_rename.
16087         (promote_symbol): Call validize_symbol_for_target.
16088         (lto_promote_cross_file_statics): Likewise.
16089         (lto_promote_statics_nonwpa): Likewise.
16090
16091 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
16092
16093         PR target/64452
16094         * config/avr/avr.md (pushhi_insn): New insn.
16095         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
16096
16097 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
16098             Jakub Jelinek  <jakub@redhat.com>
16099
16100         * tree-streamer.c (preload_common_nodes): Don't preload
16101         TI_VA_LIST* for offloading.
16102         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
16103         in_lto_p.
16104
16105 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
16106
16107         * config/pa/pa.c (pa_emit_move_sequence): Always force
16108         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
16109         note on insn.
16110
16111         * config/pa/pa.c (pa_reloc_rw_mask): New function.
16112         (TARGET_ASM_RELOC_RW_MASK): Define.
16113         (pa_cannot_force_const_mem): Revert previous change.
16114
16115 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
16116             Jan Hubicka  <hubicka@ucw.cz>
16117
16118         PR ipa/65028
16119         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
16120         across jump functions.
16121
16122 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
16123
16124         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
16125
16126 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
16127
16128         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
16129
16130 2015-02-19  Richard Henderson  <rth@redhat.com>
16131
16132         PR middle-end/65074
16133         * varasm.c (default_binds_local_p_2): Don't test node->definition;
16134         test DECL_EXTERNAL independent of symtab_node.
16135
16136 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
16137
16138         PR lto/65012
16139         * varpool.c (varpool_node::get_constructor): Return early
16140         if this->lto_file_data is NULL.
16141
16142 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
16143
16144         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
16145         (rank_for_schedule_debug): Update.
16146         (ready_sort): Make static.  Move sorting logic to ...
16147         (ready_sort_debug, ready_sort_real): New static functions.
16148         (schedule_block): Sort both debug insns and real insns in preparation
16149         for ready list trimming.  Improve debug output.
16150         * sched-int.h (ready_sort): Remove global declaration.
16151
16152 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
16153
16154         * ipa-icf.c (sem_function::equals_private): Adjust.
16155         (sem_function::bb_dict_test): Take a vec<int> * instead of
16156         auto_vec<int>.
16157         * ipa-icf.h (bb_dict_test): Likewise.
16158
16159 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
16160
16161         PR gcov-profile/64634
16162         * tree-eh.c (frob_into_branch_around): Fix up typos
16163         in function comment.
16164         (lower_catch): Put eh_seq resulting from EH lowering of
16165         the cleanup sequence after the cleanup rather than before it.
16166
16167 2015-02-18  Tom de Vries  <tom@codesourcery.com>
16168
16169         * common.opt (fstdarg-opt): New option.
16170         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
16171         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
16172         (@item -fstdarg-opt): New item.
16173
16174 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
16175
16176         PR target/65064
16177         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
16178         for common symbols.
16179
16180 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
16181
16182         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
16183         insn-modes.h.
16184         (ALL_HOST_OBJS): Add mkoffload.o.
16185         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
16186
16187 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
16188
16189         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
16190         (compare_virtual_tables): Be smarter about skipping typeinfos;
16191         do sane output on virtual table table mismatch.
16192         (warn_odr): Be ready for forward declarations of enums;
16193         output sane info on base mismatch and virtual table mismatch.
16194         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
16195         when only one type is polymorphic.
16196         (get_odr_type): Fix hashtable corruption.
16197         (dump_odr_type): Dump mangled names.
16198
16199 2015-02-18  Richard Biener  <rguenther@suse.de>
16200
16201         PR tree-optimization/65063
16202         * tree-predcom.c (determine_unroll_factor): Return 1 if we
16203         have replaced looparound PHIs.
16204
16205 2015-02-18  Martin Liska  <mliska@suse.cz>
16206
16207         * lto-streamer.c (lto_streamer_init): Encapsulate
16208         streamer_check_handled_ts_structures with checking macro.
16209
16210 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
16211
16212         PR ipa/65087
16213         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
16214         section if !implicit_section.
16215         (cgraph_node::create_version_clone_with_body): Likewise.
16216         * trans-mem.c (ipa_tm_create_version): Likewise.
16217
16218 2015-02-18  Richard Biener  <rguenther@suse.de>
16219
16220         PR tree-optimization/62217
16221         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
16222         into BIVs.
16223
16224 2015-02-18  Marek Polacek  <polacek@redhat.com>
16225
16226         PR sanitizer/65081
16227         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
16228         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
16229         is in range [-16K, -1].  Don't issue run-time error if
16230         (ptr > ptr + offset).
16231
16232 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
16233
16234         * doc/install.texi (nvptx-*-none): New section.
16235         * doc/invoke.texi (Nvidia PTX Options): Likewise.
16236         * config/nvptx/nvptx.opt: Update.
16237
16238         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
16239         (access_check): New functions, copied from
16240         config/i386/intelmic-mkoffload.c.
16241         (main): For non-installed testing, look in all COMPILER_PATHs for
16242         GCC_INSTALL_NAME.
16243
16244         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
16245
16246 2015-02-18  Andrew Pinski  <apinski@cavium.com>
16247             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
16248
16249         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
16250         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
16251
16252 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
16253
16254         * ipa-visibility.c (function_and_variable_visibility): Only
16255         check locality if node is not already local.
16256         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
16257         call_for_symbol_and_aliases instead of
16258         call_for_symbol_thunks_and_aliases.
16259         (ipa_inline): Likewise.
16260         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
16261         first walk aliases.
16262         * ipa.c (symbol_table::remove_unreachable_nodes): Use
16263         call_for_symbol_and_aliases.
16264         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
16265         (ipa_propagate_frequency_1): Use it; use opt_for_fn
16266         (ipa_propagate_frequency): Update.
16267         (ipa_profile): Add opt_for_fn gueards.
16268
16269 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
16270
16271         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
16272         * doc/invoke.texi (SH options): Document it.
16273         * config/sh/sh.c (sh_insn_length_adjustment): Check
16274         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
16275
16276 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
16277
16278         * common.opt (fipa-cp-alignment): New.
16279         * ipa-cp.c (ipcp_store_alignment_results): Check
16280         flag_ipa_cp_alignment.
16281         * opts.c (default_options_table): Enable -fipa-cp-alignment for
16282         -O2.
16283         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
16284         * doc/invoke.texi: Document -fipa-cp-alignment.
16285
16286 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
16287
16288         PR target/64793
16289         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
16290         to nil.  Adjust comments.
16291
16292 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
16293
16294         * ipa-visibility.c (function_and_variable_visibility): Only
16295         check locality if node is not already local.
16296         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
16297         call_for_symbol_and_aliases instead of
16298         call_for_symbol_thunks_and_aliases.
16299         (ipa_inline): Likewise.
16300         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
16301         first walk aliases.
16302         * ipa.c (symbol_table::remove_unreachable_nodes): Use
16303         call_for_symbol_and_aliases.
16304         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
16305         (ipa_propagate_frequency_1): Use it; use opt_for_fn
16306         (ipa_propagate_frequency): Update.
16307         (ipa_profile): Add opt_for_fn guards.
16308
16309 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
16310
16311         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
16312         skipping of "strange" tokens.
16313
16314 2015-02-17  Jeff Law  <law@redhat.com>
16315
16316         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
16317         obsolete comment.
16318
16319 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
16320
16321         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
16322         as forcing a HARD_DEP between instructions, thereby
16323         disallowing rewriting to break dependencies.
16324
16325 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
16326
16327         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
16328         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
16329         variables in boundary that have no inlitalizer encoded and are
16330         not aliases.
16331         * varasm.c (default_binds_local_p_2): External definitions do not
16332         count as definitions here.
16333
16334 2015-02-16  Jeff Law  <law@redhat.com>
16335
16336         PR tree-optimization/64823
16337         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
16338         statements.
16339         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
16340         threading through blocks with PHIs, but no statements.
16341         (thread_through_normal_block): Distinguish between blocks where
16342         we did not process all the statements and blocks with no statements.
16343
16344 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
16345             James Greenhalgh  <james.greenhalgh@arm.com>
16346
16347         PR ipa/64963
16348         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
16349         section if not linkonce.  Fix up formatting.
16350         (cgraph_node::create_version_clone_with_body): Copy section.
16351         * trans-mem.c (ipa_tm_create_version): Likewise.
16352
16353 2015-02-16  Richard Biener  <rguenther@suse.de>
16354
16355         PR tree-optimization/65077
16356         * tree-ssa-structalias.c (get_constraint_for_1): Handle
16357         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
16358         (find_func_aliases): Allow float values to carry pointers again.
16359
16360 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
16361
16362         * doc/install.texi (Specific): Reorder targets list to put
16363         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
16364         from the top menu.
16365
16366 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
16367             David Edelsohn  <dje.gcc@gmail.com>
16368
16369         PR target/65058
16370         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
16371         mapping class to external variable or function reference.
16372         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
16373         mapping class.
16374
16375 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
16376
16377         PR target/53348
16378         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
16379         ASM_WEAKEN_DECL if defined.
16380
16381 2015-02-16  Richard Biener  <rguenther@suse.de>
16382
16383         PR lto/65015
16384         * varasm.c (default_file_start): For LTO produced units
16385         emit <artificial> as file directive.
16386
16387 2015-02-16  Richard Biener  <rguenther@suse.de>
16388
16389         PR tree-optimization/63593
16390         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
16391         stmts and releasing SSA names until...
16392         (execute_pred_commoning): ... after processing all chains.
16393
16394 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
16395
16396         PR ipa/65059
16397         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
16398         external functions.
16399
16400 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
16401
16402         * doc/bugreport.texi: Adjust section titles throughout the file
16403         to use "Title Case".
16404         * doc/extend.texi: Likewise.
16405         * doc/gcov.texi: Likewise.
16406         * doc/implement-c.texi: Likewise.
16407         * doc/implement-cxx.texi: Likewise.
16408         * doc/invoke.texi: Likewise.
16409         * doc/objc.texi: Likewise.
16410         * doc/standards.texi: Likewise.
16411         * doc/trouble.texi: Likewise.
16412
16413 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
16414
16415         * cgraph.h (symtab_node::has_aliases_p): Simplify.
16416         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
16417         * tree.c (lookup_binfo_at_offset): Make static.
16418         (get_binfo_at_offset): Do not shadow offset; add explanatory
16419         comment.
16420
16421 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
16422
16423         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
16424         for all floading point loads and stores except those using a register
16425         index address.
16426         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
16427         to a register.
16428
16429 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
16430
16431         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
16432         (do_estimate_growth_1): Record if any uninlinable edge was seen.
16433         (estimate_growth): Handle uninlinable edges correctly.
16434         (check_callers): New.
16435         (growth_likely_positive): Handle aliases correctly.
16436
16437 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
16438
16439         * ipa-chkp.c: Use iterate_direct_aliases.
16440         * symtab.c (resolution_used_from_other_file_p): Move inline.
16441         (symtab_node::create_reference): Fix formating.
16442         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
16443         (symtab_node::iterate_reference): Move inline.
16444         (symtab_node::iterate_referring): Move inline.
16445         (symtab_node::iterate_direct_aliases): Move inline.
16446         (symtab_node::used_from_object_file_p_worker): Inline into ...
16447         (symtab_node::used_from_object_file_p): ... this one; move inline.
16448         (symtab_node::call_for_symbol_and_aliases): Move inline;
16449         use iterate_direct_aliases.
16450         (symtab_node::call_for_symbol_and_aliases_1): New method.
16451         (cgraph_node::call_for_symbol_and_aliases): Move inline;
16452         use iterate_direct_aliases.
16453         (cgraph_node::call_for_symbol_and_aliases_1): New method.
16454         (varpool_node::call_for_node_and_aliases): Rename to ...
16455         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
16456         use iterate_direct_aliases.
16457         (varpool_node::call_for_symbol_and_aliases_1): New method.
16458         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
16459         (ipa_discover_readonly_nonaddressable_var): Update.
16460         * ipa-devirt.c: Fix formating.
16461         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
16462         Move inline.
16463         (cgraph_node::call_for_symbol_and_aliases): Move inline.
16464         (cgraph_node::call_for_symbol_and_aliases_1): New function..
16465         * cgraph.h (used_from_object_file_p_worker): Remove.
16466         (resolution_used_from_other_file_p): Move inline.
16467         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
16468         (symtab_node::iterate_reference): Move inline.
16469         (symtab_node::iterate_referring): Move inline.
16470         (symtab_node::iterate_direct_aliases): Move inline.
16471         (symtab_node::used_from_object_file_p_worker): Inline into ...
16472         (symtab_node::used_from_object_file_p): Move inline.
16473         * tree-emutls.c (ipa_lower_emutls): Update.
16474         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
16475         (varpool_node::call_for_node_and_aliases): Remove.
16476
16477 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
16478
16479         PR tree-optimization/62209
16480         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
16481         op == range->exp, insert seq and gimplified code after labels
16482         instead of after the phi.
16483
16484 2015-02-13  Jeff Law  <law@redhat.com>
16485
16486         PR bootstrap/65060
16487         Revert my change for tree-optimization/64823.
16488
16489 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
16490
16491         PR tree-optimization/65053
16492         * tree-ssa-phiopt.c (value_replacement): When moving assign before
16493         cond, either reset VR on lhs or set it to phi result VR.
16494
16495 2015-02-13  Jeff Law  <law@redhat.com>
16496
16497         PR tree-optimization/64823
16498         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
16499         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
16500         threading through blocks with PHIs, but no statements.
16501         (thread_through_normal_block): Distinguish between blocks where
16502         we did not process all the statements and blocks with no statements.
16503
16504         PR rtl-optimization/47477
16505         * match.pd (convert (plus/minus (convert @0) (convert @1): New
16506         simplifier to narrow arithmetic.
16507
16508 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
16509
16510         PR ipa/65028
16511         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
16512         polymorphic call info when type is not known to be preserved.
16513
16514 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
16515
16516         PR ipa/65028
16517         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
16518         (inline_call): Use it.
16519
16520 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
16521
16522         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
16523         GOMP_DEVICE_NVIDIA_PTX.
16524
16525 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
16526
16527         PR ipa/65034
16528         * stmt.c (emit_case_nodes): Use void_type_node instead of
16529         NULL_TREE as LABEL_DECL type.
16530
16531 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
16532
16533         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
16534         constraints.
16535         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
16536         symbolic references to data to be forced to constant memory on the
16537         SOM target.
16538
16539 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
16540
16541         PR tree-optimization/65002
16542         * tree-cfg.c (pass_data_fixup_cfg): Don't update
16543         SSA on start.
16544         * tree-sra.c (some_callers_have_no_vuse_p): New.
16545         (ipa_early_sra): Reject functions whose callers
16546         assume function is read only.
16547
16548 2015-02-13  Richard Biener  <rguenther@suse.de>
16549
16550         PR lto/65015
16551         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
16552         for LTO produced CUs.
16553
16554 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
16555
16556         PR tree-optimization/64705
16557         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
16558         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
16559         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
16560         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
16561         expand_simple_operations.
16562
16563 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
16564             Richard Henderson  <rth@redhat.com>
16565
16566         PR rtl/32219
16567         * cgraphunit.c (cgraph_node::finalize_function): Set definition
16568         before notice_global_symbol.
16569         (varpool_node::finalize_decl): Likewise.
16570         * varasm.c (default_binds_local_p_2): Rename from
16571         default_binds_local_p_1, add weak_dominate argument.  Use direct
16572         returns instead of assigning to local variable.  Unify varpool and
16573         cgraph paths via symtab_node.  Reject undef weak variables before
16574         testing visibility.  Reorder tests for simplicity.
16575         (default_binds_local_p): Use default_binds_local_p_2.
16576         (default_binds_local_p_1): Likewise.
16577         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
16578         via symtab_node.
16579         (default_elf_asm_output_external): Emit visibility when specified.
16580
16581 2015-02-13  Alan Modra  <amodra@gmail.com>
16582
16583         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
16584         code setting up r11 for out-of-line fp restore.
16585
16586 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
16587
16588         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
16589         (muser-mode): Likewise.
16590
16591 2015-02-13  Alan Modra  <amodra@gmail.com>
16592
16593         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
16594         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
16595
16596 2015-02-12  David Howells  <dhowells@redhat.com>
16597
16598         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
16599         warning.
16600         * tree-ssa-uninit.c (dump_predicates): Likewise.
16601         * opts.c (print_filtered_help): Likewise.
16602
16603 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
16604
16605         * dwarf2out.c (output_die): Use "%s", name instead of name to
16606         avoid -Wformat-security warning.
16607
16608         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
16609         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
16610         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
16611         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
16612
16613 2015-02-12  Jason Merrill  <jason@redhat.com>
16614
16615         * common.opt (-flifetime-dse): New.
16616
16617 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
16618
16619         PR sanitizer/65019
16620         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
16621
16622         PR tree-optimization/65014
16623         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
16624         use original second operand of arg0 or arg1 instead of
16625         that adjusted by STRIP_NOPS.
16626
16627 2015-02-11  Jeff Law  <law@redhat.com>
16628
16629         PR target/63347
16630         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
16631         that needs to be queued, just queue it for a single cycle.
16632
16633 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
16634
16635         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
16636         bodies of thunks; comment on why.
16637         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
16638         symbols are extern.
16639
16640 2015-02-11  Richard Henderson  <rth@redhat.com>
16641
16642         PR sanitize/65000
16643         * tree-eh.c (mark_reachable_handlers): Mark source and destination
16644         regions of __builtin_eh_copy_values.
16645
16646 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
16647
16648         PR middle-end/65003
16649         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
16650         ultimate alias is MEM with SYMBOL_REF satisfying
16651         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
16652         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
16653
16654 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
16655
16656         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
16657         "diagnostic-core.h".
16658         (main): Initialize progname, and call diagnostic_initialize.
16659
16660         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
16661         instead of __OPENMP_TARGET__.
16662
16663         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
16664         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
16665         hard-coding PTX_ID.
16666
16667 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
16668
16669         * doc/sourcebuild.texi (pie_enabled): Document.
16670
16671 2015-02-11  Martin Liska  <mliska@suse.cz>
16672
16673         PR ipa/64813
16674         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
16675         a return value for call to a function that is noreturn.
16676
16677 2015-02-11  Richard Biener  <rguenther@suse.de>
16678
16679         PR lto/65015
16680         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
16681         and -fresolution.
16682
16683 2015-02-11  Andrew Pinski  <apinski@cavium.com>
16684
16685         PR target/64893
16686         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
16687         Change the first argument type to size_type_node and add another
16688         size_type_node.
16689         (aarch64_simd_expand_builtin): Handle the new argument to
16690         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
16691         print an out when the first two arguments are not
16692         nonzero integer constants.
16693         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
16694         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
16695
16696 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
16697
16698         PR target/61925
16699         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
16700         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
16701         (ix86_set_current_function): Rewritten.
16702         (ix86_add_new_builtins): Temporarily clear current_target_pragma
16703         when creating builtin fndecls.
16704
16705 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
16706
16707         PR ipa/65005
16708         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
16709         function.
16710         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
16711         have no comdat group.
16712         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
16713         (lto_output_varpool_node): Always output alias info.
16714         (output_refs): Output refs of boundary aliases, too.
16715         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
16716         (output_symtab): Output call eges in thunks in boundary.
16717         (get_alias_symbol): Remove.
16718         (input_node, input_varpool_node): Do not special case weakrefs.
16719         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
16720         alias and thunks targets in the boundary; do not take removed symbols
16721         from their comdat groups.
16722         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
16723         (cgraph_node::global_info): Remove.
16724         (cgraph_node::rtl_info): Look through aliases and thunks.
16725         * cgrpah.h (global_info): Remove.
16726         (non_local_p): Remove.
16727
16728 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
16729             Sandra Loosemore  <sandra@codesourcery.com>
16730
16731         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
16732         to inline asm.  List dialects in proper order.
16733
16734 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
16735             Sandra Loosemore  <sandra@codesourcery.com>
16736
16737         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
16738
16739 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
16740
16741         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
16742         modified) reference to Solaris.
16743
16744 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
16745
16746         * doc/extend.texi (Extended Asm): Fix typos.
16747
16748 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
16749
16750         PR sanitizer/65004
16751         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
16752
16753 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
16754
16755         PR target/64661
16756         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
16757         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
16758         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
16759         * config/sh/constraints.md (Ara, Add): New constraints.
16760         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
16761         predicates.
16762         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
16763         atomic_mem_operand_0.  Don't use force_reg on the memory address.
16764         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
16765         Sra constraint.  Convert to insn_and_split.  Add workaround for
16766         PR 64974.
16767         (atomic_compare_and_swap<mode>_hard): Copy to
16768         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
16769         Use atomic_mem_operand_0 predicate.
16770         (atomic_compare_and_swap<mode>_soft_gusa,
16771         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
16772         AraAdd constraints.
16773         (atomic_compare_and_swap<mode>_soft_tcb,
16774         atomic_compare_and_swap<mode>_soft_imask,
16775         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
16776         atomic_mem_operand_0 predicate and SraSdd constraints.
16777         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
16778         constraint.
16779         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
16780         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
16781         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
16782         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
16783         force_reg on the memory address.
16784         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
16785         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
16786         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
16787         atomic_mem_operand_1 predicate and Sra constraint.
16788         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
16789         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
16790         Use atomic_mem_operand_1 predicate.
16791         (atomic_<fetchop_name><mode>_hard): Copy to
16792         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
16793         Use atomic_mem_operand_1 predicate.
16794         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
16795         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
16796         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
16797         insn_and_split.  Use atomic_mem_operand_1 predicate.
16798         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
16799         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
16800         Use atomic_mem_operand_1 predicate.
16801         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
16802         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
16803         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
16804         in generated insn with original mem operand before emitting the insn.
16805         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
16806         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
16807         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
16808         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
16809         Use atomic_mem_operand_1 predicate and AraAdd constraints.
16810         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
16811         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
16812         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
16813         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
16814         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
16815         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
16816         atomic_not_fetch<mode>_soft_tcb,
16817         atomic_<fetchop_name>_fetch<mode>_soft_imask,
16818         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
16819         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
16820         Use atomic_mem_operand_1 predicate and SraSdd constraints.
16821
16822 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
16823
16824         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
16825         and 3 earlyclobber operands.
16826
16827 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
16828
16829         * common.opt (fstack-reuse): Mark as optimization.
16830
16831 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
16832
16833         PR ipa/64982
16834         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
16835
16836 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
16837
16838         PR tree-optimization/64326
16839         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
16840
16841 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
16842
16843         PR gcov-profile/61889
16844         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
16845
16846 2015-02-10  Richard Biener  <rguenther@suse.de>
16847
16848         PR tree-optimization/64995
16849         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
16850         value we use is final.
16851         (visit_reference_op_store): Always valueize op.
16852         (visit_use): Properly valueize vuses.
16853
16854 2015-02-10  Richard Biener  <rguenther@suse.de>
16855
16856         PR tree-optimization/64909
16857         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
16858         pass a scalar-stmt count estimate to the cost model.
16859         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
16860
16861 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
16862
16863         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
16864         enabled by default together with var-tracking.
16865
16866 2015-02-10  Nick Clifton  <nickc@redhat.com>
16867
16868         * config/rl78/rl78.c: Remove DIV attribute code accidentally
16869         included in previous rl78 commit.
16870
16871 2015-02-10  Richard Biener  <rguenther@suse.de>
16872
16873         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
16874         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
16875         return the bitpack.
16876
16877 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
16878
16879         PR gcov-profile/61889
16880         * config.in: regenerate.
16881         * configure.in: Likewise.
16882         * configure.ac: Check for ftw.h.
16883         * gcov-tool.c: Check for ftw.h before using nftw.
16884
16885 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
16886
16887         PR lto/64076
16888         * ipa-visibility.c (update_visibility_by_resolution_info): Only
16889         assert when not in lto mode.
16890
16891 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
16892
16893         * ira-color.c (setup_left_conflict_sizes_p): Simplify
16894         initialization/assignment of conflict_size.
16895
16896 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
16897
16898         PR ipa/64978
16899         * ipa-cp.c (gather_caller_stats): Skip thunks.
16900         (propagate_constants_topo): Skip aliases.
16901
16902 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
16903
16904         PR target/64761
16905         * config/sh/sh.c (sh_option_override): Don't change
16906         -freorder-blocks-and-partition to -freorder-blocks even when
16907         unwinding is enabled.
16908         (sh_can_follow_jump): Return false if the followee jump is
16909         a crossing jump when -freorder-blocks-and-partition is specified.
16910         * config/sh/sh.md (*jump_compact_crossing): New insn.
16911
16912 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
16913             Kaz Kojima  <kkojima@gcc.gnu.org>
16914
16915         PR target/64761
16916         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
16917         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
16918         (sh_can_redirect_branch): Rename to ...
16919         (sh_can_follow_jump): ... this.  Constify argument types.
16920         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
16921         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
16922         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
16923         * doc/tm.texi: Regenerate.
16924
16925 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
16926
16927         PR sanitizer/64981
16928         * builtins.c (expand_builtin): Call targetm.expand_builtin
16929         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
16930
16931 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
16932
16933         PR ipa/61548
16934         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
16935
16936 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
16937
16938         PR ipa/63566
16939         * ipa-icf.c (set_local): New function.
16940         (sem_function::merge): Use it.
16941
16942 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
16943
16944         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
16945         (add_type_duplicate): Fix comparison of BINFOs.
16946
16947 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
16948
16949         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
16950         on getting VOID pointer.
16951
16952 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
16953
16954         PR target/64979
16955         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
16956         va_list escapes.
16957
16958 2015-02-09  Richard Biener  <rguenther@suse.de>
16959
16960         * genmatch.c (replace_id): Copy expr_type.
16961
16962 2015-02-09  Richard Biener  <rguenther@suse.de>
16963
16964         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
16965         (streamer_write_tree_bitfields): Declare.
16966         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
16967         properly unpack padding.
16968         (unpack_value_fields): Inline ...
16969         (streamer_read_tree_bitfields): ... here.
16970         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
16971         and properly add padding bits.
16972         (streamer_pack_tree_bitfields): Fold into ...
16973         (streamer_write_tree_bitfields): ... this new function,
16974         exposing the bitpack object.
16975         * lto-streamer-out.c (lto_write_tree_1): Call
16976         streamer_write_tree_bitfields.
16977
16978 2015-02-09  Richard Biener  <rguenther@suse.de>
16979
16980         PR tree-optimization/54000
16981         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
16982         (struct ivopts_data): Add loop_loc member.
16983         (tree_ssa_iv_optimize_loop): Dump loop location.
16984         (create_new_ivs): Likewise, also dump number of IVs generated.
16985
16986 2015-02-09  Martin Liska  <mliska@suse.cz>
16987
16988         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
16989         just if not yet registered.
16990         (ipa_icf_generate_summary): Register callgraph hooks.
16991
16992 2015-02-08  Andrew Pinski  <apinski@cavium.com>
16993
16994         * config/aarch64/aarch64.c (gty_dummy): Delete.
16995
16996 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
16997
16998         PR ipa/63566
16999         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
17000         (cgraph_node::local_p): Remove thunk related FIXME.
17001
17002 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
17003
17004         PR ipa/63566
17005         * i386.c (ix86_function_regparm): Look through aliases to see if callee
17006         is local and optimized.
17007         (ix86_function_sseregparm): Likewise; also use target's SSE math
17008         settings; error out instead of silently generating wrong code
17009         on mismatches.
17010         (init_cumulative_args): Look through aliases.
17011
17012 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
17013
17014         PR ipa/63566
17015         * ipa-split.c (execute_split_functions): Split if function has aliases.
17016
17017 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
17018
17019         PR ipa/63566
17020         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
17021         aliases before trying to expand it.
17022         (cgraph_node::expand_thunk): Fix formating.
17023
17024 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
17025
17026         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
17027         (Using Assembly Language with C): Expand introduction.
17028         (Basic Asm): Copy-edit.  Add more information about uses of
17029         basic asm.
17030         (Extended Asm): Copy-edit.  Document new escape syntax and
17031         %l[label] syntax.
17032         (Global Reg Vars): Copy-edit.
17033         (Local Reg Vars): Likewise.
17034
17035 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
17036
17037         PR debug/2714
17038         PR bootstrap/64256
17039         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
17040         (DBX_CONTIN_CHAR): Define.
17041
17042 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
17043             Brian Rzycki  <b.rzycki@samsung.com>
17044
17045         PR tree-optimization/64878
17046         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
17047         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
17048         Stop recursion at loop phi nodes after having visited a loop phi node.
17049
17050 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
17051
17052         * toplev.c (process_options): Change flag_ipa_ra before creating
17053         optimization_{default,current}_node.
17054
17055         PR ipa/64896
17056         * cgraphunit.c (cgraph_node::expand_thunk): If
17057         restype is not is_gimple_reg_type nor the thunk_fndecl
17058         returns aggregate_value_p, set restmp to a temporary variable
17059         instead of resdecl.
17060
17061 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
17062
17063         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
17064
17065 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
17066
17067         PR target/64205
17068         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
17069         add a general secondary reload handler for SDmode, unless we have
17070         both read/write support for SDmode.
17071
17072 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
17073
17074         PR middle-end/64937
17075         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
17076         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
17077         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
17078         1 before, push it to abstract_vec.
17079         (dwarf2out_abstract_function): Adjust caller.  Don't call
17080         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
17081         DECL_ABSTRACT_P flags for all abstract_vec elts.
17082
17083 2015-02-06  Renlin Li  <renlin.li@arm.com>
17084
17085         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
17086         complex gimple.
17087         * tree-ssa.c (execute_update_addresses_taken): Likewise.
17088
17089 2015-02-06  Jeff Law  <law@redhat.com>
17090
17091         PR target/64889
17092         * config/h8300/h8300.c (push): New argument "in_prologue".
17093         Pass "in_prologue" along to "F".
17094         (h8300_push_pop): Corresponding changes.
17095         (h8300_expand_prologue): Likewise.
17096         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
17097
17098 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
17099
17100         PR rtl-optimization/64957
17101         PR debug/64817
17102         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
17103         IOR rather than for AND.
17104
17105 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
17106
17107         PR target/62631
17108         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
17109         of shift-add and (add + shift) operations.  Rename local variable.
17110
17111 2015-02-05  Jeff Law  <law@redhat.com>
17112
17113         PR target/17306
17114         * config/h8300/constraints.md (U): Correctly dectect
17115         "eightbit_data" memory addresses.
17116         * config/h8300/h8300.c (eightbit_constant_address_p): Also
17117         handle (const (plus (symbol_ref (x)))) where x is declared
17118         as an 8-bit data memory address.
17119         * config/h8300/h8300.md (call, call_value): Correctly detect
17120         "funcvec" functions.
17121
17122         PR target/43264
17123         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
17124         24 to 28 bits for the H8/300.
17125
17126 2015-02-06  Alan Modra  <amodra@gmail.com>
17127
17128         PR target/64876
17129         * config/rs6000/rs6000.c (chain_already_loaded): New function.
17130         (rs6000_call_aix): Use it.
17131
17132 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
17133
17134         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
17135         check.
17136
17137 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
17138
17139         * config/h8300/constraints.md ("U" constraint): Use strict
17140         variant of REG_OK_FOR_BASE_P after reload has started.
17141
17142 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
17143
17144         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
17145         define to zero if !TARGET_NEON.
17146         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
17147
17148 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
17149             Trevor Saunders  <tsaunders@mozilla.com>
17150
17151         PR ipa/61548
17152         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
17153
17154 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
17155
17156         PR ipa/61548
17157         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
17158         when removing varpool nodes.
17159
17160 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
17161
17162         PR ipa/61548
17163         * varpool.c (varpool_node::remove): Fix order of variables.
17164
17165 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
17166
17167         PR ipa/64686
17168         * ipa-inline.c (inline_small_functions): Fix ordering issue between
17169         speculation resolution and key updates.
17170
17171 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
17172
17173         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
17174         about not letting any speculative edges unupdated.
17175
17176 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
17177
17178         PR gcov/64123
17179         * gcov-io.c (gcov_var): Export.
17180
17181 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
17182
17183         PR middle-end/64922
17184         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
17185         edges that become speculative.
17186
17187 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
17188
17189         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
17190         or DW_LANG_Fortran08.
17191         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
17192         DW_LANG_Fortran08.
17193         (gen_compile_unit_die): Handle "GNU Fortran2003" and
17194         "GNU Fortran2008" language strings.
17195         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
17196         * langhooks.h (lang_GNU_Fortran): New prototype.
17197         * langhooks.c (lang_GNU_Fortran): New function.
17198         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
17199         lang_GNU_Fortran.
17200
17201 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
17202
17203         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
17204         (RTX_OK_FOR_OLO10_P): Likewise.
17205
17206 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
17207
17208         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
17209
17210 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
17211
17212         PR middle-end/64922
17213         * gimple.c: Include gimple-ssa.h.
17214         (maybe_remove_unused_call_args): New function.
17215         * gimple.h (maybe_remove_unused_call_args): Declare.
17216         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
17217         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
17218         * gimple-fold.c (gimple_fold_call): Likewise.
17219
17220 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
17221
17222         PR rtl-optimization/64905
17223         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
17224         pointer alignment if it isn't needed.
17225
17226 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
17227
17228         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
17229         cortex-a72.cortex-a53.
17230         * config/aarch64/aarch64-tune.md: Regenerate.
17231         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
17232
17233 2015-02-04  Nick Clifton  <nickc@redhat.com>
17234
17235         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
17236         inside a MEM.
17237
17238 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
17239
17240         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
17241         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
17242         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
17243         of DEF_BUILTIN.
17244         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
17245         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
17246         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
17247         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
17248         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
17249         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
17250         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
17251         * tree-core.h (enum built_in_function): In between
17252         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
17253         for builtins that use DEF_BUILTIN_CHKP macro.
17254
17255 2015-02-04  Alexandre Oliva <aoliva@redhat.com>
17256
17257         PR debug/64817
17258         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
17259         operands for tcc_comparison exprs.  Fix typos.
17260
17261         PR debug/64817
17262         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
17263         of two XORs that have an intervening AND or IOR.
17264
17265         PR debug/64817
17266         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
17267         simplification of XOR of AND to not allocate new rtx before
17268         committing to a simplification.
17269
17270 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17271
17272         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
17273         manual swaps in all peepholes.
17274
17275 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17276
17277         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
17278         of manual swapping implementation.
17279         (aarch64_expand_vec_perm_const_1): Likewise.
17280
17281 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
17282
17283         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
17284         (generic_addrcost_table): Remove NAMED_PARAM.
17285         (cortexa57_addrcost_table): Likewise.
17286         (xgene1_addrcost_table): Likewise.
17287         (generic_regmove_table): Likewise.
17288         (cortexa53_regmove_table): Likewise.
17289         (xgene1_regmove_table): Likewise.
17290         (generic_vector_table): Likewise.
17291         (cortexa57_vector_table): Likewise.
17292         (xgene1_vector_table): Likewise.
17293         (generic_tunings): Likewise.
17294         (cortexa53_tunings): Likewise.
17295         (cortexa57_tunings): Likewise.
17296         (xgene1_tunings): Likewise.
17297
17298 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
17299
17300         * config/arm/arm-cores.def: Add cortex-a72 and
17301         cortex-a72.cortex-a53.
17302         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
17303         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
17304         * config/arm/arm-tune.md: Regenerate.
17305         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
17306         "cortex-a72.cortex-a53".
17307         * doc/invoke.texi (ARM Options/-mtune): Likewise.
17308
17309 2015-02-04  Nick Clifton  <nickc@redhat.com>
17310
17311         PR target/64408
17312         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
17313         of accepted codes.
17314         (nonimmediate_di_operand): Likewise.
17315
17316         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
17317         prefixes of known F5 using MSP430 MCUs.
17318
17319 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17320
17321         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
17322         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
17323         instead of __builtin_sqrt.
17324
17325 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
17326
17327         * varasm.c (do_assemble_alias): Follow transparent alias
17328         chain for target.
17329         (default_assemble_visibility): Follow transparent alias
17330         chain for decl name.
17331
17332 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17333
17334         PR middle-end/62103
17335         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
17336         to compute size of referenced value in the constant case.
17337
17338 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
17339
17340         PR rtl-optimization/64756
17341         * cse.c (invalidate_dest): New function.
17342         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
17343         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
17344         invalidate and do not record it.
17345
17346 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
17347
17348         PR target/64660
17349         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
17350         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
17351         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
17352         atomic_nand<mode>_soft_tcb): New insns.
17353         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
17354         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
17355         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
17356         Split into atomic_not_fetchsi_hard if operands[0] is unused.
17357         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
17358         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
17359         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
17360         atomic_not<mode>_hard if operands[0] is unused.
17361         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
17362         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
17363         if operands[0] is unused.
17364         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
17365         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
17366         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
17367         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
17368         unused.
17369         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
17370         into atomic_not<mode>_soft_tcb if operands[0] is unused.
17371         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
17372         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
17373         if operands[0] is unused.
17374         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
17375         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
17376         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
17377         atomic_nand_fetchsi_hard if operands[0] is unused.
17378         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
17379         atomic_nand<mode>_hard if operands[0] is unused.
17380         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
17381         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
17382         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
17383         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
17384         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
17385         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
17386         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
17387         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
17388         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
17389         atomic_not<mode>_hard if operands[0] is unused.
17390         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
17391         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
17392         unused.
17393         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
17394         into atomic_not<mode>_soft_tcb if operands[0] is unused.
17395         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
17396         atomic_nand<mode>_hard if operands[0] is unused.
17397         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
17398         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
17399
17400 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
17401
17402         PR jit/64810
17403         * Makefile.in (GCC_OBJS): Add gcc-main.o.
17404         * gcc-main.c: New file, containing "main" taken from gcc.c.
17405         * gcc.c (do_self_spec): Free decoded_options.
17406         (class driver): Move declaration to gcc.h.
17407         (main): Move declaration and implementation to new file
17408         gcc-main.c.
17409         (driver_get_configure_time_options): New function.
17410         * gcc.h (class driver): Move this declaration here, from
17411         gcc.c.
17412         (driver_get_configure_time_options): New declaration.
17413
17414 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
17415
17416         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
17417         cross-module inlining.
17418         * cgraph.h (cgraph_node): Add flag merged.
17419         * ipa-icf.c (sem_function::merge): Maintain it.
17420
17421 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
17422
17423         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
17424         instead of OBJECT_P.
17425
17426 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
17427
17428         PR target/62631
17429         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
17430         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
17431         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
17432         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
17433
17434 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
17435
17436         PR other/63504
17437         * combine.c (reg_n_sets_max): New variable.
17438         (can_change_dest_mode, reg_nonzero_bits_for_combine,
17439         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
17440         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
17441         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
17442         (rest_of_handle_combine): Initialize reg_n_sets_max.
17443
17444 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
17445
17446         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
17447         if some always_inline was inlined, apply changes before inlining
17448         heuristically.
17449
17450 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
17451
17452         PR jit/64810
17453         * config/arm/arm.c (arm_option_override): Set
17454         arm_selected_arch/cpu/tune to NULL on entry.
17455
17456 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
17457             Andrew Pinski  <pinskia@gcc.gnu.org>
17458             Jakub Jelinek  <jakub@gcc.gnu.org>
17459
17460         PR target/64231
17461         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
17462         integer typing for small model. Use IN_RANGE.
17463
17464 2015-02-02  Richard Biener  <rguenther@suse.de>
17465
17466         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
17467         * tree-vrp.c (vrp_valueize_1): Likewise.
17468
17469 2015-02-02  Alan Modra  <amodra@gmail.com>
17470
17471         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
17472         than mem for toc_restore.
17473         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
17474         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
17475         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
17476
17477 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
17478
17479         PR target/64047
17480         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
17481         explicit default options.
17482
17483 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
17484
17485         PR ipa/64872
17486         * ipa-utils.c (ipa_merge_profiles): Add release argument.
17487         * ipa-icf.c (sem_function::merge): Do not release body when merging.
17488         * ipa-utils.h (ipa_merge_profiles): Update prototype.
17489
17490 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
17491
17492         PR debug/64817
17493         * cfgexpand.c (deep_ter_debug_map): New variable.
17494         (avoid_deep_ter_for_debug): New function.
17495         (expand_debug_expr): If TERed SSA_NAME is in
17496         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
17497         instead of trying to expand SSA_NAME's def stmt.
17498         (expand_debug_locations): When expanding debug bind
17499         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
17500         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
17501         value.
17502         (pass_expand::execute): Call avoid_deep_ter_for_debug on
17503         all debug bind stmts.  Delete deep_ter_debug_map after
17504         expand_debug_location if non-NULL and clear it.
17505
17506 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
17507
17508         PR target/64851
17509         * config/sh/sync.md (atomic_fetch_notsi_hard,
17510         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
17511         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
17512         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
17513         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
17514         atomic_not_fetch<mode>_soft_imask): New insns.
17515
17516 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
17517
17518         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
17519         (rank_for_schedule_debug): Split from ...
17520         (rank_for_schedule): ... this.
17521         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
17522         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
17523
17524 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
17525
17526         * doc/md.texi (Machine Constraints): Alphabetize table by target.
17527         * doc/extend.texi (x86 Variable Attributes): Move section to
17528         correct alphabetization after renaming.
17529         (x86 Type Attributes): Likewise.
17530         (Target Builtins): Re-alphabetize menu.
17531         (x86 Built-in Functions): Move section to correct alphabetization
17532         after renaming.
17533         (x86 transactional memory intrinsics): Likewise.
17534         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
17535         and x86 Windows Options in table and menu.
17536         (x86 Options): Move section to correct alphabetization after
17537         renaming.
17538         (x86 Windows Options): Likewise.
17539
17540 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
17541
17542         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
17543         preferred names of the architecture and its 32- and 64-bit
17544         variants.
17545         * doc/invoke.texi: Likewise.
17546         * doc/md.texi: Likewise.
17547
17548 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
17549
17550         PR target/64882
17551         * config/i386/predicates.md (address_no_seg_operand): Reject
17552         non-CONST_INT_P operands in invalid mode.
17553
17554 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
17555
17556         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
17557         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
17558         * config/i386/predicates.md (address_no_seg_operand): Call
17559         address_operand with VOIDmode.
17560         (vsib_address_operand): Ditto.
17561         (address_mpx_no_base_operand): Ditto.
17562         (address_mpx_no_index_operand): Ditto.
17563
17564 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
17565
17566         PR target/64688
17567         * lra-constraints.c (original_subreg_reg_mode): New.
17568         (simplify_operand_subreg): Try to simplify subreg of const.  Use
17569         original_subreg_reg_mode for it.
17570         (swap_operands): Update original_subreg_reg_mode.
17571         (curr_insn_transform): Set up original_subreg_reg_mode.
17572
17573 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
17574
17575         PR target/64617
17576         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
17577         function.
17578         (process_alt_operands): Use it.
17579         (curr_insn_transform): Check the optional reload pseudo class is
17580         ok for the mode.
17581
17582 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
17583
17584         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
17585         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
17586         prototype.
17587         * toplev.h (init_asm_output): Update comment on use of
17588         UNKNOWN_LOCATION with fatal_error.
17589         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
17590         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
17591         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
17592         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
17593         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
17594         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
17595         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
17596         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
17597         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
17598         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
17599         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
17600         fatal_error changed to pass input_location as first argument.
17601
17602 2015-01-30  Martin Liska  <mliska@suse.cz>
17603
17604         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
17605         in #pragma GCC diagnostic guards.
17606
17607 2015-01-30  Richard Biener  <rguenther@suse.de>
17608
17609         PR tree-optimization/64829
17610         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
17611         not add a widening conversion pattern but hand off extra
17612         widenings to callers.
17613         (vect_recog_widen_mult_pattern): Handle extra widening produced
17614         by vect_handle_widen_op_by_const.
17615         (vect_recog_widen_shift_pattern): Likewise.
17616         (vect_pattern_recog_1): Remove excess vertical space in dumping.
17617         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
17618         (vect_init_vector_1): Likewise.
17619         (vect_get_vec_def_for_operand): Likewise.
17620         (vect_finish_stmt_generation): Likewise.
17621         (vectorizable_load): Likewise.
17622         (vect_analyze_stmt): Likewise.
17623         (vect_is_simple_use): Likewise.
17624
17625 2015-01-29  Jeff Law  <law@redhat.com>
17626
17627         * combine.c (try_combine): Fix typo in comment.
17628
17629 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
17630
17631         PR target/64580
17632         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
17633         (rs6000_stack_info): Add assert.
17634         (rs6000_output_savres_externs): New function, split off from...
17635         (rs6000_output_function_prologue): ... here.  Do not call it for
17636         thunks.
17637
17638 2015-01-29  Jeff Law  <law@redhat.com>
17639
17640         PR target/15184
17641         * combine.c (try_combine): If I0 is a memory load and I3 a store
17642         to a related address, increase the "goodness" of doing a 4-insn
17643         combination with I0-I3.
17644         (make_field_assignment): Handle SUBREGs in the ior+and case.
17645
17646 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
17647
17648         PR tree-optimization/64746
17649         * tree-if-conv.c (mask_exists): New function.
17650         (predicate_mem_writes): Save created mask with given size for further
17651         use.
17652         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
17653         (ifcvt_repair_bool_pattern): Collect all statements that are root
17654         of bool pattern and use iterative algorithm to remove multiple uses
17655         of predicates, display number of required iterations.
17656
17657 2015-01-29  Richard Biener  <rguenther@suse.de>
17658
17659         PR tree-optimization/64853
17660         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
17661         stmt will get simulated again.
17662         * tree-ssa-ccp.c (valueize_op_1): Likewise.
17663
17664 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17665
17666         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
17667         return_in_pc.  Remove redundant assignments.
17668         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
17669         (arm_expand_epilogue): Don't compare boolean with true in if condition.
17670
17671 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
17672
17673         * config/i386/i386.c (ix86_mode_after): Make static.
17674
17675 2015-01-29  Richard Biener  <rguenther@suse.de>
17676
17677         PR tree-optimization/64844
17678         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
17679         dump cost model analysis.
17680         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
17681         Do not register adjusted load/store costs here.
17682
17683 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
17684             Uros Bizjak  <ubizjak@gmail.com>
17685
17686         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
17687         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
17688         using x86_use_pseudo_pic_reg.
17689         * config/i386/i386.c (ix86_conditional_register_usage): Remove
17690         support for fixed PIC register.
17691         (ix86_use_pseudo_pic_reg): Not static any more.
17692
17693 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
17694
17695         PR middle-end/64805
17696         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
17697         to avoid error in cgraph node verification.
17698
17699 2015-01-29  Marek Polacek  <polacek@redhat.com>
17700
17701         * doc/standards.texi: Reflect that the default for C is gnu11.
17702
17703 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
17704
17705         PR target/64761
17706         * reorg.c (switch_text_sections_between_p): New function.
17707         (relax_delay_slots): Call it when testing if the jump insn
17708         is removable.  Use targetm.can_follow_jump when testing if
17709         the conditional branch can follow an unconditional jump.
17710
17711 2015-01-27  Caroline Tice  <cmtice@google.com>
17712
17713         Committing VTV Cywin/Ming patch for Patrick Wollgast
17714         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
17715         if -fvtable-verify=preinit/std is used.
17716         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
17717         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
17718         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
17719         if -fvtable-verify=preinit/std is used.
17720         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
17721         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
17722         if -fvtable-verify=preinit/std is used.
17723         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
17724         * config/i386/mingw32.h (LIB_SPEC): Likewise.
17725         * varasm.c (assemble_variable): Add code to properly set the comdat
17726         section and name for the .vtable_map_vars section in case the
17727         target is PE or COFF.
17728
17729 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
17730
17731         PR ipa/64801
17732         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
17733         make sane BB profile.
17734         (cgraph_node::expand_thunk): Make sane BB profile.
17735         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
17736         * cgraph.h (init_lowered_empty_function): Update prototype.
17737         * config/i386/i386.c (make_resolver_func): Update call.
17738         * predict.c (gate): Disable branch prediction pass if
17739         profile is already there.
17740
17741 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
17742
17743         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
17744         * opth-gen.awk: Likewise.
17745         * common.opt: Mark flag_fp_contract_mode as Optimization.
17746
17747 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17748
17749         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
17750         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
17751
17752 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
17753
17754         PR target/64659
17755         * config/sh/predicates.md (atomic_arith_operand,
17756         atomic_logical_operand): Remove.
17757         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
17758         (atomic_arith_operand_0): New predicate.
17759         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
17760         Use atomic_arith_operand_0 for input values.
17761         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
17762         atomic_compare_and_swap<mode>_soft_gusa,
17763         atomic_compare_and_swap<mode>_soft_tcb,
17764         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
17765         arith_reg_operand instead of register_operand.
17766         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
17767         atomic_arith_operand_0 for newval input.
17768         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
17769         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
17770         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
17771         arith_reg_operand instead of register_operand.
17772         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
17773         fetchop_predicate_1, fetchop_constraint_1_llcs,
17774         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
17775         fetchop_constraint_1_imask): New code iterator attributes.
17776         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
17777         register_operand.  Use fetchop_predicate_1.
17778         (atomic_fetch_<fetchop_name>si_hard,
17779         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
17780         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
17781         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
17782         and arith_reg_operand instead of register_operand.  Use
17783         fetchop_predicate_1, fetchop_constraint_1_gusa.
17784         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
17785         and arith_reg_operand instead of register_operand.  Use
17786         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
17787         to allow R0 usage.
17788         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
17789         and arith_reg_operand instead of register_operand.  Use
17790         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
17791         to allow R0 usage.
17792         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
17793         register_operand.  Use atomic_logical_operand_1.
17794         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
17795         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
17796         arith_reg_operand instead of register_operand.
17797         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
17798         Use arith_reg_dest and arith_reg_operand instead of register_operand.
17799         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
17800         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
17801         register_operand.  Use fetchop_predicate_1.
17802         (atomic_<fetchop_name>_fetchsi_hard,
17803         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
17804         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
17805         fetchop_constraint_1_llcs.
17806         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
17807         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
17808         fetchop_constraint_1_gusa.
17809         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
17810         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
17811         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
17812         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
17813         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
17814         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
17815         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
17816         register_operand.  Use atomic_logical_operand_1.
17817         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
17818         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
17819         arith_reg_operand instead of register_operand.
17820         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
17821         arith_reg_operand instead of register_operand.  Use logical_operand
17822         and K08.  Adjust asm sequence to allow R0 usage.
17823         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
17824         arith_reg_operand instead of register_operand.  Use logical_operand
17825         and K08.
17826
17827 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
17828
17829         PR other/63504
17830         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
17831         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
17832         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
17833         only get_full_len HOST_WIDE_INTs from get_val () array rather than
17834         all bits in *val_wide.
17835
17836 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
17837
17838         * varpool.c (tls_model_names): Fix names.
17839         (varpool_node::dump): Dump tls- prefix for tls models.
17840
17841 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
17842             Bernd Schmidt  <bernds@codesourcery.com>
17843             Nathan Sidwell  <nathan@codesourcery.com>
17844
17845         * config/nvptx/mkoffload.c: New file.
17846         * config/nvptx/t-nvptx: Add build rules for it.
17847         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
17848         (extra_programs): Add mkoffload.
17849         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
17850         function.
17851         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
17852
17853 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
17854
17855         PR middle-end/64809
17856         * cfgexpand.c (reorder_operands): Skip debug gimples.
17857
17858 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
17859
17860         PR tree-optimization/64277
17861         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
17862         range info when possible to refine estimation.
17863
17864 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17865
17866         PR tree-optimization/64718
17867         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
17868         be a 16bit unsigned integer when n->range is 16.
17869         (bswap_replace): Convert src to that type if necessary for all bswap
17870         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
17871         set in pass_optimize_bswap::execute ().
17872
17873 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
17874
17875         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
17876         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
17877         integer and floating point variants.
17878         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
17879
17880 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
17881
17882         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
17883         for all vector modes.
17884
17885 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
17886
17887         PR bootstrap/64612
17888         * doc/sourcebuild.texi (comdat_group): Document.
17889
17890 2015-01-28  Terry Guo  <terry.guo@arm.com>
17891
17892         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
17893
17894 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
17895
17896         * toplev.c (print_version): Add param "show_global_state", and
17897         only print GGC and plugin information if it is true.
17898         (init_asm_output): Pass in "true" for the new param when calling
17899         print_version.
17900         (process_options): Likewise.
17901         (toplev::main): Likewise.
17902         * toplev.h (print_version): Add new param to decl.
17903
17904 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
17905
17906         PR ipa/60871
17907         PR ipa/64139
17908         * tree.c (lookup_binfo_at_offset): New function.
17909         (get_binfo_at_offset): Use it.
17910
17911 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
17912
17913         PR ipa/64282
17914         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
17915         on vtable being vtable.
17916
17917 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
17918
17919         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
17920         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
17921         -mhotpatch= option.
17922         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
17923         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
17924         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
17925         Renamed.
17926         (s390_hotpatch_trampoline_halfwords_max): Renamed.
17927         (s390_hotpatch_hw_max): New name.
17928         (s390_hotpatch_trampoline_halfwords): Renamed.
17929         (s390_hotpatch_hw_before_label): New name.
17930         (get_hotpatch_attribute): Removed.
17931         (s390_hotpatch_hw_after_label): New name.
17932         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
17933         attribute.
17934         (s390_attribute_table): Ditto.
17935         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
17936         (s390_function_num_hotpatch_hw): New name.
17937         Remove special handling of inline functions and hotpatching.
17938         Return number of nops before and after the function label.
17939         (s390_can_inline_p): Removed.
17940         (s390_asm_output_function_label): Emit a configurable number of nops
17941         after the function label.
17942         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
17943         (TARGET_CAN_INLINE_P) Removed.
17944         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
17945
17946 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17947             Jiong Wang  <jiong.wang@arm.com>
17948
17949         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
17950         of scratch reg.
17951         (cb<optab><mode>1): Likewise.
17952         * config/aarch64/iterators.md (bcond): New define_code_attr.
17953
17954 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17955
17956         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
17957         memory accesses.
17958
17959 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17960
17961         * config/s390/s390.c (s390_register_move_cost): Increase costs for
17962         FPR->GPR moves.
17963
17964 2015-01-27  Richard Biener  <rguenther@suse.de>
17965
17966         * tree-vrp.c (update_value_range): Intersect the range with
17967         old recorded SSA name range information.
17968
17969 2015-01-27  Nick Clifton  <nickc@redhat.com>
17970
17971         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
17972         BC, DE and HL registers directly, not via AX.
17973         When decrementing the stack pointer by a large amount, transfer SP
17974         into AX and perform the subtraction there.
17975         (rl78_expand_epilogue): Perform the inverse of the above
17976         enhancements.
17977
17978 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17979
17980         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
17981
17982 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
17983             Yury Gribov  <y.gribov@samsung.com>
17984
17985         PR ubsan/64741
17986         * ubsan.c (ubsan_source_location): Refactor code.
17987         (ubsan_type_descriptor): Update type size. Refactor code.
17988
17989 2015-01-27  Richard Biener  <rguenther@suse.de>
17990
17991         PR tree-optimization/56273
17992         PR tree-optimization/59124
17993         PR tree-optimization/64277
17994         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
17995         from the first VRP pass.
17996
17997 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
17998
17999         PR ipa/64776
18000         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
18001         handle the first argument in the same loop as all the other arguments.
18002
18003         PR rtl-optimization/61058
18004         * jump.c (cleanup_barriers): Update basic block boundaries
18005         if BLOCK_FOR_INSN is non-NULL on PREV.
18006
18007 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
18008
18009         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
18010         bounds narrowing, already instrumented calls and calls to
18011         not instrumentable functions.
18012
18013 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
18014
18015         PR tree-optimization/64807
18016         * wide-int.cc (wi::divmod_internal): Clear
18017         b_dividend[dividend_blocks_needed].
18018
18019 2015-01-26  DJ Delorie  <dj@redhat.com>
18020
18021         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
18022         volatile memory references.
18023
18024 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
18025
18026         PR target/49263
18027         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
18028         remove_insn.
18029         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
18030         shifts if it already fits into K08.
18031
18032 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
18033
18034         PR ipa/64730
18035         * ipa-inline.c (inline_small_functions): Print "unknown" even
18036         if edge->call_stmt is non-NULL, but has builtins or unknown
18037         location.
18038
18039         PR middle-end/64421
18040         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
18041         with asterisk, skip the first character.
18042
18043 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
18044
18045         PR target/64806
18046         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
18047         order change.
18048
18049 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
18050
18051         PR target/64795
18052         * config/i386/i386.md (*movdi_internal): Also check operand 0
18053         to determine TYPE_LEA operand.
18054         (*movsi_internal): Ditto.
18055
18056 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
18057
18058         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
18059         OPTION_MASK_QUAD_MEMORY_ATOMIC.
18060
18061 2015-01-26  Renlin Li  <renlin.li@arm.com>
18062
18063         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
18064         the comment.
18065         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
18066         for higher part.
18067
18068 2015-01-26  Richard Biener  <rguenther@suse.de>
18069
18070         PR middle-end/64764
18071         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
18072         combining two BIT_AND_EXPR predicates.
18073
18074 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
18075
18076         PR bootstrap/64754
18077         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
18078
18079 2015-01-26  Terry Guo  <terry.guo@arm.com>
18080
18081         * config/arm/arm.c (arm_file_start): Update the assignment of
18082         Tag_ABI_HardFP_use.
18083
18084 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
18085
18086         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
18087         pipeline model.
18088         config/arm/arm.md: Include the new Cortex-A57 model.
18089         (generic_sched): Don't use generic_sched when tuning for
18090         Cortex-A57.
18091
18092 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
18093             Uros Bizjak  <ubizjak@gmail.com>
18094
18095         * config/i386/i386.c (get_builtin_code_for_version): Add
18096         support for BMI and BMI2 multiversion functions.
18097
18098 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
18099
18100         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
18101         (extract_bit_field): Likewise.
18102         (extract_low_bits): Likewise.
18103         (expand_mult): Likewise.
18104         (expand_mult_highpart_adjust): Likewise.
18105
18106 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
18107
18108         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
18109         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
18110         * config/i386/i386.c (processor_model): Add
18111         M_INTEL_COREI7_BROADWELL.
18112         (arch_names_table): Add "broadwell".
18113
18114 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
18115
18116         PR target/49263
18117         PR target/53987
18118         PR target/64345
18119         PR target/59533
18120         PR target/52933
18121         PR target/54236
18122         PR target/51244
18123         * config/sh/sh-protos.h
18124         (sh_extending_set_of_reg::can_use_as_unextended_reg,
18125         sh_extending_set_of_reg::use_as_unextended_reg,
18126         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
18127         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
18128         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
18129         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
18130         (sh_treg_insns): New class.
18131         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
18132         (scope_counter): New class.
18133         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
18134         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
18135         sh_extending_set_of_reg::can_use_as_unextended_reg,
18136         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
18137         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
18138         sh_split_treg_set_expr): New functions.
18139         (addsubcosts): Handle treg_set_expr.
18140         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
18141         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
18142         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
18143         (sh_insn_operands_modified_between_p): Make non-static.
18144         * config/sh/predicates.md (zero_extend_movu_operand): Allow
18145         simple_mem_operand in addition to displacement_mem_operand.
18146         (zero_extend_operand): Don't allow zero_extend_movu_operand.
18147         (treg_set_expr, treg_set_expr_not_const01,
18148         arith_reg_or_treg_set_expr): New predicates.
18149         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
18150         arith_or_int_operand instead of logical_operand.  Convert to
18151         insn_and_split.  Try to optimize constant operand in splitter.
18152         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
18153         (*tstqi_t_zero): Delete.
18154         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
18155         (tstsi_t_and_not): Delete.
18156         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
18157         Convert to insn_and_split.
18158         (unnamed split, tstsi_t_zero_extract_xor,
18159         tstsi_t_zero_extract_subreg_xor_little,
18160         tstsi_t_zero_extract_subreg_xor_big): Delete.
18161         (*tstsi_t_shift_mask): New insn_and_split.
18162         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
18163         to recombine with surrounding insns when splitting.
18164         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
18165         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
18166         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
18167         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
18168         (*cbranch_div0s: Delete.
18169         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
18170         Try to recombine with surrounding insns when splitting.  Add operand
18171         order variants.
18172         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
18173         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
18174         *addc_r_r_msb, *addc_2r_msb): Delete.
18175         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
18176         order variant.
18177         (*addc_negreg_t): New insn_and_split.
18178         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
18179         Try to recombine with surrounding insns when splitting.
18180         Add operand order variants.
18181         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
18182         insn_and_split patterns.
18183         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
18184         surrounding insns when splitting.
18185         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
18186         (*rotcl): Likewise.  Add zero_extract variant.
18187         (*ashrsi2_31): New insn_and_split.
18188         (*negc): Convert to insn_and_split.  Use treg_set_expr.
18189         (*zero_extend<mode>si2_disp_mem): Update comment.
18190         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
18191         condition.
18192         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
18193         with surrounding insns when splitting.
18194         (any_treg_expr_to_reg): New insn_and_split.
18195         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
18196         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
18197         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
18198         *zero_extract_2): New single bit zero extract patterns.
18199         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
18200         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
18201         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
18202         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
18203         set destination.
18204         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
18205         register_operand for set source.
18206
18207 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
18208
18209         * i386.opt (prefetch_sse): New targetsave.
18210         * i386.c (ix86_function_specific_save): Save prefetch_sse.
18211         (ix86_function_specific_restore): Restore prefetch_sse and initialize
18212         ix86_cost/ix86_tune_cost.
18213
18214 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
18215
18216         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
18217         Support the JIT by using 0 as the language type.
18218
18219 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
18220
18221         PR target/64317
18222         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
18223         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
18224         (mark_regno_live, process_bb_lives): Pass new parameter value to
18225         make_hard_regno_born.
18226
18227 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
18228
18229         PR rtl-optimization/63637
18230         PR rtl-optimization/60663
18231         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
18232         if elt->cost is MAX_COST for ASM_OPERANDS.
18233         (find_sets_in_insn): Fix up comment typo.
18234         (cse_insn): Don't set src_volatile for all non-volatile
18235         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
18236         or with "memory" clobber.  Set elt->cost to MAX_COST
18237         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
18238         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
18239
18240 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
18241
18242         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
18243         alternative 1.
18244
18245 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
18246
18247         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
18248         libgcc/config/i386/elf-lib.h.
18249
18250 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
18251
18252         PR driver/64737
18253         * gcc.c (print_configuration): Don't print a blank line at the end
18254         here...
18255         (run_attempt): ... but here unstead.
18256
18257         PR middle-end/64734
18258         * omp-low.c (scan_sharing_clauses): Don't ignore
18259         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
18260         on target data/update constructs.
18261
18262 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18263
18264         PR target/50928
18265         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
18266         (DEBUG_RELOAD): Removed define.
18267         (m32c_limit_reload_class): Enable traces with if DEBUG0.
18268         (m32c_function_arg): Added a type cast.
18269         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
18270         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
18271         * config/m32c/bitops.md (andqi3_16): Likewise.
18272         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
18273         (push_a01_l): Likewise.
18274
18275 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
18276
18277         PR jit/64721
18278         * main.c (main): Construct toplev instances with init_signals=true.
18279         * toplev.c (general_init): Add param "init_signals", and use it to
18280         conditionalize the calls to signal and host_hooks.extra_signals.
18281         (toplev::toplev): Add param "init_signals".
18282         (toplev::main): When invoking general_init, pass m_init_signals
18283         to control whether signal-handlers are installed.
18284         * toplev.h (toplev::toplev): Add param "init_signals".
18285         (toplev::m_init_signals): New field.
18286
18287 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
18288
18289         PR jit/64722
18290         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
18291         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
18292         latter may be affected by the former (e.g. on i686).
18293
18294 2015-01-23  Martin Liska  <mliska@suse.cz>
18295
18296         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
18297         false positive during profiledbootstrap.
18298
18299 2015-01-23  Tom de Vries  <tom@codesourcery.com>
18300
18301         PR libgomp/64672
18302         * lto-opts.c (lto_write_options): Output non-explicit conservative
18303         -fno-openacc.
18304         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
18305         (append_compiler_options): Pass -fopenacc through.
18306
18307 2015-01-23  Tom de Vries  <tom@codesourcery.com>
18308
18309         PR libgomp/64707
18310         * lto-opts.c (lto_write_options): Output non-explicit conservative
18311         -fno-openmp.
18312         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
18313         (append_compiler_options): Pass -fopenmp through.
18314
18315 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
18316
18317         PR debug/64511
18318         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
18319         GTY markup.
18320
18321         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
18322         * diagnostic.def (DK_ICE_NOBT): New kind.
18323         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
18324         like DK_ICE, but never print backtrace.
18325         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
18326         (internal_error_no_backtrace): New function.
18327         * gcc.c (execute): Use internal_error_no_backtrace instead of
18328         internal_error.
18329
18330 2015-01-22  Jeff Law  <law@redhat.com>
18331
18332         PR target/52076
18333         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
18334         improve code density for small immediate to memory case.
18335         (insv): Better handle bitfield assignments when the field is
18336         being set to all ones.
18337         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
18338         operand predicate.
18339
18340 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18341             Jakub Jelinek  <jakub@redhat.com>
18342
18343         PR middle-end/64729
18344         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
18345         for !TARGET_LIBC_PROVIDES_SSP version and
18346         -fstack-protector-{all,strong,explicit} otherwise.
18347         * config/freebsd.h (LINK_SSP_SPEC): Handle
18348         -fstack-protector-{strong,explicit}.
18349
18350 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
18351             H.J. Lu  <hongjiu.lu@intel.com>
18352
18353         PR ipa/64694
18354         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
18355         heap.
18356
18357 2015-01-22  Wei Mi  <wmi@google.com>
18358
18359         PR rtl-optimization/64557
18360         * dse.c (record_store): Call get_addr for mem_addr.
18361         (check_mem_read_rtx): Likewise.
18362
18363 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
18364
18365         * fold-const.c (const_binop): Add early return for non-tcc_binary.
18366
18367 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
18368
18369         * toplev.c (init_local_tick): Process the failure when read
18370         fails for random_seed.
18371
18372         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
18373         'pretty_name' to avoid memory overflow.
18374
18375 2015-01-22  Richard Biener  <rguenther@suse.de>
18376
18377         PR middle-end/64728
18378         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
18379         abnormal coalescing on undefined SSA names.
18380
18381 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
18382
18383         PR target/64688
18384         PR target/64477
18385         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
18386         for alternative 3.
18387         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
18388
18389 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
18390
18391         PR middle-end/63325
18392         * fold-const.c (fold_checksum_tree): Don't include value of
18393         expr->decl_with_vis.symtab_node in the checksum.
18394
18395 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18396
18397         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
18398
18399 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
18400
18401         PR driver/64690
18402         * gcc.c (insert_comments): New function.
18403         (try_generate_repro): Call it.
18404         (append_text): Removed.
18405
18406 2015-01-22  Richard Biener  <rguenther@suse.de>
18407
18408         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
18409         with IL incompatible options.  Properly honor user optimize
18410         attributes.
18411
18412 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
18413
18414         PR rtl-optimization/64682
18415         * combine.c (distribute_notes): When moving a death note for
18416         a register that is set in the new I2, make sure to put it
18417         before that new I2.
18418
18419 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
18420
18421         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
18422         not TARGET_DEFAULT.
18423
18424 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
18425
18426         PR debug/64511
18427         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
18428         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
18429         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
18430
18431         PR sanitizer/64706
18432         * doc/invoke.texi (-fsanitize=vptr): Document.
18433
18434         PR rtl-optimization/62078
18435         * dse.c: Include cfgcleanup.h.
18436         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
18437         anything call purge_all_dead_edges and cleanup_cfg at the end
18438         of the pass.
18439
18440 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
18441
18442         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
18443         edges.
18444
18445 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18446
18447         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
18448         decl attribute.
18449
18450 2015-01-21  David Sherwood  <david.sherwood@arm.com>
18451             Tejas Belagod <Tejas.Belagod@arm.com>
18452
18453         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
18454         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
18455         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
18456         Removed.
18457
18458 2015-01-21  David Sherwood  <david.sherwood@arm.com>
18459             Tejas Belagod <Tejas.Belagod@arm.com>
18460
18461         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
18462         (aarch64_reverse_mask): New decls.
18463         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
18464         (insn_count): New mode_attr.
18465         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
18466         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
18467         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
18468         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
18469         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
18470         (aarch64_simd_st4): New patterns.
18471         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
18472         (aarch64_reverse_mask): New functions.
18473
18474 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
18475
18476         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
18477         Declare.
18478         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
18479         addressing modes for BE.
18480         (aarch64_print_operand): Add 'R' specifier.
18481         (aarch64_simd_disambiguate_copy): Delete.
18482         (aarch64_simd_emit_reg_reg_move): New function.
18483         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
18484         in define_splits for structural moves.
18485         (mov<mode>): Use less restrictive predicates.
18486         (*aarch64_mov<mode>): Simplify and only allow for LE.
18487         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
18488
18489 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
18490
18491         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
18492
18493 2015-01-21  Richard Henderson  <rth@redhat.com>
18494
18495         PR target/64669
18496         * ccmp.c (used_in_cond_stmt_p): Remove.
18497         (expand_ccmp_expr): Don't use it.
18498
18499 2015-01-21  Nick Clifton  <nickc@redhat.com>
18500
18501         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
18502         PARALLELs.
18503
18504 2015-01-21  Richard Biener  <rguenther@suse.de>
18505
18506         PR middle-end/64313
18507         * tree-core.h (builtin_info, builtin_info_type): Turn from
18508         an object with two arrays into an array of an object with
18509         decl and two flags, implicit_p and declared_p.
18510         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
18511         set_builtin_decl, set_builtin_decl_implicit_p,
18512         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
18513         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
18514         * builtins.c (builtin_info): Adjust.
18515         * gimplify.c (gimplify_addr_expr): References to builtins
18516         that have been declared by the user makes them eligible for
18517         use by the compiler.  Call set_builtin_decl_implicit_p on them.
18518
18519 2015-01-20  Jeff Law  <law@redhat.com>
18520
18521         PR target/59946
18522         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
18523         allow pc-relative addresses in operand predicates or constraints.
18524
18525 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
18526
18527         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
18528         neon on aarch32 processors for stringops.
18529
18530 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
18531
18532         PR ipa/63576
18533         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
18534
18535 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
18536
18537         PR lto/45375
18538         * ipa-inline.c: Include lto-streamer.h
18539         (report_inline_failed_reason): Output source file differences and
18540         flags on optimization/target node mismatch.
18541         (can_inline_edge_p): Consider caller to be the outer inline function;
18542         be less restrictive about matching opimize and optimize_size attributes.
18543         (inline_account_function_p): Break out from ...
18544         (inline_small_functions): ... here.
18545         * ipa-inline-transform.c (clone_inlined_nodes): Use
18546         inline_account_function_p.
18547         (inline_call): Use optimize attribution; use inline_account_function_p.
18548         (inline_transform): Use opt_for_fn.
18549         * ipa-inline.h (inline_account_function_p): Declare.
18550
18551 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
18552
18553         PR debug/64663
18554         * dwarf2out.c (decl_piece_node): Don't put bitsize into
18555         mode if bitsize <= 0.
18556         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
18557         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
18558         sizes and positions.
18559
18560 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
18561
18562         * config/nios2/nios2.c (nios2_asm_file_end): Implement
18563         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
18564         needed.
18565         (TARGET_ASM_FILE_END): Define.
18566
18567 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
18568
18569         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
18570         (struct tune_params): Use the enum.
18571         * arm.c (arm_*_tune): Update.
18572         (arm_option_override): Update.
18573
18574 2015-01-20  Richard Biener  <rguenther@suse.de>
18575
18576         PR ipa/64684
18577         * ipa-reference.c (add_static_var): Inline ...
18578         (analyze_function): ... here after splitting out from ...
18579         (is_proper_for_analysis): ... this.
18580
18581 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
18582
18583         PR target/64149
18584         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
18585         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
18586         replace the conditional with it's true branch.
18587         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
18588         (arm_lra_p): Remove.
18589
18590 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
18591
18592         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
18593
18594 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
18595
18596         * config/tilegx/mul-tables.c: Move symtab.h include after
18597         coretypes.h include.
18598         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
18599         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
18600         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
18601         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
18602         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
18603
18604 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
18605
18606         PR bootstrap/64676
18607         Revert:
18608         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
18609
18610         PR rtl-optimization/64081
18611         * loop-iv.c (def_pred_latch_p): New function.
18612         (latch_dominating_def): Allow specific cases with non-single
18613         definitions.
18614         (iv_get_reaching_def): Likewise.
18615         (check_complex_exit_p): New function.
18616         (check_simple_exit): Use check_complex_exit_p to allow certain cases
18617         with exits not executing on any iteration.
18618
18619 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
18620
18621         PR lto/45375
18622         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
18623         to set branch cost.
18624
18625 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
18626
18627         PR lto/45375
18628         * i386.c (gate): Check flag_expensive_optimizations and
18629         optimize_size.
18630         (ix86_option_override_internal): Drop optimize_size condition
18631         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
18632         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
18633         MASK_PREFER_AVX128.
18634         (ix86_avx256_split_vector_move_misalign,
18635         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
18636         * sse.md (all uses of TARGET_PREFER_AVX128): Add
18637         optimize_insn_for_speed_p check.
18638
18639 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
18640
18641         * config/mips/mips.h (FP_ASM_SPEC): New define.
18642         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
18643         instead.
18644
18645 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
18646
18647         PR target/53988
18648         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
18649         nullptr for insn when reaching the first insn.
18650         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
18651         (sh_insn_operands_modified_between_p): Add nullptr check.
18652         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
18653         sign extending mem load if the insn contains any UNSPEC or
18654         UNSPEC_VOLATILE.
18655
18656 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
18657
18658         * params.def (inline-unit-growth): Drop to 15%.
18659         * invoke.texi (inline-unit-growth): Document change.
18660
18661 2015-01-19  Martin Liska  <mliska@suse.cz>
18662
18663         PR ipa/64668
18664         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
18665         function for second argument of OBJ_TYPE_REF.
18666
18667 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
18668
18669         PR ipa/64218
18670         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
18671         whether function is an alias.
18672
18673 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
18674
18675         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
18676         cases.
18677
18678 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
18679
18680         PR rtl-optimization/64671
18681         * lra-remat.c (operand_to_remat): Don't consider jump and call
18682         insns.
18683
18684 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
18685
18686         PR target/59828
18687         * config/rs6000/default64.h: Include rs6000-cpus.def.
18688         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
18689         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
18690         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
18691         and POWER8.
18692         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
18693         POWER8.
18694         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
18695         pseudo-op to specify assembler dialect.
18696
18697 2015-01-19  Martin Liska  <mliska@suse.cz>
18698
18699         PR ipa/64664
18700         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
18701         Handle safe potentially removed nodes during filtering.
18702
18703 2015-01-19  Martin Liska  <mliska@suse.cz>
18704
18705         * doc/extend.texi (no_icf): Add new attribute description.
18706         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
18707         where the pass attempts to merge a function with no_icf attribute.
18708
18709 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18710
18711         PR target/64532
18712         * doc/md.texi (ARM Options): Document register constraints.
18713
18714 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
18715             Andrew Pinski  <apinski@cavium.com>
18716
18717         PR target/64304
18718         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
18719         (ashl<mode>3): Don't expand if operands[2] is not constant.
18720
18721 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18722
18723         PR target/64448
18724         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
18725         Match xor-and-xor RTL pattern.
18726
18727 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
18728
18729         PR rtl-optimization/64081
18730         * loop-iv.c (def_pred_latch_p): New function.
18731         (latch_dominating_def): Allow specific cases with non-single
18732         definitions.
18733         (iv_get_reaching_def): Likewise.
18734         (check_complex_exit_p): New function.
18735         (check_simple_exit): Use check_complex_exit_p to allow certain cases
18736         with exits not executing on any iteration.
18737
18738 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
18739
18740         * common.opt (fgraphite): Fix a typo.
18741
18742 2015-01-19  Felix Yang  <felix.yang@huawei.com>
18743
18744         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
18745         pattern.
18746         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
18747         uminp, smax_nanp, smin_nanp): New builtins.
18748         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
18749         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
18750         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
18751         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
18752         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
18753         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
18754         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
18755         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
18756         vpminnms_f32): Rewrite using builtin functions.
18757
18758 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
18759
18760         PR libgomp/64625
18761         * omp-low.c (offload_symbol_decl): Remove variable.
18762         (get_offload_symbol_decl): Remove function.
18763         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
18764         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
18765         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
18766         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
18767         BUILT_IN_GOACC_UPDATE don't pass it at all.
18768
18769 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
18770
18771         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
18772         callers.
18773
18774 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
18775
18776         * ipa-chkp.c (chkp_produce_thunks): Add early param
18777         to split thunks production into two passes.  Keep
18778         'always_inline' function bodies after the first pass.
18779         (pass_data_ipa_chkp_early_produce_thunks): New.
18780         (pass_ipa_chkp_early_produce_thunks): New.
18781         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
18782         chkp_produce_thunks signature.
18783         (make_pass_ipa_chkp_early_produce_thunks): New.
18784         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
18785         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
18786         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
18787
18788 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
18789
18790         * cgraph.c (cgraph_node::dump): Dump profile flags.
18791
18792 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
18793
18794         PR target/64652
18795         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
18796         reg appear first in the parallel.
18797
18798 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
18799
18800         * ipa-reference.c (set_reference_optimization_summary,
18801         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
18802         disabled.
18803         (ignore_module_statics): New static var.
18804         (propagate_bits): If ipa-reference is disabled, do not look into local
18805         properties.
18806         (analyze_function): Disable analysis when ipa_reference is disabled.
18807         (generate_summary): Do not dump when reference is disabled;
18808         collect vars accessed from functions with ipa-reference disabled.
18809         (get_read_write_all_from_node): When ipa-reference is disabled, use the
18810         node flags.
18811         (gate): Enable for LTO.
18812         (ignore_edge_p): New function.
18813         (propagate): Skip functions w/o ipa-reference analysis.
18814         * optc-save-gen.awk: Handle optimize_debug correctly.
18815         * opth-gen.awk: Likewise.
18816         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
18817         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
18818         fira-share-save-slots, fira-share-spill-slots,
18819         fmodulo-sched-allow-regmoves, fpartial-inlining,
18820         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
18821         ftracer, ftree-parallelize-loops, fassociative-math,
18822         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
18823         Optimization
18824         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
18825         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
18826         Optimization.
18827         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
18828         Fix for IPA.
18829
18830 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
18831
18832         PR ipa/64378
18833         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
18834         flag correctly.
18835         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
18836
18837 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
18838
18839         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
18840         Remove duplicate option listings.
18841
18842 2015-01-18  Felix Yang  <felix.yang@huawei.com>
18843
18844         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
18845         (autofdo_source_profile::get_callsite_total_count,
18846         function_instance::get_function_instance_by_decl,
18847         string_table::get_index, string_table::get_index_by_decl,
18848         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
18849         Fix comment typos. Reformatting and minor code rearrangement.
18850
18851 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
18852
18853         * config/rs6000/rs6000.md (probe_stack): Delete.
18854         (probe_stack_address): New.
18855
18856 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
18857
18858         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
18859         to test for 32-bit ABIs, not !TARGET_POWERPC64.
18860
18861 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
18862
18863         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
18864         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
18865         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
18866         snafu.
18867         (rs6000_libcall_value): Use the new function.
18868
18869 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
18870
18871         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
18872
18873 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
18874
18875         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
18876         implement a more precise life analysis for it during backward scan.
18877
18878 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
18879
18880         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
18881
18882 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
18883
18884         PR rtl-optimization/52773
18885         * calls.c (emit_library_call_value): When pushing arguments use
18886         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
18887         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
18888         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
18889
18890 2015-01-17  Jeff Law  <law@redhat.com>
18891
18892         PR rtl-optimization/32790
18893         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
18894         not ZERO_EXTEND in SET_DESTs.
18895
18896 2015-01-17  Alan Modra  <amodra@gmail.com>
18897
18898         * cprop.c (do_local_cprop): Revert last change.
18899
18900 2015-01-16  DJ Delorie  <dj@redhat.com>
18901             Nick Clifton  <nickc@redhat.com>
18902
18903         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
18904         (addhi3_real): Likewise.  Fix [HL+0] syntax.
18905         (subqi3_real): Likewise.
18906         (subhi3_real): Likewise.
18907         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
18908         (cbranchhi4_real): Likewise.
18909         (cbranchhi4_real_inverted): Likewise.
18910         (cbranchsi4_real_lt): Likewise.
18911         (cbranchsi4_real_ge): Likewise.
18912         (cbranchsi4_real_ge): Likewise.
18913         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
18914         (sub<mode>3_virt): Likewise.
18915         (cbranchqi4_virt): Likewise.
18916         (cbranchhi4_virt): Likewise.
18917         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
18918         always use '[reg+imm]' even when imm is zero.
18919         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
18920         (rl78_general_operand): New.
18921         (rl78_nonimmediate_operand): New.
18922         (rl78_nonfar_operand): Use them.
18923         (rl78_nonfar_nonimm_operand): Likewise.
18924         (rl78_stack_based_mem): Fix.
18925         * config/rl78/constraints.md (Ibqi): New.
18926         (IBqi): New.
18927         (Wsa): New.
18928         (Wsf): New.
18929         (Cs1): Fix.
18930         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
18931         (iorqi3): Likewise.
18932         (xorqi3): Likewise.
18933         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
18934
18935         * config/rl78/constrains (Qs8): New constraint.
18936         * config/rl78/rl78.c (rl78_flags_already_set): New function.
18937         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
18938         * config/rl78/rl78-real.md (update_Z): New attribute.
18939         Update patterns to set it.
18940         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
18941         shorter compare and branch sequence can be used.
18942         (cbranchhi4_real): Likewise.
18943         (cbranchhi4_real_inverted): Likewise.
18944
18945         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
18946         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
18947         address space.
18948         * config/rl78/rl78.c (rl78_get_name_encoding): New.
18949         (rl78_option_override): Allow -mes0 only if C.
18950         (characterize_address): Support subregs of symbol_refs.
18951         (rl78_addr_space_address_mode): Move.  Add __near.
18952         (rl78_far_p): Likewise.
18953         (rl78_addr_space_pointer_mode): Likewise.
18954         (rl78_as_legitimate_address): Likewise.
18955         (rl78_addr_space_subset_p): Likewise.
18956         (rl78_addr_space_convert): Likewise.
18957         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
18958         symbols with -mes0.
18959         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
18960         addressing.
18961         (rl78_alloc_physical_registers_op1): Change logic to prefer
18962         symbol[BC] addressing.
18963         (frodata_section): New.
18964         (rl78_asm_init_sections): Initialize it.
18965         (rl78_select_section): Put __far readonly symbols in .frodata.
18966         (rl78_make_type_far): New.
18967         (rl78_insert_attributes): Force all readonly symbols to be
18968         __far when -mes0.
18969         (rl78_asm_out_integer): New.
18970         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
18971         * config/rl78/rl78.opt (-mes0): New.
18972
18973         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
18974         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
18975         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
18976         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
18977         (rl78_saddr_p): New.
18978         (rl78_output_aligned_common): New.
18979         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
18980         (rl78_handle_saddr_attribute): New.
18981         (rl78_handle_naked_attribute): New.
18982         (rl78_attribute_table): Add saddr.
18983         (rl78_print_operand_1): Don't print '!' on saddr operands.
18984         (rl78_print_operand_1): Strip encodings.
18985         (rl78_sfr_p): New.
18986         (rl78_strip_name_encoding): New.
18987         (rl78_attrlist_to_encoding): New.
18988         (rl78_encode_section_info): New.
18989         (rl78_asm_init_sections): New.
18990         (rl78_select_section): New.
18991         (rl78_output_labelref): New.
18992         (rl78_output_aligned_common): New.
18993         (rl78_asm_out_integer): New.
18994         (rl78_asm_ctor_dtor): New.
18995         (rl78_asm_constructor): New.
18996         (rl78_asm_destructor): New.
18997
18998         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
18999         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
19000         (transcode_memory_rtx): Update.
19001         (rl78_expand_epilogue): Use A_REG instead of 0.
19002
19003 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19004
19005         * config/arm/arm-protos.h (struct tune_params): New field
19006         sched_autopref_queue_depth.
19007         * config/arm/arm.c (sched-int.h): Include header.
19008         (arm_first_cycle_multipass_dfa_lookahead_guard,)
19009         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
19010         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
19011         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
19012         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
19013         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
19014         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
19015         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
19016         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
19017         * config/arm/t-arm (arm.o): Update.
19018         * haifa-sched.c (update_insn_after_change): Update.
19019         (rank_for_schedule): Use auto-prefetcher model, if requested.
19020         (autopref_multipass_init): New static function.
19021         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
19022         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
19023         variable for debug dumps.
19024         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
19025         (autopref_multipass_dfa_lookahead_guard): New global function that
19026         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
19027         (init_h_i_d): Update.
19028         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
19029         * sched-int.h (enum autopref_multipass_data_status): New const enum.
19030         (autopref_multipass_data_): Structure for auto-prefetcher data.
19031         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
19032         (struct _haifa_insn_data:autopref_multipass_data): New field.
19033         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
19034         (autopref_multipass_dfa_lookahead_guard): Declare.
19035
19036 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19037
19038         * rtlanal.c (get_base_term): Handle SCRATCH.
19039
19040 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
19041
19042         * config/aarch64/aarch64.c
19043         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
19044         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
19045         * config/arm/arm.c
19046         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
19047         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
19048
19049 2015-01-17  Alan Modra  <amodra@gmail.com>
19050
19051         * cprop.c (do_local_cprop): Disallow replacement of fixed
19052         hard registers.
19053
19054 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19055
19056         PR target/62066
19057         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
19058         early return 0.
19059
19060 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19061
19062         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
19063         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
19064
19065 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19066
19067         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
19068         * config/arm/thumb1.md: ... Here.
19069
19070 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
19071
19072         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
19073         TImode for TARGET_32BIT.
19074
19075 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
19076
19077         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
19078         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
19079         as ...
19080         (rs6000_abi_word_mode): New function.
19081
19082 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
19083
19084         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
19085         instead of UNITS_PER_WORD to describe the size of stack slots.
19086
19087 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
19088
19089         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
19090         as rs6000_promote_function_mode.  Move comment to there.
19091         (rs6000_promote_function_mode): New function.
19092
19093 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
19094
19095         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
19096         -mpowerpc64 is active.
19097
19098 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
19099
19100         PR middle-end/64353
19101         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
19102         virtuals on start.
19103
19104 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
19105
19106         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
19107         introduced in revision 219724.
19108
19109 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19110             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19111
19112         PR target/64263
19113         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
19114         destination is not a GP reg.
19115         (*movdi_aarch64): Likewise.
19116
19117 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
19118
19119         PR target/64623
19120         * config/rs6000/default64.h: Revert ISA change.
19121
19122 2015-01-16  Richard Biener  <rguenther@suse.de>
19123
19124         PR middle-end/64614
19125         * tree-ssa-uninit.c: Include tree-cfg.h.
19126         (MAX_SWITCH_CASES): New define.
19127         (convert_control_dep_chain_into_preds): Handle switch statements.
19128         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
19129         (normalize_one_pred_1): Do not split bit-manipulations.
19130         Record (x & CST).
19131
19132 2015-01-16  Richard Biener  <rguenther@suse.de>
19133
19134         PR tree-optimization/64568
19135         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
19136         complex load rewriting for TARGET_MEM_REFs.
19137
19138 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
19139
19140         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
19141
19142 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
19143
19144         PR target/64149
19145         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
19146         variable.
19147         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
19148         (aarch64_lra_p): Remove.
19149
19150 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
19151
19152         PR target/64363
19153         * ipa-chkp.h (chkp_instrumentable_p): New.
19154         * ipa-chkp.c: Include tree-inline.h.
19155         (chkp_instrumentable_p): New.
19156         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
19157         Fix processing of not instrumentable functions.
19158         (chkp_versioning): Use chkp_instrumentable_p. Warn about
19159         not instrumentable functions.
19160         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
19161         chkp_instrumentable_p.
19162         * tree-inline.h (copy_forbidden): New.
19163         * tree-inline.c (copy_forbidden): Not static anymore.
19164
19165 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19166
19167         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
19168         ptr1, ptr2 unused.
19169
19170 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
19171
19172         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
19173         type OP_OUT to OP_INOUT.
19174
19175 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
19176
19177         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
19178         (high x) y) to y if x and y have the same base.
19179
19180 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
19181
19182         * config/arm/cortex-a57.md: New.
19183         * config/aarch64/aarch64.md: Include it.
19184         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
19185         * config/aarch64/aarch64-tune.md: Regenerate.
19186
19187 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
19188
19189         PR target/64015
19190         * ccmp.c (expand_ccmp_next): New function.
19191         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
19192         and compare insn sequence.
19193         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
19194         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
19195         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
19196         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
19197         (*ccmp_ior): Changed to ccmp_ior<mode>.
19198         (cmp<mode>): New pattern.
19199         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
19200         parameters.
19201         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
19202
19203 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
19204
19205         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
19206         _mm256_bsrli_epi128): New.
19207         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
19208
19209 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
19210
19211         * expmed.c (store_bit_field_using_insv): Improve warning message.
19212         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
19213
19214 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
19215
19216         PR rtl-optimization/64011
19217         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
19218         there is partial overflow.
19219
19220 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
19221
19222         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
19223         prototype.
19224         (nds32_expand_epilogue_v3pop): Likewise.
19225         * config/nds32/nds32.md (sibcall): Define this for sibling call
19226         optimization.
19227         (sibcall_register): Likewise.
19228         (sibcall_immediate): Likewise.
19229         (sibcall_value): Likewise.
19230         (sibcall_value_register): Likewise.
19231         (sibcall_value_immediate): Likewise.
19232         (sibcall_epilogue): Likewise.
19233         (epilogue): Pass false to indicate this is not a sibcall epilogue.
19234         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
19235         (nds32_expand_epilogue_v3pop): Likewise.
19236
19237 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
19238
19239         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
19240         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
19241         (return_internal): New.
19242         (return): Define this named pattern.
19243         (simple_return): Define this named pattern.
19244         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
19245         pattern instead of unspec_volatile_func_return.
19246         (nds32_expand_epilogue_v3pop): Likewise.
19247         (nds32_can_use_return_insn): New function.
19248
19249 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
19250
19251         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
19252         * config/nds32/nds32.md (pop25return): New.
19253         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
19254         pop25return pattern.
19255
19256 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
19257
19258         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
19259         -mforbid-fp-as-gp, and -mex9 options.
19260
19261 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
19262
19263         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
19264         remove -mgp-direct option.
19265
19266 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
19267
19268         * doc/invoke.texi (--param early-inlining-insns): Update default value.
19269         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
19270
19271 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
19272
19273         * ipa-inline.c (inline_small_functions): Work around hints
19274         cache issue.
19275
19276 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
19277
19278         PR target/59710
19279         * doc/invoke.texi (Option Summary): Document new Nios II
19280         -mgpopt= syntax.
19281         (Nios II Options): Likewise.
19282         * config/nios2/nios2.opt: Add -mgpopt= option support.
19283         Modify existing -mgpopt and -mno-gpopt options to be aliases.
19284         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
19285         * config/nios2/nios2.c (nios2_option_override): Adjust
19286         -mgpopt defaulting.
19287         (nios2_in_small_data_p): Return true for explicit small data
19288         sections even with -G0.
19289         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
19290         option choices.
19291
19292 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
19293
19294         PR ipa/64612
19295         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
19296         of comdat locals.
19297         (inline_call): Fix removal of aliases.
19298
19299 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
19300
19301         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
19302         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
19303         * opts.c (common_handle_option): Add -fsanitize=vptr.
19304         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
19305         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
19306         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
19307         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
19308         (ubsan_expand_vptr_ifn): New prototype.
19309         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
19310         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
19311         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
19312         expand_LOOP_VECTORIZED): Make argument nameless, remove
19313         ATTRIBUTE_UNUSED.
19314         (expand_UBSAN_VPTR): New function.
19315         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
19316         in fn spec.
19317         (UBSAN_VPTR): New internal function.
19318         * sanopt.c (tree_map_traits): Renamed to ...
19319         (sanopt_tree_map_traits): ... this.
19320         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
19321         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
19322         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
19323         (maybe_optimize_ubsan_vptr_ifn): New function.
19324         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
19325         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
19326         -fsanitize=vptr.
19327         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
19328         internal calls like pure functions for aliasing, even when they
19329         have other side-effects that prevent making them ECF_PURE.
19330         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
19331         (ubsan_expand_vptr_ifn): New function.
19332
19333 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
19334
19335         PR rtl-optimization/64110
19336         * stmt.c (parse_output_constraint): Process '^' and '$'.
19337         (parse_input_constraint): Ditto.
19338         * lra-constraints.c (process_alt_operands): Process the new
19339         constraints.
19340         * ira-costs.c (record_reg_classes): Process the new constraint
19341         '^'.
19342         * genoutput.c (indep_constraints): Add '^' and '$'.
19343         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
19344         * doc/md.texi: Add description of the new constraints.
19345
19346 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
19347             Bernd Schmidt  <bernds@codesourcery.com>
19348             Cesar Philippidis  <cesar@codesourcery.com>
19349             James Norris  <jnorris@codesourcery.com>
19350             Tom de Vries  <tom@codesourcery.com>
19351             Ilmir Usmanov  <i.usmanov@samsung.com>
19352             Dmitry Bocharnikov  <dmitry.b@samsung.com>
19353             Evgeny Gavrin  <e.gavrin@samsung.com>
19354             Jakub Jelinek  <jakub@redhat.com>
19355
19356         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
19357         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
19358         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
19359         New function types.
19360         * builtins.c: Include "gomp-constants.h".
19361         (expand_builtin_acc_on_device): New function.
19362         (expand_builtin, is_inexpensive_builtin): Handle
19363         BUILT_IN_ACC_ON_DEVICE.
19364         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
19365         New macros.
19366         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
19367         flag_openmp.
19368         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
19369         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
19370         i386/intelmic-offload.h.
19371         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
19372         to libgomp and its dependencies.
19373         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
19374         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
19375         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
19376         * config/ia64/hpux.h (LIB_SPEC): Likewise.
19377         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
19378         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
19379         * doc/generic.texi: Update for OpenACC changes.
19380         * doc/gimple.texi: Likewise.
19381         * doc/invoke.texi: Likewise.
19382         * doc/sourcebuild.texi: Likewise.
19383         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
19384         GF_OMP_FOR_KIND_OACC_LOOP.
19385         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
19386         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
19387         GF_OMP_TARGET_KIND_OACC_UPDATE,
19388         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
19389         Dump more data.
19390         * gimple.c: Update comments for OpenACC changes.
19391         * gimple.def: Likewise.
19392         * gimple.h: Likewise.
19393         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
19394         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
19395         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
19396         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
19397         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
19398         appropriate place.
19399         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
19400         * gimplify.c: Include "gomp-constants.h".
19401         Update comments for OpenACC changes.
19402         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
19403         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
19404         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
19405         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
19406         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
19407         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
19408         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
19409         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
19410         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
19411         OMP_CLAUSE_SEQ.
19412         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
19413         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
19414         OMP_CLAUSE_SET_MAP_KIND.
19415         (gimplify_oacc_cache): New function.
19416         (gimplify_omp_for): Handle OACC_LOOP.
19417         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
19418         OACC_DATA.
19419         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
19420         OACC_EXIT_DATA, OACC_UPDATE.
19421         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
19422         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
19423         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
19424         (gimplify_body): Consider flag_openacc next to flag_openmp.
19425         * lto-streamer-out.c: Include "gomp-constants.h".
19426         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
19427         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
19428         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
19429         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
19430         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
19431         (BUILT_IN_ACC_ON_DEVICE): New builtins.
19432         * omp-low.c: Include "gomp-constants.h".
19433         Update comments for OpenACC changes.
19434         (struct omp_context): Add reduction_map, gwv_below, gwv_this
19435         members.
19436         (extract_omp_for_data, use_pointer_for_field, install_var_field)
19437         (new_omp_context, delete_omp_context, scan_sharing_clauses)
19438         (create_omp_child_function, scan_omp_for, scan_omp_target)
19439         (check_omp_nesting_restrictions, lower_reduction_clauses)
19440         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
19441         Update for OpenACC changes.
19442         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
19443         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
19444         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
19445         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
19446         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
19447         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
19448         OMP_CLAUSE_MAP_*.
19449         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
19450         Handle GF_OMP_FOR_KIND_OACC_LOOP.
19451         (expand_omp_target, lower_omp_target): Handle
19452         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
19453         GF_OMP_TARGET_KIND_OACC_UPDATE,
19454         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
19455         GF_OMP_TARGET_KIND_OACC_DATA.
19456         (pass_expand_omp::execute, execute_lower_omp)
19457         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
19458         flag_openmp.
19459         (offload_symbol_decl): New variable.
19460         (oacc_get_reduction_array_id, oacc_max_threads)
19461         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
19462         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
19463         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
19464         (oacc_gimple_assign, oacc_initialize_reduction_data)
19465         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
19466         functions.
19467         (is_targetreg_ctx): Remove function.
19468         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
19469         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
19470         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
19471         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
19472         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
19473         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
19474         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
19475         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
19476         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
19477         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
19478         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
19479         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
19480         * tree-core.h: Update comments for OpenACC changes.
19481         (enum omp_clause_map_kind): Remove.
19482         (struct tree_omp_clause): Change type of map_kind member from enum
19483         omp_clause_map_kind to unsigned char.
19484         * tree-inline.c: Update comments for OpenACC changes.
19485         * tree-nested.c: Likewise.  Include "gomp-constants.h".
19486         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
19487         (convert_tramp_reference_stmt, convert_gimple_call): Update for
19488         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
19489         OMP_CLAUSE_SET_MAP_KIND.
19490         * tree-pretty-print.c: Include "gomp-constants.h".
19491         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
19492         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
19493         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
19494         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
19495         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
19496         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
19497         instead of OMP_CLAUSE_MAP_*.
19498         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
19499         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
19500         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
19501         * tree-streamer-in.c: Include "gomp-constants.h".
19502         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
19503         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
19504         * tree-streamer-out.c: Include "gomp-constants.h".
19505         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
19506         OMP_CLAUSE_MAP_*.
19507         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
19508         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
19509         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
19510         * tree.c (omp_clause_num_ops): Update accordingly.
19511         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
19512         Likewise.
19513         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
19514         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
19515         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
19516         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
19517         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
19518         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
19519         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
19520         (OMP_CLAUSE_SET_MAP_KIND): New macro.
19521         * varpool.c (varpool_node::get_create): Consider flag_openacc next
19522         to flag_openmp.
19523         * config/i386/intelmic-offload.h: New file.
19524         * config/nvptx/offload.h: Likewise.
19525
19526 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19527
19528         * explow.h: Remove duplicate contents.
19529         * dojump.h: Likewise.
19530
19531 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
19532
19533         * arm.c (arm_xgene_tune): Add default initializer for instruction
19534         fusion.
19535
19536 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
19537
19538         PR ipa/64068
19539         PR ipa/64559
19540         * ipa.c (symbol_table::remove_unreachable_nodes):
19541         Do not put abstract origins into boundary.
19542
19543 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
19544
19545         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
19546         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
19547
19548 2015-01-15  Steve Ellcey  <sellcey@mips.com>
19549
19550         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
19551         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
19552         builtins.def, and chkp-builtins.def.
19553
19554 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
19555
19556         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
19557         ISA 2.7 (POWER8).
19558
19559 2015-01-15  Richard Biener  <rguenther@suse.de>
19560
19561         PR tree-optimization/61743
19562         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
19563         information on PHIs for some simple cases.
19564
19565 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
19566
19567         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
19568         Include xgene1.md.
19569         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
19570         * config/arm/arm-cores.def (xgene1): New entry.
19571         * config/arm/arm-tables.opt: Regenerate.
19572         * config/arm/arm-tune.md: Regenerate.
19573         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
19574
19575 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
19576
19577         * tree-if-conv.c: Include hash-map.h.
19578         (aggressive_if_conv): New variable.
19579         (fold_build_cond_expr): Add simplification of non-zero condition.
19580         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
19581         destination block is not always executed.
19582         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
19583         than two predecessors if AGGRESSIVE_IF_CONV is true.
19584         (if_convertible_stmt_p): Fix commentary.
19585         (all_preds_critical_p): New function.
19586         (has_pred_critical_p): New function.
19587         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
19588         BB can have more than two predecessors and all incoming edges can be
19589         critical.
19590         (predicate_bbs): Skip predication for loop exit block, use build2_loc
19591         to compute predicate for true edge.
19592         (find_phi_replacement_condition): Delete this function.
19593         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
19594         Allow interchange PHI arguments if EXTENDED is false.
19595         Change check that block containing reduction statement candidate
19596         is predecessor of phi-block since phi may have more than two arguments.
19597         (phi_args_hash_traits): New helper structure.
19598         (struct phi_args_hash_traits): New type.
19599         (phi_args_hash_traits::hash): New function.
19600         (phi_args_hash_traits::equal_keys): New function.
19601         (gen_phi_arg_condition): New function.
19602         (predicate_scalar_phi): Add handling of phi nodes with more than two
19603         arguments, delete COND and TRUE_BB arguments, insert body of
19604         find_phi_replacement_condition to predicate ordinary phi nodes.
19605         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
19606         delete call of find_phi_replacement_condition and invoke
19607         predicate_scalar_phi with two arguments.
19608         (insert_gimplified_predicates): Add assert that non-predicated block
19609         don't have statements to insert.
19610         (ifcvt_split_critical_edges): New function.
19611         (ifcvt_split_def_stmt): Likewise.
19612         (ifcvt_walk_pattern_tree): Likewise.
19613         (stmt_is_root_of_bool_pattern): Likewise.
19614         (ifcvt_repair_bool_pattern): Likewise.
19615         (ifcvt_local_dce): Likewise.
19616         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
19617         is copy of inner or outer loop force_vectorize field, invoke
19618         ifcvt_split_critical_edges, ifcvt_local_dce and
19619         ifcvt_repair_bool_pattern for aggressive if-conversion.
19620
19621 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
19622
19623         * config/aarch64/aarch64.md: Include xgene1.md.
19624         * config/aarch64/xgene1.md: New file.
19625
19626 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
19627
19628         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
19629         xgene1 (APM XGene-1) core definition.
19630         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
19631         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
19632         * doc/invoke.texi: Document -mcpu=xgene1.
19633
19634 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
19635
19636         * dojump.h: New header file.
19637         * explow.h: Likewise.
19638         * expr.h: Remove includes.
19639         Move expmed.c prototypes to expmed.h.
19640         Move dojump.c prototypes to dojump.h.
19641         Move alias.c prototypes to alias.h.
19642         Move explow.c prototypes to explow.h.
19643         Move calls.c prototypes to calls.h.
19644         Move emit-rtl.c prototypes to emit-rtl.h.
19645         Move varasm.c prototypes to varasm.h.
19646         Move stmt.c prototypes to stmt.h.
19647         (saved_pending_stack_adjust): Move to dojump.h.
19648         (adjust_address): Move to explow.h.
19649         (adjust_address_nv): Move to emit-rtl.h.
19650         (adjust_bitfield_address): Likewise.
19651         (adjust_bitfield_address_size): Likewise.
19652         (adjust_bitfield_address_nv): Likewise.
19653         (adjust_automodify_address_nv): Likewise.
19654         * explow.c (expr_size): Move to expr.c.
19655         (int_expr_size): Likewise.
19656         (tree_expr_size): Likewise.
19657         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19658         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
19659         * genemit.c (main): Generate includes statistics.h, real.h,
19660         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
19661         stmt.h.
19662         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
19663         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
19664         explow.h, emit-rtl.h, stmt.h.
19665         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
19666         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
19667         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
19668         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
19669         emit-rtl.h, varasm.h, stmt.h.
19670         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
19671         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
19672         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
19673         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
19674         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
19675         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
19676         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
19677         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
19678         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
19679         tm.h tree.h varasm.h vec.h wide-int.h.
19680         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
19681         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
19682         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
19683         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
19684         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
19685         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
19686         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
19687         * loop-iv.c: Likewise.
19688         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
19689         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
19690         statistics.h stmt.h tree.h varasm.h wide-int.h.
19691         * lra-constraints.c: Likewise.
19692         * lra-eliminations.c: Likewise.
19693         * lra-lives.c: Likewise.
19694         * lra-remat.c: Likewise.
19695         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
19696         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
19697         statistics.h stmt.h tree.h varasm.h wide-int.h.
19698         * hw-doloop.c: Likewise.
19699         * ira-color.c: Likewise.
19700         * ira-emit.c: Likewise.
19701         * loop-doloop.c: Likewise.
19702         * loop-invariant.c: Likewise.
19703         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
19704         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
19705         statistics.h stmt.h tree.h varasm.h wide-int.h.
19706         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
19707         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
19708         statistics.h stmt.h tree.h varasm.h wide-int.h.
19709         * combine-stack-adj.c: Likewise.
19710         * cse.c: Likewise.
19711         * ddg.c: Likewise.
19712         * ifcvt.c: Likewise.
19713         * ira-costs.c: Likewise.
19714         * jump.c: Likewise.
19715         * lra-coalesce.c: Likewise.
19716         * lra-spills.c: Likewise.
19717         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
19718         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
19719         stmt.h varasm.h wide-int.h.
19720         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
19721         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
19722         varasm.h.
19723         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
19724         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
19725         statistics.h stmt.h varasm.h wide-int.h.
19726         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
19727         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
19728         varasm.h wide-int.h.
19729         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
19730         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
19731         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
19732         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
19733         statistics.h stmt.h.
19734         * config/tilepro/tilepro.c: Likewise.
19735         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
19736         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
19737         * config/pdp11/pdp11.c: Likewise.
19738         * config/xtensa/xtensa.c: Likewise.
19739         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
19740         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
19741         varasm.h.
19742         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19743         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
19744         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
19745         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19746         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
19747         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
19748         * rtl-chkp.c: Likewise.
19749         * tree-chkp-opt.c: Likewise.
19750         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
19751         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
19752         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
19753         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19754         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
19755         statistics.h stmt.h.
19756         * tree-vect-data-refs.c: Likewise.
19757         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
19758         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
19759         rtl.h statistics.h stmt.h varasm.h.
19760         * internal-fn.c: Likewise.
19761         * ipa-icf-gimple.c: Likewise.
19762         * lto-section-out.c: Likewise.
19763         * tree-data-ref.c: Likewise.
19764         * tree-nested.c: Likewise.
19765         * tree-outof-ssa.c: Likewise.
19766         * tree-predcom.c: Likewise.
19767         * tree-pretty-print.c: Likewise.
19768         * tree-scalar-evolution.c: Likewise.
19769         * tree-ssa-strlen.c: Likewise.
19770         * tree-vect-loop.c: Likewise.
19771         * tree-vect-patterns.c: Likewise.
19772         * tree-vect-slp.c: Likewise.
19773         * tree-vect-stmts.c: Likewise.
19774         * tsan.c: Likewise.
19775         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19776         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
19777         stmt.h.
19778         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
19779         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
19780         statistics.h stmt.h varasm.h.
19781         * loop-unroll.c: Likewise.
19782         * ubsan.c: Likewise.
19783         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
19784         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
19785         stmt.h varasm.h.
19786         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19787         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
19788         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
19789         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
19790         statistics.h stmt.h.
19791         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
19792         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
19793         statistics.h stmt.h varasm.h.
19794         * gimple-match-head.c: Likewise.
19795         * lto-cgraph.c: Likewise.
19796         * lto-section-in.c: Likewise.
19797         * lto-streamer-in.c: Likewise.
19798         * lto-streamer-out.c: Likewise.
19799         * tree-affine.c: Likewise.
19800         * tree-cfg.c: Likewise.
19801         * tree-cfgcleanup.c: Likewise.
19802         * tree-if-conv.c: Likewise.
19803         * tree-into-ssa.c: Likewise.
19804         * tree-ssa-alias.c: Likewise.
19805         * tree-ssa-copyrename.c: Likewise.
19806         * tree-ssa-dse.c: Likewise.
19807         * tree-ssa-forwprop.c: Likewise.
19808         * tree-ssa-live.c: Likewise.
19809         * tree-ssa-math-opts.c: Likewise.
19810         * tree-ssa-pre.c: Likewise.
19811         * tree-ssa-sccvn.c: Likewise.
19812         * tree-tailcall.c: Likewise.
19813         * tree-vect-generic.c: Likewise.
19814         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19815         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
19816         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19817         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
19818         * varasm.c: Likewise.
19819         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19820         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
19821         varasm.h.
19822         * init-regs.c: Likewise.
19823         * ira.c: Likewise.
19824         * omp-low.c: Likewise.
19825         * stack-ptr-mod.c: Likewise.
19826         * tree-ssa-reassoc.c: Likewise.
19827         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19828         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
19829         varasm.h.
19830         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19831         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
19832         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19833         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
19834         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19835         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
19836         * tree-ssa-phiopt.c: Likewise.
19837         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19838         fixed-value.h hashtab.h real.h statistics.h stmt.h.
19839         * config/fr30/fr30.c: Likewise.
19840         * config/frv/frv.c: Likewise.
19841         * expr.c: Likewise.
19842         * final.c: Likewise.
19843         * optabs.c: Likewise.
19844         * passes.c: Likewise.
19845         * simplify-rtx.c: Likewise.
19846         * stmt.c: Likewise.
19847         * toplev.c: Likewise.
19848         * var-tracking.c: Likewise.
19849         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19850         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
19851         * lower-subreg.c: Likewise.
19852         * postreload-gcse.c: Likewise.
19853         * ree.c: Likewise.
19854         * reginfo.c: Likewise.
19855         * store-motion.c: Likewise.
19856         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19857         fixed-value.h hashtab.h real.h stmt.h varasm.h.
19858         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19859         fixed-value.h hashtab.h statistics.h stmt.h.
19860         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19861         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
19862         * except.c: Likewise.
19863         * explow.c: Likewise.
19864         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19865         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
19866         varasm.h.
19867         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19868         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
19869         * tree-ssa-structalias.c: Likewise.
19870         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19871         fixed-value.h insn-config.h real.h statistics.h.
19872         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19873         fixed-value.h insn-config.h real.h statistics.h stmt.h.
19874         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19875         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
19876         * cfgbuild.c: Likewise.
19877         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19878         fixed-value.h real.h rtl.h statistics.h stmt.h.
19879         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19880         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
19881         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19882         fixed-value.h real.h statistics.h stmt.h.
19883         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
19884         fixed-value.h real.h statistics.h stmt.h varasm.h.
19885         * cprop.c: Likewise.
19886         * modulo-sched.c: Likewise.
19887         * postreload.c: Likewise.
19888         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
19889         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
19890         statistics.h stmt.h varasm.h.
19891         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
19892         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
19893         rtl.h statistics.h stmt.h varasm.h.
19894         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
19895         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
19896         varasm.h.
19897         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
19898         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
19899         varasm.h.
19900         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
19901         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
19902         varasm.h.
19903         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
19904         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
19905         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
19906         function.h real.h statistics.h stmt.h varasm.h.
19907         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
19908         insn-config.h real.h statistics.h stmt.h.
19909         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
19910         statistics.h stmt.h.
19911         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
19912         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
19913         statistics.h stmt.h varasm.h.
19914         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
19915         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
19916         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
19917         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
19918         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
19919         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
19920         statistics.h stmt.h varasm.h.
19921         * ipa-polymorphic-call.c: Likewise.
19922         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
19923         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
19924         statistics.h stmt.h.
19925         * config/c6x/c6x.c: Likewise.
19926         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
19927         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
19928         statistics.h stmt.h varasm.h.
19929         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
19930         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
19931         stmt.h varasm.h.
19932         * ipa-split.c: Likewise.
19933         * tree-eh.c: Likewise.
19934         * tree-ssa-dce.c: Likewise.
19935         * tree-ssa-loop-niter.c: Likewise.
19936         * tree-vrp.c: Likewise.
19937         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
19938         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
19939         stmt.h.
19940         * config/nds32/nds32-fp-as-gp.c: Likewise.
19941         * config/nds32/nds32-intrinsic.c: Likewise.
19942         * config/nds32/nds32-isr.c: Likewise.
19943         * config/nds32/nds32-md-auxiliary.c: Likewise.
19944         * config/nds32/nds32-memory-manipulation.c: Likewise.
19945         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
19946         * config/nds32/nds32-predicates.c: Likewise.
19947         * config/nds32/nds32.c: Likewise.
19948         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
19949         fixed-value.h hashtab.h real.h statistics.h.
19950         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
19951         fixed-value.h hashtab.h real.h statistics.h stmt.h.
19952         * config/arm/arm.c: Likewise.
19953         * config/avr/avr.c: Likewise.
19954         * config/bfin/bfin.c: Likewise.
19955         * config/h8300/h8300.c: Likewise.
19956         * config/i386/i386.c: Likewise.
19957         * config/ia64/ia64.c: Likewise.
19958         * config/iq2000/iq2000.c: Likewise.
19959         * config/m32c/m32c.c: Likewise.
19960         * config/m32r/m32r.c: Likewise.
19961         * config/m68k/m68k.c: Likewise.
19962         * config/mcore/mcore.c: Likewise.
19963         * config/mep/mep.c: Likewise.
19964         * config/mips/mips.c: Likewise.
19965         * config/mn10300/mn10300.c: Likewise.
19966         * config/moxie/moxie.c: Likewise.
19967         * config/pa/pa.c: Likewise.
19968         * config/rl78/rl78.c: Likewise.
19969         * config/rx/rx.c: Likewise.
19970         * config/s390/s390.c: Likewise.
19971         * config/sh/sh.c: Likewise.
19972         * config/sparc/sparc.c: Likewise.
19973         * config/spu/spu.c: Likewise.
19974         * config/stormy16/stormy16.c: Likewise.
19975         * config/v850/v850.c: Likewise.
19976         * config/vax/vax.c: Likewise.
19977         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
19978         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
19979         * config/msp430/msp430.c: Likewise.
19980         * predict.c: Likewise.
19981         * value-prof.c: Likewise.
19982         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
19983         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
19984         * config/microblaze/microblaze.c: Likewise.
19985         * config/nios2/nios2.c: Likewise.
19986         * config/rs6000/rs6000.c: Likewise.
19987         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
19988         insn-config.h real.h rtl.h statistics.h stmt.h.
19989         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
19990         insn-config.h real.h statistics.h stmt.h.
19991         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
19992         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
19993         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
19994         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
19995         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
19996         fixed-value.h real.h statistics.h stmt.h.
19997         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
19998         fixed-value.h statistics.h stmt.h.
19999         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
20000         stmt.h.
20001
20002 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
20003
20004         * gengtype.c (create_user_defined_type): Workaround
20005         -Wmaybe-uninitialized false positives.
20006         * cse.c (fold_rtx): Likewise.
20007         * loop-invariant.c (gain_for_invariant): Likewise.
20008
20009 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
20010
20011         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
20012         set the memory attributes in all cases but clear MEM_EXPR if need be.
20013
20014 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
20015
20016         PR tree-optimization/64434
20017         * cfgexpand.c (reorder_operands): New function.
20018         (expand_gimple_basic_block): Insert call of reorder_operands if
20019         optimized is true.
20020
20021 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
20022
20023         * config/mips/micromips.md (*swp): Remove explicit parallel.
20024         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
20025         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
20026         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
20027         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
20028         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
20029         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
20030         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
20031         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
20032         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
20033         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
20034         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
20035         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
20036         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
20037         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
20038         (mips_wrdsp): Likewise.
20039         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
20040         parallel.
20041         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
20042         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
20043         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
20044         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
20045         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
20046         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
20047         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
20048         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
20049         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
20050
20051 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
20052
20053         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
20054         (mips_print_operand): Support 'y' to print exact log2 in decimal
20055         of a const_int.
20056         * config/mips/mips.h (ISA_HAS_LSA): New define.
20057         (ISA_HAS_DLSA): Likewise.
20058         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
20059         * config/mips/predicates.md (const_immlsa_operand): New predicate.
20060
20061 2015-01-15  Martin Liska  <mliska@suse.cz>
20062
20063         PR target/64377
20064         * optc-save-gen.awk: Add support for array types.
20065
20066 2015-01-15  Richard Biener  <rguenther@suse.de>
20067
20068         PR middle-end/64365
20069         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
20070         for MEM_REF access functions with the same base can never partially
20071         overlap.
20072
20073 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
20074
20075         * common.opt: New option -fstack-protector-explicit.
20076         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
20077         (stack_protect_decl_phase): Handle stack_protect attribute for
20078         explicit stack protection requests.
20079         (expand_used_vars): Similarly.
20080         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
20081         * doc/extend.texi: Add documentation for "stack_protect" attribute.
20082         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
20083
20084 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
20085
20086         PR target/53988
20087         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
20088         reg-reg copies.
20089         (sh_extending_set_of_reg): New struct.
20090         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
20091         sh_remove_reg_dead_or_unused_notes): New Declarations.
20092         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
20093         sh_find_extending_set_of_reg, sh_split_tst_subregs,
20094         sh_extending_set_of_reg::use_as_extended_reg): New functions.
20095         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
20096         convert to insn_and_split and use new function sh_split_tst_subregs.
20097
20098 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
20099
20100         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
20101         option.
20102         (Optimization Options): Move -fuse-ld documentation to...
20103         (Link Options): ...here.
20104
20105 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
20106
20107         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
20108         offsets.
20109         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
20110         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
20111         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
20112         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
20113         instead of ZR for the memory operand of LL/SC.
20114         (compare_and_swap_12, sync_add<mode>): Likewise.
20115         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
20116         (sync_new_<optab>_12, sync_nand_12): Likewise.
20117         (sync_old_nand_12, sync_new_nand_12): Likewise.
20118         (sync_sub<mode>, sync_old_add<mode>): Likewise.
20119         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
20120         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
20121         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
20122         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
20123         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
20124         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
20125         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
20126         * doc/md.texi (ZC): Update description.
20127
20128 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
20129
20130         * builtins.c (expand_builtin_atomic_exchange): Remove error when
20131         memory model is CONSUME.
20132         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
20133         expand_builtin_atomic_store): Change invalid memory model errors to
20134         warnings.
20135         (expand_builtin_atomic_clear): Change invalid model errors to warnings
20136         and issue warning for CONSUME.
20137
20138 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
20139
20140         * lto-cgraph: Update function comments for
20141         lto_symtab_encoder_encode_*.
20142
20143 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
20144
20145         * Makefile.in (site.exp): Do not set ENABLE_LTO.
20146
20147 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
20148
20149         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
20150         * lto-cgraph.c (select_what_to_stream): Remove argument, use
20151         lto_stream_offload_p instead.
20152         * lto-streamer.h (select_what_to_stream): Remove argument.
20153         * passes.c (ipa_write_summaries): Likewise.
20154         * tree-pass.h (ipa_write_summaries): Likewise.
20155
20156 2015-01-14  Richard Biener  <rguenther@suse.de>
20157
20158         PR tree-optimization/59354
20159         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
20160         groups larger than the slp group size as having gaps.
20161
20162 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
20163
20164         PR middle-end/59448
20165         * builtins.c (get_memmodel): Promote consume to acquire always.
20166
20167 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
20168
20169         PR target/64386
20170         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
20171         V32HImode.
20172
20173 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
20174
20175         PR target/64393
20176         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
20177         Enable AVX512BW.
20178         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
20179         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
20180         AVX512VBMI, as it implies AVX512BW.
20181
20182 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
20183
20184         PR target/64387
20185         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
20186         (vec_unpacks_hi_v16sf): Ditto.
20187
20188 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20189
20190         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
20191         is not available.
20192
20193 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20194
20195         * doc/invoke.texi (mapcs): Mention deprecation.
20196         (mapcs-frame): Likewise.
20197
20198 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20199
20200         PR target/64453
20201         * config/arm/arm.c (callee_saved_reg_p): Define.
20202         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
20203         register is callee saved instead of !call_used_regs[reg].
20204         (thumb1_compute_save_reg_mask): Likewise.
20205
20206 2015-01-14  Hale Wang  <hale.wang@arm.com>
20207
20208         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
20209         Cortex-M7.
20210
20211 2015-01-14  Richard Biener  <rguenther@suse.de>
20212
20213         PR lto/64415
20214         * tree-inline.c (insert_debug_decl_map): Check destination
20215         function MAY_HAVE_DEBUG_STMTS.
20216         (insert_init_debug_bind): Likewise.
20217         (insert_init_stmt): Remove redundant check.
20218         (remap_gimple_stmt): Drop debug stmts if the destination
20219         function has var-tracking assignments disabled.
20220
20221 2015-01-14  Martin Liska  <mliska@suse.cz>
20222
20223         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
20224         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
20225
20226 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20227
20228         PR target/64460
20229         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
20230         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
20231
20232 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
20233
20234         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
20235         level from an ARCH; do not inject the default.
20236         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
20237         MIPS_ISA_LEVEL_SPEC.
20238         (MIPS_ISA_NAN2008_SPEC): Update comment.
20239         (BASE_DRIVER_SELF_SPECS): Likewise.
20240         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
20241         MIPS_DEFAULT_ISA_LEVEL_SPEC.
20242         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
20243         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
20244         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
20245
20246 2015-01-14  Richard Biener  <rguenther@suse.de>
20247
20248         PR tree-optimization/64493
20249         PR tree-optimization/64495
20250         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
20251         assign the proper vectorized PHI to the inner loop exit PHIs.
20252
20253 2015-01-14  Joey Ye  <joey.ye@arm.com>
20254
20255         * config/arm/arm.c (arm_compute_save_reg_mask):
20256         Do not save lr in case of tail call.
20257         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
20258
20259 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
20260
20261         * tree-vrp.c (check_array_ref): Emit more warnings
20262         for warn_array_bounds >= 2.
20263         * common.opt: New option -Warray-bounds=.
20264         * doc/invoke.texi: Document -Warray-bounds=.
20265
20266 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
20267
20268         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
20269         (mforbid-fp-as-gp): Remove.
20270         (mex9): Remove.
20271         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
20272         (nds32_symbol_load_store_p): Remove.
20273         (nds32_fp_as_gp_check_available): Clean up implementation.
20274         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
20275         cases.
20276         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
20277         fp-as-gp and ex9 cases.
20278
20279 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
20280
20281         * tree-profile.c (init_ic_make_global_vars): Drop workaround
20282         for bintuils bug 14342.
20283         (init_ic_make_global_vars): Likewise.
20284         (gimple_init_edge_profiler): Likewise.
20285         (gimple_gen_ic_func_profiler): Likewise.
20286
20287 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
20288
20289         * ipa-inline.c (inline_small_functions): Swap the operands in
20290         enum.
20291
20292 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
20293
20294         PR ipa/64481
20295         * ipa-inline-analysis.c (node_growth_cache): Remove.
20296         (initialize_growth_caches): Do not initialize it.
20297         (free_growth_caches): Do not free it.
20298         (do_estimate_growth): Rename to ...
20299         (estimate_growth): ... this one; drop growth cache code.
20300         (growth_likely_positive): Always go the heuristics way.
20301         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
20302         (reset_edge_caches): Do not reset node growth.
20303         (heap_edge_removal_hook): Do not maintain cache.
20304         (inline_small_functions): Likewise; strenghten sanity check.
20305         (ipa_inline): Do not maintain caches.
20306         * ipa-inline.h (node_growth_cache): Remove.
20307         (do_estimate_growth): Remove to ...
20308         (estimate_growth): this one; remove inline version.
20309         (reset_node_growth_cache): Remove.
20310
20311 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
20312
20313         PR ipa/64565
20314         * ipa-inline.c (inline_small_functions): Update callee keys after
20315         resolving speculation
20316         (inline_small_functions): Always check monotonicity of the queue.
20317
20318 2015-01-13  Marek Polacek  <polacek@redhat.com>
20319
20320         PR middle-end/64391
20321         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
20322
20323 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
20324
20325         PR rtl-optimization/64286
20326         * ree.c (combine_reaching_defs): Move part of comment earlier,
20327         remove !SCALAR_INT_MODE_P check.
20328         (add_removable_extension): Don't add vector mode
20329         extensions if all uses of the source register aren't the same
20330         vector extensions.
20331
20332 2015-01-13  Renlin Li  <renlin.li@arm.com>
20333
20334         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
20335         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
20336
20337 2015-01-13  Martin Liska  <mliska@suse.cz>
20338
20339         * ipa-icf.c (sem_function::equals_private): Call new functions
20340         cl_target_option_print_diff and cl_optimization_print_diff.
20341         * optc-save-gen.awk (cl_target_option_print_diff): New function.
20342         (cl_optimization_print_diff): Likewise.
20343         * opth-gen.awk: Likewise.
20344
20345 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
20346
20347         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
20348         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
20349         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
20350         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
20351         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
20352         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
20353
20354 2015-01-13  Andrew Pinski  <apinski@cavium.com>
20355
20356         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
20357         instead of src mode.
20358
20359 2015-01-13  Richard Biener  <rguenther@suse.de>
20360
20361         PR lto/64373
20362         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
20363         DECL_CONTEXT.
20364
20365 2015-01-13  Andrew Pinski  <apinski@cavium.com>
20366
20367         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
20368         volatile mems.
20369         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
20370
20371 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
20372
20373         PR middle-end/63974
20374         * cfgexpand.c (expand_computed_goto): Don't call
20375         convert_memory_address here.
20376
20377 2015-01-13  Richard Biener  <rguenther@suse.de>
20378
20379         PR tree-optimization/64406
20380         * tree-loop-distibution.c (pass_loop_distribution::execute):
20381         Reset the SCEV hashtable if we distributed anything.
20382
20383 2015-01-13  Richard Biener  <rguenther@suse.de>
20384
20385         PR tree-optimization/64404
20386         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
20387         SLP types for CSEd loads.
20388
20389 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20390
20391         PR tree-optimization/64436
20392         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
20393         merge of two symbolic numbers for a bitwise OR to ...
20394         (perform_symbolic_merge): This. Also fix computation of the range and
20395         end of the symbolic number corresponding to the result of a bitwise OR.
20396
20397 2015-01-13  Richard Biener  <rguenther@suse.de>
20398
20399         PR tree-optimization/64568
20400         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
20401         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
20402
20403 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
20404
20405         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
20406         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
20407
20408 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
20409
20410         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
20411         target-specific symbol_ref flag.
20412         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
20413         resides in rodata section.
20414         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
20415         (nds32_encode_section_info): New function.
20416
20417 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
20418
20419         * config/nds32/nds32.md (call): Use pseudo instruction bal which
20420         clobbers TA_REGNUM if large code model is specified.
20421         (call_register): Likewise.
20422         (call_immediate): Likewise.
20423         (call_value): Likewise.
20424         (call_value_register): Likewise.
20425         (call_value_immediate): Likewise.
20426
20427 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
20428
20429         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
20430         (TARGET_CMODEL_MEDIUM): New macro.
20431         (TARGET_CMODEL_LARGE): New macro.
20432         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
20433         code model setting in assembly code.
20434
20435 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
20436
20437         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
20438         Remove MASK_GP_DIRECT flag.
20439         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
20440         one of the multilib default options.
20441         * config/nds32/nds32.opt (mgp-direct): Remove.
20442         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
20443         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
20444
20445 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
20446
20447         * config/nds32/nds32.opt (mcmodel): Add new option.
20448         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
20449         to describe code model.
20450
20451 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
20452
20453         PR target/64479
20454         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
20455
20456 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
20457
20458         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
20459         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
20460         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
20461         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
20462         __builtin_sh_set_fpscr.
20463
20464 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
20465
20466         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
20467         after a funtion name just to indicate it is a function.
20468         ([-fsanitize-undefined-trap-on-error]): Likewise.
20469         ([-fdbg-cnt=]): Likewise.
20470         ([-mmemcpy]): Likewise.
20471         ([-mflush-func]): Likewise.
20472         ([-msynci]): Likewise.
20473
20474 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
20475
20476         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
20477         example.
20478
20479 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
20480
20481         PR tree-optimization/64563
20482         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
20483         instead of != VR_VARYING.
20484
20485         PR target/64513
20486         * config/i386/i386.c (ix86_expand_prologue): Add
20487         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
20488
20489         PR tree-optimization/64454
20490         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
20491         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
20492         for signed or [0, op1 - 1] for unsigned modulo.
20493         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
20494         even if op1 does not satisfy integer_pow2p.
20495
20496         PR other/64370
20497         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
20498
20499 2015-01-12  Jeff Law  <law@redhat.com>
20500
20501         PR target/64461
20502         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
20503         (trunchiqi2, truncsihi2): Similarly.
20504
20505         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
20506         rather than calling F.
20507
20508 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20509
20510         * tsan.c (instrument_expr): Use force_gimple_operand.
20511         Use may_be_nonaddressable_p instead of is_gimple_addressable.
20512
20513 2015-01-12  Richard Biener  <rguenther@suse.de>
20514
20515         PR tree-optimization/64530
20516         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
20517         back dr1.
20518
20519 2015-01-12  Richard Biener  <rguenther@suse.de>
20520
20521         PR middle-end/64357
20522         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
20523         latches properly.
20524
20525 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20526
20527         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
20528         Cortex-A17 tuning parameters.
20529         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
20530
20531 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20532
20533         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
20534         * config/arm/arm.c (arm_macro_fusion_p): New function.
20535         (arm_macro_fusion_pair_p): Likewise.
20536         (TARGET_SCHED_MACRO_FUSION_P): Define.
20537         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
20538         (ARM_FUSE_NOTHING): Likewise.
20539         (ARM_FUSE_MOVW_MOVT): Likewise.
20540         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
20541         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
20542         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
20543         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
20544         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
20545         arm_cortex_a5_tune): Specify fuseable_ops value.
20546
20547 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
20548
20549         PR bootstrap/64561
20550         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
20551         test for PIE with copy reloc.
20552         * configure: Regenerated.
20553
20554 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20555
20556         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
20557         in gen_rtx_REG.
20558         (arm_tls_descseq_addr): Likewise.
20559         (arm_gen_movmemqi): Likewise.
20560         (arm_expand_epilogue_apcs_frame): Likewise.
20561         (arm_expand_epilogue): Likewise.
20562         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
20563         in gen_rtx_REG.
20564
20565 2015-01-12  Martin Liska  <mliska@suse.cz>
20566
20567         PR ipa/64550
20568         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
20569         volatility for correct operands.
20570
20571 2015-01-12  Martin Liska  <mliska@suse.cz>
20572
20573         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
20574         indication that a function is not leaf.
20575         (sem_function::compare_polymorphic_p): Likewise.
20576
20577 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20578
20579         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
20580         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
20581         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
20582         fold-const.h, tree-check.h.
20583
20584 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
20585
20586         PR ipa/63967
20587         PR ipa/64425
20588         * ipa-inline.c (compute_uninlined_call_time,
20589         compute_inlined_call_time): Use counts for extra precision when
20590         needed possible.
20591         (big_speedup_p): Fix formating.
20592         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
20593         (relative_time_benefit): Remove.
20594         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
20595         merge guessed and read profile paths.
20596         (inline_small_functions): Count only !optimize_size functions into
20597         initial size; be more lax about sanity check when profile is used;
20598         be sure to update inlined function profile when profile is read.
20599
20600 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
20601
20602         PR ipa/63470
20603         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
20604         cost when edge becomes direct.
20605         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
20606         is resolved or when introducing new speculation.
20607
20608 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
20609
20610         PR ipa/64551
20611         PR ipa/64552
20612         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
20613         '||' to fix typo issue.
20614
20615         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
20616         accept and return NULL.
20617
20618 2015-01-12  Martin Liska  <mliska@suse.cz>
20619
20620         * cgraph.c (cgraph_edge::remove_callee): Move function to header
20621         file for being inlined.
20622         (cgraph_set_edge_callee): Delete.
20623         (cgraph_edge::redirect_callee): Move function to header file
20624         for being inlined.
20625         (cgraph_edge::make_direct): Use new function.
20626         (cgraph_edge::dump_edge_flags): New function created from
20627         static dump_edge_flags function.
20628         (cgraph_node::dump): Use new function.
20629         (cgraph_edge::verify_count_and_frequency): New function created
20630         from verify_edge_count_and_frequency.
20631         (cgraph_edge::verify_corresponds_to_fndecl): New function created
20632         from verify_edge_corresponds_to_fndecl.
20633         (verify_edge_corresponds_to_fndecl): Delete.
20634         (cgraph_node::verify_node): Use new function.
20635         * cgraph.h (cgraph_edge::set_callee): New function.
20636         (cgraph_edge::dump_edge_flags): Likewise.
20637         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
20638
20639 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
20640
20641         * ipa-utils.c (estimate_function_body_sizes): Do not
20642         free node params when called late with early=true.
20643
20644 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
20645
20646         * doc/md.texi (Instruction Patterns): Rewrite text for
20647         clarity.
20648         (Example): Likewise.
20649
20650 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
20651
20652         * doc/invoke.texi (Option Summary): Break long lines.
20653         [(-fdiagnostics-color)]: Put long literal in @smallexample
20654         instead of inline.
20655         [(-fsanitize-recover)]: Likewise.
20656         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
20657         [(-ffast-math)]: Likewise.
20658         [(--param max-inline-insns-recursive)]: Likewise.
20659         [(--param max-inline-recursive-depth)]: Likewise.
20660         [(-mno-text-section-literals)]: Likewise.
20661
20662 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
20663
20664         * doc/install.texi: Update for libgomp being renamed from "GNU
20665         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
20666         Runtime Library".
20667         * doc/sourcebuild.texi: Likewise.
20668
20669 2015-01-10  Anthony Green  <green@moxielogic.com>
20670
20671         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
20672         mul.x availability for moxiebox configuration.
20673
20674 2015-01-09  Anthony Green  <green@moxielogic.com>
20675
20676         * config/moxie/moxie.md: Tabify assembly output.
20677
20678 2015-01-09  Anthony Green  <green@moxielogic.com>
20679
20680         * config/moxie/moxie.md (CC_REG): Correct register definition.
20681
20682 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
20683
20684         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
20685         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
20686         of log files.
20687
20688 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
20689
20690         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
20691
20692 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
20693             Jakub Jelinek  <jakub@redhat.com>
20694
20695         PR middle-end/64412
20696         * lto-streamer.h (lto_stream_offload_p): New declaration.
20697         * lto-streamer.c (lto_stream_offload_p): New variable.
20698         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
20699         at the same time as section_name_prefix.
20700         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
20701         if lto_stream_offload_p.
20702         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
20703         stream TREE_TARGET_OPTION if lto_stream_offload_p.
20704         (write_ts_function_decl_tree_pointers): Don't
20705         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
20706         * tree-streamer-in.c (unpack_value_fields): Don't stream
20707         TREE_TARGET_OPTION in if ACCEL_COMPILER.
20708         (lto_input_ts_function_decl_tree_pointers): Don't stream
20709         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
20710         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
20711         instead of section_name_prefix string comparisons.
20712
20713 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
20714
20715         PR rtl-optimization/64536
20716         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
20717         tablejumps.
20718
20719 2015-01-09  Michael Collison  <michael.collison@linaro.org>
20720
20721         PR tree-optimization/64322
20722         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
20723         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
20724
20725 2015-01-09  Tom de Vries  <tom@codesourcery.com>
20726
20727         PR rtl-optimization/64539
20728         * regcprop.c (kill_clobbered_values): Factor out of ...
20729         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
20730         instead of note_stores with kill_clobbered_value.
20731
20732 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
20733
20734          * ginclude/unwind-arm-common.h: Revert previous commit.
20735
20736 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
20737
20738         * config.gcc (arm*-*-freebsd*): New configuration.
20739         * config/arm/freebsd.h: New file.
20740         * config.host: Add extra components for arm*-*-freebsd*.
20741         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
20742         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
20743
20744 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
20745
20746         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
20747         for -mcpu=e6500.
20748         * config/rs6000/t-rtems: Add e6500 multilibs.
20749
20750 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
20751
20752         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
20753         MPC8540.
20754
20755 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
20756
20757         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
20758         MULTILIB_EXCEPTIONS.
20759
20760 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
20761
20762         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
20763         MULTILIB_EXCEPTIONS.
20764
20765 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
20766
20767         * config/arm/t-rtems-eabi: Rename to...
20768         * config/arm/t-rtems: ...this.
20769         * config/arm/rtems-eabi.h: Rename to...
20770         * config/arm/rtems.h: ...this.
20771         * config.gcc (arm*-*-rtems*): Reflect changes above.
20772
20773 2015-01-09  Richard Biener  <rguenther@suse.de>
20774
20775         PR tree-optimization/64410
20776         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
20777         on the LHS.
20778         (execute_update_addresses_taken): Deal with that.
20779         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
20780         loads/stores for complex variables.
20781
20782 2015-01-09  Martin Liska  <mliska@suse.cz>
20783
20784         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
20785         name comparison.
20786         (func_checker::compare_memory_operand): New function.
20787         (func_checker::compare_operand): Split case to newly
20788         added functions.
20789         (func_checker::compare_cst_or_decl): New function.
20790         (func_checker::compare_gimple_call): Identify
20791         memory operands.
20792         (func_checker::compare_gimple_assign): Likewise.
20793         * ipa-icf-gimple.h: New function.
20794
20795 2015-01-09  Martin Liska  <mliska@suse.cz>
20796
20797         PR ipa/64503
20798         * sreal.c (sreal::dump): Change unsigned format to signed for
20799         m_exp value.
20800         (sreal::to_double): Replace exp2 with scalbln.
20801
20802 2015-01-09  Martin Liska  <mliska@suse.cz>
20803
20804         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
20805         * ipa-icf.c (sem_function::equals_private): Add support for target and
20806         (sem_item_optimizer::merge_classes): Remove redundant function
20807         optimization flags comparison.
20808         * tree.h (target_opts_for_fn): New function.
20809
20810 2015-01-09  Tom de Vries  <tom@codesourcery.com>
20811
20812         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
20813
20814 2015-01-09  Kito Cheng  <kito@0xlab.org>
20815
20816         PR rtl-optimization/64348
20817         * lra-constraints.c (split_reg): Fix caller-save store/restore
20818         instruction generation.
20819
20820 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
20821
20822         PR gcov-profile/61790
20823         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
20824         long long.  Fallback to int64_t if host doesn't have long long and
20825         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
20826
20827 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
20828
20829         PR tree-optimization/63989
20830         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
20831         from 1000 to 10000.
20832         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
20833         (get_stridx): If we don't have a record for certain SSA_NAME,
20834         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
20835         constant offset, call get_stridx_plus_constant.
20836         (get_stridx_plus_constant): New function.
20837         (zero_length_string): Don't use get_stridx here.
20838
20839         PR target/55023
20840         PR middle-end/64388
20841         * dse.c (struct insn_info): Mention frame_read set also
20842         before reload for tail calls on some targets.
20843         (scan_insn): Revert 2014-12-22 change.  Set frame_read
20844         also before reload for tail calls if
20845         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
20846         instead of add_non_frame_wild_read for non-const/memset
20847         tail calls after reload.
20848
20849 2015-01-08  Jason Merrill  <jason@redhat.com>
20850
20851         * ubsan.c (do_ubsan_in_current_function): New.
20852         (pass_ubsan::gate): Use it.
20853         * ubsan.h: Declare it.
20854         * convert.c (convert_to_integer): Use it.
20855
20856 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
20857
20858         PR target/64338
20859         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
20860         compare_code when it is unconditionally overwritten afterwards.
20861         Use ix86_reverse_condition instead of reverse_condition.  Don't
20862         change code if *reverse_condition* returned UNKNOWN and don't
20863         swap ct/cf and negate diff in that case.
20864
20865 2015-01-08  Mike Stump  <mikestump@comcast.net>
20866
20867         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
20868         (pass_tsan_O0::gate): Likewise.
20869         * extend.texi (Function Attributes): Add no_sanitize_thread
20870         documentation.
20871
20872 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
20873
20874         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
20875         for registering builtins.
20876         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
20877         add -fopenmp to the argv_obstack used when invoking
20878         compile_for_target.
20879
20880         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
20881         add "-m32" or "-m64" to argv_obstack.
20882         (generate_host_descr_file): Likewise, when invoking host_compiler.
20883         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
20884         ld.
20885
20886 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
20887
20888         * config/sh/sh-mem.cc: Use constant as second operand when emitting
20889         tstsi_t insns.
20890
20891 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
20892
20893         PR target/55212
20894         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
20895         constant load if constant operand fits into I08.
20896
20897 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
20898
20899         PR sanitizer/64336
20900         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
20901         and TREE_THIS_VOLATILE for MEM_REFs.
20902         (build5_stat): Fix up initialization of TREE_READONLY and
20903         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
20904
20905 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
20906
20907         PR target/64533
20908         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
20909         of r for the second alternative of the destination operand.
20910
20911 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
20912
20913         PR target/36557
20914         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
20915
20916 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
20917
20918         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
20919         keywords.
20920         ([-fivar-visibility], [-fvisibility]): Likewise.
20921
20922 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
20923
20924         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
20925         the file where @code, @command, etc is more appropriate.
20926
20927 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
20928
20929         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
20930         of -mrecip= documentation.
20931
20932 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
20933
20934         PR target/64505
20935         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
20936         correct reload handler if -m32 -mpowerpc64 is used.
20937
20938 2015-01-06  Tom de Vries  <tom@codesourcery.com>
20939
20940         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
20941
20942 2015-01-08  Christian Bruel  <christian.bruel@st.com>
20943
20944         PR target/64507
20945         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
20946
20947 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20948
20949         PR tree-optimization/63259
20950         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
20951         if optab exists for 16bit byteswap.
20952
20953 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
20954
20955         * opts.c (common_handle_option): Add support for
20956         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
20957         * doc/invoke.texi: Document -fno-sanitize=all,
20958         -f{,no-}sanitize-recover=all.  Document that
20959         -fsanitize=float-cast-overflow is not enabled
20960         by -fsanitize=undefined.  Fix up documentation
20961         of -f{,no-}sanitize-recover.
20962
20963 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
20964
20965         * config.gcc: Add Visium support.
20966         * configure.ac: Likewise.
20967         * configure: Regenerate.
20968         * doc/extend.texi (interrupt attribute): Add Visium.
20969         * doc/invoke.texi: Document Visium options.
20970         * doc/install.texi: Document Visium target.
20971         * doc/md.texi: Document Visium constraints.
20972         * common/config/visium: New directory.
20973         * config/visium: Likewise.
20974
20975 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
20976
20977         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
20978         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
20979
20980 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
20981
20982         * combine.c (combine_validate_cost): Do not count the cost of a
20983         split I2 twice.  Do not display it twice in the dump, either.
20984
20985 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
20986
20987         Revert parts of r219199.
20988         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
20989         <inttypes.h>.
20990         ([-Wtraditional]): Restore markup on <limits.h>.
20991
20992 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
20993
20994         PR c++/31397
20995         * doc/invoke.texi: Document -Wsuggest-override.
20996
20997 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
20998
20999         PR rtl-optimization/64287
21000         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
21001         (process_options): Disable flag_ipa_ra if profiling.
21002
21003 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
21004
21005         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
21006
21007 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
21008
21009         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
21010         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
21011         put under #if TARGET_LOOPS guard.
21012
21013 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
21014
21015         * config/i386/i386.c (output_387_binary_op): Use std::swap.
21016
21017 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
21018
21019         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
21020         * rtl.h (refers_to_regno_p): Add overload.
21021         * cse.c: Use it.
21022         * bt-load.c: Likewise.
21023         * combine.c: Likewise.
21024         * df-scan.c: Likewise.
21025         * sched-deps.c: Likewise.
21026         * config/s390/s390.c: Likewise.
21027         * config/m32r/m32r.c: Likewise.
21028         * config/rs6000/spe.md: Likewise.
21029         * config/rs6000/rs6000.c: Likewise.
21030         * config/pa/pa.c: Likewise.
21031         * config/stormy16/stormy16.c: Likewise.
21032         * config/cris/cris.c: Likewise.
21033         * config/arc/arc.md: Likewise.
21034         * config/arc/arc.c: Likewise.
21035         * config/sh/sh.md: Likewise.
21036         * config/sh/sh.c: Likewise.
21037         * config/frv/frv.c: Likewise.
21038
21039 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
21040
21041         PR sanitizer/64265
21042         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
21043         call as cleanup of the whole body.
21044         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
21045         * tsan.c (replace_func_exit): New function.
21046         (instrument_func_exit): Moved earlier.
21047         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
21048         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
21049         been found.
21050         (tsan_pass): Don't call instrument_func_exit.
21051         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
21052         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
21053         inlining.
21054
21055         PR sanitizer/64344
21056         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
21057         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
21058         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
21059         if the result is integer_zerop, return NULL_TREE.
21060         * convert.c (convert_to_integer): Pass expr as ARG.
21061
21062         PR tree-optimization/64465
21063         * tree-inline.c (redirect_all_calls): During inlining
21064         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
21065         changed the stmt to a non-throwing call.
21066
21067 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
21068
21069         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
21070         etc markup throughout the file.
21071
21072 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
21073
21074         Enable experimental TSAN support for Ada.
21075         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
21076
21077 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
21078
21079         PR tree-optimization/64494
21080         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
21081         clear SSA_NAME_ANTI_RANGE_P flag.
21082
21083 2015-01-05  Marek Polacek  <polacek@redhat.com>
21084
21085         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
21086
21087 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
21088
21089         Update copyright years.
21090
21091         * gcc.c (process_command): Update copyright notice dates.
21092         * gcov-dump.c: Ditto.
21093         * gcov.c: Ditto.
21094         * doc/cpp.texi: Bump @copying's copyright year.
21095         * doc/cppinternals.texi: Ditto.
21096         * doc/gcc.texi: Ditto.
21097         * doc/gccint.texi: Ditto.
21098         * doc/gcov.texi: Ditto.
21099         * doc/install.texi: Ditto.
21100         * doc/invoke.texi: Ditto.
21101
21102         * auto-profile.c, auto-profile.h: Fix up Copyright line.
21103
21104 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
21105
21106         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
21107         verb tense, etc.
21108         ([-fvtable-verify], [-fvtv-debug]): Likewise.
21109         ([-Wabi]): Likewise.
21110         ([-fmessage-length]): Likewise.
21111         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
21112         ([-Wno-discarded-qualifiers]): Likewise.
21113         ([-Wnodiscarded-array-qualifiers]): Likewise.
21114         ([-Wno-virtual-move-assign]): Likewise.
21115         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
21116         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
21117         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
21118         ([-fsanitize-undefined-trap-on-error]): Likewise.
21119         ([-floop-interchange]): Likewise.
21120         ([-ftree-coalesce-inlined-vars]): Likewise.
21121         ([-fvect-cost-model]): Likewise.
21122         ([-flto]): Likewise.
21123         ([--param]): Likewise.
21124         (Spec Files): Likewise.
21125         ([-mstrict-align]): Likewise.
21126         ([-mfix-cortex-a53-835769]): Likewise.
21127         ([-march], [-mtune]): Likewise.
21128         ([-mpic-register]): Likewise.
21129         ([-munaligned-access]): Likewise.
21130         ([-msp8]): Likewise.
21131         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
21132         (AVR Built-in Macros): Likewise.
21133         ([-mpreferred-stack-boundary]): Likewise.
21134         ([-mtune-crtl]): Likewise.
21135         ([-mashf]): Likewise.
21136         ([-mmcu=]): Likewise.
21137         ([-minrt]): Likewise.
21138         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
21139         ([-mupper-regs]): Likewise.
21140         ([-matomic-model]): Likewise.
21141         ([-mdiv]): Likewise.
21142         ([-mzdcbranch]): Likewise.
21143         ([-mdisable-callt]): Likewise.
21144         ([-msoft-float]): Likewise.
21145         ([-m8byte-align]): Likewise.
21146         ([-fstack-reuse]): Likewise.
21147
21148 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
21149
21150         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
21151         Fix markup, light copy-editing.
21152         ([-fauto-profile]): Rewrite to fix formatting and content
21153         problems.
21154
21155 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
21156
21157         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
21158         Copy-edit description.
21159         ([-fisolate-erroneous-paths-attribute]): Likewise.
21160         * common.opt (fisolate-erroneous-paths-dereference):
21161         Copy-edit description.
21162         (fisolate-erroneous-paths-attribute): Likewise.
21163
21164 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
21165
21166         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
21167         tidy grammar.
21168
21169 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
21170
21171         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
21172         ([-fvtv-debug]): Likewise.
21173         ([-Wc++-compat]): Likewise.
21174         ([-Wc++11-compat]): Likewise.
21175         ([-Wc++14-compat]): Likewise.
21176         ([-Wno-sized-deallocation]): Likewise.
21177         ([-femit-class-debug-always]): Likewise.
21178         ([-femit-struct-debug-detailed]): Likewise.
21179         ([-fno-keep-inline-dllexport]): Likewise.
21180         ([-fira-algorithm]): Likewise.
21181         ([-fira-region]): Likewise.
21182         ([-flra-remat]): Likewise.
21183         ([-fipa-ra]): Likewise.
21184         ([-fhoist-adjacent-loads]): Likewise.
21185         ([-fisolate-erroneous-paths-dereference]): Likewise.
21186         ([-fisolate-erroneous-paths-attribute]): Likewise.
21187         ([-ftree-switch-conversion]): Likewise.
21188         ([-ftree-tail-merge]): Likewise.
21189         ([-ftree-loop-if-convert]): Likewise.
21190         ([-ftree-loop-if-convert-stores]): Likewise.
21191         ([-ftree-loop-distribution]): Likewise.
21192         ([-ftree-loop-distribute-patterns]): Likewise.
21193         ([-flto-compression-level]): Likewise.
21194         ([-flto-report]): Likewise.
21195         ([-flto-report-wpa]): Likewise.
21196         ([-fuse-linker-plugin]): Likewise.
21197         ([-mfix-cortex-a53-835769]): Likewise.
21198         ([-mno-fix-cortex-a53-835769]): Likewise.
21199         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
21200         explicit listing; add a note to the discussion indicating they
21201         exist.  Reorder table to group similar options.  Add missing
21202         @opindex entries.  Add @need commands throughout the table to
21203         allow it to be split across multiple pages.
21204         ([-m8bit-idiv]): Fix @opindex.
21205         ([-mavx256-split-unaligned-load]): Likewise.
21206         ([-mavx256-split-unaligned-store]): Likewise.
21207         ([-mstack-protector-guard]): Likewise.
21208         ([-mcpu=]): Likewise.
21209         ([-mcpu]): Likewise.
21210         ([-mpointer-size=]): Likewise.
21211
21212 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
21213
21214         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
21215         instead of `m' constraint.  Likewise for unnamed movb comparison
21216         patterns using reg_before_reload_operand predicate.
21217         * config/pa/predicates.md (reg_before_reload_operand): Tighten
21218         predicate to reject register index and LO_SUM DLT memory forms
21219         after reload.
21220
21221 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
21222
21223         * doc/invoke.texi (Option Summary): Fix spelling of
21224         -fdevirtualize-at-ltrans.
21225         ([-fdevirtualize]): Fix markup.
21226         ([-fdevirtualize-speculatively]): Fix typo.
21227         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
21228         implementor-speaky.
21229         * common.opt (fdevirtualize-at-ltrans): Likewise.
21230         * ipa-devirt.c: Fix typos in comments throughout the file.
21231         (ipa_devirt): Fix typos in format strings for dump output.
21232
21233 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
21234
21235         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
21236         discussion of defaults, light copy-editing.
21237
21238 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
21239
21240         * tsan.c (instrument_expr): corrected previous checkin.
21241
21242 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
21243
21244         Instrument bit field and unaligned accesses for TSAN.
21245         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
21246         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
21247         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
21248         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
21249         unaligned memory regions.
21250
21251 2015-01-01  Anthony Green  <green@moxielogic.com>
21252
21253         * config/moxie/predicates.md (moxie_general_movsrc_operand):
21254         Restrict move source register offsets to 16 bits.
21255 \f
21256 Copyright (C) 2015 Free Software Foundation, Inc.
21257
21258 Copying and distribution of this file, with or without modification,
21259 are permitted in any medium without royalty provided the copyright
21260 notice and this notice are preserved.