28b415bd44e7e1892b361146468e7771072f8f5a
[platform/upstream/linaro-gcc.git] / gcc / ChangeLog
1 2013-11-25  Jeff Law  <law@redhat.com>
2
3         * tree-ssa-threadupdate.c (thread_through_all_blocks): Selectively
4         invalidate loop information.
5
6 2013-11-25  Oleg Endo  <olegendo@gcc.gnu.org>
7
8         * config/sh/sh.md (doloop_end_split): Add missing SI mode.
9
10 2013-11-25  Oleg Endo  <olegendo@gcc.gnu.org>
11
12         PR target/53976
13         PR target/59243
14         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value): Update
15         comments.
16         (sh_optimize_sett_clrt::find_last_ccreg_values): Check stack of
17         previously visited basic blocks before recursing instead of only one
18         basic block.
19
20 2013-11-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21
22         * config/aarch64/aarch64.c (cortexa53_tuning): New struct.
23         * config/aarch64/aarch64-cores.def (cortex-a53):
24         Use cortexa53 tuning struct.
25
26 2013-11-25  Andrew Macleod  <amacleod@redhat.com>
27
28         PR bootstrap/59260
29         * fold-const.c: Include hash-table.h.
30
31 2013-11-25  Marek Polacek  <polacek@redhat.com>
32
33         PR sanitizer/59258
34         * ubsan.c (ubsan_create_data): Increase the size of the fields array.
35
36 2013-11-25  Richard Biener  <rguenther@suse.de>
37
38         * tree-dfa.c: Remove unused convert.h include.
39
40 2013-11-25  Terry Guo  <terry.guo@arm.com>
41
42         * doc/invoke.texi (-mslow-flash-data): Document new option.
43         * config/arm/arm.opt (mslow-flash-data): New option.
44         * config/arm/arm-protos.h (arm_max_const_double_inline_cost): Declare
45         it.
46         * config/arm/arm.h (TARGET_USE_MOVT): Always true when literal pools
47         are disabled.
48         (arm_disable_literal_pool): Declare it.
49         * config/arm/arm.c (arm_disable_literal_pool): New variable.
50         (arm_option_override): Handle new option.
51         (thumb2_legitimate_address_p): Don't allow symbol references when
52         literal pools are disabled.
53         (arm_max_const_double_inline_cost): New function.
54         * config/arm/arm.md (types.md): Include it before ...
55         (use_literal_pool): New attribute.
56         (enabled): Use new attribute.
57         (split pattern): Replace symbol+offset with MOVW/MOVT.
58
59 2013-11-24  Steven Bosscher  <steven@gcc.gnu.org>
60
61         PR bootstrap/59279
62         Revert previous commit.
63
64 2013-11-24  Steven Bosscher  <steven@gcc.gnu.org>
65
66         * jump.c (reset_insn_reg_label_operand_notes): New function,
67         split out from ...
68         (init_label_info): ... here.  Reset LABEL_NUSES in cfglayout mode.
69         * cfgcleanup.c (delete_dead_jump_tables_between): New function,
70         split out from ...
71         (delete_dead_jumptables): ... here.  Handle cfglayout mode.
72         (cleanup_cfg): Delete dead jump tables in cfglayout mode if an
73         expensive CFG cleanup is called for.
74         * cfgrtl.c (fixup_reorder_chain): Remove BARRIERs from fallthru paths.
75         (cfg_layout_finalize): Delete dead jump tables before re-building
76         the insns chain.
77         * ira.c (ira): Rebuild jump labels *after* deleting unreachable
78         basic blocks, not before.
79         * loop-init.c (rtl_loop_done): Call for an expensive CFG cleanup.
80
81         * modulo-sched.c (sms_schedule): Do not look for BARRIERs in the
82         insns chain of a scheduling extended basic block, they cannot appear
83         there in cfglayout mode.
84
85 2013-11-24  Tobias Burnus  <burnus@net-b.de>
86
87         * doc/invoke.texi (-fsanitize=leak): Add link to the wiki page.
88
89 2013-11-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
90
91         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Correct
92         for little endian.
93
94 2013-11-24  H.J. Lu  <hongjiu.lu@intel.com>
95
96         * graphite-sese-to-poly.c: Don't include extra "expr.h".
97
98 2013-11-23  Eric Botcazou  <ebotcazou@adacore.com>
99
100         * cilk-common.c (expand_builtin_cilk_detach): Dereference worker.
101
102 2013-11-23  David Edelson  <dje.gcc@gmail.com>
103             Andrew Dixie  <andrewd@gentrack.com>
104
105         PR target/33704
106         * config/rs6000/aix.h (COLLECT_SHARED_INIT_FUNC): Define.
107         (COLLECT_SHARED_FINI_FUNC): Define.
108
109         * collect2.c (aix_shared_initname): Declare.
110         (aix_shared_fininame): Declare.
111         (symkind): Add SYM_AIXI and SYM_AIXD.
112         (scanfilter_masks): Add SCAN_AIXI and SCAN_AIXD.
113         (struct names special): Add GLOBAL__AIXI_ and GLOBAL__AIXD_.
114         (aixlazy_flag): Parse.
115         (extract_init_priority): SYM_AIXI and SYM_AIXD have highest priority.
116         (scan_prog_file, COFF): Handle SYM_AIXI and SYM_AIXD.
117
118 2013-11-23  David Edelsohn  <dje.gcc@gmail.com>
119
120         * config/rs6000/rs6000.c (IN_NAMED_SECTION): New macro.
121         (rs6000_xcoff_select_section): Place decls with stricter alignment
122         into named sections.
123         (rs6000_xcoff_unique_section): Allow unique sections for
124         uninitialized data with strict alignment.
125
126 2013-11-23  Jakub Jelinek  <jakub@redhat.com>
127
128         PR tree-optimization/59154
129         * tree-ssa-reassoc.c (maybe_optimize_range_tests): When changing
130         rhs1 of a cast and new_op is invariant, fold_convert it.
131         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Only call
132         simplify_conversion_from_bitmask if rhs1 is a SSA_NAME.
133
134 2013-11-23  Uros Bizjak  <ubizjak@gmail.com>
135
136         PR target/56788
137         * config/i386/i386.c (bdesc_multi_arg) <IX86_BUILTIN_VFRCZSS>:
138         Declare as MULTI_ARG_1_SF instruction.
139         <IX86_BUILTIN_VFRCZSD>: Decleare as MULTI_ARG_1_DF instruction.
140         * config/i386/sse.md (*xop_vmfrcz<mode>2): Rename
141         from *xop_vmfrcz_<mode>.
142         * config/i386/xopintrin.h (_mm_frcz_ss): Use __builtin_ia32_movss
143         to merge scalar result with __A.
144         (_mm_frcz_sd): Use __builtin_ia32_movsd to merge scalar
145         result with __A.
146
147 2013-11-23  Eric Botcazou  <ebotcazou@adacore.com>
148
149         * gimplify.h (recalculate_side_effects): Delete.
150         * gimplify.c (recalculate_side_effects): Make static and add comment.
151
152 2013-11-23  Richard Sandiford  <rdsandiford@googlemail.com>
153
154         * config/sh/sh.md: Use nonimmediate_operand rather than general_operand
155         for the destination of a define_peephole2.  Likewise register_operand
156         rather than arith_reg_operand.  Remove constraints from
157         define_peephole2s.
158
159 2013-11-23  Richard Sandiford  <rdsandiford@googlemail.com>
160
161         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation):
162         Delete.
163         (mn10300_store_multiple_operation_p): Declare.
164         * config/mn10300/mn10300.c (mn10300_store_multiple_operation):
165         Rename to...
166         (mn10300_store_multiple_operation_p): ...this and remove mode
167         argument.
168         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
169         Define.
170
171 2013-11-23  Richard Sandiford  <rdsandiford@googlemail.com>
172
173         * config/bfin/bfin-protos.h (push_multiple_operation): Delete.
174         (pop_multiple_operation): Delete.
175         (analyze_push_multiple_operation): Declare.
176         (analyze_pop_multiple_operation): Declare.
177         * config/bfin/bfin.c (push_multiple_operation): Rename to...
178         (analyze_push_multiple_operation): ...this and remove mode argument.
179         (pop_multiple_operation): Rename to...
180         (analyze_pop_multiple_operation): ...this and remove mode argument.
181         * config/bfin/predicates.md (push_multiple_operation): Define.
182         (pop_multiple_operation): Likewise.
183
184 2013-11-23  Alan Modra  <amodra@gmail.com>
185
186         * config/rs6000/vsx.md (fusion peepholes): Disable when !TARGET_VSX.
187
188 2013-11-22  Jakub Jelinek  <jakub@redhat.com>
189
190         PR sanitizer/59061
191         * common.opt (static-liblsan): Add.
192         * config/gnu-user.h (STATIC_LIBLSAN_LIBS, STATIC_LIBUBSAN_LIBS):
193         Define.
194         * flag-types.h (enum sanitize_code): Add SANITIZE_LEAK.  Renumber
195         SANITIZE_SHIFT, SANITIZE_DIVIDE, SANITIZE_UNREACHABLE, SANITIZE_VLA,
196         SANITIZE_RETURN.
197         * opts.c (common_handle_option): Handle -fsanitize=leak.
198         * gcc.c (ADD_STATIC_LIBLSAN_LIBS, LIBLSAN_SPEC): Define.
199         (LIBUBSAN_SPEC): Don't test LIBUBSAN_EARLY_SPEC.
200         (LIBUBSAN_EARLY_SPEC): Remove.
201         (SANITIZER_EARLY_SPEC): Don't do anything for libubsan.
202         (SANITIZER_SPEC): Add -fsanitize=leak handling.
203         (sanitize_spec_function): Handle %sanitize(leak).
204         * doc/invoke.texi (-static-liblsan, -fsanitize=leak): Document.
205
206 2013-11-22  Aldy Hernandez  <aldyh@redhat.com>
207             Jakub Jelinek  <jakub@redhat.com>
208
209         * ipa.c (symtab_remove_unreachable_nodes): Fix up comment typos.
210         * ipa-prop.c (get_vector_of_formal_parm_types): Renamed to ...
211         (ipa_get_vector_of_formal_parm_types): ... this.  No longer static.
212         (ipa_modify_formal_parameters): Adjust caller.  Remove
213         synth_parm_prefix argument.  Use operator enum instead of bit fields.
214         Add assert for properly handling vector of references.  Handle
215         creating brand new parameters.
216         (ipa_modify_call_arguments): Use operator enum instead of bit
217         fields.
218         (ipa_combine_adjustments): Same.  Assert that IPA_PARM_OP_NEW is not
219         used.
220         (ipa_modify_expr, get_ssa_base_param, ipa_get_adjustment_candidate):
221         New functions.
222         (ipa_dump_param_adjustments): Rename reduction to new_decl.
223         Use operator enum instead of bit fields.
224         * ipa-prop.h (enum ipa_parm_op): New.
225         (struct ipa_parm_adjustment): New field op.  Rename reduction
226         to new_decl, new_arg_prefix to arg_prefix and remove remove_param
227         and copy_param.
228         (ipa_modify_formal_parameters): Remove last argument.
229         (ipa_get_vector_of_formal_parm_types, ipa_modify_expr,
230         ipa_get_adjustment_candidate): New prototypes.
231         * tree-sra.c (turn_representatives_into_adjustments): Use operator
232         enum.  Set arg_prefix.
233         (get_adjustment_for_base): Use operator enum.
234         (sra_ipa_modify_expr): Rename to ipa_modify_expr and move to
235         ipa-prop.c.
236         (sra_ipa_modify_assign): Rename sra_ipa_modify_expr to ipa_modify_expr.
237         (ipa_sra_modify_function_body): Same.  No longer static.
238         (sra_ipa_reset_debug_stmts): Use operator enum.
239         (modify_function): Do not pass prefix argument.
240
241 2013-11-22  Jakub Jelinek  <jakub@redhat.com>
242
243         * ubsan.c (ubsan_source_location): Don't crash on unknown locations.
244         (ubsan_pass): Ignore clobber stmts.
245
246         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_MISSING_RETURN): New built-in.
247         * opts.c (common_handle_option): Add -fsanitize=return.
248         * flag-types.h (enum sanitize_code): Add SANITIZE_RETURN and
249         or it into SANITIZE_UNDEFINED.
250
251         * sanitizer.def (BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT,
252         BUILT_IN_ASAN_AFTER_DYNAMIC_INIT): New.
253         * asan.c (instrument_derefs): Handle also VAR_DECL loads/stores.
254         Don't instrument accesses to VAR_DECLs which are known to fit
255         into their bounds and the vars are known to have shadow bytes
256         indicating allowed access.
257         (asan_dynamic_init_call): New function.
258         (asan_add_global): If vnode->dynamically_initialized,
259         set __has_dynamic_init to 1 instead of 0.
260         (initialize_sanitizer_builtins): Add BT_FN_VOID_CONST_PTR var.
261         * asan.h (asan_dynamic_init_call): New prototype.
262         * cgraph.h (varpool_node): Add dynamically_initialized bitfield.
263
264 2013-11-22  Martin Jambor  <mjambor@suse.cz>
265
266         PR rtl-optimization/10474
267         * ira.c (interesting_dest_for_shprep_1): New function.
268         (interesting_dest_for_shprep): Use interesting_dest_for_shprep_1,
269         also check parallels.
270
271 2013-11-22  Jeff Law  <law@redhat.com>
272
273         * tree-ssa-threadedge.c (record_temporary_equivalence): Handle
274         NULL for RHS, which we used to invalidate equivalences.
275         (record_temporary_equivalences_from_phis): New bitmap arguments
276         and a boolean indicating if we have passed a backedge.  If we
277         have passed a backedge, then set the appropriate bit in the
278         bitmaps for the SRC & DEST of PHIs creating equivalences.
279         (invalidate_equivalences, dummy_simplify): New functions.
280         (cond_arg_set_in_b): Remove.
281         (record_temporary_equivalences_from_stmts_at_dest): New bitmap
282         arguments and a boolean indicating if we have passed a backedge.
283         If we have passed a backedge, then perform invalidations as needed.
284         (thread_around_empty_blocks): If we have seen a backedge, then
285         use the dummy simplify routine.
286         (thread_through_normal_block): Likewise.  Pass bitmaps and
287         backedge status to children.  Do not pessimize so much when
288         traversing backedges in the CFG.
289         (thread_across_edge): Manage the SRC_MAP/DST_MAP bitmaps.
290         If we have seen a backedge, then use the dummy simplify routine.
291         Do not pessimize so much when traversing backedges.
292
293 2013-11-22  Hans-Peter Nilsson  <hp@axis.com>
294
295         * config/cris/cris.c (cris_atomic_align_for_mode): New function.
296         (TARGET_ATOMIC_ALIGN_FOR_MODE): Define.
297
298 2013-11-22  Yuri Rumyantsev  <ysrumyan@gmail.com>
299
300         * config/i386/i386.c(processor_alias_table): Enable PTA_AES,
301         PTA_PCLMUL and PTA_RDRND for Silvermont.
302         * config/i386/driver-i386.c (host_detect_local_cpu): Set up cpu
303         for Silvermont.
304
305         * doc/invoke.texi: Mention AES, PCLMUL and RDRND for Silvermont.
306
307 2013-11-22 Andrew MacLeod  <amacleod@redhat.com>
308
309         * hooks.h (hook_uint_mode_0): Add Prototype.
310         * hooks.c (hook_uint_mode_0): New default function.
311         * target.def (atomic_align_for_mode): New target hook.
312         * tree.c (build_atomic_base): Add alignment override parameter.
313         (build_common_tree_nodes): Use atomic alignment override.
314         * doc/tm.texi.in (TARGET_ATOMIC_ALIGN_FOR_MODE): Define.
315         * doc/tm.texi (TARGET_ATOMIC_ALIGN_FOR_MODE): Add description.
316
317 2013-11-22 Andrew MacLeod  <amacleod@redhat.com>
318
319         * gimple.h: Remove all includes.
320         (recalculate_side_effects): Move prototype to gimplify.h.
321         * Makefile.in (PLUGIN_HEADERS): Add flattened gimple.h includes.
322         * gengtype.c (open_base_files): Add gimple.h include list.
323         * gimplify.h (recalculate_side_effects): Relocate prototype here.
324         * gimple.c: Adjust include list.
325         (recalculate_side_effects): Move to gimplify.c.
326         * gimplify.c: Adjust include list.
327         (recalculate_side_effects): Relocate from gimple.c.
328         * alias.c: Add required include files removed from gimple.h.
329         * asan.c: Likewise.
330         * builtins.c: Likewise.
331         * calls.c: Likewise.
332         * cfgexpand.c: Likewise.
333         * cfgloop.c: Likewise.
334         * cfgloopmanip.c: Likewise.
335         * cgraphbuild.c: Likewise.
336         * cgraph.c: Likewise.
337         * cgraphclones.c: Likewise.
338         * cgraphunit.c: Likewise.
339         * cilk-common.c: Likewise.
340         * data-streamer.c: Likewise.
341         * data-streamer-in.c: Likewise.
342         * data-streamer-out.c: Likewise.
343         * dse.c: Likewise.
344         * dwarf2out.c: Likewise.
345         * emit-rtl.c: Likewise.
346         * except.c: Likewise.
347         * expr.c: Likewise.
348         * fold-const.c: Likewise.
349         * function.c: Likewise.
350         * gimple-builder.c: Likewise.
351         * gimple-expr.c: Likewise.
352         * gimple-fold.c: Likewise.
353         * gimple-iterator.c: Likewise.
354         * gimple-low.c: Likewise.
355         * gimple-pretty-print.c: Likewise.
356         * gimple-ssa-isolate-paths.c: Likewise.
357         * gimple-ssa-strength-reduction.c: Likewise.
358         * gimple-streamer-in.c: Likewise.
359         * gimple-streamer-out.c: Likewise.
360         * gimple-walk.c: Likewise.
361         * gimplify-me.c: Likewise.
362         * graphite-blocking.c: Likewise.
363         * graphite.c: Likewise.
364         * graphite-clast-to-gimple.c: Likewise.
365         * graphite-dependences.c: Likewise.
366         * graphite-interchange.c: Likewise.
367         * graphite-optimize-isl.c: Likewise.
368         * graphite-poly.c: Likewise.
369         * graphite-scop-detection.c: Likewise.
370         * graphite-sese-to-poly.c: Likewise.
371         * internal-fn.c: Likewise.
372         * ipa.c: Likewise.
373         * ipa-cp.c: Likewise.
374         * ipa-devirt.c: Likewise.
375         * ipa-inline-analysis.c: Likewise.
376         * ipa-inline.c: Likewise.
377         * ipa-profile.c: Likewise.
378         * ipa-prop.c: Likewise.
379         * ipa-pure-const.c: Likewise.
380         * ipa-reference.c: Likewise.
381         * ipa-split.c: Likewise.
382         * ipa-utils.c: Likewise.
383         * langhooks.c: Likewise.
384         * lto-cgraph.c: Likewise.
385         * lto-compress.c: Likewise.
386         * lto-opts.c: Likewise.
387         * lto-section-in.c: Likewise.
388         * lto-section-out.c: Likewise.
389         * lto-streamer.c: Likewise.
390         * lto-streamer-in.c: Likewise.
391         * lto-streamer-out.c: Likewise.
392         * omp-low.c: Likewise.
393         * opts-global.c: Likewise.
394         * passes.c: Likewise.
395         * predict.c: Likewise.
396         * profile.c: Likewise.
397         * sese.c: Likewise.
398         * stmt.c: Likewise.
399         * stor-layout.c: Likewise.
400         * symtab.c: Likewise.
401         * targhooks.c: Likewise.
402         * toplev.c: Likewise.
403         * tracer.c: Likewise.
404         * trans-mem.c: Likewise.
405         * tree-affine.c: Likewise.
406         * tree.c: Likewise.
407         * tree-call-cdce.c: Likewise.
408         * tree-cfg.c: Likewise.
409         * tree-cfgcleanup.c: Likewise.
410         * tree-chrec.c: Likewise.
411         * tree-complex.c: Likewise.
412         * tree-data-ref.c: Likewise.
413         * tree-dfa.c: Likewise.
414         * tree-eh.c: Likewise.
415         * tree-emutls.c: Likewise.
416         * tree-if-conv.c: Likewise.
417         * tree-inline.c: Likewise.
418         * tree-into-ssa.c: Likewise.
419         * tree-loop-distribution.c: Likewise.
420         * tree-nested.c: Likewise.
421         * tree-nrv.c: Likewise.
422         * tree-object-size.c: Likewise.
423         * tree-outof-ssa.c: Likewise.
424         * tree-parloops.c: Likewise.
425         * tree-phinodes.c: Likewise.
426         * tree-predcom.c: Likewise.
427         * tree-pretty-print.c: Likewise.
428         * tree-profile.c: Likewise.
429         * tree-scalar-evolution.c: Likewise.
430         * tree-sra.c: Likewise.
431         * tree-ssa-address.c: Likewise.
432         * tree-ssa-alias.c: Likewise.
433         * tree-ssa.c: Likewise.
434         * tree-ssa-ccp.c: Likewise.
435         * tree-ssa-coalesce.c: Likewise.
436         * tree-ssa-copy.c: Likewise.
437         * tree-ssa-copyrename.c: Likewise.
438         * tree-ssa-dce.c: Likewise.
439         * tree-ssa-dom.c: Likewise.
440         * tree-ssa-dse.c: Likewise.
441         * tree-ssa-forwprop.c: Likewise.
442         * tree-ssa-ifcombine.c: Likewise.
443         * tree-ssa-live.c: Likewise.
444         * tree-ssa-loop.c: Likewise.
445         * tree-ssa-loop-ch.c: Likewise.
446         * tree-ssa-loop-im.c: Likewise.
447         * tree-ssa-loop-ivcanon.c: Likewise.
448         * tree-ssa-loop-ivopts.c: Likewise.
449         * tree-ssa-loop-manip.c: Likewise.
450         * tree-ssa-loop-niter.c: Likewise.
451         * tree-ssa-loop-prefetch.c: Likewise.
452         * tree-ssa-loop-unswitch.c: Likewise.
453         * tree-ssa-math-opts.c: Likewise.
454         * tree-ssanames.c: Likewise.
455         * tree-ssa-operands.c: Likewise.
456         * tree-ssa-phiopt.c: Likewise.
457         * tree-ssa-phiprop.c: Likewise.
458         * tree-ssa-pre.c: Likewise.
459         * tree-ssa-propagate.c: Likewise.
460         * tree-ssa-reassoc.c: Likewise.
461         * tree-ssa-sccvn.c: Likewise.
462         * tree-ssa-sink.c: Likewise.
463         * tree-ssa-strlen.c: Likewise.
464         * tree-ssa-structalias.c: Likewise.
465         * tree-ssa-tail-merge.c: Likewise.
466         * tree-ssa-ter.c: Likewise.
467         * tree-ssa-threadedge.c: Likewise.
468         * tree-ssa-threadupdate.c: Likewise.
469         * tree-ssa-uncprop.c: Likewise.
470         * tree-ssa-uninit.c: Likewise.
471         * tree-stdarg.c: Likewise.
472         * tree-streamer.c: Likewise.
473         * tree-streamer-in.c: Likewise.
474         * tree-streamer-out.c: Likewise.
475         * tree-switch-conversion.c: Likewise.
476         * tree-tailcall.c: Likewise.
477         * tree-vect-data-refs.c: Likewise.
478         * tree-vect-generic.c: Likewise.
479         * tree-vect-loop.c: Likewise.
480         * tree-vect-loop-manip.c: Likewise.
481         * tree-vectorizer.c: Likewise.
482         * tree-vect-patterns.c: Likewise.
483         * tree-vect-slp.c: Likewise.
484         * tree-vect-stmts.c: Likewise.
485         * tree-vrp.c: Likewise.
486         * tsan.c: Likewise.
487         * ubsan.c: Likewise.
488         * value-prof.c: Likewise.
489         * varpool.c: Likewise.
490         * var-tracking.c: Likewise.
491         * vtable-verify.c: Likewise.
492         * config/darwin.c: Likewise.
493         * config/aarch64/aarch64-builtins.c: Likewise.
494         * config/aarch64/aarch64.c: Likewise.
495         * config/alpha/alpha.c: Likewise.
496         * config/i386/i386.c: Likewise.
497         * config/i386/winnt.c: Likewise.
498         * config/ia64/ia64.c: Likewise.
499         * config/m32c/m32c.c: Likewise.
500         * config/mep/mep.c: Likewise.
501         * config/mips/mips.c: Likewise.
502         * config/rs6000/rs6000.c: Likewise.
503         * config/s390/s390.c: Likewise.
504         * config/sh/sh.c: Likewise.
505         * config/sparc/sparc.c: Likewise.
506         * config/spu/spu.c: Likewise.
507         * config/stormy16/stormy16.c: Likewise.
508         * config/tilegx/tilegx.c: Likewise.
509         * config/tilepro/tilepro.c: Likewise.
510         * config/xtensa/xtensa.c: Likewise.
511
512 2013-11-22  Richard Earnshaw  <rearnsha@arm.com>
513
514         PR target/59216
515         * arm.md (negdi_extendsidi): Fix invalid split.
516
517 2013-11-22  Alex Velenko  <Alex.Velenko@arm.com>
518
519         * config/aarch64/arm_neon.h (vmov_n_f32): Implemented in C.
520         (vmov_n_f64): Likewise.
521         (vmov_n_p8): Likewise.
522         (vmov_n_p16): Likewise.
523         (vmov_n_s8): Likewise.
524         (vmov_n_s16): Likewise.
525         (vmov_n_s32): Likewise.
526         (vmov_n_s64): Likewise.
527         (vmov_n_u8): Likewise.
528         (vmov_n_u16): Likewise.
529         (vmov_n_u32): Likewise.
530         (vmov_n_u64): Likewise.
531         (vmovq_n_f32): Likewise.
532         (vmovq_n_f64): Likewise.
533         (vmovq_n_p8): Likewise.
534         (vmovq_n_p16): Likewise.
535         (vmovq_n_s8): Likewise.
536         (vmovq_n_s16): Likewise.
537         (vmovq_n_s32): Likewise.
538         (vmovq_n_s64): Likewise.
539         (vmovq_n_u8): Likewise.
540         (vmovq_n_u16): Likewise.
541         (vmovq_n_u32): Likewise.
542         (vmovq_n_u64): Likewise.
543
544 2013-11-22  Tejas Belagod  <tejas.belagod@arm.com>
545
546         * config/aarch64/aarch64-simd.md (vec_pack_trunc_<mode>,
547         vec_pack_trunc_v2df, vec_pack_trunc_df): Swap for big-endian.
548         (reduc_<sur>plus_<mode>): Factorize V2DI into this.
549         (reduc_<sur>plus_<mode>): Change this to reduc_splus_<mode> for floats
550         and also change to float UNSPEC.
551         (reduc_maxmin_uns>_<mode>): Remove V2DI.
552         * config/aarch64/arm_neon.h (vaddv<q>_<suf><8,16,32,64>,
553         vmaxv<q>_<suf><8,16,32,64>, vminv<q>_<suf><8,16,32,64>): Fix up scalar
554         result access for big-endian.
555         (__LANE0): New macro used to fix up lane access of 'across-lanes'
556         intrinsics for big-endian.
557         * config/aarch64/iterators.md (VDQV): Add V2DI.
558         (VDQV_S): New.
559         (vp): New mode attribute.
560
561 2013-11-22  Tejas Belagod  <tejas.belagod@arm.com>
562
563         * config/aarch64/aarch64-simd.md (vec_pack_trunc_<mode>,
564         vec_pack_trunc_v2df, vec_pack_trunc_df): Swap source ops for
565         big-endian.
566
567 2013-11-22  Tejas Belagod  <tejas.belagod@arm.com>
568
569         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Adjust
570         for big-endian element order.
571         (aarch64_simd_vec_setv2di): Likewise.
572         (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>,
573         *aarch64_get_lane_zero_extendsi<mode>, aarch64_get_lane): Likewise.
574         (vec_extract): Expand using aarch64_get_lane.
575         * config/aarch64/aarch64.h (ENDIAN_LANE_N): New.
576
577 2013-11-22  Tejas Belagod  <tejas.belagod@arm.com>
578
579         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Fix loads
580         and stores to be ABI compliant.
581
582 2013-11-22  David Malcolm  <dmalcolm@redhat.com>
583
584         * input.h (input_line): Remove.
585         (input_filename): Likewise.
586         (in_system_header): Likewise.
587         * tree.h (EXPR_LOC_OR_HERE): Remove.
588         * config/bfin/bfin.c (output_file_start): Remove use of
589         input_filename macro.
590         * builtins.c (c_strlen): Remove use of EXPR_LOC_OR_HERE macro.
591         * gimplify.c (internal_get_tmp_var): Likewise.
592         EXPR_LOC_OR_HERE macro.
593         (shortcut_cond_expr): Likewise.
594         * tree-diagnostic.c (diagnostic_report_current_function): Remove
595         use of input_filename macro.
596         * tree.c (get_file_function_name): Likewise.
597
598 2013-11-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
599
600         * store-layout.c (place-field): Fix hwi test and accessor mismatch.
601
602 2013-11-22  Jakub Jelinek  <jakub@redhat.com>
603
604         * expr.c (store_constructor): Allow CONSTRUCTOR with VECTOR_TYPE
605         (same sized) elements even if the type of the CONSTRUCTOR has
606         vector mode and target is a REG.
607
608 2013-11-22  Richard Biener  <rguenther@suse.de>
609
610         Revert
611         2013-11-21  Richard Biener  <rguenther@suse.de>
612
613         * tree-ssa-loop-ch.c (copy_loop_headers): Decrement
614         nb_iterations_upper_bound by one.
615
616 2013-11-22  H.J. Lu  <hongjiu.lu@intel.com>
617
618         * config/i386/i386.c (processor_alias_table): Enable PTA_POPCNT
619         for Silvermont.
620
621         * doc/invoke.texi: Mention POPCNT for corei7, corei7-avx,
622         core-avx-i, core-avx2 and slm.
623
624 2013-11-22  Eric Botcazou  <ebotcazou@adacore.com>
625
626         * print-rtl.c (print_rtx) <case MEM>: Output a space if no MEM_EXPR.
627
628 2013-11-22  Richard Sandiford  <rdsandiford@googlemail.com>
629
630         * config/m32c/cond.md (stzx_16): Use register_operand for operand 0.
631         (stzx_24_<mode>): Likewise mra_operand.
632
633 2013-11-22  Jeff Law  <law@redhat.com>
634
635         * tree-ssa-threadupdate.c: Include tree-cfg.h and tree-pass.h
636         (thread_block_1): Do not cancel jump threads which go from
637         inside a loop, through the header, then back inside the loop.
638         (bb_ends_with_multiway_branch): New function.
639         (thread_through_all_blocks): Handle threading cases which start
640         in a loop through the loop header to a point in the loop.
641
642         * tree-ssa-threadedge.c (thread_across_edge): Mark the start of the
643         jump thread path properly.
644
645 2013-11-22  Trevor Saunders  <tsaunders@mozilla.com>
646
647         * vec.h (auto_vec): New class.
648         * cfganal.c, cfgloop.c, cgraphunit.c, config/i386/i386.c, dwarf2out.c,
649         function.c, genautomata.c, gimple.c, haifa-sched.c, ipa-inline.c,
650         ira-build.c, loop-unroll.c, omp-low.c, ree.c, trans-mem.c,
651         tree-call-cdce.c, tree-eh.c, tree-if-conv.c, tree-into-ssa.c,
652         tree-loop-distribution.c, tree-predcom.c, tree-sra.c,
653         tree-sssa-forwprop.c, tree-ssa-loop-manip.c, tree-ssa-pre.c,
654         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
655         tree-vect-loop.c, tree-vect-stmts.c: Use auto_vec and stack_vec as
656         appropriate instead of vec for local variables.
657
658 2013-11-21  Teresa Johnson  <tejohnson@google.com>
659
660         PR target/59233
661         * cfgcleanup.c (outgoing_edges_match): Walk up past note instructions
662         not understood by old_insns_match_p.
663
664 2013-11-21  Bill Schmidt  <wschmidt@vnet.ibm.com>
665
666         * config/rs6000/vector.md (vec_pack_trunc_v2df): Revert previous
667         little endian change.
668         (vec_pack_sfix_trunc_v2df): Likewise.
669         (vec_pack_ufix_trunc_v2df): Likewise.
670         * config/rs6000/rs6000.c (rs6000_expand_interleave): Correct
671         double checking of endianness.
672
673 2013-11-22  Jakub Jelinek  <jakub@redhat.com>
674
675         * tree-vect-generic.c (optimize_vector_constructor): New function.
676         (expand_vector_operations_1): Call it.
677
678 2013-11-21  Uros Bizjak  <ubizjak@gmail.com>
679
680         * config/i386/i386.c (ix86_expand_special_args_builtin): Use
681         ix86_zero_extend_to_Pmode where appropriate.
682         (ix86_expand_builtin): Ditto.
683
684 2013-11-21  Cary Coutant  <ccoutant@google.com>
685
686         * dwarf2out.c (want_pubnames): Don't do pubnames for -g1.
687         (add_linkage_name): Don't add linkage name for -g1.
688         (decls_for_scope): Process subblocks for -g1.
689         (dwarf2out_source_line): Output line tables for -g1.
690         (dwarf2out_finish): Likewise.
691         * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
692         unused scopes for -g1.
693         * opts.c (common_handle_option): Handle -g same as -g2.
694         * doc/invoke.texi: Update description for -g1.
695
696 2013-11-21  Peter Bergner  <bergner@vnet.ibm.com>
697
698         * doc/extend.texi: Document htm builtins.
699
700 2013-11-21  Jeff Law  <law@redhat.com>
701
702         PR tree-optimization/59221
703         * tree-ssa-threadedge.c (thread_across_edge): Properly manage
704         temporary equivalences when threading through joiner blocks.
705
706 2013-11-21  Joseph Myers  <joseph@codesourcery.com>
707
708         PR rtl-optimization/55950
709         * real.c (real_sqrt): Remove function.
710         * real.h (real_sqrt): Remove prototype.
711         * simplify-rtx.c (simplify_const_unary_operation): Do not fold
712         SQRT using real_sqrt.
713
714 2013-11-21  Richard Biener  <rguenther@suse.de>
715
716         PR tree-optimization/59058
717         * tree-scalar-evolution.h (number_of_exit_cond_executions): Remove.
718         * tree-scalar-evolution.c (number_of_exit_cond_executions): Likewise.
719         * tree-vectorizer.h (LOOP_PEELING_FOR_ALIGNMENT): Rename to ...
720         (LOOP_VINFO_PEELING_FOR_ALIGNMENT): ... this.
721         (NITERS_KNOWN_P): Fold into ...
722         (LOOP_VINFO_NITERS_KNOWN_P): ... this.
723         (LOOP_VINFO_PEELING_FOR_NITER): Add.
724         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
725         Use LOOP_VINFO_PEELING_FOR_ALIGNMENT.
726         (vect_do_peeling_for_alignment): Re-use precomputed niter
727         instead of re-emitting it.
728         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
729         Use LOOP_VINFO_PEELING_FOR_ALIGNMENT.
730         * tree-vect-loop.c (vect_get_loop_niters): Use
731         number_of_latch_executions.
732         (new_loop_vec_info): Initialize LOOP_VINFO_PEELING_FOR_NITER.
733         (vect_analyze_loop_form): Simplify.
734         (vect_analyze_loop_operations): Move epilogue peeling code ...
735         (vect_analyze_loop_2): ... here and adjust it to compute
736         LOOP_VINFO_PEELING_FOR_NITER.
737         (vect_estimate_min_profitable_iters): Use
738         LOOP_VINFO_PEELING_FOR_ALIGNMENT.
739         (vect_build_loop_niters): Emit on the preheader.
740         (vect_generate_tmps_on_preheader): Likewise.
741         (vect_transform_loop): Use LOOP_VINFO_PEELING_FOR_NITER instead
742         of recomputing it.  Adjust.
743
744 2013-11-21  Richard Biener  <rguenther@suse.de>
745
746         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
747         LOC_LINE): Remove wrappers and fix all users.
748         (struct _loop_vec_info): Remove loop_line_number member.
749         (LOOP_VINFO_LOC): Remove.
750         * tree-parloops.c, tree-vect-loop-manip.c, tree-vect-slp.c,
751         tree-vectorizer.c: Fix users of LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE
752         and LOC_LINE.
753
754 2013-11-21  Richard Biener  <rguenther@suse.de>
755
756         * tree-ssa-forwprop.c (simplify_vce): New function.
757         (ssa_forward_propagate_and_combine): Call it.
758
759 2013-11-21  Richard Biener  <rguenther@suse.de>
760
761         * tree-vect-loop-manip.c (vect_build_loop_niters,
762         vect_generate_tmps_on_preheader): Move ...
763         * tree-vect-loop.c (vect_build_loop_niters,
764         vect_generate_tmps_on_preheader): ... here and simplify.
765         (vect_transform_loop): Call them here and pass down results
766         to consumers.
767         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound):
768         Get niter variables from caller.
769         (vect_do_peeling_for_alignment): Likewise.
770         * tree-vectorizer.h (vect_generate_tmps_on_preheader): Remove.
771         (vect_do_peeling_for_loop_bound, vect_do_peeling_for_alignment):
772         Adjust prototypes.
773
774 2013-11-21  Richard Biener  <rguenther@suse.de>
775
776         * tree-ssa-loop-ch.c (copy_loop_headers): Decrement
777         nb_iterations_upper_bound by one.
778
779 2013-11-21  Richard Biener  <rguenther@suse.de>
780
781         PR tree-optimization/59058
782         * tree-loop-distribution.c (struct partition_s): Add plus_one member.
783         (build_size_arg_loc): Apply niter adjustment here.
784         (generate_memset_builtin): Adjust.
785         (generate_memcpy_builtin): Likewise.
786         (classify_partition): Do not use number_of_exit_cond_executions
787         but record whether niter needs to be adjusted.
788
789 2013-11-21  Eric Botcazou  <ebotcazou@adacore.com>
790
791         * tree-ssa-tail-merge.c (stmt_local_def): Return false if the statement
792         could throw.
793
794 2013-11-21  Oleg Endo  <olegendo@gcc.gnu.org>
795
796         PR target/53976
797         * config/sh/sh_optimize_sett_clrt.cc: New SH specific RTL pass.
798         * config/sh/sh.c (register_sh_passes): Add sh_optimize_sett_clrt pass.
799         * config/sh/sh/t-sh (sh_optimize_sett_clrt pass.o): New entry.
800         * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add
801         sh_optimize_sett_clrt pass.o to extra_objs.
802
803 2013-11-20  David Malcolm  <dmalcolm@redhat.com>
804
805         * cfg.c (dump_edge_info): Remove redundant comment.
806         * cfgcleanup.c (outgoing_edges_match): Reword reference to
807         EXIT_BLOCK_PTR in comment.
808         (try_optimize_cfg): Likewise.
809         * cfgrtl.c (last_bb_in_partition): Likewise.
810         * cgraph.c (cgraph_node_cannot_return): Likewise.
811         * function.c (thread_prologue_and_epilogue_insns): Likewise.
812         * graphite-scop-detection.c (scopdet_basic_block_info): Likewise.
813         * ipa-split.c (consider_split): Likewise.
814         * profile.c (find_spanning_tree): Likewise.
815         * sched-int.h (common_sched_info_def.add_block): Likewise.
816         * dominance.c (calc_dfs_tree_nonrec): Reword references in
817         comments to now removed ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR macros.
818         * tree-cfgcleanup.c (cleanup_control_flow_bb): Reword references
819         in comments to now removed ENTRY_BLOCK_PTR macro.
820         (tree_forwarder_block_p): Reword reference in comment to
821         EXIT_BLOCK_PTR.
822         * tree-inline.c (copy_cfg_body): Reword references in comments to
823         now removed ENTRY_BLOCK_PTR macro.
824         * tree-ssa-propagate.c (ssa_prop_init): Likewise.
825         * tree-scalar-evolution.h ( block_before_loop): Likewise.  Add
826         a comma to the comment to clarify the meaning.
827
828 2013-11-20  Andrew MacLeod  <amacleod@redhat.com>
829
830         * gimplify.h (gimplify_hasher:typed_free_remove, struct gimplify_ctx):
831         Move to gimplify.c.
832         (free_gimplify_stack): Add prototype.
833         * gimplify.c (gimplify_hasher:typed_free_remove): Relocate here.
834         (struct gimplify_ctx): Relocate here.
835         (gimplify_ctxp): Make static.
836         (ctx_pool, ctx_alloc, ctx_free, free_gimplify_stack): New.  Manage a
837         list of struct gimplify_ctx.
838         (push_gimplify_context): Add default parameters and allocate a struct
839         from the pool.
840         (pop_gimplify_context): Free a struct back to the pool.
841         (gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
842         gimplify_omp_workshare, gimplify_transaction, gimplify_body): Don't
843         use a local 'struct gimplify_ctx'.
844         * cgraphunit.c (expand_all_functions): call free_gimplify_stack.
845         * gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands):
846         Likewise.
847         * omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
848         lower_omp_ordered, lower_omp_critical, lower_omp_for,
849         create_task_copyfn, lower_omp_taskreg, lower_omp_target,
850         lower_omp_teams, execute_lower_omp): Likewise.
851         * gimple-fold.c (gimplify_and_update_call_from_tree): Likewise.
852         * tree-inline.c (optimize_inline_calls): Likewise.
853
854 2013-11-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
855
856         * config/rs6000/vsx.md (vsx_set_<mode>): Adjust for little endian.
857         (vsx_extract_<mode>): Likewise.
858         (*vsx_extract_<mode>_one_le): New LE variant on
859         *vsx_extract_<mode>_zero.
860         (vsx_extract_v4sf): Adjust for little endian.
861
862 2013-11-20  Vladimir Makarov  <vmakarov@redhat.com>
863
864         PR rtl-optimization/59133
865         * lra.c (expand_reg_data): Add new argument.  Set up ALL_REGS for
866         new pseudos.
867         (lra_create_new_reg_with_unique_value): Pass new argument value.
868         (lra_emit_add, lra_emit_move): Ditto.
869         * lra-constraints.c (in_class_p): Add check for move for a new insn.
870         (change_class): Rename to lra_change_class.  Move to lra-int.h.
871         (get_reload_reg, narrow_reload_pseudo_class): Adjust calls of
872         change_class.
873         (process_addr_reg, process_addr): Ditto.
874         (curr_insn_transform): Ditto.  Add check on old pseudo for
875         optional reload.
876         * lra-int.h (lra_get_regno_hard_regno): Move below.
877         (lra_change_class): Renamed change_class from lra.c.
878
879 2013-11-20  David Malcolm  <dmalcolm@redhat.com>
880
881         * gdbhooks.py (VecPrinter.children): Don't attempt to iterate
882         the children of a NULL pointer.
883
884 2013-11-20  Robert Suchanek  <Robert.Suchanek@imgtec.com>
885
886         * lra.c (lra): Set lra_in_progress before check_rtl call.
887         * recog.c (insn_invalid_p): Add !lra_in_progress to prevent
888         adding clobber regs when LRA is running.
889
890 2013-11-20  Maciej W. Rozycki  <macro@codesourcery.com>
891
892         * config/mips/mips.h (ISA_HAS_FP4): Remove TARGET_FLOAT64
893         restriction for ISA_MIPS32R2.
894         (ISA_HAS_LXC1_SXC1): New macro.
895         (ISA_HAS_FP_MADD4_MSUB4): Remove ISA_MIPS32R2 special-casing.
896         (ISA_HAS_NMADD4_NMSUB4): Likewise.
897         (ISA_HAS_FP_RECIP_RSQRT): Likewise.
898         (ISA_HAS_PREFETCHX): Redefine in terms of ISA_HAS_FP4.
899         * config/mips/mips.md (*<ANYF:loadx>_<P:mode>): Use
900         ISA_HAS_LXC1_SXC1 rather than ISA_HAS_FP4.
901         (*<ANYF:storex>_<P:mode>): Likewise.
902
903 2013-11-20  Maciej W. Rozycki  <macro@codesourcery.com>
904
905         * config/mips/mips.h (ISA_HAS_FP_RECIP_RSQRT): New macro.
906         * config/mips/mips.c (mips_rtx_costs) <DIV>: Check for
907         ISA_HAS_FP_RECIP_RSQRT rather than ISA_HAS_FP4.
908         * config/mips/mips.md (recip_condition): Remove mode attribute.
909         (div<mode>3): Use ISA_HAS_FP_RECIP_RSQRT rather than
910         <recip_condition>.
911         (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Likewise.
912
913 2013-11-20  Eric Botcazou  <ebotcazou@adacore.com>
914
915         PR target/59207
916         * config/sparc/sparc.c (sparc_fold_builtin) <case CODE_FOR_pdist_vis>:
917         Make sure neg2_ovf is set before being used.
918
919 2013-11-20  Basile Starynkevitch  <basile@starynkevitch.net>
920
921         * plugin.def: Add comment about register_callback and
922         invoke_plugin_callbacks_full.
923
924         * plugin.c (register_callback, invoke_plugin_callbacks_full):
925         Handle PLUGIN_INCLUDE_FILE event.
926
927 2013-11-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
928
929         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Do not
930         allow subregs of TDmode in FPRs of smaller size in little-endian.
931         (rs6000_split_multireg_move): When splitting an access to TDmode
932         in FPRs, do not use simplify_gen_subreg.
933
934 2013-11-20  Joseph Myers  <joseph@codesourcery.com>
935
936         PR middle-end/21718
937         * real.c: Remove comment about decimal string conversion and
938         rounding errors.
939         (real_from_string): Use MPFR to convert nonzero decimal constant
940         to REAL_VALUE_TYPE.
941
942 2013-11-20  Eric Botcazou  <ebotcazou@adacore.com>
943
944         * config/arm/arm.c (arm_dwarf_register_span): Take into account the
945         endianness of the D registers for the legacy encodings.
946
947 2013-11-20  Richard Earnshaw  <rearnsha@arm.com>
948
949         PR rtl-optimization/54300
950         * regcprop.c (copyprop_hardreg_forward_1): Ensure any unused
951         outputs in a single-set are killed from the value chains.
952
953 2013-11-20  Ilya Enkovich  <ilya.enkovich@intel.com>
954
955         * cgraph.h (varpool_node): Add need_bounds_init field.
956         * lto-cgraph.c (lto_output_varpool_node): Output
957         need_bounds_init value.
958         (input_varpool_node): Read need_bounds_init value.
959         * varpool.c (dump_varpool_node): Dump need_bounds_init field.
960
961 2013-11-20  Jan Hubicka  <jh@suse.cz>
962
963         * opts.c (finish_options): Imply -ffat-lto-objects with
964         -fno-use-linker-plugin.
965         * common.opt (fuse-linker-plugin): Add var.
966
967 2013-11-20  Ilya Enkovich  <ilya.enkovich@intel.com>
968
969         * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
970         * dwarf2out.c (gen_subprogram_die): Ignore bound args.
971         (gen_type_die_with_usage): Skip pointer bounds.
972         (dwarf2out_global_decl): Likewise.
973
974 2013-11-20  James Greenhalgh  <james.greenhalgh@arm.com>
975
976         * config/aarch64/aarch64.md: Remove "mode" and "mode2" attributes
977         from all insns.
978
979 2013-11-20  Yuri Rumyantsev  <ysrumyan@gmail.com>
980
981         PR target/57756
982         * config/i386/i386.c (ix86_option_override_internal): Add missed
983         argument prefix for 'ix86_fpmath'.
984         * config/i386/ssemath.h: Add missed definition of
985         TARGET_FPMATH_DEFAULT_P macros.
986
987 2013-11-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
988             Mike Stump  <mikestump@comcast.net>
989             Richard Sandiford  <rdsandiford@googlemail.com>
990
991         * alias.c (ao_ref_from_mem): Use tree_to_shwi and tree_to_uhwi
992         instead of TREE_INT_CST_LOW, in cases where there is a protecting
993         tree_fits_shwi_p or tree_fits_uhwi_p.
994         * builtins.c (fold_builtin_powi): Likewise.
995         * config/epiphany/epiphany.c (epiphany_special_round_type_align):
996         Likewise.
997         * dbxout.c (dbxout_symbol): Likewise.
998         * expr.c (expand_expr_real_1): Likewise.
999         * fold-const.c (fold_single_bit_test, fold_plusminus_mult_expr)
1000         (fold_binary_loc): Likewise.
1001         * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
1002         * gimple-ssa-strength-reduction.c (stmt_cost): Likewise.
1003         * omp-low.c (lower_omp_for_lastprivate): Likewise.
1004         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
1005         * stor-layout.c (compute_record_mode): Likewise.
1006         * tree-cfg.c (verify_expr): Likewise.
1007         * tree-dfa.c (get_ref_base_and_extent): Likewise.
1008         * tree-pretty-print.c (dump_array_domain): Likewise.
1009         * tree-sra.c (build_user_friendly_ref_for_offset): Likewise.
1010         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
1011         * tree-ssa-loop-ivopts.c (get_loop_invariant_expr_id): Likewise.
1012         * tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
1013         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
1014         * tree-ssa-reassoc.c (acceptable_pow_call): Likewise.
1015         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
1016         (ao_ref_init_from_vn_reference, vn_reference_fold_indirect): Likewise.
1017         (vn_reference_lookup_3, simplify_binary_expression): Likewise.
1018         * tree-ssa-structalias.c (bitpos_of_field): Likewise.
1019         (get_constraint_for_1, push_fields_onto_fieldstack): Likewise.
1020         (create_variable_info_for_1): Likewise.
1021         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
1022         (vect_verify_datarefs_alignment): Likewise.
1023         (vect_analyze_data_ref_accesses): Likewise.
1024         (vect_prune_runtime_alias_test_list): Likewise.
1025         * tree-vectorizer.h (NITERS_KNOWN_P): Likewise.
1026
1027 2013-11-20  Richard Sandiford  <rdsandiford@googlemail.com>
1028
1029         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Avoid signed
1030         overflow.  Use tree_to_shwi.
1031
1032 2013-11-20  Richard Sandiford  <rdsandiford@googlemail.com>
1033
1034         * fold-const.c (fold_binary_loc): Use unsigned rather than signed
1035         HOST_WIDE_INTs when folding (x >> c) << c.
1036
1037 2013-11-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1038             Dominik Vogt  <vogt@linux.vnet.ibm.com>
1039
1040         * config/s390/s390.c (s390_canonicalize_comparison): Don't fold
1041         int comparisons with an out of range condition code.
1042         (s390_optimize_nonescaping_tx): Skip empty BBs.
1043         Generate the new tbegin RTX when removing the FPR clobbers (with
1044         two SETs).
1045         (s390_expand_tbegin): Fix the retry loop counter.  Copy CC to the
1046         result before doing the retry calculations.
1047         (s390_init_builtins): Make tbegin "returns_twice" and tabort
1048         "noreturn".
1049         * config/s390/s390.md (UNSPECV_TBEGIN_TDB): New constant used for
1050         the TDB setting part of an tbegin.
1051         ("tbegin_1", "tbegin_nofloat_1"): Add a set for the TDB.
1052         ("tx_assist"): Set unused argument to an immediate zero instead of
1053         loading zero into a GPR and pass it as argument.
1054         * config/s390/htmxlintrin.h (__TM_simple_begin, __TM_begin):
1055         Remove inline and related attributes.
1056         (__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort)
1057         (__TM_is_illegal, __TM_is_footprint_exceeded)
1058         (__TM_is_nested_too_deep, __TM_is_conflict): Fix format value check.
1059
1060 2013-11-20  Richard Biener  <rguenther@suse.de>
1061
1062         PR lto/59035
1063         * lto-opts.c (lto_write_options): Write defaults only if
1064         they were not explicitely specified.  Also write
1065         -ffp-contract default.
1066         * lto-wrapper.c (merge_and_complain): Merge -ffp-contract
1067         conservatively.
1068         (run_gcc): Pass through -ffp-contract.
1069
1070 2013-11-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1071
1072         * config/mips/mips.c (r10k_simplify_address): Eliminate macro usage.
1073
1074 2013-11-20  James Greenhalgh  <james.greenhalgh@arm.com>
1075
1076         * gcc/config/aarch64/aarch64-builtins.c
1077         (aarch64_simd_itype): Remove.
1078         (aarch64_simd_builtin_datum): Remove itype, add qualifiers pointer.
1079         (VAR1): Use qualifiers.
1080         (aarch64_build_scalar_type): New.
1081         (aarch64_build_vector_type): Likewise.
1082         (aarch64_build_type): Likewise.
1083         (aarch64_init_simd_builtins): Refactor, remove special cases,
1084         consolidate main loop.
1085         (aarch64_simd_expand_args): Likewise.
1086
1087 2013-11-19  Joshua J Cogliati  <jrincayc@yahoo.com>
1088
1089         PR c/53001
1090         * doc/invoke.texi: Adding documentation about -Wfloat-conversion.
1091
1092 2013-11-19  Miro Kropacek  <miro.kropacek@gmail.com>
1093
1094         * config/m68k/m68k.c (m68k_option_overrides): Fix typo.
1095
1096 2013-11-19  David Malcolm  <dmalcolm@redhat.com>
1097
1098         * gdbhooks.py (VecPrinter): New class, for prettyprinting pointers
1099         to "vec<>" instances.
1100         (build_pretty_printer): Register the vec<>* prettyprinter.
1101
1102 2013-11-19  David Malcolm  <dmalcolm@redhat.com>
1103
1104         * gdbhooks.py (GdbSubprinter.__init__): Drop str_type_ field.
1105         (GdbSubprinter.handles_type): New.
1106         (GdbSubprinterTypeList): New subclass of GdbSubprinter.
1107         (GdbSubprinterRegex): New subclass of GdbSubprinter.
1108         (GdbPrettyPrinters.add_printer): Remove in favor of...
1109         (GdbPrettyPrinters.add_printer_for_types): ...this new method and...
1110         (GdbPrettyPrinters.add_printer_for_regex): ...this other new method.
1111         (GdbPrettyPrinters.__call__): Update search for subprinter
1112         to use handles_type method.
1113         (build_pretty_printer): Update registration of subprinters to
1114         use the new API above, supporting multiple spelling of each type,
1115         and allowing for future regex-based subprinters.
1116
1117 2013-11-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1118
1119         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Adjust
1120         V16QI vector splat case for little endian.
1121
1122 2013-11-19  Jeff Law  <law@redhat.com>
1123
1124         * tree-ssa-threadedge.c (thread_across_edge): After threading
1125         through a joiner, allow threading a normal block requiring duplication.
1126
1127         * tree-ssa-threadupdate.c (thread_block_1): Improve code to detect
1128         jump threading requests that would muck up the loop structures.
1129
1130         * tree-ssa-threadupdate.c: Fix trailing whitespace.
1131         * tree-ssa-threadupdate.h: Likewise.
1132
1133 2013-11-19  Mike Stump  <mikestump@comcast.net>
1134
1135         * gdbinit.in: Add pmz to print out mpz values.
1136
1137 2013-11-20  Jan Hubicka  <jh@suse.cz>
1138
1139         * common.opt (ffat-lto-objects): Disable by default.
1140         * doc/invoke.texi (fat-lto-objects): Update documentation.
1141         * opts.c: Enable fat-lto-objects on lto plugin disable setups.
1142
1143 2013-11-19  Martin Jambor  <mjambor@suse.cz>
1144
1145         PR rtl-optimization/59099
1146         * ira.c (find_moveable_pseudos): Put back various analyses from ira()
1147         here.
1148         (ira): Move init_reg_equiv and call to
1149         split_live_ranges_for_shrink_wrap up, remove analyses around call
1150         to find_moveable_pseudos.
1151
1152 2013-11-20  Alan Modra  <amodra@gmail.com>
1153
1154         * config/rs6000/sysv4.h (CC1_ENDIAN_LITTLE_SPEC): Define as empty.
1155         * config/rs6000/rs6000.c (rs6000_option_override_internal): Default
1156         to strict alignment on older processors when little-endian.
1157         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to power8
1158         for ELFv2.
1159
1160 2013-11-19  Teresa Johnson  <tejohnson@google.com>
1161
1162         * common/config/i386/i386-common.c: Enable
1163         -freorder-blocks-and-partition at -O2 and up for x86.
1164         * doc/invoke.texi: Update -freorder-blocks-and-partition default.
1165         * opts.c (finish_options): Only warn if
1166         -freorder-blocks-and-partition was set on command line.
1167
1168 2013-11-19  Sriraman Tallam  <tmsriram@google.com>
1169
1170         * final.c (final_scan_insn): Emit a label for the split
1171         cold function part.  Label name is formed by suffixing
1172         the original function name with "cold".
1173
1174 2013-11-19  David Malcolm  <dmalcolm@redhat.com>
1175
1176         * basic-block.h (ENTRY_BLOCK_PTR_FOR_FUNCTION): Rename macro to...
1177         (EXIT_BLOCK_PTR_FOR_FUNCTION): ...this.
1178         (ENTRY_BLOCK_PTR_FOR_FN): Renamed macro to...
1179         (EXIT_BLOCK_PTR_FOR_FN): ...this.
1180         (ENTRY_BLOCK_PTR): Eliminate macro as work towards making uses of
1181         cfun be explicit.
1182         (EXIT_BLOCK_PTR): Likewise.
1183         (FOR_ALL_BB): Rework for now to eliminate use of "ENTRY_BLOCK_PTR".
1184         (FOR_ALL_BB_FN): Update for renaming of
1185         "ENTRY_BLOCK_PTR_FOR_FUNCTION" to "ENTRY_BLOCK_PTR_FOR_FN".
1186
1187         * cfg.c (init_flow): Likewise.
1188         (check_bb_profile): Likewise.
1189         * cfganal.c (pre_and_rev_post_order_compute_fn): Likewise.
1190         * cfgcleanup.c (walk_to_nondebug_insn): Likewise.
1191         * cfghooks.c (account_profile_record): Likewise.
1192         * cfgloop.c (init_loops_structure): Likewise.
1193         * cgraphbuild.c (record_eh_tables): Likewise.
1194         (compute_call_stmt_bb_frequency): Likewise.
1195         * ipa-inline-analysis.c (compute_bb_predicates): Likewise.
1196         * lto-streamer-in.c (input_cfg): Likewise.
1197         * predict.c (maybe_hot_frequency_p): Likewise.
1198         * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
1199         * tree-inline.c (initialize_cfun): Likewise.
1200         (copy_cfg_body): Likewise.
1201         (copy_body): Likewise.
1202         (tree_function_versioning): Likewise.
1203
1204         * bb-reorder.c (add_labels_and_missing_jumps): Remove uses of macros:
1205         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1206         (duplicate_computed_gotos): Remove usage of EXIT_BLOCK_PTR macro.
1207         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove uses of
1208         macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1209         (connect_traces): Likewise.
1210         (rest_of_handle_reorder_blocks): Remove usage of EXIT_BLOCK_PTR macro.
1211         (bb_to_key): Remove usage of ENTRY_BLOCK_PTR macro.
1212         (fix_crossing_conditional_branches): Remove usage of EXIT_BLOCK_PTR
1213         macro.
1214         (find_traces_1_round): Remove uses of macros: ENTRY_BLOCK_PTR,
1215         EXIT_BLOCK_PTR.
1216         (fix_up_fall_thru_edges): Remove usage of EXIT_BLOCK_PTR macro.
1217         (find_traces): Remove usage of ENTRY_BLOCK_PTR macro.
1218         (fix_up_crossing_landing_pad): Remove usage of EXIT_BLOCK_PTR macro.
1219         (rotate_loop): Likewise.
1220         * bt-load.c (migrate_btr_def): Remove usage of ENTRY_BLOCK_PTR macro.
1221         * cfg.c (clear_aux_for_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
1222         EXIT_BLOCK_PTR.
1223         (alloc_aux_for_edges): Likewise.
1224         (clear_bb_flags): Remove usage of ENTRY_BLOCK_PTR macro.
1225         (cached_make_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
1226         EXIT_BLOCK_PTR.
1227         (compact_blocks): Likewise.
1228         (clear_edges): Likewise.
1229         * cfganal.c (single_pred_before_succ_order): Remove usage of
1230         ENTRY_BLOCK_PTR macro.
1231         (bitmap_union_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
1232         (bitmap_union_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
1233         (bitmap_intersection_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
1234         (bitmap_intersection_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
1235         (inverted_post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
1236         EXIT_BLOCK_PTR.
1237         (compute_dominance_frontiers_1): Remove usage of ENTRY_BLOCK_PTR macro.
1238         (post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
1239         EXIT_BLOCK_PTR.
1240         (connect_infinite_loops_to_exit): Remove usage of EXIT_BLOCK_PTR macro.
1241         (remove_fake_edges): Remove usage of ENTRY_BLOCK_PTR macro.
1242         (add_noreturn_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
1243         (find_pdom): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1244         (remove_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
1245         (verify_edge_list): Remove uses of macros: ENTRY_BLOCK_PTR,
1246         EXIT_BLOCK_PTR.
1247         (print_edge_list): Likewise.
1248         (create_edge_list): Likewise.
1249         (find_unreachable_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
1250         (mark_dfs_back_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
1251         EXIT_BLOCK_PTR.
1252         * cfgbuild.c (find_bb_boundaries): Remove usage of ENTRY_BLOCK_PTR
1253         macro.
1254         (find_many_sub_basic_blocks): Remove usage of EXIT_BLOCK_PTR macro.
1255         (make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1256         * cfgcleanup.c (delete_unreachable_blocks): Likewise.
1257         (try_optimize_cfg): Likewise.
1258         (try_head_merge_bb): Remove usage of EXIT_BLOCK_PTR macro.
1259         (try_crossjump_to_edge): Remove usage of ENTRY_BLOCK_PTR macro.
1260         (try_crossjump_bb): Remove usage of EXIT_BLOCK_PTR macro.
1261         (merge_blocks_move): Remove usage of ENTRY_BLOCK_PTR macro.
1262         (outgoing_edges_match): Remove usage of EXIT_BLOCK_PTR macro.
1263         (try_forward_edges): Likewise.
1264         (try_simplify_condjump): Likewise.
1265         * cfgexpand.c (gimple_expand_cfg): Remove uses of macros:
1266         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1267         (construct_exit_block): Remove usage of EXIT_BLOCK_PTR macro.
1268         (construct_init_block): Remove uses of macros: ENTRY_BLOCK_PTR,
1269         EXIT_BLOCK_PTR.
1270         (expand_gimple_basic_block): Remove usage of EXIT_BLOCK_PTR macro.
1271         (expand_gimple_tailcall): Likewise.
1272         * cfghooks.c (can_duplicate_block_p): Remove uses of macros:
1273         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1274         (tidy_fallthru_edges): Likewise.
1275         (verify_flow_info): Likewise.
1276         * cfgloop.c (flow_bb_inside_loop_p): Likewise.
1277         (num_loop_branches): Remove usage of EXIT_BLOCK_PTR macro.
1278         (disambiguate_multiple_latches): Remove usage of ENTRY_BLOCK_PTR macro.
1279         (get_loop_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
1280         (bb_loop_header_p): Remove usage of ENTRY_BLOCK_PTR macro.
1281         (get_loop_body_in_bfs_order): Remove usage of EXIT_BLOCK_PTR macro.
1282         (get_loop_body_in_dom_order): Likewise.
1283         (get_loop_body): Likewise.
1284         * cfgloopanal.c (mark_irreducible_loops): Remove uses of macros:
1285         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1286         * cfgloopmanip.c (create_preheader): Remove usage of ENTRY_BLOCK_PTR
1287         macro.
1288         (remove_path): Remove usage of EXIT_BLOCK_PTR macro.
1289         (fix_bb_placement): Likewise.
1290         * cfgrtl.c (rtl_block_empty_p): Remove uses of macros:
1291         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1292         (rtl_can_remove_branch_p): Remove usage of EXIT_BLOCK_PTR macro.
1293         (cfg_layout_split_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
1294         EXIT_BLOCK_PTR.
1295         (rtl_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
1296         (cfg_layout_can_merge_blocks_p): Remove uses of macros:
1297         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1298         (cfg_layout_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
1299         macro.
1300         (fixup_fallthru_exit_predecessor): Remove uses of macros:
1301         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1302         (fixup_reorder_chain): Likewise.
1303         (relink_block_chain): Likewise.
1304         (cfg_layout_delete_block): Remove usage of EXIT_BLOCK_PTR macro.
1305         (rtl_verify_bb_layout): Remove usage of ENTRY_BLOCK_PTR macro.
1306         (cfg_layout_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
1307         (force_one_exit_fallthru): Likewise.
1308         (rtl_verify_fallthru): Remove uses of macros: ENTRY_BLOCK_PTR,
1309         EXIT_BLOCK_PTR.
1310         (rtl_verify_edges): Likewise.
1311         (commit_edge_insertions): Likewise.
1312         (commit_one_edge_insertion): Likewise.
1313         (rtl_split_edge): Likewise.
1314         (force_nonfallthru_and_redirect): Likewise.
1315         (outof_cfg_layout_mode): Remove usage of EXIT_BLOCK_PTR macro.
1316         (skip_insns_after_block): Likewise.
1317         (fixup_partition_crossing): Remove uses of macros: ENTRY_BLOCK_PTR,
1318         EXIT_BLOCK_PTR.
1319         (purge_dead_edges): Remove usage of EXIT_BLOCK_PTR macro.
1320         (rtl_can_merge_blocks): Remove uses of macros: ENTRY_BLOCK_PTR,
1321         EXIT_BLOCK_PTR.
1322         (contains_no_active_insn_p): Likewise.
1323         (emit_insn_at_entry): Remove usage of ENTRY_BLOCK_PTR macro.
1324         (entry_of_function): Likewise.
1325         (last_bb_in_partition): Remove usage of EXIT_BLOCK_PTR macro.
1326         (fixup_new_cold_bb): Likewise.
1327         (patch_jump_insn): Likewise.
1328         (try_redirect_by_replacing_jump): Likewise.
1329         (block_label): Likewise.
1330         (could_fall_through): Likewise.
1331         (can_fallthru): Likewise.
1332         * cgraphbuild.c (cgraph_rebuild_references): Remove usage of
1333         ENTRY_BLOCK_PTR macro.
1334         (rebuild_cgraph_edges): Likewise.
1335         * cgraphunit.c (init_lowered_empty_function): Remove uses of macros:
1336         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1337         (expand_thunk): Remove usage of EXIT_BLOCK_PTR macro.
1338         * combine.c (get_last_value): Remove usage of ENTRY_BLOCK_PTR macro.
1339         (distribute_links): Remove usage of EXIT_BLOCK_PTR macro.
1340         (get_last_value_validate): Remove usage of ENTRY_BLOCK_PTR macro.
1341         (try_combine): Remove usage of EXIT_BLOCK_PTR macro.
1342         (reg_num_sign_bit_copies_for_combine): Remove usage of ENTRY_BLOCK_PTR
1343         macro.
1344         (reg_nonzero_bits_for_combine): Likewise.
1345         (set_nonzero_bits_and_sign_copies): Likewise.
1346         (combine_instructions): Likewise.
1347         * cprop.c (one_cprop_pass): Remove uses of macros: ENTRY_BLOCK_PTR,
1348         EXIT_BLOCK_PTR.
1349         (bypass_conditional_jumps): Likewise.
1350         (bypass_block): Remove usage of EXIT_BLOCK_PTR macro.
1351         (find_implicit_sets): Likewise.
1352         (cprop_jump): Likewise.
1353         * cse.c (cse_cc_succs): Likewise.
1354         (cse_find_path): Likewise.
1355         * df-problems.c (df_lr_confluence_0): Likewise.
1356         * df-scan.c (df_entry_block_defs_collect): Remove usage of
1357         ENTRY_BLOCK_PTR macro.
1358         (df_exit_block_uses_collect): Remove usage of EXIT_BLOCK_PTR macro.
1359         * dominance.c (iterate_fix_dominators): Remove usage of
1360         ENTRY_BLOCK_PTR macro.
1361         (calc_idoms): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1362         (determine_dominators_for_sons): Remove usage of ENTRY_BLOCK_PTR macro.
1363         (calc_dfs_tree): Remove uses of macros: ENTRY_BLOCK_PTR,
1364         EXIT_BLOCK_PTR.
1365         (prune_bbs_to_update_dominators): Remove usage of ENTRY_BLOCK_PTR
1366         macro.
1367         (calc_dfs_tree_nonrec): Remove uses of macros: ENTRY_BLOCK_PTR,
1368         EXIT_BLOCK_PTR.
1369         * domwalk.c (cmp_bb_postorder): Likewise.
1370         * dse.c (dse_step1): Remove usage of EXIT_BLOCK_PTR macro.
1371         * except.c (finish_eh_generation): Remove usage of ENTRY_BLOCK_PTR
1372         macro.
1373         (sjlj_emit_function_enter): Likewise.
1374         * final.c (compute_alignments): Likewise.
1375         * function.c (thread_prologue_and_epilogue_insns): Remove uses of
1376         macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1377         (reposition_prologue_and_epilogue_notes): Remove usage of
1378         EXIT_BLOCK_PTR macro.
1379         (convert_jumps_to_returns): Remove uses of macros: ENTRY_BLOCK_PTR,
1380         EXIT_BLOCK_PTR.
1381         (regno_clobbered_at_setjmp): Remove usage of ENTRY_BLOCK_PTR macro.
1382         (next_block_for_reg): Remove usage of EXIT_BLOCK_PTR macro.
1383         * gcse.c (hoist_code): Remove usage of ENTRY_BLOCK_PTR macro.
1384         (update_bb_reg_pressure): Remove usage of EXIT_BLOCK_PTR macro.
1385         (compute_code_hoist_vbeinout): Likewise.
1386         (should_hoist_expr_to_dom): Remove usage of ENTRY_BLOCK_PTR macro.
1387         (pre_expr_reaches_here_p_work): Likewise.
1388         * gimple-iterator.c (gsi_commit_edge_inserts): Likewise.
1389         (gimple_find_edge_insert_loc): Remove uses of macros: ENTRY_BLOCK_PTR,
1390         EXIT_BLOCK_PTR.
1391         * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove usage of
1392         ENTRY_BLOCK_PTR macro.
1393         * graph.c (draw_cfg_nodes_for_loop): Remove usage of EXIT_BLOCK_PTR
1394         macro.
1395         * graphite-clast-to-gimple.c (translate_clast_user): Remove usage of
1396         ENTRY_BLOCK_PTR macro.
1397         * graphite-scop-detection.c (build_scops): Likewise.
1398         (create_sese_edges): Remove usage of EXIT_BLOCK_PTR macro.
1399         (scopdet_basic_block_info): Remove usage of ENTRY_BLOCK_PTR macro.
1400         * haifa-sched.c (restore_bb_notes): Remove usage of EXIT_BLOCK_PTR
1401         macro.
1402         (unlink_bb_notes): Likewise.
1403         (create_check_block_twin): Likewise.
1404         (init_before_recovery): Likewise.
1405         (sched_extend_bb): Likewise.
1406         (priority): Likewise.
1407         * hw-doloop.c (reorder_loops): Likewise.
1408         (discover_loop): Likewise.
1409         * ifcvt.c (dead_or_predicable): Remove uses of macros:
1410         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1411         (find_if_case_1): Remove usage of EXIT_BLOCK_PTR macro.
1412         (block_has_only_trap): Likewise.
1413         (cond_exec_find_if_block): Likewise.
1414         (merge_if_block): Likewise.
1415         * ipa-inline-analysis.c (param_change_prob): Remove usage of
1416         ENTRY_BLOCK_PTR macro.
1417         (record_modified): Likewise.
1418         * ipa-pure-const.c (execute_warn_function_noreturn): Remove usage of
1419         EXIT_BLOCK_PTR macro.
1420         (local_pure_const): Likewise.
1421         * ipa-split.c (split_function): Remove uses of macros:
1422         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1423         (find_split_points): Likewise.
1424         (consider_split): Likewise.
1425         (find_return_bb): Remove usage of EXIT_BLOCK_PTR macro.
1426         (verify_non_ssa_vars): Remove usage of ENTRY_BLOCK_PTR macro.
1427         * ira-build.c (ira_loop_tree_body_rev_postorder): Likewise.
1428         * ira-color.c (print_loop_title): Remove usage of EXIT_BLOCK_PTR macro.
1429         * ira-emit.c (entered_from_non_parent_p): Remove usage of
1430         ENTRY_BLOCK_PTR macro.
1431         (ira_emit): Remove usage of EXIT_BLOCK_PTR macro.
1432         * ira-int.h (ira_assert): Remove usage of ENTRY_BLOCK_PTR macro.
1433         * ira.c (split_live_ranges_for_shrink_wrap): Remove uses of macros:
1434         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1435         * lcm.c (compute_rev_insert_delete): Remove usage of ENTRY_BLOCK_PTR
1436         macro.
1437         (compute_nearerout): Remove uses of macros: ENTRY_BLOCK_PTR,
1438         EXIT_BLOCK_PTR.
1439         (compute_farthest): Likewise.
1440         (compute_available): Likewise.
1441         (compute_insert_delete): Remove usage of EXIT_BLOCK_PTR macro.
1442         (compute_laterin): Remove uses of macros: ENTRY_BLOCK_PTR,
1443         EXIT_BLOCK_PTR.
1444         (compute_earliest): Likewise.
1445         (compute_antinout_edge): Likewise.
1446         * loop-iv.c (simplify_using_initial_values): Remove usage of
1447         ENTRY_BLOCK_PTR macro.
1448         * loop-unswitch.c (unswitch_loop): Remove usage of EXIT_BLOCK_PTR
1449         macro.
1450         * lra-assigns.c (find_hard_regno_for): Remove usage of ENTRY_BLOCK_PTR
1451         macro.
1452         * lra-constraints.c (lra_inheritance): Remove usage of EXIT_BLOCK_PTR
1453         macro.
1454         * lra-lives.c (lra_create_live_ranges): Remove uses of macros:
1455         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1456         * lra.c (has_nonexceptional_receiver): Remove usage of EXIT_BLOCK_PTR
1457         macro.
1458         * lto-streamer-in.c (input_function): Remove usage of ENTRY_BLOCK_PTR
1459         macro.
1460         * lto-streamer-out.c (output_cfg): Likewise.
1461         * mcf.c (adjust_cfg_counts): Remove uses of macros: ENTRY_BLOCK_PTR,
1462         EXIT_BLOCK_PTR.
1463         (create_fixup_graph): Remove usage of ENTRY_BLOCK_PTR macro.
1464         * mode-switching.c (optimize_mode_switching): Likewise.
1465         (create_pre_exit): Remove usage of EXIT_BLOCK_PTR macro.
1466         * modulo-sched.c (rest_of_handle_sms): Likewise.
1467         (canon_loop): Likewise.
1468         * omp-low.c (build_omp_regions): Remove usage of ENTRY_BLOCK_PTR macro.
1469         * postreload-gcse.c (eliminate_partially_redundant_loads): Remove uses
1470         of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1471         * predict.c (rebuild_frequencies): Remove usage of ENTRY_BLOCK_PTR
1472         macro.
1473         (propagate_freq): Remove usage of EXIT_BLOCK_PTR macro.
1474         (estimate_bb_frequencies): Remove usage of ENTRY_BLOCK_PTR macro.
1475         (tree_estimate_probability_bb): Remove usage of EXIT_BLOCK_PTR macro.
1476         (expensive_function_p): Remove usage of ENTRY_BLOCK_PTR macro.
1477         (tree_bb_level_predictions): Remove usage of EXIT_BLOCK_PTR macro.
1478         (counts_to_freqs): Remove usage of ENTRY_BLOCK_PTR macro.
1479         (apply_return_prediction): Remove usage of EXIT_BLOCK_PTR macro.
1480         (estimate_loops): Remove usage of ENTRY_BLOCK_PTR macro.
1481         (gimple_predict_edge): Likewise.
1482         (probably_never_executed): Likewise.
1483         * profile.c (find_spanning_tree): Remove uses of macros:
1484         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1485         (branch_prob): Likewise.
1486         (compute_branch_probabilities): Likewise.
1487         (compute_frequency_overlap): Remove usage of ENTRY_BLOCK_PTR macro.
1488         (is_inconsistent): Remove usage of EXIT_BLOCK_PTR macro.
1489         (read_profile_edge_counts): Remove usage of ENTRY_BLOCK_PTR macro.
1490         (set_bb_counts): Likewise.
1491         (correct_negative_edge_counts): Likewise.
1492         (get_exec_counts): Likewise.
1493         (instrument_values): Likewise.
1494         (instrument_edges): Likewise.
1495         * reg-stack.c (convert_regs): Remove uses of macros: ENTRY_BLOCK_PTR,
1496         EXIT_BLOCK_PTR.
1497         (compensate_edges): Remove usage of ENTRY_BLOCK_PTR macro.
1498         (convert_regs_exit): Remove usage of EXIT_BLOCK_PTR macro.
1499         (convert_regs_entry): Remove usage of ENTRY_BLOCK_PTR macro.
1500         (reg_to_stack): Likewise.
1501         * regs.h (REG_N_SETS): Likewise.
1502         * reload.c (find_dummy_reload): Likewise.
1503         (combine_reloads): Likewise.
1504         (push_reload): Likewise.
1505         * reload1.c (has_nonexceptional_receiver): Remove usage of
1506         EXIT_BLOCK_PTR macro.
1507         * resource.c (mark_target_live_regs): Remove usage of ENTRY_BLOCK_PTR
1508         macro.
1509         (find_basic_block): Likewise.
1510         * sched-ebb.c (ebb_add_block): Remove usage of EXIT_BLOCK_PTR macro.
1511         (schedule_ebbs): Likewise.
1512         * sched-int.h (sel_sched_p): Likewise.
1513         * sched-rgn.c (compute_dom_prob_ps): Remove usage of ENTRY_BLOCK_PTR
1514         macro.
1515         (rgn_add_block): Remove usage of EXIT_BLOCK_PTR macro.
1516         (haifa_find_rgns): Remove uses of macros: ENTRY_BLOCK_PTR,
1517         EXIT_BLOCK_PTR.
1518         (propagate_deps): Remove usage of EXIT_BLOCK_PTR macro.
1519         (extend_rgns): Likewise.
1520         (find_single_block_region): Likewise.
1521         * sel-sched-ir.c (sel_remove_loop_preheader): Remove usage of
1522         ENTRY_BLOCK_PTR macro.
1523         (setup_nop_and_exit_insns): Remove usage of EXIT_BLOCK_PTR macro.
1524         (sel_create_recovery_block): Likewise.
1525         (bb_ends_ebb_p): Likewise.
1526         (sel_bb_end): Likewise.
1527         (sel_bb_head): Likewise.
1528         (free_lv_sets): Likewise.
1529         (init_lv_sets): Likewise.
1530         (tidy_control_flow): Likewise.
1531         (maybe_tidy_empty_bb): Likewise.
1532         * sel-sched-ir.h (_succ_iter_cond): Likewise.
1533         (_succ_iter_start): Likewise.
1534         (sel_bb_empty_or_nop_p): Likewise.
1535         (get_loop_exit_edges_unique_dests): Likewise.
1536         (inner_loop_header_p): Likewise.
1537         * sel-sched.c (create_block_for_bookkeeping): Likewise.
1538         (find_block_for_bookkeeping): Likewise.
1539         * store-motion.c (remove_reachable_equiv_notes): Likewise.
1540         (insert_store): Likewise.
1541         * trans-mem.c (ipa_tm_transform_clone): Remove usage of
1542         ENTRY_BLOCK_PTR macro.
1543         (tm_memopt_compute_available): Remove usage of EXIT_BLOCK_PTR macro.
1544         (ipa_tm_scan_irr_function): Remove usage of ENTRY_BLOCK_PTR macro.
1545         (gate_tm_init): Likewise.
1546         (tm_region_init): Likewise.
1547         * tree-cfg.c (execute_fixup_cfg): Remove uses of macros:
1548         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1549         (execute_warn_function_return): Remove usage of EXIT_BLOCK_PTR macro.
1550         (split_critical_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
1551         EXIT_BLOCK_PTR.
1552         (print_loops): Remove usage of ENTRY_BLOCK_PTR macro.
1553         (move_sese_region_to_fn): Remove uses of macros: ENTRY_BLOCK_PTR,
1554         EXIT_BLOCK_PTR.
1555         (gimple_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
1556         macro.
1557         (gimple_verify_flow_info): Remove uses of macros: ENTRY_BLOCK_PTR,
1558         EXIT_BLOCK_PTR.
1559         (remove_edge_and_dominated_blocks): Remove usage of EXIT_BLOCK_PTR
1560         macro.
1561         (make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1562         (gimple_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
1563         (make_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
1564         (build_gimple_cfg): Likewise.
1565         (gimple_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
1566         (gimple_can_merge_blocks_p): Likewise.
1567         * tree-cfgcleanup.c (tree_forwarder_block_p): Remove uses of macros:
1568         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1569         * tree-complex.c (update_parameter_components): Remove usage of
1570         ENTRY_BLOCK_PTR macro.
1571         * tree-if-conv.c (get_loop_body_in_if_conv_order): Remove usage of
1572         EXIT_BLOCK_PTR macro.
1573         * tree-inline.c (tree_function_versioning): Remove uses of macros:
1574         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1575         (delete_unreachable_blocks_update_callgraph): Likewise.
1576         (initialize_cfun): Likewise.
1577         (copy_cfg_body): Remove usage of ENTRY_BLOCK_PTR macro.
1578         (copy_edges_for_bb): Remove usage of EXIT_BLOCK_PTR macro.
1579         (remap_ssa_name): Remove usage of ENTRY_BLOCK_PTR macro.
1580         * tree-into-ssa.c (update_ssa): Likewise.
1581         (maybe_register_def): Remove usage of EXIT_BLOCK_PTR macro.
1582         (insert_updated_phi_nodes_for): Remove usage of ENTRY_BLOCK_PTR macro.
1583         (rewrite_into_ssa): Likewise.
1584         (rewrite_debug_stmt_uses): Likewise.
1585         * tree-outof-ssa.c (expand_phi_nodes): Remove uses of macros:
1586         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1587         * tree-profile.c (gimple_gen_ic_func_profiler): Remove usage of
1588         ENTRY_BLOCK_PTR macro.
1589         * tree-scalar-evolution.h (block_before_loop): Likewise.
1590         * tree-sra.c (sra_ipa_reset_debug_stmts): Likewise.
1591         (dump_dereferences_table): Remove uses of macros: ENTRY_BLOCK_PTR,
1592         EXIT_BLOCK_PTR.
1593         (analyze_caller_dereference_legality): Remove usage of ENTRY_BLOCK_PTR
1594         macro.
1595         (propagate_dereference_distances): Remove uses of macros:
1596         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1597         (initialize_parameter_reductions): Remove usage of ENTRY_BLOCK_PTR
1598         macro.
1599         * tree-ssa-ccp.c (gsi_prev_dom_bb_nondebug): Likewise.
1600         (optimize_stack_restore): Remove usage of EXIT_BLOCK_PTR macro.
1601         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
1602         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove uses of macros:
1603         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1604         (remove_dead_stmt): Remove usage of EXIT_BLOCK_PTR macro.
1605         (propagate_necessity): Remove usage of ENTRY_BLOCK_PTR macro.
1606         (mark_control_dependent_edges_necessary): Remove uses of macros:
1607         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1608         * tree-ssa-dom.c (eliminate_degenerate_phis): Remove usage of
1609         ENTRY_BLOCK_PTR macro.
1610         (tree_ssa_dominator_optimize): Remove usage of EXIT_BLOCK_PTR macro.
1611         * tree-ssa-live.c (verify_live_on_entry): Remove uses of macros:
1612         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1613         (calculate_live_on_exit): Likewise.
1614         (set_var_live_on_entry): Remove usage of ENTRY_BLOCK_PTR macro.
1615         (loe_visit_block): Likewise.
1616         * tree-ssa-live.h (live_on_exit): Remove uses of macros:
1617         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1618         (live_on_entry): Likewise.
1619         * tree-ssa-loop-ivopts.c (find_interesting_uses): Remove usage of
1620         EXIT_BLOCK_PTR macro.
1621         * tree-ssa-loop-manip.c (compute_live_loop_exits): Remove usage of
1622         ENTRY_BLOCK_PTR macro.
1623         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Likewise.
1624         (bound_difference): Likewise.
1625         * tree-ssa-loop-prefetch.c (may_use_storent_in_loop_p): Remove usage
1626         of EXIT_BLOCK_PTR macro.
1627         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Remove usage
1628         of ENTRY_BLOCK_PTR macro.
1629         * tree-ssa-math-opts.c (register_division_in): Likewise.
1630         * tree-ssa-phiprop.c (tree_ssa_phiprop): Likewise.
1631         * tree-ssa-pre.c (compute_avail): Likewise.
1632         (compute_antic): Remove usage of EXIT_BLOCK_PTR macro.
1633         (insert): Remove usage of ENTRY_BLOCK_PTR macro.
1634         * tree-ssa-propagate.c (ssa_prop_init): Likewise.
1635         (simulate_block): Remove usage of EXIT_BLOCK_PTR macro.
1636         (cfg_blocks_add): Remove uses of macros: ENTRY_BLOCK_PTR,
1637         EXIT_BLOCK_PTR.
1638         (add_control_edge): Remove usage of EXIT_BLOCK_PTR macro.
1639         * tree-ssa-reassoc.c (do_reassoc): Remove uses of macros:
1640         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1641         (build_and_add_sum): Remove usage of ENTRY_BLOCK_PTR macro.
1642         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
1643         (execute_sink_code): Remove usage of EXIT_BLOCK_PTR macro.
1644         * tree-ssa-uninit.c (find_dom): Remove usage of ENTRY_BLOCK_PTR macro.
1645         (compute_control_dep_chain): Remove usage of EXIT_BLOCK_PTR macro.
1646         (find_pdom): Likewise.
1647         (warn_uninitialized_vars): Remove usage of ENTRY_BLOCK_PTR macro.
1648         * tree-stdarg.c (reachable_at_most_once): Likewise.
1649         * tree-tailcall.c (tree_optimize_tail_calls_1): Remove uses of macros:
1650         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1651         (eliminate_tail_call): Likewise.
1652         * tsan.c (instrument_func_entry): Remove usage of ENTRY_BLOCK_PTR
1653         macro.
1654         (instrument_func_exit): Remove usage of EXIT_BLOCK_PTR macro.
1655         * var-tracking.c (vt_initialize): Remove uses of macros:
1656         ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
1657         (vt_add_function_parameter): Remove usage of ENTRY_BLOCK_PTR macro.
1658         (vt_find_locations): Remove usage of EXIT_BLOCK_PTR macro.
1659         (vt_stack_adjustments): Remove uses of macros: ENTRY_BLOCK_PTR,
1660         EXIT_BLOCK_PTR.
1661         * varasm.c (assemble_start_function): Remove usage of ENTRY_BLOCK_PTR
1662         macro.
1663         * config/bfin/bfin.c (hwloop_optimize): Likewise.
1664         * config/nds32/nds32.c (nds32_fp_as_gp_check_available): Remove usage
1665         of EXIT_BLOCK_PTR macro.
1666         * config/arm/arm.c (require_pic_register): Remove usage of
1667         ENTRY_BLOCK_PTR macro.
1668         (arm_r3_live_at_start_p): Likewise.
1669         (any_sibcall_could_use_r3): Remove usage of EXIT_BLOCK_PTR macro.
1670         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
1671         * config/frv/frv.c (frv_optimize_membar_global): Likewise.
1672         * config/alpha/alpha.c (alpha_gp_save_rtx): Remove usage of
1673         ENTRY_BLOCK_PTR macro.
1674         * config/i386/i386.c (ix86_count_insn): Likewise.
1675         (ix86_seh_fixup_eh_fallthru): Remove usage of EXIT_BLOCK_PTR macro.
1676         (ix86_pad_short_function): Likewise.
1677         (ix86_compute_frame_layout): Remove usage of ENTRY_BLOCK_PTR macro.
1678         (ix86_pad_returns): Remove usage of EXIT_BLOCK_PTR macro.
1679         (ix86_eax_live_at_start_p): Remove usage of ENTRY_BLOCK_PTR macro.
1680         (add_condition_to_bb): Remove usage of EXIT_BLOCK_PTR macro.
1681         (ix86_expand_epilogue): Likewise.
1682         * config/ia64/ia64.c (ia64_asm_unwind_emit): Likewise.
1683         (ia64_expand_prologue): Likewise.
1684
1685 2013-11-19  Catherine Moore  <clm@codesourcery.com>
1686
1687         * doc/invoke.texi (mfix-rm7000, mno-fix-rm7000): Document.
1688         * config/mips/mips.opt (mfix-rm7000): New option.
1689         * config/mips/mips.h (ASM_SPEC): Handle mfix-rm7000.
1690         * config/mips/mips.c (mips_reorg_process_insns): Disable
1691         noreorder for TARGET_FIX_RM7000.
1692
1693 2013-11-19  Oleg Endo  <olegendo@gcc.gnu.org>
1694
1695         * config/sh/sh-c.c: Fix typo in include of file attribs.h.
1696
1697 2013-11-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1698
1699         * config/arm/arm.c (arm_new_rtx_costs):
1700         Handle narrow mode add-shifts properly.
1701         * config/arm/arm-common.c (arm_rtx_shift_left_p): Remove static.
1702         * config/arm/arm-common-protos.h (arm_rtx_shift_left_p):
1703         Declare extern.
1704
1705 2013-11-19  James Greenhalgh  <james.greenhalgh@arm.com>
1706
1707         * config/arm/arm.md (zero_extend<mode>di2): Add type attribute.
1708
1709 2013-11-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1710
1711         * config/rs6000/vector.md ("mov<mode>"): Do not call
1712         rs6000_emit_le_vsx_move to move into or out of GPRs.
1713         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Assert
1714         source and destination are not GPR hard regs.
1715
1716 2013-11-19  David Malcolm  <dmalcolm@redhat.com>
1717
1718         * basic-block.h (n_edges_for_function): Rename macro to...
1719         (n_edges_for_fn): ...this.
1720         (n_edges): Eliminate macro as work towards making uses of
1721         cfun be explicit.
1722
1723         * cfg.c (init_flow): Update for renaming of "n_edges_for_function"
1724         to "n_edges_for_fn".
1725
1726         * cfg.c (unchecked_make_edge): Remove usage of n_edges macro.
1727         (clear_edges): Likewise.
1728         (free_edge): Likewise.
1729         * cfghooks.c (dump_flow_info): Likewise.
1730         * cprop.c (is_too_expensive): Likewise.
1731         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
1732         * gcse.c (is_too_expensive): Likewise.
1733         (prune_insertions_deletions): Likewise.
1734         * mcf.c (create_fixup_graph): Likewise.
1735         * sched-rgn.c (haifa_find_rgns): Likewise.
1736         * tree-cfg.c (gimple_dump_cfg): Likewise.
1737         * var-tracking.c (variable_tracking_main_1): Likewise.
1738
1739 2013-11-19  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1740
1741         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix over
1742         length lines.
1743
1744 2013-11-19  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1745
1746         * config/aarch64/aarch64.md
1747         (aarch64_movdi_<mode>low, *add_<shift>_si_uxtw): Adjust whitespace.
1748
1749 2013-11-19  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1750
1751         * config/aarch64/aarch64.h (PROFILE_HOOK): Fix whitespace.
1752
1753 2013-11-19  Joseph Myers  <joseph@codesourcery.com>
1754
1755         * varasm.c (align_variable): Give error instead of warning for
1756         unsupported alignment.
1757         (assemble_noswitch_variable): Likewise.
1758
1759 2013-11-19  Basile Starynkevitch  <basile@starynkevitch.net>
1760
1761         * plugin.def (PLUGIN_INCLUDE_FILE): New event, invoked in
1762         cb_file_change.
1763
1764 2013-11-19  Peter Bergner  <bergner@vnet.ibm.com>
1765
1766         * loop-doloop.c (doloop_optimize_loops): Remove unused
1767         loop iterator argument from FOR_EACH_LOOP.
1768
1769 2013-11-19  David Malcolm  <dmalcolm@redhat.com>
1770
1771         Convert gimple types from a union to C++ inheritance.
1772         * Makefile.in (GIMPLE_H): Add dep on is-a.h.
1773         * coretypes.h (union gimple_statement_d): Remove declaration.
1774         (gimple): Convert from being a "union gimple_statement_d *"
1775         to a "struct gimple_statement_base *".
1776         (const_gimple): Likewise (with "const").
1777         * ggc.h (ggc_alloc_cleared_gimple_statement_d_stat): Replace with...
1778         (ggc_alloc_cleared_gimple_statement_stat): ...this.
1779         * gimple-pretty-print.c (debug): Change parameter from a
1780         "gimple_statement_d &" to a "gimple_statement_base &".
1781         (debug): Change parameter from a "gimple_statement_d *" to
1782         a "gimple_statement_base *".
1783         * gimple-pretty-print.h (debug): Update declarations as above.
1784         * gimple.c (gimple_alloc_stat): Update for renaming of
1785         ggc_alloc_cleared_gimple_statement_d_stat to
1786         ggc_alloc_cleared_gimple_statement_stat.
1787         * gimple.h: Include "is-a.h" for use by is_a_helper
1788         specializations in followup autogenerated patch.
1789         (struct gimple statement_base): Make this type usable as a base
1790         class by adding "desc", "tag" and "variable_size" to GTY, thus
1791         using opting-in to gengtype's support for simple inheritance.
1792         (gimple_statement_with_ops_base): Convert to a subclass of
1793         gimple_statement_base, dropping initial "gsbase" field.  Note that
1794         this type is abstract, with no GSS_ value, and thus no GTY tag value.
1795         (gimple_statement_with_ops): Convert to a subclass of
1796         gimple_statement_with_ops_base, dropping initial "opbase" field.
1797         Add tag value to GTY marking.  Update marking of op field to
1798         reflect how num_ops field is accessed via inheritance.
1799         (gimple_statement_with_memory_ops_base): Convert to a subclass of
1800         gimple_statement_with_ops_base, dropping initial "opbase" field.
1801         Add tag value to GTY marking.
1802         (gimple_statement_with_memory_ops): Convert to a subclass of
1803         public gimple_statement_with_memory_ops_base, dropping initial
1804         "membase" field.  Add tag value to GTY marking.  Update marking
1805         of op field to reflect how num_ops field is accessed via inheritance.
1806         (gimple_statement_call): Analogous changes that also update the
1807         marking of the "u" union.
1808         (gimple_statement_omp): Convert to a subclass of
1809         gimple_statement_base, dropping initial "gsbase" field, adding
1810         tag value to GTY marking.
1811         (gimple_statement_bind): Likewise.
1812         (gimple_statement_catch): Likewise.
1813         (gimple_statement_eh_filter): Likewise.
1814         (gimple_statement_eh_else): Likewise.
1815         (gimple_statement_eh_mnt): Likewise.
1816         (gimple_statement_phi): Likewise.
1817         (gimple_statement_eh_ctrl): Likewise.
1818         (gimple_statement_try): Likewise.
1819         (gimple_statement_wce): Likewise.
1820         (gimple_statement_asm): Convert to a subclass of
1821         gimple_statement_with_memory_ops_base, dropping initial
1822         "membase" field, adding tag value to GTY marking, and updating
1823         marking of op field.
1824         (gimple_statement_omp_critical): Convert to a subclass of
1825         gimple_statement_omp, dropping initial "omp" field, adding tag
1826         value to GTY marking.
1827         (gimple_statement_omp_for): Likewise.
1828         (gimple_statement_omp_parallel): Likewise.
1829         (gimple_statement_omp_task): Convert to a subclass of
1830         gimple_statement_omp_parallel, dropping initial "par" field,
1831         adding tag value to GTY marking.
1832         (gimple_statement_omp_sections): Convert to a subclass of
1833         gimple_statement_omp, dropping initial "omp" field, adding
1834         tag value to GTY marking.
1835         (gimple_statement_omp_continue): Convert to a subclass of
1836         gimple_statement_base, dropping initial "gsbase" field, adding
1837         tag value to GTY marking.
1838         (gimple_statement_omp_single): Convert to a subclass of
1839         gimple_statement_omp, dropping initial "omp" field, adding
1840         tag value to GTY marking.
1841         (gimple_statement_omp_atomic_load): Convert to a subclass of
1842         gimple_statement_base, dropping initial "gsbase" field, adding
1843         tag value to GTY marking.
1844         (gimple_statement_omp_atomic_store): Convert to a subclass of
1845         gimple_statement_base, dropping initial "gsbase" field, adding
1846         tag value to GTY marking.
1847         (gimple_statement_transaction): Convert to a subclass of
1848         gimple_statement_with_memory_ops_base, dropping initial "gsbase"
1849         field, adding tag value to GTY marking.
1850         (union gimple_statement_d): Remove.
1851         * system.h (CONST_CAST_GIMPLE): Update to use
1852         "struct gimple_statement_base *" rather than
1853         "union gimple_statement_d *".
1854         * tree-ssa-ccp.c (gimple_htab): Convert underlying type from
1855         gimple_statement_d to gimple_statement_base.
1856
1857         * gimple.h (gimple_use_ops): Port from union to usage of dyn_cast.
1858         (gimple_set_use_ops): Port from union to usage of as_a.
1859         (gimple_set_vuse): Likewise.
1860         (gimple_set_vdef): Likewise.
1861         (gimple_call_internal_fn): Port from union to a static_cast,
1862         given that the type has already been asserted.
1863         (gimple_omp_body_ptr): Port from unchecked union usage to
1864         a static_cast.
1865         (gimple_omp_set_body): Likewise.
1866
1867         * gimple-iterator.c (update_bb_for_stmts): Update for conversion of
1868         gimple types to a true class hierarchy.
1869         (update_call_edge_frequencies): Likewise.
1870         (gsi_insert_seq_nodes_before): Likewise.
1871         (gsi_insert_seq_nodes_after): Likewise.
1872         (gsi_split_seq_after): Likewise.
1873         (gsi_set_stmt): Likewise.
1874         (gsi_split_seq_before): Likewise.
1875         (gsi_remove): Likewise.
1876         * gimple-iterator.h (gsi_one_before_end_p): Likewise.
1877         (gsi_next): Likewise.
1878         (gsi_prev): Likewise.
1879         * gimple-pretty-print.c (dump_gimple_debug): Likewise.
1880         * gimple-ssa.h (gimple_vuse_op): Likewise.
1881         (gimple_vdef_op): Likewise.
1882         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
1883         * gimple-streamer-out.c (output_gimple_stmt): Likewise.
1884         * gimple.c (gimple_set_code): Likewise.
1885         (gimple_alloc_stat): Likewise.
1886         (gimple_set_subcode): Likewise.
1887         (gimple_build_call_internal_1): Likewise.
1888         (gimple_check_failed): Likewise.
1889         (gimple_call_flags): Likewise.
1890         (gimple_set_bb): Likewise.
1891         * gimple.h (is_a_helper <gimple_statement_asm> (gimple)): New.
1892         (is_a_helper <gimple_statement_bind> (gimple)): Likewise.
1893         (is_a_helper <gimple_statement_call> (gimple)): Likewise.
1894         (is_a_helper <gimple_statement_catch> (gimple)): Likewise.
1895         (is_a_helper <gimple_statement_eh_ctrl> (gimple)): Likewise.
1896         (is_a_helper <gimple_statement_eh_else> (gimple)): Likewise.
1897         (is_a_helper <gimple_statement_eh_filter> (gimple)): Likewise.
1898         (is_a_helper <gimple_statement_eh_mnt> (gimple)): Likewise.
1899         (is_a_helper <gimple_statement_omp_atomic_load> (gimple)): Likewise.
1900         (is_a_helper <gimple_statement_omp_atomic_store> (gimple)): Likewise.
1901         (is_a_helper <gimple_statement_omp_continue> (gimple)): Likewise.
1902         (is_a_helper <gimple_statement_omp_critical> (gimple)): Likewise.
1903         (is_a_helper <gimple_statement_omp_for> (gimple)): Likewise.
1904         (is_a_helper <gimple_statement_omp_parallel> (gimple)): Likewise.
1905         (is_a_helper <gimple_statement_omp_sections> (gimple)): Likewise.
1906         (is_a_helper <gimple_statement_omp_single> (gimple)): Likewise.
1907         (is_a_helper <gimple_statement_omp_task> (gimple)): Likewise.
1908         (is_a_helper <gimple_statement_phi> (gimple)): Likewise.
1909         (is_a_helper <gimple_statement_transaction> (gimple)): Likewise.
1910         (is_a_helper <gimple_statement_try> (gimple)): Likewise.
1911         (is_a_helper <gimple_statement_wce> (gimple)): Likewise.
1912         (is_a_helper <const gimple_statement_asm> (const_gimple)): Likewise.
1913         (is_a_helper <const gimple_statement_bind> (const_gimple)): Likewise.
1914         (is_a_helper <const gimple_statement_call> (const_gimple)): Likewise.
1915         (is_a_helper <const gimple_statement_catch> (const_gimple)): Likewise.
1916         (is_a_helper <const gimple_statement_eh_ctrl> (const_gimple)):
1917         Likewise.
1918         (is_a_helper <const gimple_statement_eh_filter> (const_gimple)):
1919         Likewise.
1920         (is_a_helper <const gimple_statement_omp_atomic_load> (const_gimple)):
1921         Likewise.
1922         (is_a_helper <const gimple_statement_omp_atomic_store>
1923         (const_gimple)): Likewise.
1924         (is_a_helper <const gimple_statement_omp_continue> (const_gimple)):
1925         Likewise.
1926         (is_a_helper <const gimple_statement_omp_critical> (const_gimple)):
1927         Likewise.
1928         (is_a_helper <const gimple_statement_omp_for> (const_gimple)):
1929         Likewise.
1930         (is_a_helper <const gimple_statement_omp_parallel> (const_gimple)):
1931         Likewise.
1932         (is_a_helper <const gimple_statement_omp_sections> (const_gimple)):
1933         Likewise.
1934         (is_a_helper <const gimple_statement_omp_single> (const_gimple)):
1935         Likewise.
1936         (is_a_helper <const gimple_statement_omp_task> (const_gimple)):
1937         Likewise.
1938         (is_a_helper <const gimple_statement_phi> (const_gimple)): Likewise.
1939         (is_a_helper <const gimple_statement_transaction> (const_gimple)):
1940         Likewise.
1941         (gimple_seq_last): Update for conversion of gimple types to a true
1942         class hierarchy.
1943         (gimple_seq_set_last): Likewise.
1944         (gimple_code): Likewise.
1945         (gimple_bb): Likewise.
1946         (gimple_block): Likewise.
1947         (gimple_set_block): Likewise.
1948         (gimple_location): Likewise.
1949         (gimple_location_ptr): Likewise.
1950         (gimple_set_location): Likewise.
1951         (gimple_no_warning_p): Likewise.
1952         (gimple_set_no_warning): Likewise.
1953         (gimple_set_visited): Likewise.
1954         (gimple_visited_p): Likewise.
1955         (gimple_set_plf): Likewise.
1956         (gimple_plf): Likewise.
1957         (gimple_set_uid): Likewise.
1958         (gimple_uid): Likewise.
1959         (gimple_init_singleton): Likewise.
1960         (gimple_modified_p): Likewise.
1961         (gimple_set_modified): Likewise.
1962         (gimple_expr_code): Likewise.
1963         (gimple_has_volatile_ops): Likewise.
1964         (gimple_set_has_volatile_ops): Likewise.
1965         (gimple_omp_subcode): Likewise.
1966         (gimple_omp_set_subcode): Likewise.
1967         (gimple_omp_return_set_nowait): Likewise.
1968         (gimple_omp_section_set_last): Likewise.
1969         (gimple_omp_parallel_set_combined_p): Likewise.
1970         (gimple_omp_atomic_set_need_value): Likewise.
1971         (gimple_omp_atomic_set_seq_cst): Likewise.
1972         (gimple_num_ops): Likewise.
1973         (gimple_set_num_ops): Likewise.
1974         (gimple_assign_nontemporal_move_p): Likewise.
1975         (gimple_assign_set_nontemporal_move): Likewise.
1976         (gimple_assign_rhs_code): Likewise.
1977         (gimple_assign_set_rhs_code): Likewise.
1978         (gimple_call_internal_p): Likewise.
1979         (gimple_call_with_bounds_p): Likewise.
1980         (gimple_call_set_with_bounds): Likewise.
1981         (gimple_call_set_tail): Likewise.
1982         (gimple_call_tail_p): Likewise.
1983         (gimple_call_set_return_slot_opt): Likewise.
1984         (gimple_call_return_slot_opt_p): Likewise.
1985         (gimple_call_set_from_thunk): Likewise.
1986         (gimple_call_from_thunk_p): Likewise.
1987         (gimple_call_set_va_arg_pack): Likewise.
1988         (gimple_call_va_arg_pack_p): Likewise.
1989         (gimple_call_set_nothrow): Likewise.
1990         (gimple_call_set_alloca_for_var): Likewise.
1991         (gimple_call_alloca_for_var_p): Likewise.
1992         (gimple_call_copy_flags): Likewise.
1993         (gimple_cond_code): Likewise.
1994         (gimple_cond_set_code): Likewise.
1995         (gimple_cond_make_false): Likewise.
1996         (gimple_cond_make_true): Likewise.
1997         (gimple_asm_volatile_p): Likewise.
1998         (gimple_asm_set_volatile): Likewise.
1999         (gimple_asm_set_input): Likewise.
2000         (gimple_asm_input_p): Likewise.
2001         (gimple_try_kind): Likewise.
2002         (gimple_try_set_kind): Likewise.
2003         (gimple_try_catch_is_cleanup): Likewise.
2004         (gimple_try_set_catch_is_cleanup): Likewise.
2005         (gimple_wce_cleanup_eh_only): Likewise.
2006         (gimple_wce_set_cleanup_eh_only): Likewise.
2007         (gimple_debug_bind_p): Likewise.
2008         (gimple_debug_source_bind_p): Likewise.
2009         (gimple_omp_for_set_kind): Likewise.
2010         (gimple_omp_for_set_combined_p): Likewise.
2011         (gimple_omp_for_set_combined_into_p): Likewise.
2012         (gimple_omp_target_set_kind): Likewise.
2013         (gimple_transaction_subcode): Likewise.
2014         (gimple_transaction_set_subcode): Likewise.
2015         (gimple_predict_predictor): Likewise.
2016         (gimple_predict_set_predictor): Likewise.
2017         (gimple_predict_outcome): Likewise.
2018         (gimple_predict_set_outcome): Likewise.
2019         (gimple_transaction_set_label): Likewise.
2020         (gimple_transaction_set_body): Likewise.
2021         (gimple_transaction_label_ptr): Likewise.
2022         (gimple_transaction_label): Likewise.
2023         (gimple_transaction_body_ptr): Likewise.
2024         (gimple_omp_continue_set_control_use): Likewise.
2025         (gimple_omp_continue_control_use_ptr): Likewise.
2026         (gimple_omp_continue_control_use): Likewise.
2027         (gimple_omp_continue_set_control_def): Likewise.
2028         (gimple_omp_continue_control_def_ptr): Likewise.
2029         (gimple_omp_continue_control_def): Likewise.
2030         (gimple_omp_atomic_load_rhs_ptr): Likewise.
2031         (gimple_omp_atomic_load_rhs): Likewise.
2032         (gimple_omp_atomic_load_set_rhs): Likewise.
2033         (gimple_omp_atomic_load_lhs_ptr): Likewise.
2034         (gimple_omp_atomic_load_lhs): Likewise.
2035         (gimple_omp_atomic_load_set_lhs): Likewise.
2036         (gimple_omp_atomic_store_val_ptr): Likewise.
2037         (gimple_omp_atomic_store_val): Likewise.
2038         (gimple_omp_atomic_store_set_val): Likewise.
2039         (gimple_omp_for_cond): Likewise.
2040         (gimple_omp_for_set_cond): Likewise.
2041         (gimple_omp_sections_set_control): Likewise.
2042         (gimple_omp_sections_control_ptr): Likewise.
2043         (gimple_omp_sections_control): Likewise.
2044         (gimple_omp_sections_set_clauses): Likewise.
2045         (gimple_omp_sections_clauses_ptr): Likewise.
2046         (gimple_omp_sections_clauses): Likewise.
2047         (gimple_omp_teams_set_clauses): Likewise.
2048         (gimple_omp_teams_clauses_ptr): Likewise.
2049         (gimple_omp_teams_clauses): Likewise.
2050         (gimple_omp_target_set_data_arg): Likewise.
2051         (gimple_omp_target_data_arg_ptr): Likewise.
2052         (gimple_omp_target_data_arg): Likewise.
2053         (gimple_omp_target_set_child_fn): Likewise.
2054         (gimple_omp_target_child_fn_ptr): Likewise.
2055         (gimple_omp_target_child_fn): Likewise.
2056         (gimple_omp_target_set_clauses): Likewise.
2057         (gimple_omp_target_clauses_ptr): Likewise.
2058         (gimple_omp_target_clauses): Likewise.
2059         (gimple_omp_single_set_clauses): Likewise.
2060         (gimple_omp_single_clauses_ptr): Likewise.
2061         (gimple_omp_single_clauses): Likewise.
2062         (gimple_omp_task_set_arg_align): Likewise.
2063         (gimple_omp_task_arg_align_ptr): Likewise.
2064         (gimple_omp_task_arg_align): Likewise.
2065         (gimple_omp_task_set_arg_size): Likewise.
2066         (gimple_omp_task_arg_size_ptr): Likewise.
2067         (gimple_omp_task_arg_size): Likewise.
2068         (gimple_omp_task_set_copy_fn): Likewise.
2069         (gimple_omp_task_copy_fn_ptr): Likewise.
2070         (gimple_omp_task_copy_fn): Likewise.
2071         (gimple_omp_task_set_data_arg): Likewise.
2072         (gimple_omp_task_data_arg_ptr): Likewise.
2073         (gimple_omp_task_data_arg): Likewise.
2074         (gimple_omp_task_set_child_fn): Likewise.
2075         (gimple_omp_task_child_fn_ptr): Likewise.
2076         (gimple_omp_task_child_fn): Likewise.
2077         (gimple_omp_task_set_clauses): Likewise.
2078         (gimple_omp_task_clauses_ptr): Likewise.
2079         (gimple_omp_task_clauses): Likewise.
2080         (gimple_omp_parallel_set_data_arg): Likewise.
2081         (gimple_omp_parallel_data_arg_ptr): Likewise.
2082         (gimple_omp_parallel_data_arg): Likewise.
2083         (gimple_omp_parallel_set_child_fn): Likewise.
2084         (gimple_omp_parallel_child_fn_ptr): Likewise.
2085         (gimple_omp_parallel_child_fn): Likewise.
2086         (gimple_omp_parallel_set_clauses): Likewise.
2087         (gimple_omp_parallel_clauses_ptr): Likewise.
2088         (gimple_omp_parallel_clauses): Likewise.
2089         (gimple_omp_for_set_pre_body): Likewise.
2090         (gimple_omp_for_pre_body_ptr): Likewise.
2091         (gimple_omp_for_set_incr): Likewise.
2092         (gimple_omp_for_incr_ptr): Likewise.
2093         (gimple_omp_for_incr): Likewise.
2094         (gimple_omp_for_set_final): Likewise.
2095         (gimple_omp_for_final_ptr): Likewise.
2096         (gimple_omp_for_final): Likewise.
2097         (gimple_omp_for_set_initial): Likewise.
2098         (gimple_omp_for_initial_ptr): Likewise.
2099         (gimple_omp_for_initial): Likewise.
2100         (gimple_omp_for_set_index): Likewise.
2101         (gimple_omp_for_index_ptr): Likewise.
2102         (gimple_omp_for_index): Likewise.
2103         (gimple_omp_for_collapse): Likewise.
2104         (gimple_omp_for_set_clauses): Likewise.
2105         (gimple_omp_for_clauses_ptr): Likewise.
2106         (gimple_omp_for_clauses): Likewise.
2107         (gimple_omp_critical_set_name): Likewise.
2108         (gimple_omp_critical_name_ptr): Likewise.
2109         (gimple_omp_critical_name): Likewise.
2110         (gimple_eh_dispatch_set_region): Likewise.
2111         (gimple_eh_dispatch_region): Likewise.
2112         (gimple_resx_set_region): Likewise.
2113         (gimple_resx_region): Likewise.
2114         (gimple_phi_set_arg): Likewise.
2115         (gimple_phi_arg): Likewise.
2116         (gimple_phi_set_result): Likewise.
2117         (gimple_phi_result_ptr): Likewise.
2118         (gimple_phi_result): Likewise.
2119         (gimple_phi_num_args): Likewise.
2120         (gimple_phi_capacity): Likewise.
2121         (gimple_wce_set_cleanup): Likewise.
2122         (gimple_wce_cleanup_ptr): Likewise.
2123         (gimple_try_set_cleanup): Likewise.
2124         (gimple_try_set_eval): Likewise.
2125         (gimple_try_cleanup_ptr): Likewise.
2126         (gimple_try_eval_ptr): Likewise.
2127         (gimple_eh_else_set_e_body): Likewise.
2128         (gimple_eh_else_set_n_body): Likewise.
2129         (gimple_eh_else_e_body_ptr): Likewise.
2130         (gimple_eh_else_n_body_ptr): Likewise.
2131         (gimple_eh_must_not_throw_set_fndecl): Likewise.
2132         (gimple_eh_must_not_throw_fndecl): Likewise.
2133         (gimple_eh_filter_set_failure): Likewise.
2134         (gimple_eh_filter_set_types): Likewise.
2135         (gimple_eh_filter_failure_ptr): Likewise.
2136         (gimple_eh_filter_types_ptr): Likewise.
2137         (gimple_eh_filter_types): Likewise.
2138         (gimple_catch_set_handler): Likewise.
2139         (gimple_catch_set_types): Likewise.
2140         (gimple_catch_handler_ptr): Likewise.
2141         (gimple_catch_types_ptr): Likewise.
2142         (gimple_catch_types): Likewise.
2143         (gimple_asm_string): Likewise.
2144         (gimple_asm_set_label_op): Likewise.
2145         (gimple_asm_label_op): Likewise.
2146         (gimple_asm_set_clobber_op): Likewise.
2147         (gimple_asm_clobber_op): Likewise.
2148         (gimple_asm_set_output_op): Likewise.
2149         (gimple_asm_output_op_ptr): Likewise.
2150         (gimple_asm_output_op): Likewise.
2151         (gimple_asm_set_input_op): Likewise.
2152         (gimple_asm_input_op_ptr): Likewise.
2153         (gimple_asm_input_op): Likewise.
2154         (gimple_asm_nlabels): Likewise.
2155         (gimple_asm_nclobbers): Likewise.
2156         (gimple_asm_noutputs): Likewise.
2157         (gimple_asm_ninputs): Likewise.
2158         (gimple_bind_set_block): Likewise.
2159         (gimple_bind_block): Likewise.
2160         (gimple_bind_add_seq): Likewise.
2161         (gimple_bind_add_stmt): Likewise.
2162         (gimple_bind_set_body): Likewise.
2163         (gimple_bind_body_ptr): Likewise.
2164         (gimple_bind_append_vars): Likewise.
2165         (gimple_bind_set_vars): Likewise.
2166         (gimple_bind_vars): Likewise.
2167         (gimple_call_clobber_set): Likewise.
2168         (gimple_call_use_set): Likewise.
2169         (gimple_call_set_internal_fn): Likewise.
2170         (gimple_call_set_fntype): Likewise.
2171         (gimple_call_fntype): Likewise.
2172         (gimple_omp_return_lhs_ptr): Likewise.
2173         (gimple_omp_return_lhs): Likewise.
2174         (gimple_omp_return_set_lhs): Likewise.
2175         (gimple_omp_taskreg_set_data_arg): Likewise.
2176         (gimple_omp_taskreg_data_arg_ptr): Likewise.
2177         (gimple_omp_taskreg_data_arg): Likewise.
2178         (gimple_omp_taskreg_set_child_fn): Likewise.
2179         (gimple_omp_taskreg_child_fn_ptr): Likewise.
2180         (gimple_omp_taskreg_child_fn): Likewise.
2181         (gimple_omp_taskreg_set_clauses): Likewise.
2182         (gimple_omp_taskreg_clauses_ptr): Likewise.
2183         (gimple_omp_taskreg_clauses): Likewise.
2184         (gimple_vuse): Likewise.
2185         (gimple_vdef): Likewise.
2186         (gimple_vuse_ptr): Likewise.
2187         (gimple_vdef_ptr): Likewise.
2188         * tree-inline.c (copy_debug_stmt): Likewise.
2189         * tree-phinodes.c (make_phi_node): Likewise.
2190
2191         * gimple.h (is_a_helper <const gimple_statement_with_ops>::test): New.
2192         (is_a_helper <gimple_statement_with_ops>::test): New.
2193         (is_a_helper <const gimple_statement_with_memory_ops>::test): New.
2194         (is_a_helper <gimple_statement_with_memory_ops>::test): New.
2195
2196         * gimple-streamer-in.c (input_gimple_stmt): Port from union
2197         access to use of as_a.
2198         * gimple.c (gimple_build_asm_1): Likewise.
2199         (gimple_build_try): Likewise.  Also, return a specific subclass
2200         rather than just gimple.
2201         (gimple_build_resx): Port from union access to use of as_a.
2202         (gimple_build_eh_dispatch): Likewise.
2203         (gimple_build_omp_for): Likewise.  Also, convert allocation of iter
2204         now that gengtype no longer provides a typed allocator function.
2205         (gimple_copy): Likewise.
2206         * gimple.h (gimple_build_try): Return a specific subclass rather
2207         than just gimple.
2208         * gimplify.c (gimplify_cleanup_point_expr): Replace union access
2209         with subclass access by making use of new return type of
2210         gimple_build_try.
2211         * tree-phinodes.c: (allocate_phi_node): Return a
2212         "gimple_statement_phi *" rather than just a gimple.
2213         (resize_phi_node): Likewise.
2214         (make_phi_node): Replace union access with subclass access by
2215         making use of new return type of allocate_phi_node.
2216         (reserve_phi_args_for_new_edge): Replace union access with as_a.
2217         (remove_phi_arg_num): Accept a "gimple_statement_phi *" rather
2218         than just a gimple.
2219         (remove_phi_args): Update for change to remove_phi_arg_num.
2220
2221         * gdbhooks.py (GimplePrinter.to_string): Update lookup of
2222         code field to reflect inheritance, rather than embedding of
2223         the base gimple type.
2224
2225 2013-11-19  Richard Biener  <rguenther@suse.de>
2226
2227         * cfgloop.h (struct loop_iterator): C++-ify, add constructor
2228         and destructor and make fel_next a member function.
2229         (fel_next): Transform into ...
2230         (loop_iterator::next): ... this.
2231         (fel_init): Transform into ...
2232         (loop_iterator::loop_iterator): ... this.
2233         (loop_iterator::~loop_iterator): New.
2234         (FOR_EACH_LOOP): Remove loop-iterator argument.
2235         (FOR_EACH_LOOP_BREAK): Remove no longer necessary macro.
2236         * cfgloop.c, cfgloopmanip.c, config/mn10300/mn10300.c,
2237         graphite-clast-to-gimple.c, graphite-scop-detection.c,
2238         graphite-sese-to-poly.c, ipa-inline-analysis.c, ipa-pure-const.c,
2239         loop-init.c, loop-invariant.c, loop-unroll.c, loop-unswitch.c,
2240         modulo-sched.c, predict.c, sel-sched-ir.c, tree-cfg.c, tree-data-ref.c,
2241         tree-if-conv.c, tree-loop-distribution.c, tree-parloops.c,
2242         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-dce.c,
2243         tree-ssa-loop-ch.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
2244         tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
2245         tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c,
2246         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vrp.c: Adjust
2247         uses of FOR_EACH_LOOP and remove loop_iterator variables.  Replace
2248         FOR_EACH_LOOP_BREAK with break.
2249
2250 2013-11-19  Richard Biener  <rguenther@suse.de>
2251
2252         PR tree-optimization/59164
2253         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
2254         Uncomment assert.
2255         * tree-vect-loop.c (vect_analyze_loop_operations): Adjust check
2256         whether we can create an epilogue loop to reflect thecases where
2257         we create one.
2258
2259 2013-11-19  Andrew MacLeod  <amacleod@redhat.com>
2260
2261         * graphite-sese-to-poly.c: Include expr.h.
2262
2263 2013-11-19  Richard Biener  <rguenther@suse.de>
2264
2265         PR middle-end/58956
2266         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid forwarding
2267         loads into stmts that may clobber it.
2268
2269 2013-11-19  Bernd Schmidt  <bernds@codesourcery.com>
2270
2271         * cgraphunit.c (symtab_terminator): New variable.
2272         (queued_nodes): Renamed from first.  Use symtab_terminator as
2273         initializer.
2274         (analyze_functions): Adjust accordingly.
2275         (cgraph_process_new_functions): Return void.
2276         * cgraph.h (cgraph_process_new_functions): Adjust declaration.
2277
2278 2013-11-19  Marek Polacek  <polacek@redhat.com>
2279
2280         * opts.c (common_handle_option): Add -fsanitize=null option.
2281         Turn off -fdelete-null-pointer-checks option when doing the
2282         NULL pointer checking.
2283         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH): Add.
2284         * tree-pass.h (make_pass_ubsan): Declare.
2285         (make_pass_sanopt): Declare.
2286         * timevar.def (TV_TREE_UBSAN): New timevar.
2287         * passes.def: Add pass_sanopt and pass_ubsan.
2288         * ubsan.h (ubsan_null_ckind): New enum.
2289         (ubsan_mismatch_data): New struct.
2290         (ubsan_expand_null_ifn): Declare.
2291         (ubsan_create_data): Adjust declaration.
2292         (ubsan_type_descriptor): Likewise.
2293         * asan.c: Include "ubsan.h".
2294         (pass_data_sanopt): New pass.
2295         (execute_sanopt): New function.
2296         (gate_sanopt): Likewise.
2297         (make_pass_sanopt): Likewise.
2298         (class pass_sanopt): New class.
2299         * ubsan.c: Include tree-pass.h, gimple-ssa.h, gimple-walk.h,
2300         gimple-iterator.h and cfgloop.h.
2301         (PROB_VERY_UNLIKELY): Define.
2302         (tree_type_map_hash): New function.
2303         (ubsan_type_descriptor): Add new parameter.
2304         Improve type name generation.
2305         (ubsan_create_data): Add new parameter.  Add pointer data into
2306         ubsan structure.
2307         (ubsan_expand_null_ifn): New function.
2308         (instrument_member_call): Likewise.
2309         (instrument_mem_ref): Likewise.
2310         (instrument_null): Likewise.
2311         (ubsan_pass): Likewise.
2312         (gate_ubsan): Likewise.
2313         (make_pass_ubsan): Likewise.
2314         (ubsan_instrument_unreachable): Adjust ubsan_create_data call.
2315         (class pass_ubsan): New class.
2316         (pass_data_ubsan): New pass.
2317         * flag-types.h (enum sanitize_code): Add SANITIZE_NULL.
2318         * internal-fn.c (expand_UBSAN_NULL): New function.
2319         * cgraphunit.c (varpool_finalize_decl): Call varpool_assemble_decl
2320         even when !flag_toplevel_reorder.
2321         * internal-fn.def (UBSAN_NULL): New.
2322
2323 2013-11-19  Jan Hubicka  <jh@suse.cz>
2324
2325         * cgraph.c (cgraph_create_indirect_edge): Use
2326         get_polymorphic_call_info.
2327         * cgraph.h (cgraph_indirect_call_info): Add outer_type,
2328         maybe_in_construction and maybe_derived_type.
2329         * ipa-utils.h (ipa_polymorphic_call_context): New structure.
2330         (ipa_dummy_polymorphic_call_context): New global var.
2331         (possible_polymorphic_call_targets): Add context paramter.
2332         (dump_possible_polymorphic_call_targets): Likewise; update wrappers.
2333         (possible_polymorphic_call_target_p): Likewise.
2334         (get_polymorphic_call_info): New function.
2335         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): New function.
2336         (add_type_duplicate): Remove forgotten debug output.
2337         (method_class_type): Add sanity check.
2338         (maybe_record_node): Add FINALP parameter.
2339         (record_binfo): Add OUTER_TYPE and OFFSET; walk the inner
2340         by info by get_binfo_at_offset.
2341         (possible_polymorphic_call_targets_1): Add OUTER_TYPE/OFFSET
2342         parameters; pass them to record-binfo.
2343         (polymorphic_call_target_d): Add context and FINAL.
2344         (polymorphic_call_target_hasher::hash): Hash context.
2345         (polymorphic_call_target_hasher::equal): Compare context.
2346         (free_polymorphic_call_targets_hash):
2347         (get_class_context): New function.
2348         (contains_type_p): New function.
2349         (get_polymorphic_call_info): New function.
2350         (walk_bases): New function.
2351         (possible_polymorphic_call_targets): Add context parameter; honnor it.
2352         (dump_possible_polymorphic_call_targets): Dump context.
2353         (possible_polymorphic_call_target_p): Add context.
2354         (update_type_inheritance_graph): Update comment.s
2355         (ipa_set_jf_known_type): Assert that compoentn type is known.
2356         (ipa_note_param_call): Do not tamper with offsets.
2357         (ipa_analyze_indirect_call_uses): When offset is being changed; clear
2358         outer type.
2359         (update_indirect_edges_after_inlining): Likewise.
2360         (ipa_write_indirect_edge_info): Stream new fields.
2361         (ipa_read_indirect_edge_info): Stream in new fields.
2362
2363 2013-11-19  Jan Hubicka  <jh@suse.cz>
2364
2365         * tree-pretty-print.c (dump_generic_node): Print class type of
2366         OBJ_TYPE_REF.
2367
2368 2013-11-19  Joey Ye  <joey.ye@arm.com>
2369
2370         * config/arm/arm.opt (-marm-pic-data-is-text-relative): New option.
2371         * doc/invoke.texi (-marm-pic-data-is-text-relative): Documentation
2372         for new option.
2373         * config/arm/arm.c (arm_option_override): By default disable
2374         -marm-pic-data-is-text-relative.
2375         (legitimize_pic_address): Use arm_pic_data_is_text_relative.
2376         (arm_assemble_integer): Likewise.
2377         * config/arm/arm.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
2378         New macro to initialize -marm-pic-data-is-text-relative.
2379
2380 2013-11-19  Bin Cheng  <bin.cheng@arm.com>
2381
2382         * tree-ssa-loop-ivopts.c (enum ainc_type): New.
2383         (address_cost_data): New field.
2384         (get_address_cost): Compute auto-increment rtx cost in ainc_costs.
2385         Use ainc_costs for auto-increment rtx patterns.  Cleanup TWS.
2386
2387 2013-11-19  James Greenhalgh  <james.greenhalgh@arm.com>
2388
2389         * config/aarch64/aarch64.md: Remove v8type from all insns.
2390
2391 2013-11-19  Richard Biener  <rguenther@suse.de>
2392
2393         PR tree-optimization/57517
2394         * tree-predcom.c (combinable_refs_p): Verify the combination
2395         is always executed when the refs are.
2396
2397 2013-11-19  Jeff Law  <law@redhat.com>
2398
2399         * tree-ssa-threadupdate.c: Include ssa-iterators.h
2400         (copy_phi_arg_into_existing_phi): New function.
2401         (any_remaining_duplicated_blocks): Likewise.
2402         (ssa_fix_duplicate_block_edges): Handle multiple duplicated
2403         blocks on a jump threading path.
2404
2405         * tree-ssa-threadupdate.c (thread_through_loop_header):  Do not
2406         thread through a joiner which has the latch edge.
2407
2408 2013-11-19  Jan Hubicka  <jh@suse.cz>
2409
2410         * md.texi (setmem): Document new parameter.
2411         * optabs.c (maybe_gen_insn): Support 9 operands.
2412         * builtins.c (determine_block_size): Add probable_max_size;
2413         support anti-ranges.
2414         (expand_builtin_memcpy. expand_builtin_memset_args): Pass around
2415         probable_max_size.
2416         * expr.c (emit_block_move_via_movmem, emit_block_move_hints,
2417         emit_block_move, clear_storage_hints, set_storage_via_setmem):
2418         Likewise.
2419         * expr.h (emit_block_move_hints, clear_storage_hints,
2420         set_storage_via_setmem): Update prototype.
2421         * i386.md (setmem, movmem patterns): Add 9th operand.
2422         * i386-protos.h (ix86_expand_set_or_movmem): Update prototype.
2423         * i386.c (ix86_expand_set_or_movmem): Take probable_max_size_exp
2424         argument; pass it to decide_alg.
2425
2426 2013-11-19  David Malcolm  <dmalcolm@redhat.com>
2427
2428         * basic-block.h (n_basic_blocks_for_function): Rename macro to...
2429         (n_basic_blocks_for_fn): ...this.
2430
2431         (n_basic_blocks): Eliminate macro as work towards making uses of
2432         cfun be explicit.
2433
2434         * cfgloop.c (init_loops_structure): Update for renaming of
2435         "n_basic_blocks_for_function" to "n_basic_blocks_for_fn".
2436         * graph.c (draw_cfg_nodes_no_loops): Likewise.
2437         * ipa-utils.c (ipa_merge_profiles): Likewise.
2438         * lto-streamer-in.c (make_new_block): Likewise.
2439         * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
2440         (dump_function_to_file): Likewise.
2441
2442         * alias.c (init_alias_analysis): Replace usage of "n_basic_blocks"
2443         macro with "n_basic_blocks_for_fn (cfun)".
2444         * bb-reorder.c (partition_hot_cold_basic_blocks): Likewise.
2445         (duplicate_computed_gotos): Likewise.
2446         (reorder_basic_blocks): Likewise.
2447         * bt-load.c (augment_live_range): Likewise.
2448         * cfg.c (expunge_block): Likewise.
2449         (compact_blocks): Likewise.
2450         * cfganal.c (single_pred_before_succ_order): Likewise.
2451         (compute_idf): Likewise.
2452         (flow_dfs_compute_reverse_init): Likewise.
2453         (pre_and_rev_post_order_compute): Likewise.
2454         (pre_and_rev_post_order_compute_fn): Likewise.
2455         (inverted_post_order_compute): Likewise.
2456         (post_order_compute): Likewise.
2457         (print_edge_list): Likewise.
2458         (find_unreachable_blocks): Likewise.
2459         (mark_dfs_back_edges): Likewise.
2460         * cfgcleanup.c (try_optimize_cfg): Likewise.
2461         (try_forward_edges): Likewise.
2462         * cfghooks.c (dump_flow_info): Likewise.
2463         * cfgloop.c (verify_loop_structure): Likewise.
2464         (get_loop_body): Likewise.
2465         (flow_loops_find): Likewise.
2466         * cfgloopmanip.c (add_loop): Likewise.
2467         (remove_path): Likewise.
2468         (find_path): Likewise.
2469         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
2470         (rtl_verify_bb_layout): Likewise.
2471         (entry_of_function): Likewise.
2472         (rtl_create_basic_block): Likewise.
2473         * coverage.c (coverage_compute_cfg_checksum): Likewise.
2474         * cprop.c (one_cprop_pass): Likewise.
2475         (is_too_expensive): Likewise.
2476         * df-core.c (df_compute_cfg_image): Likewise.
2477         (df_compact_blocks): Likewise.
2478         (df_worklist_dataflow_doublequeue): Likewise.
2479         * dominance.c (calculate_dominance_info): Likewise.
2480         (calc_dfs_tree): Likewise.
2481         (calc_dfs_tree_nonrec): Likewise.
2482         (init_dom_info): Likewise.
2483         * domwalk.c (cmp_bb_postorder): Likewise.
2484         * function.c (thread_prologue_and_epilogue_insns): Likewise.
2485         (generate_setjmp_warnings): Likewise.
2486         * fwprop.c (build_single_def_use_links): Likewise.
2487         * gcse.c (is_too_expensive): Likewise.
2488         (one_code_hoisting_pass): Likewise.
2489         (one_pre_gcse_pass): Likewise.
2490         * graphite.c (graphite_initialize): Likewise.
2491         * haifa-sched.c (haifa_sched_init): Likewise.
2492         * ipa-inline-analysis.c (estimate_function_body_sizes): Likewise.
2493         * ira.c (split_live_ranges_for_shrink_wrap): Likewise.
2494         * ira-build.c (ira_build): Likewise.
2495         * lcm.c (compute_nearerout): Likewise.
2496         (compute_available): Likewise.
2497         (compute_laterin): Likewise.
2498         (compute_antinout_edge): Likewise.
2499         * lra-lives.c (lra_create_live_ranges): Likewise.
2500         * lra.c (has_nonexceptional_receiver): Likewise.
2501         * mcf.c (create_fixup_graph): Likewise.
2502         * profile.c (branch_prob): Likewise.
2503         * reg-stack.c (convert_regs_2): Likewise.
2504         * regrename.c (regrename_analyze): Likewise.
2505         * reload1.c (has_nonexceptional_receiver): Likewise.
2506         * reorg.c (dbr_schedule): Likewise.
2507         * sched-deps.c (sched_deps_init): Likewise.
2508         * sched-ebb.c (schedule_ebbs): Likewise.
2509         * sched-rgn.c (extend_regions): Likewise.
2510         (schedule_insns): Likewise.
2511         (sched_rgn_init): Likewise.
2512         (extend_rgns): Likewise.
2513         (haifa_find_rgns): Likewise.
2514         * sel-sched-ir.c (recompute_rev_top_order): Likewise.
2515         (sel_recompute_toporder): Likewise.
2516         * sel-sched.c (run_selective_scheduling): Likewise.
2517         * store-motion.c (one_store_motion_pass): Likewise.
2518         (remove_reachable_equiv_notes): Likewise.
2519         * tracer.c (tracer): Likewise.
2520         (tail_duplicate): Likewise.
2521         * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
2522         (dump_cfg_stats): Likewise.
2523         (gimple_dump_cfg): Likewise.
2524         (create_bb): Likewise.
2525         (build_gimple_cfg): Likewise.
2526         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
2527         * tree-inline.c (optimize_inline_calls): Likewise.
2528         (fold_marked_statements): Likewise.
2529         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Likewise.
2530         * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
2531         * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
2532         * tree-ssa-loop-manip.c (compute_live_loop_exits): Likewise.
2533         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
2534         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
2535         * tree-ssa-pre.c (do_pre): Likewise.
2536         (init_pre): Likewise.
2537         (compute_avail): Likewise.
2538         * tree-ssa-reassoc.c (init_reassoc): Likewise.
2539         * tree-ssa-sccvn.c (init_scc_vn): Likewise.
2540         * tree-ssa-tail-merge.c (alloc_cluster_vectors): Likewise.
2541         (init_worklist): Likewise.
2542         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
2543         * var-tracking.c (variable_tracking_main_1): Likewise.
2544         (vt_find_locations): Likewise.
2545         (vt_stack_adjustments): Likewise.
2546         * config/s390/s390.c (s390_optimize_nonescaping_tx): Likewise.
2547         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
2548
2549 2013-11-18  Jan Hubicka  <jh@suse.cz>
2550
2551         * profile.c (compute_branch_probabilities): Do not sanity check
2552         run_max.
2553
2554 2013-11-18 Kenneth Zadeck <zadeck@naturalbridge.com>
2555
2556         * tree.c (int_fits_type_p): Change GET_MODE_BITSIZE to
2557         GET_MODE_PRECISION.
2558         * fold-const.c (fold_single_bit_test_into_sign_test)
2559         (fold_binary_loc): Change GET_MODE_BITSIZE to GET_MODE_PRECISION.
2560
2561 2013-11-18  Teresa Johnson  <tejohnson@google.com>
2562
2563         * cfgrtl.c (cfg_layout_initialize): Assert if we try to go into
2564         cfglayout after bb reordering.
2565         * passes.def: Move compgotos before bb reordering since it goes into
2566         cfglayout.
2567
2568 2013-11-18  Bernd Schmidt  <bernds@codesourcery.com>
2569
2570         * cgraphunit.c (ipa_passes): Don't execute all_lto_gen_passes.
2571         * lto-streamer-out.c (lto_output, produce_asm_for_decls): No longer
2572         static.
2573         (pass_data_ipa_lto_gimple_out, pass_ipa_lto_gimple_out,
2574         make_pass_ipa_lto_gimple_out, pass_data_ipa_lto_finish_out,
2575         pass_ipa_lto_finish_out, make_pass_ipa_lto_finish_out): Remove.
2576         * lto-streamer.h (lto_output, produce_asm_for_decls): Declare.
2577         * pass-manager.h (GCC_PASS_LISTS, class pass_manager):
2578         Remove all_lto_gen_passes.
2579         * passes.c (pass_manager::dump_passes): Remove its use.
2580         (pass_manager::register_pass): Likewise.
2581         (ipa_read_summaries, ipa_read_optimization_summaries): Likewise.
2582         (pass_manager::pass_manager): Don't initialize or use it.
2583         (write_lto): New static function.
2584         (ipa_write_summaries_1, ipa_write_optimization_summaries): Use it
2585         instead of using all_lto_gen_passes.
2586         * passes.def (all_lto_gen_passes, pass_ipa_lto_gimple_out,
2587         pass_ipa_lto_finish_out): Delete.
2588         * tree-pass.h (make_pass_ipa_lto_gimple_out,
2589         make_pass_ipa_lto_finish_out): Don't declare.
2590
2591 2013-11-18  Jeff Law  <law@redhat.com>
2592
2593         * tree-ssa-threadupdate.c (redirection_data): Record two
2594         duplicated blocks instead of just one.
2595         (local_info): Explain why we don't create a template for the
2596         second duplicated block in a thread path.
2597         (create_block_for_threading): Accept argument indicating array
2598         index into redirection_data to store its result.
2599         (lookup_redirection_data): Initialize both duplicate blocks.
2600         (ssa_create_duplicates): If a jump threading path needs multiple
2601         blocks duplicated, then duplicate them.
2602         (ssa_fix_duplicate_block_edges): Corresponding changes.
2603         (ssa_fixup_template_block, thread_single_edge):  Likewise.
2604
2605 2013-11-18  Marek Polacek  <polacek@redhat.com>
2606
2607         * doc/invoke.texi: Extend -fsanitize=undefined documentation.
2608
2609 2013-11-18  Andrew Pinski <apinski@cavium.com>
2610             Steve Ellcey  <sellcey@mips.com>
2611
2612         PR target/56552
2613         * config/mips/mips.md (*mov<GPR:mode>_on_<MOVECC:mode>): Remove
2614         type restriction from equality_operator on conditonal move.
2615         (*mov<SCALARF:mode>_on_<MOVECC:mode>): Ditto.
2616         (*mov<GPR:mode>_on_<GPR2:mode>_ne): New.
2617
2618 2013-11-18  Jeff Law  <law@redhat.com>
2619
2620         * tree-ssa-threadupdate.c: Fix file block comment.
2621         Fix minor indention issue.
2622
2623 2013-11-18  Uros Bizjak  <ubizjak@gmail.com>
2624
2625         * config/i386/i386.c (ix86_decompose_address): Use REG_P instead of
2626         ix86_address_subreg_operand.  Move subreg checks to
2627         ix86_validate_address_register.  Move address override check to
2628         ix86_legitimate_address_p.
2629         (ix86_validate_address_register): New function.
2630         (ix86_legitimate_address_p): Call ix86_validate_address_register
2631         to validate base and index registers.  Add address override check
2632         from ix86_decompose_address.
2633         (ix86_decompose_address): Remove.
2634
2635 2013-11-18  Richard Biener  <rguenther@suse.de>
2636
2637         PR tree-optimization/59125
2638         PR tree-optimization/54570
2639         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): When inlining
2640         is not complete do not treat component-references with offset zero
2641         but different fields as equal.
2642         * tree-object-size.c: Include tree-phinodes.h and ssa-iterators.h.
2643         (compute_object_sizes): Apply TLC.  Propagate the constant
2644         results into all uses and fold their stmts.
2645         * passes.def (pass_all_optimizations): Move pass_object_sizes
2646         after the first pass_forwprop and before pass_fre.
2647
2648 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
2649
2650         * tree.h (tree_to_uhwi): Return an unsigned HOST_WIDE_INT.
2651         * tree.c (tree_to_uhwi): Return an unsigned HOST_WIDE_INT.
2652         (tree_ctz): Remove cast to unsigned type.
2653         * builtins.c (fold_builtin_memory_op): Likewise.
2654         * dwarf2out.c (descr_info_loc): Likewise.
2655         * godump.c (go_output_typedef): Likewise.
2656         * omp-low.c (expand_omp_simd): Likewise.
2657         * stor-layout.c (excess_unit_span): Likewise.
2658         * tree-object-size.c (addr_object_size): Likewise.
2659         * tree-sra.c (analyze_all_variable_accesses): Likewise.
2660         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
2661         (simplify_rotate): Likewise.
2662         * tree-ssa-strlen.c (adjust_last_stmt, handle_builtin_memcpy)
2663         (handle_pointer_plus): Likewise.
2664         * tree-switch-conversion.c (check_range): Likewise.
2665         * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
2666         * tsan.c (instrument_builtin_call): Likewise.
2667         * cfgexpand.c (defer_stack_allocation): Add cast to HOST_WIDE_INT.
2668         * trans-mem.c (tm_log_add): Likewise.
2669         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
2670         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
2671         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
2672         * config/mips/mips.c (r10k_safe_mem_expr_p): Make offset unsigned.
2673
2674 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
2675
2676         * tree.h (host_integerp, tree_low_cst): Delete.
2677         * tree.c (host_integerp, tree_low_cst): Delete.
2678
2679 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
2680
2681         * expr.h: Update comments to refer to tree_to_[su]hwi rather
2682         than tree_low_cst.
2683         * fold-const.c (fold_binary_loc): Likewise.
2684         * expr.c (store_constructor): Use tree_to_uhwi rather than
2685         tree_low_cst.
2686         * ipa-utils.h (possible_polymorphic_call_target_p): Likewise.
2687         * stmt.c (emit_case_dispatch_table): Likewise.
2688         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
2689
2690 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
2691
2692         * alias.c, asan.c, builtins.c, cfgexpand.c, cgraph.c,
2693         config/aarch64/aarch64.c, config/alpha/predicates.md,
2694         config/arm/arm.c, config/darwin.c, config/epiphany/epiphany.c,
2695         config/i386/i386.c, config/iq2000/iq2000.c, config/m32c/m32c-pragma.c,
2696         config/mep/mep-pragma.c, config/mips/mips.c,
2697         config/picochip/picochip.c, config/rs6000/rs6000.c, cppbuiltin.c,
2698         dbxout.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, fold-const.c,
2699         function.c, gimple-fold.c, godump.c, ipa-cp.c, ipa-prop.c, omp-low.c,
2700         predict.c, sdbout.c, stor-layout.c, trans-mem.c, tree-object-size.c,
2701         tree-sra.c, tree-ssa-ccp.c, tree-ssa-forwprop.c,
2702         tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-niter.c,
2703         tree-ssa-loop-prefetch.c, tree-ssa-strlen.c, tree-stdarg.c,
2704         tree-switch-conversion.c, tree-vect-generic.c, tree-vect-loop.c,
2705         tree-vect-patterns.c, tree-vrp.c, tree.c, tsan.c, ubsan.c, varasm.c:
2706         Replace tree_low_cst (..., 1) with tree_to_uhwi throughout.
2707
2708 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
2709
2710         * builtins.c, cilk-common.c, config/aarch64/aarch64.c,
2711         config/alpha/alpha.c, config/arm/arm.c, config/c6x/predicates.md,
2712         config/i386/i386.c, config/ia64/predicates.md, config/s390/s390.c,
2713         coverage.c, dbxout.c, dwarf2out.c, except.c, explow.c, expr.c, expr.h,
2714         fold-const.c, gimple-fold.c, godump.c, ipa-prop.c, omp-low.c,
2715         predict.c, rtlanal.c, sdbout.c, stmt.c, stor-layout.c, targhooks.c,
2716         tree-cfg.c, tree-data-ref.c, tree-inline.c, tree-ssa-forwprop.c,
2717         tree-ssa-loop-prefetch.c, tree-ssa-phiopt.c, tree-ssa-sccvn.c,
2718         tree-ssa-strlen.c, tree-stdarg.c, tree-vect-data-refs.c,
2719         tree-vect-patterns.c, tree.c, tree.h, var-tracking.c, varasm.c:
2720         Replace tree_low_cst (..., 0) with tree_to_shwi throughout.
2721
2722 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
2723
2724         * tree.h (tree_to_shwi, tree_to_uhwi): Declare, with inline expansions.
2725         * tree.c (tree_to_shwi, tree_to_uhwi): New functions.
2726
2727 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
2728
2729         * expr.h: Update comments to refer to tree_fits_[su]hwi_p rather
2730         than host_integerp.
2731
2732 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
2733
2734         * builtins.c, config/alpha/alpha.c, config/iq2000/iq2000.c,
2735         config/mips/mips.c, dbxout.c, dwarf2out.c, expr.c, fold-const.c,
2736         gimple-fold.c, godump.c, omp-low.c, predict.c, sdbout.c, stor-layout.c,
2737         tree-dfa.c, tree-sra.c, tree-ssa-forwprop.c, tree-ssa-loop-prefetch.c,
2738         tree-ssa-phiopt.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
2739         tree-ssa-structalias.c, tree-vect-data-refs.c, tree-vect-patterns.c,
2740         tree.c, varasm.c, alias.c, cfgexpand.c, config/aarch64/aarch64.c,
2741         config/arm/arm.c, config/epiphany/epiphany.c, config/i386/i386.c,
2742         config/m32c/m32c-pragma.c, config/mep/mep-pragma.c,
2743         config/rs6000/rs6000.c, config/sparc/sparc.c, emit-rtl.c, function.c,
2744         gimplify.c, ipa-prop.c, stmt.c, trans-mem.c, tree-cfg.c,
2745         tree-object-size.c, tree-ssa-ccp.c, tree-ssa-loop-ivcanon.c,
2746         tree-stdarg.c, tree-switch-conversion.c, tree-vect-generic.c,
2747         tree-vrp.c, tsan.c, ubsan.c: Replace host_integerp (..., 1) with
2748         tree_fits_uhwi_p throughout.
2749
2750 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
2751
2752         * builtins.c, config/alpha/alpha.c, config/c6x/predicates.md,
2753         config/ia64/predicates.md, config/iq2000/iq2000.c, config/mips/mips.c,
2754         config/s390/s390.c, dbxout.c, dwarf2out.c, except.c, explow.c, expr.c,
2755         expr.h, fold-const.c, gimple-fold.c, gimple-ssa-strength-reduction.c,
2756         gimple.c, godump.c, graphite-scop-detection.c, graphite-sese-to-poly.c,
2757         omp-low.c, predict.c, rtlanal.c, sdbout.c, simplify-rtx.c,
2758         stor-layout.c, tree-data-ref.c, tree-dfa.c, tree-pretty-print.c,
2759         tree-sra.c, tree-ssa-alias.c, tree-ssa-forwprop.c,
2760         tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c,
2761         tree-ssa-phiopt.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
2762         tree-ssa-strlen.c, tree-ssa-structalias.c, tree-vect-data-refs.c,
2763         tree-vect-patterns.c, tree-vectorizer.h, tree.c, var-tracking.c,
2764         varasm.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
2765         throughout.
2766
2767 2013-11-18  Richard Sandiford  <rdsandiford@googlemail.com>
2768
2769         * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Declare.
2770         * tree.c (tree_fits_shwi_p, tree_fits_uhwi_p): Define.
2771
2772 2013-11-18  Kirill Yukhin  <kirill.yukhin@intel.com>
2773
2774         * config/ia64/ia64.c (ia64_split_tmode_move): Mark load with `dead'
2775         flag if it kills its address, not its post-increment.
2776
2777 2013-11-18  Ilya Enkovich  <ilya.enkovich@intel.com>
2778
2779         * builtin-types.def (BT_FN_PTR_CONST_PTR_VAR): New.
2780         * chkp-builtins.def (BUILT_IN_CHKP_BIND_BOUNDS): New.
2781         * cfgexpand.c (expand_call_stmt): Expand BUILT_IN_CHKP_BIND_BOUNDS.
2782         * gimple.c (gimple_call_get_nobnd_arg_index): Remove.
2783         * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
2784         (gimple_call_with_bounds_p): New.
2785         (gimple_call_set_with_bounds): New.
2786         (gimple_call_num_nobnd_args): Remove.
2787         (gimple_call_nobnd_arg): Remove.
2788         * tree.h (CALL_WITH_BOUNDS_P): New.
2789         * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
2790
2791 2013-11-18  Trevor Saunders  <tsaunders@mozilla.com>
2792
2793         * cgraph.h (symtab_node_asm_name): Rename to symtab_node::asm_name.
2794         (symtab_node_name): Rename to symtab_node::name.
2795         (cgraph_node_asm_name): Remove.
2796         (varpool_node_asm_name): Remove.
2797         * cgraph.c cgraphclones.c cgraphunit.c ipa-cp.c ipa-devirt.c
2798         ipa-inline-analysis.c ipa-inline-transform.c ipa-inline.c
2799         ipa-profile.c ipa-prop.c ipa-pure-const.c ipa-ref.c ipa-reference.c
2800         ipa-utils.c ipa.c symtab.c tree-inline.c tree-sra.c
2801         tree-ssa-structalias.c value-prof.c varpool.c Adjust.
2802
2803 2013-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2804
2805         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): New table.
2806         * config/arm/arm.c (arm_cortex_a53_tune): New.
2807         * config/arm/arm-cores.def (cortex-a53): Use cortex_a53 tuning struct.
2808
2809 2013-11-12  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
2810
2811         * config.gcc (i[34567]86-*-linux* | ...): Add bdver4.
2812         (case ${target}): Add bdver4.
2813         * config/i386/bdver3.md: Add bdver4.
2814         * config/i386/driver-i386.c: (host_detect_local_cpu): Let
2815         -march=native recognize bdver4 processors.
2816         * config/i386/i386-c.c (ix86_target_macros_internal): Add
2817         bdver4 def_and_undef
2818         * config/i386/i386.c (struct processor_costs bdver4_cost): New.
2819         (m_BDVER4): New definition.
2820         (m_AMD_MULTIPLE): Includes m_BDVER4.
2821         (processor_target_table): Add bdver4 entry.
2822         (static const char *const cpu_names): Add bdver4 entry.
2823         (software_prefetching_beneficial_p): Add bdver3.
2824         (ix86_option_override_internal): Add bdver4 instruction sets.
2825         (ix86_issue_rate): Add bdver4.
2826         (ix86_adjust_cost): Add bdver4.
2827         (ia32_multipass_dfa_lookahead): Add bdver4.
2828         (enum processor_model): Add M_AMDFAM15H_BDVER4.
2829         (struct _arch_names_table): Add M_AMDFAM15H_BDVER4.
2830         (has_dispatch): Add bdver4.
2831         * config/i386/i386.h (TARGET_BDVER4): New definition.
2832         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver4.
2833         (enum processor_type): Add PROCESSOR_BDVER4.
2834         * config/i386/i386.md (define_attr "cpu"): Add bdver4.
2835         * config/i386/i386.opt (flag_dispatch_scheduler): Add bdver4.
2836         * doc/extend.texi: Add details about bdver4.
2837         * doc/invoke.texi: Add details about bdver4. Add
2838         fma4 and fsgsbase for bdver3. Add fma4 for bdver2.
2839
2840 2013-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2841
2842         * config/rs6000/rs6000.c (rs6000_emit_move): Use low word of
2843         sdmode_stack_slot also in little-endian mode.
2844
2845 2013-11-17  Jan Hubicka  <jh@suse.cz>
2846
2847         * doc/md.texi (setmem, movstr): Update documentation.
2848         * builtins.c (determine_block_size): New function.
2849         (expand_builtin_memcpy): Use it and pass it to emit_block_move_hints.
2850         (expand_builtin_memset_args): Use it and pass it to
2851         set_storage_via_setmem.
2852         * expr.c (emit_block_move_via_movmem): Add min_size/max_size
2853         parameters; update call to expander.
2854         (emit_block_move_hints): Add min_size/max_size parameters.
2855         (clear_storage_hints): Likewise.
2856         (set_storage_via_setmem): Likewise.
2857         (clear_storage): Update.
2858         * expr.h (emit_block_move_hints, clear_storage_hints,
2859         set_storage_via_setmem): Update prototypes.
2860         * i386.c (ix86_expand_set_or_movmem): Add bounds; export.
2861         (ix86_expand_movmem, ix86_expand_setmem): Remove.
2862         (ix86_expand_movmem, ix86_expand_setmem): Remove.
2863         * i386.md (movmem, setmem): Pass parameters.
2864
2865 2013-11-17  Uros Bizjak  <ubizjak@gmail.com>
2866
2867         PR target/59153
2868         * config/i386/i386.c (ix86_address_subreg_operand): Do not
2869         reject non-integer subregs.
2870         (ix86_decompose_address): Do not reject invalid CONST_INT RTXes.
2871         Move check for invalid x32 constant addresses ...
2872         (ix86_legitimate_address_p): ... here.
2873
2874 2011-11-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2875
2876         * config/rs6000/rs6000.c (rs6000_frame_related): Add split_reg
2877         parameter and use it in REG_FRAME_RELATED_EXPR note.
2878         (emit_frame_save): Call rs6000_frame_related with extra NULL_RTX
2879         parameter.
2880         (rs6000_emit_prologue): Likewise, but for little endian VSX
2881         stores, pass the source register of the store instead.
2882
2883 2013-11-17  Andrew MacLeod  <amacleod@redhat.com>
2884
2885         * gimple.h: Reorder prototypes to match .c declaration order, and
2886         remove protyotypes for functions not in gimple.c.
2887         (LABEL): Move to tree-into-ssa.c.
2888         * gimple.c: Remove unused prototypes.
2889         (get_base_address): Move to tree.c.
2890         * tree.c (get_base_address): Relocate from gimple.c.
2891         * builtins.h (validate_gimple_arglist): Add prototype.
2892         * trans-mem.h (compute_transaction_bits, is_tm_ending): Add prototype.
2893         * cfgexpand.h: New File.
2894         (gimple_assign_rhs_to_tree, estimated_stack_frame_size): Add protoype.
2895         * tree.h (build_addr): Move to tree-nested.h.
2896         * tree-nested.h: New File.
2897         (build_addr, lower_nested_functions, insert_field_into_struct): Add
2898         prototypes.
2899         * tree-inline.h (estimated_stack_frame_size): Remove prototype.
2900         * ipa-inline-analysis.c: Include cfgexpand.h.
2901         * cgraphunit.c: Include tree-nested.h.
2902         * omp-low.c: Likewise.
2903         * tree-parloops.c: Likewise.
2904         * gimple-low.h: Likewise.
2905         * tree-profile.h: Likewise.
2906         * expr.c: Include cfgexpand.h.
2907         * tree-affine.c: Likewise.
2908         * tree-ssa.c: Likewise.
2909         * tree-ssa-loop-im.c: Include trans-mem.h.
2910         * tree-ssa-tail-merge.c: Likewise.
2911         * value-prof.c: Include builtins.h and tree-nested.h.
2912         * tree-into-ssa.c (LABEL): Define here.
2913
2914 2013-11-16  Joern Rennecke  <joern.rennecke@embecosm.com>
2915
2916         * config/arc/arc.c (arc_predicate_delay_insns): New function.
2917         (pass_data_arc_predicate_delay_insns): New pass_data instance.
2918         (pass_arc_predicate_delay_insns): New subclass of rtl_opt_class.
2919         (make_pass_arc_predicate_delay_insns): New function.
2920         (arc_init): Register pass_arc_predicate_delay_insns if
2921         flag_delayed_branch is active.
2922
2923 2013-11-16  Joern Rennecke  <joern.rennecke@embecosm.com>
2924
2925         * config/arc/constraints.md (Rcq): Simplify register number test.
2926
2927 2013-11-15  Aldy Hernandez  <aldyh@redhat.com>
2928
2929         * gimple.h (enum gf_mask): Change the ordering of GF_OMP_* bits.
2930
2931 2013-11-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2932
2933         * config/sh/sh.c (barrier_align): Return 0 when barrier_or_label
2934         is null.
2935
2936 2013-11-15  Aldy Hernandez  <aldyh@redhat.com>
2937
2938         * Makefile.in (C_COMMON_OBJS): Depend on c-cilkplus.o.
2939         * gimple-pretty-print.c (dump_omp_for): Add case for
2940         GF_OMP_FOR_KIND_CILKSIMD.
2941         * gimple.h (enum gf_mask): Restructure entries to add
2942         GF_OMP_FOR_KIND_CILKSIMD.
2943         * gimplify.c (is_gimple_stmt): Add case for CILK_SIMD.
2944         (gimplify_omp_for): Handle CILK_SIMD.
2945         (gimplify_expr): Add ccase for CILK_SIMD.
2946         * omp-low.c (extract_omp_for_data): Handle CILK_SIMD.
2947         (build_outer_var_ref): Same.
2948         (check_omp_nesting_restrictions): Same.
2949         (lower_rec_input_clauses): Same.
2950         (lower_lastprivate_clauses): Same.
2951         (expand_omp_for): Same.
2952         (execute_expand_omp): Check flag_enable_cilkplus.
2953         (execute_lower_omp): Same.
2954         (diagnose_sb_0): Handle CILK_SIMD.
2955         (diagnose_omp_structured_block_errors): Check flag_enable_cilkplus.
2956         (setjmp_or_longjmp_p): New.
2957         (scan_omp_1_stmt): Error on setjmp/longjmp in a simd construct.
2958         * tree-pretty-print.c (dump_generic_node): Add case for CILK_SIMD.
2959         * tree.def: Add tree code for CILK_SIMD.
2960
2961 2013-11-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2962
2963         * config/rs6000/altivec.md (UNSPEC_VPERM_X, UNSPEC_VPERM_UNS_X):
2964         Remove.
2965         (altivec_vperm_<mode>): Revert earlier little endian change.
2966         (*altivec_vperm_<mode>_internal): Remove.
2967         (altivec_vperm_<mode>_uns): Revert earlier little endian change.
2968         (*altivec_vperm_<mode>_uns_internal): Remove.
2969         * config/rs6000/vector.md (vec_realign_load_<mode>): Revise commentary.
2970
2971 2013-11-15  Jeff Law  <law@redhat.com>
2972
2973         * basic-block.h (has_abnormal_or_eh_outgoing_edge): Renamed from
2974         has_abnormal_or_outgoing_edge.  Check for EH edges as well.
2975         * gimple-ssa-isolate-paths.c
2976         (find_implicit_erroneous_behaviour): Corresponding changes.
2977         Do not check stmt_ends_bb_p or GIMPLE_RETURN anymore.
2978         (find_explicit_erroneous_behaviour): Likewise.
2979
2980 2013-11-15  Jeff Law  <law@redhat.com>
2981
2982         * ifcvt.c (find_cond_trap): Properly handle case where
2983         trap_bb == else_bb.
2984
2985 2013-11-15  Andreas Schwab  <schwab@linux-m68k.org>
2986
2987         * configure: Regenerate.
2988
2989 2013-11-15  James Greenhalgh  <james.greenhalgh@arm.com>
2990
2991         * config/aarch64/aarch64-simd.md: Remove simd_type from all patterns.
2992         * config/aarch64/aarch64.md: Likewise, correct "type" attribute
2993         where it is incorrect or missing.
2994
2995 2013-11-15  Richard Sandiford  <rdsandiford@googlemail.com>
2996
2997         * dwarf2out.c (gen_enumeration_type_die): Remove unnecessary
2998         host_integerp test.
2999         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
3000         Use TREE_INT_CST_LOW rather than tree_low_cst when reading the
3001         constant.
3002         * fold-const.c (fold_binary_loc): Replace a host_integerp/tree_low_cst
3003         pair with a TREE_CODE test and TREE_INT_CST_LOW.
3004         * tree-vect-generic.c (expand_vector_divmod): Likewise.
3005
3006 2013-11-15  Richard Biener  <rguenther@suse.de>
3007
3008         PR tree-optimization/50262
3009         * tree-ssa-alias.h (struct pt_solution): Split
3010         vars_contains_global into vars_contains_nonlocal,
3011         vars_contains_escaped and vars_contains_escaped_heap.
3012         * tree-ssa-structalias.c (label_visit): Expand comment.
3013         (handle_lhs_call): Adjust comment.
3014         (set_uids_in_ptset): Set the new flags appropriately.
3015         (pt_solution_set): Adjust.
3016         (pt_solution_set_var): Likewise.
3017         (pt_solution_ior_into): Likewise.
3018         (pt_solution_includes_global): Likewise.
3019         (pt_solutions_intersect_1): Optimize escaped handling.
3020         (compute_points_to_sets): Remove heap variable globalization.
3021         (ipa_escaped_pt): Adjust initializer.
3022         (pass_data_ipa_pta): Do not run TODO_update_ssa.
3023         * gimple-pretty-print.c (pp_points_to_solution): Print split flags.
3024         * tree-ssa-alias.c (dump_points_to_solution): Likewise.
3025
3026 2013-11-15  Richard Biener  <rguenther@suse.de>
3027
3028         * tree-loop-distribution.c (tree_loop_distribution): Make sure
3029         to distribute all stores.
3030
3031 2013-11-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3032
3033         * doc/invoke.texi (-mabi=elfv1, -mabi=elfv2): Document.
3034
3035 2013-11-15  Joseph Myers  <joseph@codesourcery.com>
3036
3037         * acinclude.m4 (GCC_GLIBC_VERSION_GTE_IFELSE): New configure macro.
3038         * configure.ac: Determine target_header_dir earlier.
3039         (--with-glibc-version): New configure option.
3040         Use GCC_GLIBC_VERSION_GTE_IFELSE in enable_gnu_unique_object,
3041         gcc_cv_libc_provides_ssp and gcc_cv_target_ldbl128 tests.
3042         * configure: Regenerate.
3043         * doc/install.texi (--enable-gnu-unique-object): Don't refer to
3044         native toolchains for default.
3045         (--with-glibc-version): Document.
3046
3047 2013-11-15  Eric Botcazou  <ebotcazou@adacore.com>
3048
3049         * fold-const.c (fold_binary_loc) <comparisons>: Reuse local variable.
3050
3051 2013-11-15  Uros Bizjak  <ubizjak@gmail.com>
3052
3053         * lto-streamer-in.c (input function): Call cgraph_create_node if
3054         cgraph_get_node failed.
3055
3056 2013-11-14   Olivier Hainque  <hainque@adacore.com>
3057
3058         * cfgexpand.c (defer_stack_allocation): When optimization is enabled,
3059         defer allocation of DECL_IGNORED_P variables at toplevel unless really
3060         small.  Factorize size threshold computation from the existing one.
3061         (expand_used_vars): Refine comment.
3062
3063 2013-11-14  Cong Hou  <congh@google.com>
3064
3065         * tree-vectorizer.h (struct dr_with_seg_len): Remove the base
3066         address field as it can be obtained from dr.  Rename the struct.
3067         * tree-vect-data-refs.c (comp_dr_with_seg_len_pair): Consider
3068         steps of data references during sort.
3069         (vect_prune_runtime_alias_test_list): Adjust with the change to
3070         struct dr_with_seg_len.
3071         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
3072         Adjust with the change to struct dr_with_seg_len.
3073
3074 2013-11-14  Jeff Law  <law@redhat.com>
3075
3076         PR middle-end/59127
3077         * basic-block.h (has_abnormal_outgoing_edge_p): Moved here from...
3078         * tree-inline.c (has_abnormal_outgoing_edge_p): Remove.
3079         * gimple-ssa-isolate-paths.c: Include tree-cfg.h.
3080         (find_implicit_erroneous_behaviour): If a block has abnormal outgoing
3081         edges, then ignore it.  If the statement exhibiting erroneous
3082         behaviour ends basic blocks, with the exception of GIMPLE_RETURNs,
3083         then we can not optimize.
3084         (find_explicit_erroneous_behaviour): Likewise.
3085
3086 2013-11-14  Andrew MacLeod  <amacleod@redhat.com>
3087
3088         * gimplify-me.h:  New file.  Add prototypes.
3089         * gimplify.h: Don't include gimple.h.
3090         (struct gimplify_hasher, struct gimplify_ctx, is_gimple_sizepos):
3091         Relocate from gimple.h.
3092         * gimple.h (struct gimplify_hasher, struct gimplify_ctx,
3093         is_gimple_sizepos): Move to gimplify.h.
3094         (gimplify_hasher::hash, gimplify_hasher::equal): Move to gimplify.c.
3095         (enum gsi_iterator_update): Move to gimple-iterator.h.
3096         * gimple-iterator.h (enum gsi_iterator_update): Relocate from gimple.h.
3097         * gimplify-me.c: New File.
3098         (force_gimple_operand_1, force_gimple_operand,
3099         force_gimple_operand_gsi_1, force_gimple_operand_gsi,
3100         gimple_regimplify_operands): Relocate from gimplify.c.
3101         * gimplify.c (force_gimple_operand_1, force_gimple_operand,
3102         force_gimple_operand_gsi_1, force_gimple_operand_gsi,
3103         gimple_regimplify_operands): Move to gimplify-me.c.
3104         (gimplify_hasher::hash, gimplify_hasher::equal): Relocate
3105         from gimple.h.
3106         * Makefile.in (OBJS): Add gimplify-me.o
3107         * asan.c: Include only gimplify.h, gimplify-me.h, and/or gimple.h as
3108         required.
3109         * cfgloopmanip.c: Likewise.
3110         * cgraphunit.c: Likewise.
3111         * cilk-common.c: Likewise.
3112         * fold-const.c: Likewise.
3113         * function.c: Likewise.
3114         * gimple-expr.c: Likewise.
3115         * gimple-fold.c: Likewise.
3116         * gimple-ssa-strength-reduction.c: Likewise.
3117         * gimple.c: Likewise.
3118         * graphite-clast-to-gimple.c: Likewise.
3119         * graphite-sese-to-poly.c: Likewise.
3120         * ipa-prop.c: Likewise.
3121         * ipa-split.c: Likewise.
3122         * ipa.c: Likewise.
3123         * langhooks.c: Likewise.
3124         * omp-low.c: Likewise.
3125         * sese.c: Likewise.
3126         * stor-layout.c: Likewise.
3127         * targhooks.c: Likewise.
3128         * trans-mem.c: Likewise.
3129         * tree-affine.c: Likewise.
3130         * tree-cfg.c: Likewise.
3131         * tree-cfgcleanup.c: Likewise.
3132         * tree-complex.c: Likewise.
3133         * tree-if-conv.c: Likewise.
3134         * tree-inline.c: Likewise.
3135         * tree-loop-distribution.c: Likewise.
3136         * tree-nested.c: Likewise.
3137         * tree-parloops.c: Likewise.
3138         * tree-predcom.c: Likewise.
3139         * tree-profile.c: Likewise.
3140         * tree-scalar-evolution.c: Likewise.
3141         * tree-sra.c: Likewise.
3142         * tree-ssa-address.c: Likewise.
3143         * tree-ssa-ccp.c: Likewise.
3144         * tree-ssa-dce.c: Likewise.
3145         * tree-ssa-forwprop.c: Likewise.
3146         * tree-ssa-ifcombine.c: Likewise.
3147         * tree-ssa-loop-im.c: Likewise.
3148         * tree-ssa-loop-ivopts.c: Likewise.
3149         * tree-ssa-loop-manip.c: Likewise.
3150         * tree-ssa-loop-niter.c: Likewise.
3151         * tree-ssa-loop-prefetch.c: Likewise.
3152         * tree-ssa-loop-unswitch.c: Likewise.
3153         * tree-ssa-math-opts.c: Likewise.
3154         * tree-ssa-phiopt.c: Likewise.
3155         * tree-ssa-phiprop.c: Likewise.
3156         * tree-ssa-pre.c: Likewise.
3157         * tree-ssa-propagate.c: Likewise.
3158         * tree-ssa-reassoc.c: Likewise.
3159         * tree-ssa-sccvn.c: Likewise.
3160         * tree-ssa-strlen.c: Likewise.
3161         * tree-ssa.c: Likewise.
3162         * tree-switch-conversion.c: Likewise.
3163         * tree-tailcall.c: Likewise.
3164         * tree-vect-data-refs.c: Likewise.
3165         * tree-vect-generic.c: Likewise.
3166         * tree-vect-loop-manip.c: Likewise.
3167         * tree-vect-loop.c: Likewise.
3168         * tree-vect-patterns.c: Likewise.
3169         * tree-vect-stmts.c: Likewise.
3170         * tree.c: Likewise.
3171         * tsan.c: Likewise.
3172         * value-prof.c: Likewise.
3173         * config/aarch64/aarch64.c: Likewise.
3174         * config/alpha/alpha.c: Likewise.
3175         * config/darwin.c: Likewise.
3176         * config/i386/i386.c: Likewise.
3177         * config/ia64/ia64.c: Likewise.
3178         * config/mep/mep.c: Likewise.
3179         * config/mips/mips.c: Likewise.
3180         * config/rs6000/rs6000.c: Likewise.
3181         * config/s390/s390.c: Likewise.
3182         * config/sh/sh.c: Likewise.
3183         * config/sparc/sparc.c: Likewise.
3184         * config/spu/spu.c: Likewise.
3185         * config/stormy16/stormy16.c: Likewise.
3186         * config/tilegx/tilegx.c: Likewise.
3187         * config/tilepro/tilepro.c: Likewise.
3188         * config/xtensa/xtensa.c: Likewise.
3189
3190 2013-11-14  Diego Novillo  <dnovillo@google.com>
3191
3192         * Makefile.in (PLUGIN_HEADERS): Add stringpool.h.
3193
3194 2013-11-14  Diego Novillo  <dnovillo@google.com>
3195
3196         * tree.h: Include fold-const.h.
3197         (aggregate_value_p): Moved to function.h.
3198         (alloca_call_p): Moved to calls.h.
3199         (allocate_struct_function): Moved to function.h.
3200         (apply_tm_attr): Moved to attribs.h.
3201         (array_at_struct_end_p): Moved to expr.h.
3202         (array_ref_element_size): Moved to tree-dfa.h.
3203         (array_ref_low_bound): Moved to tree-dfa.h.
3204         (array_ref_up_bound): Moved to tree.h.
3205         (assemble_alias): Moved to cgraph.h.
3206         (bit_from_pos): Moved to stor-layout.h.
3207         (build_addr): Moved to tree-nested.h.
3208         (build_duplicate_type): Moved to tree-inline.h.
3209         (build_fold_addr_expr): Moved to fold-const.h.
3210         (build_fold_addr_expr_with_type): Moved to fold-const.h.
3211         (build_fold_addr_expr_with_type_loc): Moved to fold-const.h.
3212         (build_fold_indirect_ref): Moved to fold-const.h.
3213         (build_fold_indirect_ref_loc): Moved to fold-const.h.
3214         (build_personality_function): Moved to tree.h.
3215         (build_range_check): Moved to fold-const.h.
3216         (build_simple_mem_ref): Moved to fold-const.h.
3217         (build_simple_mem_ref_loc): Moved to fold-const.h.
3218         (build_tm_abort_call): Moved to trans-mem.h.
3219         (byte_from_pos): Moved to stor-layout.h.
3220         (call_expr_flags): Moved to calls.h.
3221         (can_move_by_pieces): Moved to expr.h.
3222         (categorize_ctor_elements): Moved to expr.h.
3223         (change_decl_assembler_name): Moved to gcc-symtab.h.
3224         (combine_comparisons): Moved to fold-const.h.
3225         (complete_ctor_at_level_p): Moved to tree.h.
3226         (component_ref_field_offset): Moved to tree-dfa.h.
3227         (compute_builtin_object_size): Moved to tree-object-size.h.
3228         (compute_record_mode): Moved to stor-layout.h.
3229         (constant_boolean_node): Moved to fold-const.h.
3230         (constructor_static_from_elts_p): Moved to varasm.h.
3231         (cxx11_attribute_p): Moved to attribs.h.
3232         (debug_body): Moved to print-tree.h.
3233         (debug_find_tree): Moved to tree-inline.h.
3234         (debug_fold_checksum): Moved to fold-const.h.
3235         (debug_head): Moved to print-tree.h.
3236         (debug_head): Moved to print-tree.h.
3237         (debug_raw): Moved to print-tree.h.
3238         (debug_tree): Moved to print-tree.h.
3239         (debug_vec_tree): Moved to print-tree.h.
3240         (debug_verbose): Moved to print-tree.h.
3241         (debug_verbose): Moved to print-tree.h.
3242         (decl_attributes): Moved to attribs.h.
3243         (decl_binds_to_current_def_p): Moved to varasm.h.
3244         (decl_default_tls_model): Moved to varasm.h.
3245         (decl_replaceable_p): Moved to varasm.h.
3246         (div_if_zero_remainder): Moved to fold-const.h.
3247         (double_int mem_ref_offset): Moved to fold-const.h.
3248         (dump_addr): Moved to print-tree.h.
3249         (element_precision): Moved to machmode.h.
3250         (expand_dummy_function_end): Moved to function.h.
3251         (expand_function_end): Moved to function.h.
3252         (expand_function_start): Moved to function.h.
3253         (expand_label): Moved to stmt.h.
3254         (expr_first): Moved to tree-iterator.h.
3255         (expr_last): Moved to tree-iterator.h.
3256         (finalize_size_functions): Moved to stor-layout.h.
3257         (finish_builtin_struct): Moved to stor-layout.h.
3258         (finish_record_layout): Moved to stor-layout.h.
3259         (fixup_signed_type): Moved to stor-layout.h.
3260         (fixup_unsigned_type): Moved to stor-layout.h.
3261         (flags_from_decl_or_type): Moved to calls.h.
3262         (fold): Moved to fold-const.h.
3263         (fold_abs_const): Moved to fold-const.h.
3264         (fold_binary): Moved to fold-const.h.
3265         (fold_binary_loc): Moved to fold-const.h.
3266         (fold_binary_to_constant): Moved to fold-const.h.
3267         (fold_build1): Moved to fold-const.h.
3268         (fold_build1_initializer_loc): Moved to fold-const.h.
3269         (fold_build1_loc): Moved to fold-const.h.
3270         (fold_build1_stat_loc): Moved to fold-const.h.
3271         (fold_build2): Moved to fold-const.h.
3272         (fold_build2_initializer_loc): Moved to fold-const.h.
3273         (fold_build2_loc): Moved to fold-const.h.
3274         (fold_build2_stat_loc): Moved to fold-const.h.
3275         (fold_build3): Moved to fold-const.h.
3276         (fold_build3_loc): Moved to fold-const.h.
3277         (fold_build3_stat_loc): Moved to fold-const.h.
3278         (fold_build_call_array): Moved to fold-const.h.
3279         (fold_build_call_array_initializer): Moved to fold-const.h.
3280         (fold_build_call_array_initializer_loc): Moved to fold-const.h.
3281         (fold_build_call_array_loc): Moved to fold-const.h.
3282         (fold_build_cleanup_point_expr): Moved to fold-const.h.
3283         (fold_convert): Moved to fold-const.h.
3284         (fold_convert_loc): Moved to fold-const.h.
3285         (fold_convertible_p): Moved to fold-const.h.
3286         (fold_defer_overflow_warnings): Moved to fold-const.h.
3287         (fold_deferring_overflow_warnings_p): Moved to fold-const.h.
3288         (fold_fma): Moved to fold-const.h.
3289         (fold_ignored_result): Moved to fold-const.h.
3290         (fold_indirect_ref): Moved to fold-const.h.
3291         (fold_indirect_ref_1): Moved to fold-const.h.
3292         (fold_indirect_ref_loc): Moved to fold-const.h.
3293         (fold_read_from_constant_string): Moved to fold-const.h.
3294         (fold_real_zero_addition_p): Moved to fold-const.h.
3295         (fold_single_bit_test): Moved to fold-const.h.
3296         (fold_strip_sign_ops): Moved to fold-const.h.
3297         (fold_ternary): Moved to fold-const.h.
3298         (fold_ternary_loc): Moved to fold-const.h.
3299         (fold_unary): Moved to tree-data-ref.h.
3300         (fold_unary_ignore_overflow): Moved to fold-const.h.
3301         (fold_unary_ignore_overflow_loc): Moved to fold-const.h.
3302         (fold_unary_loc): Moved to fold-const.h.
3303         (fold_unary_to_constant): Moved to fold-const.h.
3304         (fold_undefer_and_ignore_overflow_warnings): Moved to fold-const.h.
3305         (fold_undefer_overflow_warnings): Moved to fold-const.h.
3306         (folding_initializer): Moved to fold-const.h.
3307         (free_temp_slots): Moved to function.h.
3308         (generate_setjmp_warnings): Moved to function.h.
3309         (get_attribute_name): Moved to attribs.h.
3310         (get_identifier): Moved to stringpool.h.
3311         (get_identifier_with_length): Moved to stringpool.h.
3312         (get_inner_reference): Moved to tree.h.
3313         (gimple_alloca_call_p): Moved to calls.h.
3314         (gimplify_parameters): Moved to function.h.
3315         (highest_pow2_factor): Moved to expr.h.
3316         (indent_to): Moved to print-tree.h.
3317         (init_attributes): Moved to attribs.h.
3318         (init_dummy_function_start): Moved to function.h.
3319         (init_function_start): Moved to function.h.
3320         (init_inline_once): Moved to tree-inline.h.
3321         (init_object_sizes): Moved to tree-object-size.h.
3322         (init_temp_slots): Moved to function.h.
3323         (init_tree_optimization_optabs): Moved to optabs.h.
3324         (initialize_sizetypes): Moved to stor-layout.h.
3325         (initializer_constant_valid_for_bitfield_p): Moved to varasm.h.
3326         (initializer_constant_valid_p): Moved to varasm.h.
3327         (int_const_binop): Moved to fold-const.h.
3328         (internal_reference_types): Moved to stor-layout.h.
3329         (invert_tree_comparison): Moved to fold-const.h.
3330         (invert_truthvalue): Moved to fold-const.h.
3331         (invert_truthvalue_loc): Moved to fold-const.h.
3332         (is_tm_ending_fndecl): Moved to trans-mem.h.
3333         (is_tm_may_cancel_outer): Moved to trans-mem.h.
3334         (is_tm_pure): Moved to trans-mem.h.
3335         (is_tm_safe): Moved to trans-mem.h.
3336         (layout_decl): Moved to stor-layout.h.
3337         (layout_type): Moved to stor-layout.h.
3338         (lookup_attribute_spec): Moved to attribs.h.
3339         (make_accum_type): Moved to stor-layout.h.
3340         (make_decl_one_only): Moved to varasm.h.
3341         (make_decl_rtl): Moved to tree.h.
3342         (make_decl_rtl_for_debug): Moved to varasm.h.
3343         (make_fract_type): Moved to stor-layout.h.
3344         (make_or_reuse_sat_signed_accum_type): Moved to stor-layout.h.
3345         (make_or_reuse_sat_signed_fract_type): Moved to stor-layout.h.
3346         (make_or_reuse_sat_unsigned_accum_type): Moved to stor-layout.h.
3347         (make_or_reuse_sat_unsigned_fract_type): Moved to stor-layout.h.
3348         (make_or_reuse_signed_accum_type): Moved to stor-layout.h.
3349         (make_or_reuse_signed_fract_type): Moved to stor-layout.h.
3350         (make_or_reuse_unsigned_accum_type): Moved to stor-layout.h.
3351         (make_or_reuse_unsigned_fract_type): Moved to stor-layout.h.
3352         (make_range): Moved to fold-const.h.
3353         (make_range_step): Moved to fold-const.h.
3354         (make_sat_signed_accum_type): Moved to stor-layout.h.
3355         (make_sat_signed_fract_type): Moved to stor-layout.h.
3356         (make_sat_unsigned_accum_type): Moved to stor-layout.h.
3357         (make_sat_unsigned_fract_type): Moved to stor-layout.h.
3358         (make_signed_accum_type): Moved to stor-layout.h.
3359         (make_signed_fract_type): Moved to stor-layout.h.
3360         (make_signed_type): Moved to stor-layout.h.
3361         (make_unsigned_accum_type): Moved to stor-layout.h.
3362         (make_unsigned_fract_type): Moved to stor-layout.h.
3363         (make_unsigned_type): Moved to stor-layout.h.
3364         (mark_decl_referenced): Moved to varasm.h.
3365         (mark_referenced): Moved to varasm.h.
3366         (may_negate_without_overflow_p): Moved to fold-const.h.
3367         (maybe_get_identifier): Moved to stringpool.h.
3368         (merge_ranges): Moved to fold-const.h.
3369         (merge_weak): Moved to varasm.h.
3370         (mode_for_size_tree): Moved to stor-layout.h.
3371         (multiple_of_p): Moved to fold-const.h.
3372         (must_pass_in_stack_var_size): Moved to calls.h.
3373         (must_pass_in_stack_var_size_or_pad): Moved to calls.h.
3374         (native_encode_expr): Moved to fold-const.h.
3375         (native_interpret_expr): Moved to fold-const.h.
3376         (non_lvalue): Moved to fold-const.h.
3377         (non_lvalue_loc): Moved to fold-const.h.
3378         (normalize_offset): Moved to stor-layout.h.
3379         (normalize_rli): Moved to stor-layout.h.
3380         (notice_global_symbol): Moved to varasm.h.
3381         (omit_one_operand): Moved to fold-const.h.
3382         (omit_one_operand_loc): Moved to fold-const.h.
3383         (omit_two_operands): Moved to fold-const.h.
3384         (omit_two_operands_loc): Moved to fold-const.h.
3385         (operand_equal_p): Moved to tree-data-ref.h.
3386         (parse_input_constraint): Moved to stmt.h.
3387         (parse_output_constraint): Moved to stmt.h.
3388         (place_field): Moved to stor-layout.h.
3389         (pop_function_context): Moved to function.h.
3390         (pop_temp_slots): Moved to function.h.
3391         (pos_from_bit): Moved to stor-layout.h.
3392         (preserve_temp_slots): Moved to function.h.
3393         (print_node): Moved to print-tree.h.
3394         (print_node_brief): Moved to print-tree.h.
3395         (print_rtl): Moved to rtl.h.
3396         (process_pending_assemble_externals): Moved to varasm.h.
3397         (ptr_difference_const): Moved to fold-const.h.
3398         (push_function_context): Moved to function.h.
3399         (push_struct_function): Moved to function.h.
3400         (push_temp_slots): Moved to function.h.
3401         (record_tm_replacement): Moved to trans-mem.h.
3402         (relayout_decl): Moved to stor-layout.h.
3403         (resolve_asm_operand_names): Moved to stmt.h.
3404         (resolve_unique_section): Moved to varasm.h.
3405         (rli_size_so_far): Moved to stor-layout.h.
3406         (rli_size_unit_so_far): Moved to stor-layout.h.
3407         (round_down): Moved to fold-const.h.
3408         (round_down_loc): Moved to fold-const.h.
3409         (round_up): Moved to fold-const.h.
3410         (round_up_loc): Moved to fold-const.h.
3411         (set_decl_incoming_rtl): Moved to emit-rtl.h.
3412         (set_decl_rtl): Moved to tree.h.
3413         (set_min_and_max_values_for_integral_type): Moved to stor-layout.h.
3414         (set_user_assembler_name): Moved to varasm.h.
3415         (setjmp_call_p): Moved to calls.h.
3416         (size_binop): Moved to fold-const.h.
3417         (size_binop_loc): Moved to fold-const.h.
3418         (size_diffop): Moved to fold-const.h.
3419         (size_diffop_loc): Moved to fold-const.h.
3420         (size_int_kind): Moved to fold-const.h.
3421         (stack_protect_epilogue): Moved to function.h.
3422         (start_record_layout): Moved to stor-layout.h.
3423         (supports_one_only): Moved to varasm.h.
3424         (swap_tree_comparison): Moved to fold-const.h.
3425         (tm_malloc_replacement): Moved to trans-mem.h.
3426         (tree build_fold_addr_expr_loc): Moved to fold-const.h.
3427         (tree build_invariant_address): Moved to fold-const.h.
3428         (tree_binary_nonnegative_warnv_p): Moved to fold-const.h.
3429         (tree_binary_nonzero_warnv_p): Moved to fold-const.h.
3430         (tree_call_nonnegative_warnv_p): Moved to fold-const.h.
3431         (tree_expr_nonnegative_p): Moved to fold-const.h.
3432         (tree_expr_nonnegative_warnv_p): Moved to fold-const.h.
3433         (tree_output_constant_def): Moved to varasm.h.
3434         (tree_overlaps_hard_reg_set): Moved to stmt.h.
3435         (tree_single_nonnegative_warnv_p): Moved to fold-const.h.
3436         (tree_single_nonzero_warnv_p): Moved to fold-const.h.
3437         (tree_swap_operands_p): Moved to fold-const.h.
3438         (tree_unary_nonnegative_warnv_p): Moved to fold-const.h.
3439         (tree_unary_nonzero_warnv_p): Moved to fold-const.h.
3440         (update_alignment_for_field): Moved to stor-layout.h.
3441         (use_register_for_decl): Moved to function.h.
3442         (variable_size): Moved to rtl.h.
3443         (vector_type_mode): Moved to stor-layout.h.
3444         * cgraph.h: Corresponding changes.
3445         * emit-rtl.h: Corresponding changes.
3446         * expr.h: Corresponding changes.
3447         * function.h: Corresponding changes.
3448         * optabs.h: Corresponding changes.
3449         * trans-mem.h: Corresponding changes.
3450         Protect against multiple inclusion.
3451         * tree-inline.h: Corresponding changes.
3452         * tree-iterator.h: Corresponding changes.
3453         * tree-dfa.h: Include expr.h.
3454         * tree-ssanames.h: Include stringpool.h.
3455         * attribs.h: New file.
3456         * calls.h: New file.
3457         * fold-const.h: New file.
3458         * gcc-symtab.h: New file.
3459         * print-rtl.h: New file.
3460         * print-tree.h: New file.
3461         * stmt.h: New file.
3462         * stor-layout.h: New file.
3463         * strinpool.h: New file.
3464         * tree-nested.h: New file
3465         * tree-object-size.h: New file.
3466         * varasm.h: New file.
3467
3468 2013-11-14  Diego Novillo  <dnovillo@google.com>
3469
3470         * alias.c: Include varasm.h.
3471         Include expr.h.
3472         * asan.c: Include calls.h.
3473         Include stor-layout.h.
3474         Include varasm.h.
3475         * attribs.c: Include stringpool.h.
3476         Include attribs.h.
3477         Include stor-layout.h.
3478         * builtins.c: Include stringpool.h.
3479         Include stor-layout.h.
3480         Include calls.h.
3481         Include varasm.h.
3482         Include tree-object-size.h.
3483         * calls.c: Include stor-layout.h.
3484         Include varasm.h.
3485         Include stringpool.h.
3486         Include attribs.h.
3487         * cfgexpand.c: Include stringpool.h.
3488         Include varasm.h.
3489         Include stor-layout.h.
3490         Include stmt.h.
3491         Include print-tree.h.
3492         * cgraph.c: Include varasm.h.
3493         Include calls.h.
3494         Include print-tree.h.
3495         * cgraphclones.c: Include stringpool.h.
3496         Include function.h.
3497         Include emit-rtl.h.
3498         Move inclusion of rtl.h earlier in the file.
3499         * cgraphunit.c: Include varasm.h.
3500         Include stor-layout.h.
3501         Include stringpool.h.
3502         * cilk-common.c: Include stringpool.h.
3503         Include stor-layout.h.
3504         * combine.c: Include stor-layout.h.
3505         * config/aarch64/aarch64-builtins.c: Include stor-layout.h.
3506         Include stringpool.h.
3507         Include calls.h.
3508         * config/aarch64/aarch64.c: Include stringpool.h.
3509         Include stor-layout.h.
3510         Include calls.h.
3511         Include varasm.h.
3512         * config/alpha/alpha.c: Include stor-layout.h.
3513         Include calls.h.
3514         Include varasm.h.
3515         * config/arc/arc.c: Include varasm.h.
3516         Include stor-layout.h.
3517         Include stringpool.h.
3518         Include calls.h.
3519         * config/arm/arm.c: Include stringpool.h.
3520         Include stor-layout.h.
3521         Include calls.h.
3522         Include varasm.h.
3523         * config/avr/avr-c.c: Include stor-layout.h.
3524         * config/avr/avr-log.c: Include print-tree.h.
3525         * config/avr/avr.c: Include print-tree.h.
3526         Include calls.h.
3527         Include stor-layout.h.
3528         Include stringpool.h.
3529         * config/bfin/bfin.c: Include varasm.h.
3530         Include calls.h.
3531         * config/c6x/c6x.c: Include stor-layout.h.
3532         Include varasm.h.
3533         Include calls.h.
3534         Include stringpool.h.
3535         * config/cr16/cr16.c: Include stor-layout.h.
3536         Include calls.h.
3537         * config/cris/cris.c: Include varasm.h.
3538         Include stor-layout.h.
3539         Include calls.h.
3540         Include stmt.h.
3541         * config/darwin.c: Include stringpool.h.
3542         Include varasm.h.
3543         Include stor-layout.h.
3544         * config/epiphany/epiphany.c: Include stor-layout.h.
3545         Include varasm.h.
3546         Include calls.h.
3547         Include stringpool.h.
3548         * config/fr30/fr30.c: Include stor-layout.h.
3549         Include varasm.h.
3550         * config/frv/frv.c: Include varasm.h.
3551         Include stor-layout.h.
3552         Include stringpool.h.
3553         * config/h8300/h8300.c: Include stor-layout.h.
3554         Include varasm.h.
3555         Include calls.h.
3556         Include stringpool.h.
3557         * config/i386/i386.c: Include stringpool.h.
3558         Include attribs.h.
3559         Include calls.h.
3560         Include stor-layout.h.
3561         Include varasm.h.
3562         * config/i386/winnt-cxx.c: Include stringpool.h.
3563         Include attribs.h.
3564         * config/i386/winnt.c: Include stringpool.h.
3565         Include varasm.h.
3566         * config/ia64/ia64-c.c: Include stringpool.h.
3567         * config/ia64/ia64.c: Include stringpool.h.
3568         Include stor-layout.h.
3569         Include calls.h.
3570         Include varasm.h.
3571         * config/iq2000/iq2000.c: Include stor-layout.h.
3572         Include calls.h.
3573         Include varasm.h.
3574         * config/lm32/lm32.c: Include calls.h.
3575         * config/m32c/m32c.c: Include stor-layout.h.
3576         Include varasm.h.
3577         Include calls.h.
3578         * config/m32r/m32r.c: Include stor-layout.h.
3579         Include varasm.h.
3580         Include stringpool.h.
3581         Include calls.h.
3582         * config/m68k/m68k.c: Include calls.h.
3583         Include stor-layout.h.
3584         Include varasm.h.
3585         * config/mcore/mcore.c: Include stor-layout.h.
3586         Include varasm.h.
3587         Include stringpool.h.
3588         Include calls.h.
3589         * config/mep/mep.c: Include varasm.h.
3590         Include calls.h.
3591         Include stringpool.h.
3592         Include stor-layout.h.
3593         * config/microblaze/microblaze.c: Include varasm.h.
3594         Include stor-layout.h.
3595         Include calls.h.
3596         * config/mips/mips.c: Include varasm.h.
3597         Include stringpool.h.
3598         Include stor-layout.h.
3599         Include calls.h.
3600         * config/mmix/mmix.c: Include varasm.h.
3601         Include stor-layout.h.
3602         Include calls.h.
3603         * config/mn10300/mn10300.c: Include stor-layout.h.
3604         Include varasm.h.
3605         Include calls.h.
3606         * config/moxie/moxie.c: Include stor-layout.h.
3607         Include varasm.h.
3608         Include calls.h.
3609         * config/msp430/msp430.c: Include stor-layout.h.
3610         Include calls.h.
3611         * config/nds32/nds32.c: Include stor-layout.h.
3612         Include varasm.h.
3613         Include calls.h.
3614         * config/pa/pa.c: Include stor-layout.h.
3615         Include stringpool.h.
3616         Include varasm.h.
3617         Include calls.h.
3618         * config/pdp11/pdp11.c: Include stor-layout.h.
3619         Include varasm.h.
3620         Include calls.h.
3621         * config/picochip/picochip.c: Include calls.h.
3622         Include stor-layout.h.
3623         Include stringpool.h.
3624         Include varasm.h.
3625         * config/rl78/rl78.c: Include varasm.h.
3626         Include stor-layout.h.
3627         Include calls.h.
3628         * config/rs6000/rs6000-c.c: Include stor-layout.h.
3629         Include stringpool.h.
3630         * config/rs6000/rs6000.c: Include stringpool.h.
3631         Include stor-layout.h.
3632         Include calls.h.
3633         Include print-tree.h.
3634         Include varasm.h.
3635         * config/rx/rx.c: Include varasm.h.
3636         Include stor-layout.h.
3637         Include calls.h.
3638         * config/s390/s390.c: Include print-tree.h.
3639         Include stringpool.h.
3640         Include stor-layout.h.
3641         Include varasm.h.
3642         Include calls.h.
3643         * config/score/score.c: Include stringpool.h.
3644         Include calls.h.
3645         Include varasm.h.
3646         Include stor-layout.h.
3647         * config/sh/sh-c.c: Include stringpool.h.
3648         Include attribs.h.h.
3649         * config/sh/sh.c: Include stringpool.h.
3650         Include stor-layout.h.
3651         Include calls.h.
3652         Include varasm.h.
3653         * config/sol2-c.c: Include stringpool.h.
3654         Include attribs.h.
3655         * config/sol2-cxx.c: Include stringpool.h.
3656         * config/sol2.c: Include stringpool.h.
3657         Include varasm.h.
3658         * config/sparc/sparc.c: Include stringpool.h.
3659         Include stor-layout.h.
3660         Include calls.h.
3661         Include varasm.h.
3662         * config/spu/spu-c.c: Include stringpool.h.
3663         * config/spu/spu.c: Include stringpool.h.
3664         Include stor-layout.h.
3665         Include calls.h.
3666         Include varasm.h.
3667         * config/stormy16/stormy16.c: Include stringpool.h.
3668         Include stor-layout.h.
3669         Include varasm.h.
3670         Include calls.h.
3671         * config/tilegx/tilegx.c: Include stringpool.h.
3672         Include stor-layout.h.
3673         Include varasm.h.
3674         Include calls.h.
3675         * config/tilepro/tilepro.c: Include stringpool.h.
3676         Include stor-layout.h.
3677         Include varasm.h.
3678         Include calls.h.
3679         * config/v850/v850-c.c: Include stringpool.h.
3680         Include attribs.h.
3681         * config/v850/v850.c: Include stringpool.h.
3682         Include stor-layout.h.
3683         Include varasm.h.
3684         Include calls.h.
3685         * config/vax/vax.c: Include calls.h.
3686         Include varasm.h.
3687         * config/vms/vms.c: Include stringpool.h.
3688         * config/vxworks.c: Include stringpool.h.
3689         * config/xtensa/xtensa.c: Include stringpool.h.
3690         Include stor-layout.h.
3691         Include calls.h.
3692         Include varasm.h.
3693         * convert.c: Include stor-layout.h.
3694         * coverage.c: Include stringpool.h.
3695         Include stor-layout.h.
3696         * dbxout.c: Include varasm.h.
3697         Include stor-layout.h.
3698         * dojump.c: Include stor-layout.h.
3699         * dse.c: Include stor-layout.h.
3700         * dwarf2asm.c: Include stringpool.h.
3701         Include varasm.h.
3702         * dwarf2cfi.c: Include stor-layout.h.
3703         * dwarf2out.c: Include rtl.h.
3704         Include stringpool.h.
3705         Include stor-layout.h.
3706         Include varasm.h.
3707         Include function.h.
3708         Include emit-rtl.h.
3709         Move inclusion of rtl.h earlier in the file.
3710         * emit-rtl.c: Include varasm.h.
3711         * except.c: Include stringpool.h.
3712         Include stor-layout.h.
3713         * explow.c: Include stor-layout.h.
3714         * expmed.c: Include stor-layout.h.
3715         * expr.c: Include stringpool.h.
3716         Include stor-layout.h.
3717         Include attribs.h.
3718         Include varasm.h.
3719         * final.c: Include varasm.h.
3720         * fold-const.c: Include stor-layout.h.
3721         Include calls.h.
3722         Include tree-iterator.h.
3723         * function.c: Include stor-layout.h.
3724         Include varasm.h.
3725         Include stringpool.h.
3726         * genattrtab.c (write_header): Emit includes for varasm.h,
3727         stor-layout.h and calls.h.
3728         * genautomata.c (main): Likewise.
3729         * genemit.c: Likewise.
3730         * genopinit.c: Likewise.
3731         * genoutput.c (output_prologue): Likewise.
3732         * genpeep.c: Likewise.
3733         * genpreds.c (write_insn_preds_c): Likewise.
3734         * gengtype.c (open_base_files): Add stringpool.h.
3735         * gimple-expr.c: Include stringpool.h.
3736         Include stor-layout.h.
3737         * gimple-fold.c: Include stringpool.h.
3738         Include expr.h.
3739         Include stmt.h.
3740         Include stor-layout.h.
3741         * gimple-low.c: Include tree-nested.h.
3742         Include calls.h.
3743         * gimple-pretty-print.c: Include stringpool.h.
3744         * gimple-ssa-strength-reduction.c: Include stor-layout.h.
3745         Include expr.h.
3746         * gimple-walk.c: Include stmt.h.
3747         * gimple.c: Include calls.h.
3748         Include stmt.h.
3749         Include stor-layout.h.
3750         * gimplify.c: Include stringpool.h.
3751         Include calls.h.
3752         Include varasm.h.
3753         Include stor-layout.h.
3754         Include stmt.h.
3755         Include print-tree.h.
3756         Include expr.h.
3757         * gimplify-me.c: Include stmt.h
3758         Include stor-layout.h
3759         * internal-fn.c: Include stor-layout.h.
3760         * ipa-devirt.c: Include print-tree.h.
3761         Include calls.h.
3762         * ipa-inline-analysis.c: Include stor-layout.h.
3763         Include stringpool.h.
3764         Include print-tree.h.
3765         * ipa-inline.c: Include trans-mem.h.
3766         Include calls.h.
3767         * ipa-prop.c: Include expr.h.
3768         Include stor-layout.h.
3769         Include print-tree.h.
3770         * ipa-pure-const.c: Include print-tree.h.
3771         Include calls.h.
3772         * ipa-reference.c: Include calls.h.
3773         * ipa-split.c: Include stringpool.h.
3774         Include expr.h.
3775         Include calls.h.
3776         * ipa.c: Include calls.h.
3777         Include stringpool.h.
3778         * langhooks.c: Include stringpool.h.
3779         Include attribs.h.
3780         * lto-cgraph.c: Include stringpool.h.
3781         * lto-streamer-in.c: Include stringpool.h.
3782         * lto-streamer-out.c: Include stor-layout.h.
3783         Include stringpool.h.
3784         * omp-low.c: Include stringpool.h.
3785         Include stor-layout.h.
3786         Include expr.h.
3787         * optabs.c: Include stor-layout.h.
3788         Include stringpool.h.
3789         Include varasm.h.
3790         * passes.c: Include varasm.h.
3791         * predict.c: Include calls.h.
3792         * print-rtl.c: Include print-tree.h.
3793         * print-tree.c: Include varasm.h.
3794         Include print-rtl.h.
3795         Include stor-layout.h.
3796         * realmpfr.c: Include stor-layout.h.
3797         * reg-stack.c: Include varasm.h.
3798         * sdbout.c: Include varasm.h.
3799         Include stor-layout.h.
3800         * simplify-rtx.c: Include varasm.h.
3801         * stmt.c: Include varasm.h.
3802         Include stor-layout.h.
3803         * stor-layout.c: Include stor-layout.h.
3804         Include stringpool.h.
3805         Include varasm.h.
3806         Include print-tree.h.
3807         * symtab.c: Include rtl.h.
3808         Include print-tree.h.
3809         Include varasm.h.
3810         Include function.h.
3811         Include emit-rtl.h.
3812         * targhooks.c: Include stor-layout.h.
3813         Include varasm.h.
3814         * toplev.c: Include varasm.h.
3815         Include tree-inline.h.
3816         * trans-mem.c: Include calls.h.
3817         Include function.h.
3818         Include rtl.h.
3819         Include emit-rtl.h.
3820         * tree-affine.c: Include expr.h.
3821         * tree-browser.c: Include print-tree.h.
3822         * tree-call-cdce.c: Include stor-layout.h.
3823         * tree-cfg.c: Include trans-mem.h.
3824         Include stor-layout.h.
3825         Include print-tree.h.
3826         * tree-complex.c: Include stor-layout.h.
3827         * tree-data-ref.c: Include expr.h.
3828         * tree-dfa.c: Include stor-layout.h.
3829         * tree-eh.c: Include expr.h.
3830         Include calls.h.
3831         * tree-emutls.c: Include stor-layout.h.
3832         Include varasm.h.
3833         * tree-if-conv.c: Include stor-layout.h.
3834         * tree-inline.c: Include stor-layout.h.
3835         Include calls.h.
3836         * tree-loop-distribution.c: Include stor-layout.h.
3837         * tree-nested.c: Include stringpool.h.
3838         Include stor-layout.h.
3839         * tree-object-size.c: Include tree-object-size.h.
3840         * tree-outof-ssa.c: Include stor-layout.h.
3841         * tree-parloops.c: Include stor-layout.h.
3842         Include tree-nested.h.
3843         * tree-pretty-print.c: Include stor-layout.h.
3844         Include expr.h.
3845         * tree-profile.c: Include varasm.h.
3846         Include tree-nested.h.
3847         * tree-scalar-evolution.c: Include expr.h.
3848         * tree-sra.c: Include stor-layout.h.
3849         * tree-ssa-address.c: Include stor-layout.h.
3850         * tree-ssa-ccp.c: Include stor-layout.h.
3851         * tree-ssa-dce.c: Include calls.h.
3852         * tree-ssa-dom.c: Include stor-layout.h.
3853         * tree-ssa-forwprop.c: Include stor-layout.h.
3854         * tree-ssa-ifcombine.c: Include stor-layout.h.
3855         * tree-ssa-loop-ivopts.c: Include stor-layout.h.
3856         * tree-ssa-loop-niter.c: Include calls.h.
3857         Include expr.h.
3858         * tree-ssa-loop-prefetch.c: Include stor-layout.h.
3859         * tree-ssa-math-opts.c: Include stor-layout.h.
3860         * tree-ssa-operands.c: Include stmt.h.
3861         Include print-tree.h.
3862         * tree-ssa-phiopt.c: Include stor-layout.h.
3863         * tree-ssa-reassoc.c: Include stor-layout.h.
3864         * tree-ssa-sccvn.c: Include stor-layout.h.
3865         * tree-ssa-sink.c: Include stor-layout.h.
3866         * tree-ssa-strlen.c: Include stor-layout.h.
3867         * tree-ssa-structalias.c: Include stor-layout.h.
3868         Include stmt.h.
3869         * tree-ssa-tail-merge.c: Include stor-layout.h.
3870         Include trans-mem.h.
3871         * tree-ssa-uncprop.c: Include stor-layout.h.
3872         * tree-ssa.c: Include stor-layout.h.
3873         * tree-ssanames.c: Include stor-layout.h.
3874         * tree-streamer-in.c: Include stringpool.h.
3875         * tree-streamer-out.c: Include stor-layout.h.
3876         * tree-switch-conversion.c: Include varasm.h.
3877         Include stor-layout.h.
3878         * tree-tailcall.c: Include stor-layout.h.
3879         * tree-vect-data-refs.c: Include stor-layout.h.
3880         * tree-vect-generic.c: Include stor-layout.h.
3881         * tree-vect-loop.c: Include stor-layout.h.
3882         * tree-vect-patterns.c: Include stor-layout.h.
3883         * tree-vect-slp.c: Include stor-layout.h.
3884         * tree-vect-stmts.c: Include stor-layout.h.
3885         * tree-vectorizer.c: Include stor-layout.h.
3886         * tree-vrp.c: Include stor-layout.h.
3887         Include calls.h.
3888         * tree.c: Include stor-layout.h.
3889         Include calls.h.
3890         Include attribs.h.
3891         Include varasm.h.
3892         * tsan.c: Include expr.h.
3893         * ubsan.c: Include stor-layout.h.
3894         Include stringpool.h.
3895         * value-prof.c: Include tree-nested.h.
3896         Include calls.h.
3897         * var-tracking.c: Include varasm.h.
3898         Include stor-layout.h.
3899         * varasm.c: Include stor-layout.h.
3900         Include stringpool.h.
3901         Include gcc-symtab.h.
3902         Include varasm.h.
3903         * varpool.c: Include varasm.h.
3904         * vmsdbgout.c: Include varasm.h.
3905         * xcoffout.c: Include varasm.h.
3906
3907 2013-11-14  Joern Rennecke  <joern.rennecke@embecosm.com>
3908
3909         * config/arc/arc.md (doloop_begin_i): Remove extra alignment;
3910         use (.&-4) idiom.
3911
3912 2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3913
3914         * config/rs6000/sysv4le.h (LINUX64_DEFAULT_ABI_ELFv2): Define.
3915
3916 2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3917             Alan Modra  <amodra@gmail.com>
3918
3919         * config/rs6000/rs6000.h (RS6000_SAVE_AREA): Handle ABI_ELFv2.
3920         (RS6000_SAVE_TOC): Remove.
3921         (RS6000_TOC_SAVE_SLOT): New macro.
3922         * config/rs6000/rs6000.c (rs6000_parm_offset): New function.
3923         (rs6000_parm_start): Use it.
3924         (rs6000_function_arg_advance_1): Likewise.
3925         (rs6000_emit_prologue): Use RS6000_TOC_SAVE_SLOT.
3926         (rs6000_emit_epilogue): Likewise.
3927         (rs6000_call_aix): Likewise.
3928         (rs6000_output_function_prologue): Do not save/restore r11
3929         around calling _mcount for ABI_ELFv2.
3930
3931 2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3932             Alan Modra  <amodra@gmail.com>
3933
3934         * config/rs6000/rs6000-protos.h (rs6000_reg_parm_stack_space):
3935         Add prototype.
3936         * config/rs6000/rs6000.h (RS6000_REG_SAVE): Remove.
3937         (REG_PARM_STACK_SPACE): Call rs6000_reg_parm_stack_space.
3938         * config/rs6000/rs6000.c (rs6000_parm_needs_stack): New function.
3939         (rs6000_function_parms_need_stack): Likewise.
3940         (rs6000_reg_parm_stack_space): Likewise.
3941         (rs6000_function_arg): Do not replace BLKmode by Pmode when
3942         returning a register argument.
3943
3944 2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3945             Michael Gschwind  <mkg@us.ibm.com>
3946
3947         * config/rs6000/rs6000.h (FP_ARG_MAX_RETURN): New macro.
3948         (ALTIVEC_ARG_MAX_RETURN): Likewise.
3949         (FUNCTION_VALUE_REGNO_P): Use them.
3950         * config/rs6000/rs6000.c (TARGET_RETURN_IN_MSB): Define.
3951         (rs6000_return_in_msb): New function.
3952         (rs6000_return_in_memory): Handle ELFv2 homogeneous aggregates.
3953         Handle aggregates of up to 16 bytes for ELFv2.
3954         (rs6000_function_value): Handle ELFv2 homogeneous aggregates.
3955
3956 2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3957             Michael Gschwind  <mkg@us.ibm.com>
3958
3959         * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
3960         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
3961         (rs6000_discover_homogeneous_aggregate): Likewise.
3962         (rs6000_function_arg_boundary): Handle homogeneous aggregates.
3963         (rs6000_function_arg_advance_1): Likewise.
3964         (rs6000_function_arg): Likewise.
3965         (rs6000_arg_partial_bytes): Likewise.
3966         (rs6000_psave_function_arg): Handle BLKmode arguments.
3967
3968 2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3969             Michael Gschwind  <mkg@us.ibm.com>
3970
3971         * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
3972         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
3973         (rs6000_discover_homogeneous_aggregate): Likewise.
3974         (rs6000_function_arg_boundary): Handle homogeneous aggregates.
3975         (rs6000_function_arg_advance_1): Likewise.
3976         (rs6000_function_arg): Likewise.
3977         (rs6000_arg_partial_bytes): Likewise.
3978         (rs6000_psave_function_arg): Handle BLKmode arguments.
3979
3980 2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3981
3982         * config/rs6000/rs6000.c (machine_function): New member
3983         r2_setup_needed.
3984         (rs6000_emit_prologue): Set r2_setup_needed if necessary.
3985         (rs6000_output_mi_thunk): Set r2_setup_needed.
3986         (rs6000_output_function_prologue): Output global entry point
3987         prologue and local entry point marker if needed for ABI_ELFv2.
3988         Output -mprofile-kernel code here.
3989         (output_function_profiler): Do not output -mprofile-kernel
3990         code here; moved to rs6000_output_function_prologue.
3991         (rs6000_file_start): Output ".abiversion 2" for ABI_ELFv2.
3992
3993         (rs6000_emit_move): Do not handle dot symbols for ABI_ELFv2.
3994         (rs6000_output_function_entry): Likewise.
3995         (rs6000_assemble_integer): Likewise.
3996         (rs6000_elf_encode_section_info): Likewise.
3997         (rs6000_elf_declare_function_name): Do not create dot symbols
3998         or .opd section for ABI_ELFv2.
3999
4000         (rs6000_trampoline_size): Update for ABI_ELFv2 trampolines.
4001         (rs6000_trampoline_init): Likewise.
4002         (rs6000_elf_file_end): Call file_end_indicate_exec_stack for ABI_ELFv2.
4003
4004         (rs6000_call_aix): Handle ELFv2 indirect calls.  Do not check
4005         for function descriptors in ABI_ELFv2.
4006
4007         * config/rs6000/rs6000.md ("*call_indirect_aix<mode>"): Support
4008         on ABI_AIX only, not ABI_ELFv2.
4009         ("*call_value_indirect_aix<mode>"): Likewise.
4010         ("*call_indirect_elfv2<mode>"): New pattern.
4011         ("*call_value_indirect_elfv2<mode>"): Likewise.
4012
4013         * config/rs6000/predicates.md ("symbol_ref_operand"): Do not
4014         check for function descriptors in ABI_ELFv2.
4015         ("current_file_function_operand"): Likewise.
4016
4017         * config/rs6000/ppc-asm.h [__powerpc64__ && _CALL_ELF == 2]:
4018         (toc): Undefine.
4019         (FUNC_NAME): Define ELFv2 variant.
4020         (JUMP_TARGET): Likewise.
4021         (FUNC_START): Likewise.
4022         (HIDDEN_FUNC): Likewise.
4023         (FUNC_END): Likeiwse.
4024
4025 2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4026
4027         * config.gcc [powerpc*-*-* | rs6000-*-*]: Support --with-abi=elfv1
4028         and --with-abi=elfv2.
4029         * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Add "abi".
4030         * config/rs6000/rs6000.opt (mabi=elfv1): New option.
4031         (mabi=elfv2): Likewise.
4032         * config/rs6000/rs6000-opts.h (enum rs6000_abi): Add ABI_ELFv2.
4033         * config/rs6000/linux64.h (DEFAULT_ABI): Do not hard-code to AIX_ABI
4034         if !RS6000_BI_ARCH.
4035         (ELFv2_ABI_CHECK): New macro.
4036         (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
4037         rs6000_current_abi to ABI_AIX or ABI_ELFv2.
4038         (GLIBC_DYNAMIC_LINKER64): Support ELFv2 ld.so version.
4039         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
4040         _CALL_ELF and __STRUCT_PARM_ALIGN__ if appropriate.
4041
4042         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Handle ABI_ELFv2.
4043         (debug_stack_info): Likewise.
4044         (rs6000_file_start): Treat ABI_ELFv2 the same as ABI_AIX.
4045         (rs6000_legitimize_tls_address): Likewise.
4046         (rs6000_conditional_register_usage): Likewise.
4047         (rs6000_emit_move): Likewise.
4048         (init_cumulative_args): Likewise.
4049         (rs6000_function_arg_advance_1): Likewise.
4050         (rs6000_function_arg): Likewise.
4051         (rs6000_arg_partial_bytes): Likewise.
4052         (rs6000_output_function_entry): Likewise.
4053         (rs6000_assemble_integer): Likewise.
4054         (rs6000_savres_strategy): Likewise.
4055         (rs6000_stack_info): Likewise.
4056         (rs6000_function_ok_for_sibcall): Likewise.
4057         (rs6000_emit_load_toc_table): Likewise.
4058         (rs6000_savres_routine_name): Likewise.
4059         (ptr_regno_for_savres): Likewise.
4060         (rs6000_emit_prologue): Likewise.
4061         (rs6000_emit_epilogue): Likewise.
4062         (rs6000_output_function_epilogue): Likewise.
4063         (output_profile_hook): Likewise.
4064         (output_function_profiler): Likewise.
4065         (rs6000_trampoline_size): Likewise.
4066         (rs6000_trampoline_init): Likewise.
4067         (rs6000_elf_output_toc_section_asm_op): Likewise.
4068         (rs6000_elf_encode_section_info): Likewise.
4069         (rs6000_elf_reloc_rw_mask): Likewise.
4070         (rs6000_elf_declare_function_name): Likewise.
4071         (rs6000_function_arg_boundary): Treat ABI_ELFv2 the same as ABI_AIX,
4072         except that rs6000_compat_align_parm is always assumed false.
4073         (rs6000_gimplify_va_arg): Likewise.
4074         (rs6000_call_aix): Update comment.
4075         (rs6000_sibcall_aix): Likewise.
4076         * config/rs6000/rs6000.md ("tls_gd_aix<TLSmode:tls_abi_suffix>"):
4077         Treat ABI_ELFv2 the same as ABI_AIX.
4078         ("*tls_gd_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
4079         ("tls_ld_aix<TLSmode:tls_abi_suffix>"): Likewise.
4080         ("*tls_ld_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
4081         ("load_toc_aix_si"): Likewise.
4082         ("load_toc_aix_di"): Likewise.
4083         ("call"): Likewise.
4084         ("call_value"): Likewise.
4085         ("*call_local_aix<mode>"): Likewise.
4086         ("*call_value_local_aix<mode>"): Likewise.
4087         ("*call_nonlocal_aix<mode>"): Likewise.
4088         ("*call_value_nonlocal_aix<mode>"): Likewise.
4089         ("*call_indirect_aix<mode>"): Likewise.
4090         ("*call_value_indirect_aix<mode>"): Likewise.
4091         ("sibcall"): Likewise.
4092         ("sibcall_value"): Likewise.
4093         ("*sibcall_aix<mode>"): Likewise.
4094         ("*sibcall_value_aix<mode>"): Likewise.
4095         * config/rs6000/predicates.md ("symbol_ref_operand"): Likewise.
4096         ("current_file_function_operand"): Likewise.
4097
4098 2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4099
4100         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Simplify logic
4101         by making use of the fact that for vector / floating point arguments
4102         passed both in VRs/FPRs and in the fixed parameter area, the partial
4103         bytes mechanism is in fact not used.
4104
4105 2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4106
4107         * config/rs6000/rs6000.c (rs6000_psave_function_arg): New function.
4108         (rs6000_finish_function_arg): Likewise.
4109         (rs6000_function_arg): Use rs6000_psave_function_arg and
4110         rs6000_finish_function_arg to handle both vector and floating
4111         point arguments that are also passed in GPRs / the stack.
4112
4113 2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4114
4115         * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Remove TYPE argument.
4116         (USE_ALTIVEC_FOR_ARG_P): Likewise.
4117         (rs6000_darwin64_record_arg_advance_recurse): Update uses.
4118         (rs6000_function_arg_advance_1):Likewise.
4119         (rs6000_darwin64_record_arg_recurse): Likewise.
4120         (rs6000_function_arg): Likewise.
4121         (rs6000_arg_partial_bytes): Likewise.
4122
4123 2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4124
4125         * config/rs6000/rs6000.c (rs6000_option_override_internal): Replace
4126         "DEFAULT_ABI != ABI_AIX" test by testing for ABI_V4 or ABI_DARWIN.
4127         (rs6000_savres_strategy): Likewise.
4128         (rs6000_return_addr): Likewise.
4129         (rs6000_emit_load_toc_table): Replace "DEFAULT_ABI != ABI_AIX" by
4130         testing for ABI_V4 (since ABI_DARWIN is impossible here).
4131         (rs6000_emit_prologue): Likewise.
4132         (legitimate_lo_sum_address_p): Simplify DEFAULT_ABI test.
4133         (rs6000_elf_declare_function_name): Remove duplicated test.
4134         * config/rs6000/rs6000.md ("load_toc_v4_PIC_1"): Explicitly test
4135         for ABI_V4 (instead of "DEFAULT_ABI != ABI_AIX" test).
4136         ("load_toc_v4_PIC_1_normal"): Likewise.
4137         ("load_toc_v4_PIC_1_476"): Likewise.
4138         ("load_toc_v4_PIC_1b"): Likewise.
4139         ("load_toc_v4_PIC_1b_normal"): Likewise.
4140         ("load_toc_v4_PIC_1b_476"): Likewise.
4141         ("load_toc_v4_PIC_2"): Likewise.
4142         ("load_toc_v4_PIC_3b"): Likewise.
4143         ("load_toc_v4_PIC_3c"): Likewise.
4144         * config/rs6000/rs6000.h (RS6000_REG_SAVE): Simplify DEFAULT_ABI test.
4145         (RS6000_SAVE_AREA): Likewise.
4146         (FP_ARG_MAX_REG): Likewise.
4147         (RETURN_ADDRESS_OFFSET): Likewise.
4148         * config/rs6000/sysv.h (TARGET_TOC): Test for ABI_V4 instead
4149         of ABI_AIX.
4150         (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
4151         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
4152
4153 2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4154
4155         * config/rs6000/rs6000.c (rs6000_call_indirect_aix): Rename to ...
4156         (rs6000_call_aix): ... this.  Handle both direct and indirect calls.
4157         Create call insn directly instead of via various gen_... routines.
4158         Mention special registers used by the call in CALL_INSN_FUNCTION_USAGE.
4159         (rs6000_sibcall_aix): New function.
4160         * config/rs6000/rs6000.md (TOC_SAVE_OFFSET_32BIT): Remove.
4161         (TOC_SAVE_OFFSET_64BIT): Likewise.
4162         (AIX_FUNC_DESC_TOC_32BIT): Likewise.
4163         (AIX_FUNC_DESC_TOC_64BIT): Likewise.
4164         (AIX_FUNC_DESC_SC_32BIT): Likewise.
4165         (AIX_FUNC_DESC_SC_64BIT): Likewise.
4166         ("call" expander): Call rs6000_call_aix.
4167         ("call_value" expander): Likewise.
4168         ("call_indirect_aix<ptrsize>"): Replace this pattern ...
4169         ("call_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
4170         ("*call_indirect_aix<mode>"): ... by this insn pattern.
4171         ("call_value_indirect_aix<ptrsize>"): Replace this pattern ...
4172         ("call_value_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
4173         ("*call_value_indirect_aix<mode>"): ... by this insn pattern.
4174         ("*call_nonlocal_aix32", "*call_nonlocal_aix64"): Replace by ...
4175         ("*call_nonlocal_aix<mode>"): ... this pattern.
4176         ("*call_value_nonlocal_aix32", "*call_value_nonlocal_aix64"): Replace
4177         ("*call_value_nonlocal_aix<mode>"): ... by this pattern.
4178         ("*call_local_aix<mode>"): New insn pattern.
4179         ("*call_value_local_aix<mode>"): Likewise.
4180         ("sibcall" expander): Call rs6000_sibcall_aix.
4181         ("sibcall_value" expander): Likewise.  Move earlier in file.
4182         ("*sibcall_nonlocal_aix<mode>"): Replace by ...
4183         ("*sibcall_aix<mode>"): ... this pattern.
4184         ("*sibcall_value_nonlocal_aix<mode>"): Replace by ...
4185         ("*sibcall_value_aix<mode>"): ... this pattern.
4186         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): Remove.
4187         (rs6000_call_aix): Add prototype.
4188         (rs6000_sibcall_aix): Likewise.
4189
4190 2013-11-14  Jakub Jelinek  <jakub@redhat.com>
4191
4192         PR sanitizer/59122
4193         * asan.c (asan_emit_stack_protection): Ensure -fsection-anchors
4194         isn't confused by the artificial decl.
4195
4196 2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4197
4198         * config/rs6000/rs6000.c (rs6000_emit_prologue): Do not place a
4199         RTX_FRAME_RELATED_P marker on the UNSPEC_MOVESI_FROM_CR insn.
4200         Instead, add USEs of all modified call-saved CR fields to the
4201         insn storing the result to the stack slot, and provide an
4202         appropriate REG_FRAME_RELATED_EXPR for that insn.
4203         * config/rs6000/rs6000.md ("*crsave"): New insn pattern.
4204         * config/rs6000/predicates.md ("crsave_operation"): New predicate.
4205
4206 2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4207             Alan Modra  <amodra@gmail.com>
4208
4209         * function.c (assign_parms): Use all.reg_parm_stack_space instead
4210         of re-evaluating REG_PARM_STACK_SPACE target macro.
4211         (locate_and_pad_parm): New parameter REG_PARM_STACK_SPACE.  Use it
4212         instead of evaluating target macro REG_PARM_STACK_SPACE every time.
4213         (assign_parm_find_entry_rtl): Update call.
4214         * calls.c (initialize_argument_information): Update call.
4215         (emit_library_call_value_1): Likewise.
4216         * expr.h (locate_and_pad_parm): Update prototype.
4217
4218 2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4219
4220         * calls.c (store_unaligned_arguments_into_pseudos): Skip PARALLEL
4221         arguments.
4222
4223 2013-11-14  DJ Delorie  <dj@redhat.com>
4224
4225         * config/rx/rx.c (rx_mode_dependent_address_p): Allow offsets up
4226         to 16 bits.
4227
4228 2013-11-14  Jeff Law  <law@redhat.com>
4229
4230         * tree-ssa-threadedge.c (thread_through_normal_block): Only push the
4231         EDGE_START_JUMP_THREAD marker if the jump threading path is empty.
4232
4233 2013-11-14  James Greenhalgh  <james.greenhalgh@arm.com>
4234
4235         * doc/invoke.texi: Update documentation for AArch64's -mcpu
4236         and -mtune options.
4237
4238 2013-11-14  James Greenhalgh  <james.greenhalgh@arm.com>
4239
4240         * config/aarch64/aarch64-cores.def (example-1): Remove.
4241         (example-2): Likewise.
4242         * config/aarch64/aarch64-tune.md: Regenerate.
4243         * config/aarch64/aarch64.md: Do not include "large.md" or "small.md".
4244         (generic_sched): Remove "large", "small".
4245         * config/aarch64/large.md: Delete.
4246         * config/aarch64/small.md: Delete.
4247
4248 2013-11-14  James Greenhalgh  <james.greenhalgh@arm.com>
4249
4250         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for cortexa15.
4251         * config/aarch64/aarch64-tune.md: Regenerate.
4252         * config/aarch64/aarch64.md: Include cortex-a15 pipeline model.
4253         (generic_sched): "no" if we are tuning for cortexa15.
4254         * config/arm/cortex-a15.md: Include cortex-a15-neon.md by
4255         relative path.
4256
4257 2013-11-14  James Greenhalgh  <james.greenhalgh@arm.com>
4258
4259         * config/aarch64/aarch64-arches.def (armv8-a): Tune for cortex-a53.
4260         * config/aarch64/aarch64.md: Do not include aarch64-generic.md.
4261         * config/aarch64/aarch64.c (aarch64_tune): Initialize to cortexa53.
4262         (all_cores): Use cortexa53 when tuning for "generic".
4263         (aarch64_override_options): Fix comment.
4264         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Set to cortexa53.
4265         * config/aarch64/aarch64-generic.md: Delete.
4266
4267 2013-11-14  James Greenhalgh  <james.greenhalgh@arm.com>
4268
4269         * config/aarch64/aarch64.c (all_architectures): Remove "generic".
4270
4271 2013-11-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4272
4273         * config/aarch64/aarch64.c: Include aarch-cost-tables.h.
4274         (generic_rtx_cost_table): Remove.
4275         (aarch64_rtx_costs): Use fields from cpu_cost_table.
4276         * config/aarch64/aarch64-protos.h (tune_params): Use cpu_cost_table for
4277         insn_extra_cost.
4278         (cpu_rtx_cost_table): Remove.
4279
4280 2013-11-14  Julian Brown  <julian@codesourcery.com>
4281             Joey Ye  <joey.ye@arm.com>
4282
4283         * config/arm/arm.c (arm_cortex_m_branch_cost): New.
4284         (arm_v7m_tune): New.
4285         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune, arm_9e_tune,
4286         arm_v6t2_tune, arm_cortex_tune, arm_cortex_a15_tune,
4287         arm_cortex_a5_tune, arm_v6m_tune): Add comments for Sched adj cost.
4288         * config/arm/arm-cores.def (cortex-m4, cortex-m3): Use arm_v7m_tune.
4289
4290 2013-11-14  Kirill Yukhin  <kirill.yukhin@intel.com>
4291
4292         PR target/57491
4293         * config/ia64/ia64.c (ia64_split_tmode_move): Relax `dead'
4294         flag setting.
4295
4296 2013-11-14  Jakub Jelinek  <jakub@redhat.com>
4297             Uros Bizjak  <ubizjak@gmail.com>
4298
4299         PR target/59101
4300         * config/i386/i386.md (*anddi_2): Only allow CCZmode if
4301         operands[2] satisfies_constraint_Z that might have bit 31 set.
4302
4303 2013-11-13  Jeff Law  <law@redhat.com>
4304
4305         PR tree-optimization/59102
4306         * gimple-ssa-isolate-paths.c
4307         (insert_trap_and_remove_trailing_statments): Ensure STMT is a
4308         gimple assignment before looking at gimple_assign_lhs.
4309
4310 2013-11-13  Vladimir Makarov  <vmakarov@redhat.com>
4311
4312         * ira.c: Add comment about threads at the top of file.
4313
4314 2013-11-13  Vladimir Makarov  <vmakarov@redhat.com>
4315
4316         * ira-color.c (coalesce_allocnos): Don't allocate and free
4317         sorted_copies.
4318
4319 2013-11-14  Tom de Vries  <tom@codesourcery.com>
4320
4321         * tree-ssa-tail-merge.c (gimple_equal_p): Add test for structural
4322         equality for GIMPLE_ASSIGN.
4323
4324 2013-11-14  Tom de Vries  <tom@codesourcery.com>
4325
4326         * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Factor new
4327         function out of ...
4328         (gimple_equal_p): ... here.
4329
4330 2013-11-14  Tom de Vries  <tom@codesourcery.com>
4331
4332         * trans-mem.c (is_tm_ending): New function.
4333         * gimple.h (is_tm_ending): Declare.
4334         * tree-ssa-tail-merge.c (gimple_equal_p): Remove test on
4335         BUILT_IN_TM_COMMIT.
4336         (find_duplicate): Use is_tm_ending instead of is_tm_ending_fndecl.
4337
4338 2013-11-14  Tom de Vries  <tom@codesourcery.com>
4339
4340         * tree-ssa-tail-merge.c (gimple_equal_p): Remove equal variable.
4341
4342 2013-11-13  Andrew MacLeod  <amacleod@redhat.com>
4343
4344         * gimple-walk.h: New File.  Relocate prototypes from gimple.h.
4345         (struct walk_stmt_info):  Relocate here from gimple.h.
4346         * gimple-iterator.h: New File.  Relocate prototypes from gimple.h.
4347         (struct gimple_stmt_iterator_d): Relocate here from gimple.h.
4348         (gsi_start_1, gsi_none, gsi_start_bb, gsi_last_1, gsi_last_bb,
4349         gsi_end_p, gsi_one_before_end_p, gsi_next, gsi_prev, gsi_stmt,
4350         gsi_after_labels, gsi_next_nondebug, gsi_prev_nondebug,
4351         gsi_start_nondebug_bb, gsi_start_nondebug_after_labels_bb,
4352         gsi_last_nondebug_bb, gsi_bb, gsi_seq): Relocate here from gimple.h.
4353         * gimple.h (struct gimple_stmt_iterator_d): Move to gimple-iterator.h.
4354         (gsi_start_1, gsi_none, gsi_start_bb, gsi_last_1, gsi_last_bb,
4355         gsi_end_p, gsi_one_before_end_p, gsi_next, gsi_prev, gsi_stmt,
4356         gsi_after_labels, gsi_next_nondebug, gsi_prev_nondebug,
4357         gsi_start_nondebug_bb, gsi_start_nondebug_after_labels_bb,
4358         gsi_last_nondebug_bb, gsi_bb, gsi_seq): Move to gimple-iterator.h.
4359         (struct walk_stmt_info): Move to gimple-walk.h.
4360         (gimple_seq_set_location): Move to gimple.c
4361         * gimple-walk.c: New File.
4362         (walk_gimple_seq_mod, walk_gimple_seq, walk_gimple_asm, walk_gimple_op,
4363         walk_gimple_stmt, get_base_loadstore, walk_stmt_load_store_addr_ops,
4364         walk_stmt_load_store_ops): Relocate here from gimple.c.
4365         * gimple-iterator.c: Include gimple-iterator.h.
4366         * gimple.c (walk_gimple_seq_mod, walk_gimple_seq, walk_gimple_asm,
4367         walk_gimple_op, walk_gimple_stmt, get_base_loadstore,
4368         walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Move to
4369         gimple-walk.c.
4370         (gimple_seq_set_location): Relocate from gimple.h.
4371         * tree-phinodes.h (set_phi_nodes): Move to tree-phinodes.c.
4372         * tree-phinodes.c (set_phi_nodes): Relocate from tree-phinodes.h.
4373         * gengtype.c (open_base_files): Add gimple-iterator.h to include list.
4374         * Makefile.in (OBJS): Add gimple-walk.o
4375         * asan.c: Update Include list as required for gimple-iterator.h and
4376         gimple-walk.h.
4377         * cfgexpand.c: Likewise.
4378         * cfgloop.c: Likewise.
4379         * cfgloopmanip.c: Likewise.
4380         * cgraph.c: Likewise.
4381         * cgraphbuild.c: Likewise.
4382         * cgraphunit.c: Likewise.
4383         * gimple-fold.c: Likewise.
4384         * gimple-low.c: Likewise.
4385         * gimple-pretty-print.c: Likewise.
4386         * gimple-ssa-isolate-paths.c: Likewise.
4387         * gimple-ssa-strength-reduction.c: Likewise.
4388         * gimple-streamer-in.c: Likewise.
4389         * gimple-streamer-out.c: Likewise.
4390         * gimplify.c: Likewise.
4391         * graphite-blocking.c: Likewise.
4392         * graphite-clast-to-gimple.c: Likewise.
4393         * graphite-dependences.c: Likewise.
4394         * graphite-interchange.c: Likewise.
4395         * graphite-optimize-isl.c: Likewise.
4396         * graphite-poly.c: Likewise.
4397         * graphite-scop-detection.c: Likewise.
4398         * graphite-sese-to-poly.c: Likewise.
4399         * graphite.c: Likewise.
4400         * ipa-inline-analysis.c: Likewise.
4401         * ipa-profile.c: Likewise.
4402         * ipa-prop.c: Likewise.
4403         * ipa-pure-const.c: Likewise.
4404         * ipa-split.c: Likewise.
4405         * lto-streamer-in.c: Likewise.
4406         * lto-streamer-out.c: Likewise.
4407         * omp-low.c: Likewise.
4408         * predict.c: Likewise.
4409         * profile.c: Likewise.
4410         * sese.c: Likewise.
4411         * tracer.c: Likewise.
4412         * trans-mem.c: Likewise.
4413         * tree-call-cdce.c: Likewise.
4414         * tree-cfg.c: Likewise.
4415         * tree-cfgcleanup.c: Likewise.
4416         * tree-complex.c: Likewise.
4417         * tree-data-ref.c: Likewise.
4418         * tree-dfa.c: Likewise.
4419         * tree-eh.c: Likewise.
4420         * tree-emutls.c: Likewise.
4421         * tree-if-conv.c: Likewise.
4422         * tree-inline.c: Likewise.
4423         * tree-into-ssa.c: Likewise.
4424         * tree-loop-distribution.c: Likewise.
4425         * tree-nested.c: Likewise.
4426         * tree-nrv.c: Likewise.
4427         * tree-object-size.c: Likewise.
4428         * tree-outof-ssa.c: Likewise.
4429         * tree-parloops.c: Likewise.
4430         * tree-predcom.c: Likewise.
4431         * tree-profile.c: Likewise.
4432         * tree-scalar-evolution.c: Likewise.
4433         * tree-sra.c: Likewise.
4434         * tree-ssa-ccp.c: Likewise.
4435         * tree-ssa-coalesce.c: Likewise.
4436         * tree-ssa-copy.c: Likewise.
4437         * tree-ssa-copyrename.c: Likewise.
4438         * tree-ssa-dce.c: Likewise.
4439         * tree-ssa-dom.c: Likewise.
4440         * tree-ssa-dse.c: Likewise.
4441         * tree-ssa-forwprop.c: Likewise.
4442         * tree-ssa-ifcombine.c: Likewise.
4443         * tree-ssa-live.c: Likewise.
4444         * tree-ssa-loop-ch.c: Likewise.
4445         * tree-ssa-loop-im.c: Likewise.
4446         * tree-ssa-loop-ivcanon.c: Likewise.
4447         * tree-ssa-loop-ivopts.c: Likewise.
4448         * tree-ssa-loop-manip.c: Likewise.
4449         * tree-ssa-loop-niter.c: Likewise.
4450         * tree-ssa-loop-prefetch.c: Likewise.
4451         * tree-ssa-loop.c: Likewise.
4452         * tree-ssa-math-opts.c: Likewise.
4453         * tree-ssa-phiopt.c: Likewise.
4454         * tree-ssa-phiprop.c: Likewise.
4455         * tree-ssa-pre.c: Likewise.
4456         * tree-ssa-propagate.c: Likewise.
4457         * tree-ssa-reassoc.c: Likewise.
4458         * tree-ssa-sink.c: Likewise.
4459         * tree-ssa-strlen.c: Likewise.
4460         * tree-ssa-structalias.c: Likewise.
4461         * tree-ssa-tail-merge.c: Likewise.
4462         * tree-ssa-ter.c: Likewise.
4463         * tree-ssa-threadedge.c: Likewise.
4464         * tree-ssa-threadupdate.c: Likewise.
4465         * tree-ssa-uncprop.c: Likewise.
4466         * tree-ssa-uninit.c: Likewise.
4467         * tree-ssa.c: Likewise.
4468         * tree-stdarg.c: Likewise.
4469         * tree-switch-conversion.c: Likewise.
4470         * tree-tailcall.c: Likewise.
4471         * tree-vect-data-refs.c: Likewise.
4472         * tree-vect-generic.c: Likewise.
4473         * tree-vect-loop-manip.c: Likewise.
4474         * tree-vect-loop.c: Likewise.
4475         * tree-vect-patterns.c: Likewise.
4476         * tree-vect-slp.c: Likewise.
4477         * tree-vect-stmts.c: Likewise.
4478         * tree-vectorizer.c: Likewise.
4479         * tree-vrp.c: Likewise.
4480         * tree.c: Likewise.
4481         * tsan.c: Likewise.
4482         * value-prof.c: Likewise.
4483         * vtable-verify.c: Likewise.
4484
4485 2013-11-13  Steven Bosscher  <steven@gcc.gnu.org>
4486
4487         * gimple-ssa-isolate-paths.c (pass_isolate_erroneous_paths): Comment
4488         fix.
4489
4490 2013-11-13  Jeff Law  <law@redhat.com>
4491
4492         * PR middle-end/59119
4493         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour): New
4494         function, extracted from gimple_ssa_isolate_erroneous_paths.
4495         (find_explicit_erroneous_behaviour): Similarly.
4496         (insert_trap_and_remove_trailing_statements): Remove statements
4497         in reverse order.
4498
4499 2013-11-13  Steven Bosscher  <steven@gcc.gnu.org>
4500
4501         * cfgrtl.c (can_fallthru): Reorder code to move tablejump check up.
4502         Make that check explicit.  BB_HEAD cannot be NULL, remove check for it.
4503         * haifa-sched.c (ready_remove_first_dispatch): Check INSN_P before
4504         looking at INSN_CODE.
4505         * reload1.c (delete_dead_insn) Do not expect JUMP_TABLE_DATA to be an
4506         active_insn_p object, respect basic block boundaries.
4507         * reorg.c (follow_jumps): Use invariant that JUMP_TABLE_DATA always
4508         follows immediately after the jump table data label.
4509         * config/nds32/nds32.c (nds32_output_casesi_pc_relative): Likewise.
4510         * config/sh/sh.c (barrier_align): Likewise.  Rearrange code such
4511         that JUMP_TABLE_DATA is not expected to be an active_insn_p object.
4512
4513 2013-11-13  Teresa Johnson  <tejohnson@google.com>
4514
4515         PR ipa/58862
4516         * predict.c (drop_profile): Error is currently too strict.
4517         (handle_missing_profiles): Pass call_count to drop_profile.
4518
4519 2013-11-13  Teresa Johnson  <tejohnson@google.com>
4520
4521         PR ipa/58862
4522         * ipa-inline.c (edge_badness): Fix overflow.
4523
4524 2013-11-13  Vladimir Makarov  <vmakarov@redhat.com>
4525
4526         PR rtl-optimization/59036
4527         * ira-color.c (struct allocno_color_data): Add new members
4528         first_thread_allocno, next_thread_allocno, thread_freq.
4529         (sorted_copies): New static var.
4530         (allocnos_conflict_by_live_ranges_p, copy_freq_compare_func): Move up.
4531         (allocno_thread_conflict_p, merge_threads)
4532         (form_threads_from_copies, form_threads_from_bucket)
4533         (form_threads_from_colorable_allocno, init_allocno_threads): New
4534         functions.
4535         (bucket_allocno_compare_func): Add comparison by thread frequency
4536         and threads.
4537         (add_allocno_to_ordered_bucket): Rename to
4538         add_allocno_to_ordered_colorable_bucket.  Remove parameter.
4539         (push_only_colorable): Call form_threads_from_bucket.
4540         (color_pass): Call init_allocno_threads.  Use
4541         consideration_allocno_bitmap instead of coloring_allocno_bitmap
4542         for nuillify allocno color data.
4543         (ira_initiate_assign, ira_finish_assign): Allocate/free sorted_copies.
4544         (coalesce_allocnos): Use static sorted copies.
4545
4546 2013-11-13  Jakub Jelinek  <jakub@redhat.com>
4547
4548         * passes.c (execute_todo): Don't call do_per_function if
4549         flags are zero.
4550         (execute_one_ipa_transform_pass, execute_one_pass): Don't call
4551         execute_function_dump if dump_file is NULL.
4552
4553 2013-11-13  Martin Jambor  <mjambor@suse.cz>
4554
4555         * cgraph.c (cgraph_get_create_node): Do what
4556         cgraph_get_create_real_symbol_node used to do.
4557         (cgraph_get_create_real_symbol_node): Removed.  Changed all users to
4558         call cgraph_get_create_node.
4559         * cgraph.h (cgraph_get_create_real_symbol_node): Removed.
4560         * lto-streamer-in.c (input_function): Call cgraph_get_node instead of
4561         cgraph_get_create_node.  Assert we get a node.
4562
4563 2013-11-13  Tejas Belagod  <tejas.belagod@arm.com>
4564
4565         * config/aarch64/aarch64-simd.md (vec_extract): New.
4566
4567 2013-11-13  Tejas Belagod  <tejas.belagod@arm.com>
4568
4569         * config/aarch64/aarch64-simd.md (vec_set<mode>): Add w -> w option to
4570         the constraint.
4571
4572 2013-11-13  Eric Botcazou  <ebotcazou@adacore.com>
4573
4574         * cfgexpand.c (expand_used_vars): Allocate space for partitions based
4575         on PARM_DECLs or RESULT_DECLs only if they are ignored for debug info
4576         or if optimization is enabled.
4577         * tree-ssa-coalesce.c (coalesce_ssa_name): If optimization is disabled,
4578         require that all the names based on a PARM_DECL or a RESULT_DECL that
4579         isn't ignored for debug info be coalesced.
4580
4581 2013-11-13  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
4582
4583         * config/c6x/c6x.c: Include "gimple-expr.h".
4584
4585 2013-11-13  Richard Biener  <rguenther@suse.de>
4586
4587         * gimple-streamer-out.c (output_gimple_stmt): Also wrap
4588         decls in ADDR_EXPR operands inside a MEM_REF and optimize that.
4589         * gimple-streamer-in.c (input_gimple_stmt): Remove now dead code
4590         dealing with type mismatches inside component reference chains.
4591
4592 2013-11-13  Marc Glisse  <marc.glisse@inria.fr>
4593
4594         PR tree-optimization/59077
4595         * ipa-pure-const.c (better_state): Update *state.
4596
4597 2013-11-13  Christophe Lyon  <christophe.lyon@linaro.org>
4598
4599         * config/aarch64/aarch64.h (FRAME_GROWS_DOWNWARD): Define to 1.
4600         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
4601         Update offset calculations.
4602
4603 2013-11-13  Eric Botcazou  <ebotcazou@adacore.com>
4604
4605         PR ada/35998
4606         * dwarf2out.c (add_byte_size_attribute): Also use int_size_in_bytes
4607         for fields.  Do not add the attribute if the size is negative.
4608
4609 2013-11-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4610
4611         * config/arm/arm.c: Include aarch-cost-tables.h.
4612         (generic_extra_costs): Move from here...
4613         * config/arm/aarch-cost-tables.h: ... To here.  New file.
4614
4615 2013-11-13  Alexander Ivchenko  <alexander.ivchenko@intel.com>
4616             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
4617             Sergey Lega  <sergey.s.lega@intel.com>
4618             Anna Tikhonova  <anna.tikhonova@intel.com>
4619             Ilya Tocar  <ilya.tocar@intel.com>
4620             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4621             Ilya Verbin  <ilya.verbin@intel.com>
4622             Kirill Yukhin  <kirill.yukhin@intel.com>
4623             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
4624
4625         * config/i386/i386.c (ix86_print_operand): Support z-masking.
4626         * config/i386/predicate.md (const_0_to_4_operand): New.
4627         (const_0_to_5_operand): Ditto.
4628         * config/i386/sse.md (UNSPEC_COMPRESS): New.
4629         (UNSPEC_COMPRESS_STORE): Ditto.
4630         (UNSPEC_EXPAND): Ditto.
4631         (UNSPEC_EMBEDDED_ROUNDING): Ditto.
4632         (define_mode_attr ssescalarsize): Ditto.
4633         (avx512f_load<mode>_mask): Ditto.
4634         (avx512f_store<mode>_mask): Ditto.
4635         (avx512f_storedqu<mode>_mask): Ditto.
4636         (avx512f_vmcmp<mode>3_mask): Ditto.
4637         (avx512f_fmadd_<mode>_mask): Ditto.
4638         (avx512f_fmadd_<mode>_mask3): Ditto.
4639         (avx512f_fmsub_<mode>_mask): Ditto.
4640         (avx512f_fmsub_<mode>_mask3): Ditto.
4641         (avx512f_fnmadd_<mode>_mask): Ditto.
4642         (avx512f_fnmadd_<mode>_mask3): Ditto.
4643         (avx512f_fnmsub_<mode>_mask): Ditto.
4644         (avx512f_fnmsub_<mode>_mask3): Ditto.
4645         (avx512f_fmaddsub_<mode>_mask): Ditto.
4646         (avx512f_fmaddsub_<mode>_mask3): Ditto.
4647         (avx512f_fmsubadd_<mode>_mask): Ditto.
4648         (avx512f_fmsubadd_<mode>_mask3): Ditto.
4649         (vec_unpacku_float_lo_v16si): Ditto.
4650         (avx512f_vextract<shuffletype>32x4_mask): Ditto.
4651         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
4652         (avx512f_vextract<shuffletype>64x4_mask): Ditto.
4653         (vec_extract_lo_<mode>_maskm): Ditto.
4654         (vec_extract_hi_<mode>_maskm): Ditto.
4655         (avx512f_vternlog<mode>_mask): Ditto.
4656         (avx512f_shufps512_mask): Ditto.
4657         (avx512f_fixupimm<mode>_mask): Ditto.
4658         (avx512f_shufpd512_mask): Ditto.
4659         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
4660         (avx512f_<code>v8div16qi2_mask/trunc): Ditto.
4661         (*avx512f_<code>v8div16qi2_store_mask): Ditto.
4662         (ashr<mode>3<mask_name>): Ditto.
4663         (avx512f_vinsert<shuffletype>32x4_mask): Ditto.
4664         (avx512f_vinsert<shuffletype>64x4_mask): Ditto.
4665         (avx512f_shuf_<shuffletype>64x2_mask): Ditto.
4666         (avx512f_shuf_<shuffletype>32x4_mask): Ditto.
4667         (avx512f_pshufdv3_mask): Ditto.
4668         (avx512f_perm<mode>_mask): Ditto.
4669         (avx512f_vpermi2var<mode>3_mask): Ditto.
4670         (avx512f_vpermt2var<mode>3_mask): Ditto.
4671         (avx512f_compress<mode>_mask): Ditto.
4672         (avx512f_compressstore<mode>_mask): Ditto.
4673         (avx512f_expand<mode>_mask): Ditto.
4674         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Extend
4675         to support masking.
4676         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
4677         (<plusminus_insn><mode>3<mask_name>): Ditto.
4678         (*<plusminus_insn><mode>3<mask_name>): Ditto.
4679         (mul<mode>3<mask_name>): Ditto.
4680         (*mul<mode>3<mask_name>): Ditto.
4681         (<sse>_div<mode>3<mask_name>): Ditto.
4682         (<mask_codefor>rcp14<mode><mask_name>): Ditto.
4683         (<sse>_sqrt<mode>2<mask_name>): Ditto.
4684         (<mask_codefor>rsqrt14<mode><mask_name>): Ditto.
4685         (<code><mode>3<mask_name>/smaxmin): Ditto.
4686         (*<code><mode>3_finite<mask_name>/smaxmin): Ditto.
4687         (*<code><mode>3<mask_name>/smaxmin): Ditto.
4688         (float<sseintvecmodelower><mode>2<mask_name>): Ditto.
4689         (ufloatv16siv16sf2<mask_name>): Ditto.
4690         (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name>): Ditto.
4691         (<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name>): Ditto.
4692         (<fixsuffix>fix_truncv16sfv16si2<mask_name>): Ditto.
4693         (float<si2dfmodelower><mode>2<mask_name>): Ditto.
4694         (ufloatv8siv8df<mask_name>): Ditto.
4695         (<mask_codefor>avx512f_cvtpd2dq512<mask_name>): Ditto.
4696         (avx512f_ufix_notruncv8dfv8si<mask_name>): Ditto.
4697         (<fixsuffix>fix_truncv8dfv8si2<mask_name>): Ditto.
4698         (<mask_codefor>avx512f_cvtpd2ps512<mask_name>): Ditto.
4699         (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix><mask_name>): Ditto.
4700         (<mask_codefor>avx512f_unpckhps512<mask_name>): Ditto.
4701         (<mask_codefor>avx512f_unpcklps512<mask_name>): Ditto.
4702         (<mask_codefor>avx512f_movshdup512<mask_name>): Ditto.
4703         (<mask_codefor>avx512f_movsldup512<mask_name>): Ditto.
4704         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
4705         (vec_extract_lo_<mode><mask_name>): Ditto.
4706         (vec_extract_hi_<mode><mask_name>): Ditto.
4707         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
4708         (avx512f_movddup512<mask_name>): Ditto.
4709         (avx512f_unpcklpd512<mask_name>): Ditto.
4710         (*avx512f_unpcklpd512<mask_name>): Ditto.
4711         (*avx512f_vmscalef<mode>): Ditto.
4712         (avx512f_scalef<mode><mask_name>): Ditto.
4713         (avx512f_getexp<mode><mask_name>): Ditto.
4714         (<mask_codefor>avx512f_align<mode><mask_name>): Ditto.
4715         (avx512f_rndscale<mode><mask_name>): Ditto.
4716         (avx512f_shufps512_1<mask_name>): Ditto.
4717         (avx512f_shufpd512_1<mask_name>): Ditto.
4718         (<plusminus_insn><mode>3<mask_name>): Ditto.
4719         (*<plusminus_insn><mode>3<mask_name>): Ditto.
4720         (vec_widen_umult_even_v16si<mask_name>): Ditto.
4721         (*vec_widen_umult_even_v16si<mask_name>): Ditto.
4722         (vec_widen_smult_even_v16si<mask_name>): Ditto.
4723         (*vec_widen_smult_even_v16si<mask_name>): Ditto.
4724         (mul<mode>3<mask_name>): Ditto.
4725         (*<sse4_1_avx2>_mul<mode>3<mask_name>): Ditto.
4726         (<shift_insn><mode>3<mask_name>): Ditto.
4727         (avx512f_<rotate>v<mode><mask_name>/rotate): Ditto.
4728         (avx512f_<rotate><mode><mask_name>): Ditto.
4729         (<code><mode>3<mask_name>/maxmin): Ditto.
4730         (*avx2_<code><mode>3<mask_name>/maxmin): Ditto.
4731         (<sse2_avx2>_andnot<mode>3<mask_name>): Ditto.
4732         (*andnot<mode>3<mask_name>): Ditto.
4733         (<mask_codefor><code><mode>3<mask_name>/any_logic): Ditto.
4734         (<mask_codefor>avx512f_interleave_highv16si<mask_name>): Ditto.
4735         (<mask_codefor>avx512f_interleave_lowv16si<mask_name>): Ditto.
4736         (<mask_codefor>avx512f_vinsert<shuffletype>32x4_1<mask_name>): Ditto.
4737         (vec_set_lo_<mode><mask_name>): Ditto.
4738         (vec_set_hi_<mode><mask_name>): Ditto.
4739         (avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ditto.
4740         (avx512f_shuf_<shuffletype>32x4_1<mask_name>): Ditto.
4741         (avx512f_pshufd_1<mask_name>): Ditto.
4742         (<mask_codefor>abs<mode>2<mask_name>): Ditto.
4743         (<mask_codefor>avx512f_<code>v16qiv16si2<mask_name>): Ditto.
4744         (avx512f_<code>v16hiv16si2<mask_name>/any_extend): Ditto.
4745         (avx512f_<code>v8qiv8di2<mask_name>/any_extend): Ditto.
4746         (avx512f_<code>v8hiv8di2<mask_name>/any_extend): Ditto.
4747         (avx512f_<code>v8siv8di2<mask_name>/any_extend): Ditto.
4748         (avx512er_exp2<mode><mask_name>): Ditto.
4749         (<mask_codefor>avx512er_rcp28<mode><mask_name>): Ditto.
4750         (<mask_codefor>avx512er_rsqrt28<mode><mask_name>): Ditto.
4751         (<avx2_avx512f>_permvar<mode><mask_name>): Ditto.
4752         (<avx2_avx512f>_perm<mode>_1<mask_name>): Ditto.
4753         (<mask_codefor>avx512f_vec_dup<mode><mask_name>): Ditto.
4754         (<mask_codefor>avx512f_broadcast<mode><mask_name>/V16FI): Ditto.
4755         (<mask_codefor>avx512f_broadcast<mode><mask_name>/V8FI): Ditto.
4756         (<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>): Ditto.
4757         (<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>): Ditto.
4758         (<sse2_avx_avx512f>_vpermil<mode><mask_name>/VF2): Ditto.
4759         (<sse2_avx_avx512f>_vpermil<mode><mask_name>/VF1): Ditto.
4760         (*<sse2_avx_avx512f>_vpermilp<mode><mask_name>): Ditto.
4761         (<sse2_avx_avx512f>_vpermilvar<mode>3<mask_name>): Ditto.
4762         (<avx2_avx512f>_ashrv<mode><mask_name>): Ditto.
4763         (<avx2_avx512f>_<shift_insn>v<mode><mask_name>): Ditto.
4764         (<mask_codefor>avx512f_vcvtph2ps512<mask_name>): Ditto.
4765         (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Ditto.
4766         (avx512f_getmant<mode><mask_name>): Ditto.
4767         (clz<mode>2<mask_name>): Ditto.
4768         (<mask_codefor>conflict<mode><mask_name>): Ditto.
4769         (*srcp14<mode>): Remove visibility.
4770         (*rsqrt14<mode>): Ditto.
4771         (*fma_fmsub_<mode>): Ditto.
4772         (*fma_fnmadd_<mode>): Ditto.
4773         (*avx512f_rndscale<mode>): Ditto.
4774         * config/i386/subst.md: New file.
4775
4776 2013-11-13  Joseph Myers  <joseph@codesourcery.com>
4777
4778         * doc/extend.texi (Statement Exprs, Typeof): Discuss __auto_type.
4779         * ginclude/stdatomic.h (kill_dependency, atomic_store_explicit)
4780         (atomic_load_explicit, atomic_exchange_explicit)
4781         (atomic_compare_exchange_strong_explicit)
4782         (atomic_compare_exchange_weak_explicit): Use __auto_type to
4783         declare variable initialized with PTR argument.
4784
4785 2013-11-12  Jeff Law  <law@redhat.com>
4786
4787         * tree-ssa-threadedge.c (thread_around_empty_blocks): New argument
4788         backedge_seen_p.  Set, use and pass it to children appropriately.
4789         (thread_through_normal_block): Similarly.
4790         (thread_across_edge): Similarly.
4791
4792         * gimple-ssa-isolate-paths.c (check_loadstore): Mark discovered
4793         memory references as volatile.
4794         (insert_trap_and_remove_trailing_statements): Fix comment.
4795
4796 2013-11-12  Vladimir Makarov  <vmakarov@redhat.com>
4797
4798         PR other/58712
4799         * ira-costs.c (record_operand_costs): Check operands number for
4800         the single set.
4801
4802 2013-11-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4803
4804         PR target/59054
4805         * config/rs6000/rs6000.md (movdi_internal32): Eliminate
4806         constraints that would allow DImode into the traditional Altivec
4807         registers, but cause undesirable code generation when loading 0 as
4808         a constant.
4809         (movdi_internal64): Likewise.
4810         (cmp<mode>_fpr): Do not use %x for CR register output.
4811         (extendsfdf2_fpr): Fix constraints when -mallow-upper-df and
4812         -mallow-upper-sf debug switches are used.
4813
4814 2013-11-12  Andrew MacLeod  <amacleod@redhat.com>
4815
4816         * gimple-expr.h (create_tmp_var_name, create_tmp_var_raw,
4817         create_tmp_var, create_tmp_reg, mark_addressable, is_gimple_reg_rhs):
4818         Relocate prototypes from gimple.h.
4819         * gimplify.h: New File.  Relocate some prototypes from gimple.h here.
4820         (gimple_predicate, enum fallback, enum gimplify_status): Relocate
4821         from gimple.h.
4822         * gimple.h: Move some prototypes to gimplify.h.
4823         (gimple_predicate, enum fallback, enum gimplify_status): Move to
4824         gimplify.h.
4825         (gimple_do_not_emit_location_p, gimple_set_do_not_emit_location):
4826         Relocate from gimpify.c.
4827         * gimple-expr.c (remove_suffix, tmp_var_id_num, create_tmp_var_name,
4828         create_tmp_var_raw, create_tmp_var, create_tmp_reg, mark_addressable,
4829         is_gimple_reg_rhs) Relocate from gimplify.c.
4830         * gimplify.c (mark_addressable): Move to gimple-expr.c.
4831         (gimple_seq_add_stmt_without_update): Move to gimple.c.
4832         (remove_suffix, tmp_var_id_num, create_tmp_var_name,
4833         create_tmp_var_raw, create_tmp_var, create_tmp_reg,
4834         is_gimple_reg_rhs): Move to gimple-expr.c.
4835         (should_carry_location_p): Move to gimple.c.
4836         (gimple_do_not_emit_location_p, gimple_set_do_not_emit_location): Move
4837         to gimple.h.
4838         (annotate_one_with_location, annotate_all_with_location_after,
4839         annotate_all_with_location): Move to gimple.c.
4840         (compare_case_labels, sort_case_labels,
4841         preprocess_case_label_vec_for_gimple): Move to gimple.c.
4842         (rhs_predicate_for): Make static.
4843         (gimplify_assign): Relocate from gimple.c.
4844         * gimple.c (gimplify_assign): Move to gimplify.c.
4845         (gimple_seq_add_stmt_without_update, should_carry_location_p,
4846         annotate_one_with_location, annotate_all_with_location_after,
4847         annotate_all_with_location, compare_case_labels, sort_case_labels,
4848         preprocess_case_label_vec_for_gimple): Relocate from gimplify.c.
4849         * tree.h (unshare_expr, unshare_expr_without_location,
4850         mark_addressable): Move prototypes to gimplify.h.
4851         * Makefile.in (GTFILES): gimple-expr.c now has the GTY tag for
4852         tmp_var_id_num
4853         * asan.c: Include gimplify.h rather than gimple.h.
4854         * cfgloopmanip.c: Likewise.
4855         * cgraphunit.c: Likewise.
4856         * cilk-common.c: Likewise.
4857         * dwarf2out.c: Dont include gimple.h.
4858         * fold-const.c: Include gimplify.h rather than gimple.h.
4859         * function.c: Likewise.
4860         * gimple-fold.c: Likewise.
4861         * gimple-ssa-strength-reduction.c: Likewise.
4862         * graphite-clast-to-gimple.c: Likewise.
4863         * graphite-sese-to-poly.c: Likewise.
4864         * ipa-prop.c: Likewise.
4865         * ipa-split.c: Likewise.
4866         * ipa.c: Likewise.
4867         * langhooks.c: Dont include gimple.h.
4868         * loop-init.c: Include gimplify.h rather than gimple.h.
4869         * omp-low.c: Likewise.
4870         * sese.c: Likewise.
4871         * stor-layout.c: Likewise.
4872         * targhooks.c: Likewise.
4873         * trans-mem.c: Likewise.
4874         * tree-affine.c: Likewise.
4875         * tree-cfg.c: Likewise.
4876         * tree-cfgcleanup.c: Likewise.
4877         * tree-complex.c: Likewise.
4878         * tree-if-conv.c: Likewise.
4879         * tree-inline.c: Likewise.
4880         * tree-iterator.c: Likewise.
4881         * tree-loop-distribution.c: Likewise.
4882         * tree-nested.c: Likewise.
4883         * tree-parloops.c: Likewise.
4884         * tree-predcom.c: Likewise.
4885         * tree-profile.c: Likewise.
4886         * tree-scalar-evolution.c: Likewise.
4887         * tree-sra.c: Likewise.
4888         * tree-ssa-address.c: Likewise.
4889         * tree-ssa-ccp.c: Likewise.
4890         * tree-ssa-dce.c: Likewise.
4891         * tree-ssa-forwprop.c: Likewise.
4892         * tree-ssa-ifcombine.c: Likewise.
4893         * tree-ssa-loop-im.c: Likewise.
4894         * tree-ssa-loop-ivopts.c: Likewise.
4895         * tree-ssa-loop-manip.c: Likewise.
4896         * tree-ssa-loop-niter.c: Likewise.
4897         * tree-ssa-loop-prefetch.c: Likewise.
4898         * tree-ssa-loop-unswitch.c: Likewise.
4899         * tree-ssa-math-opts.c: Likewise.
4900         * tree-ssa-phiopt.c: Likewise.
4901         * tree-ssa-phiprop.c: Likewise.
4902         * tree-ssa-pre.c: Likewise.
4903         * tree-ssa-propagate.c: Likewise.
4904         * tree-ssa-reassoc.c: Likewise.
4905         * tree-ssa-sccvn.c: Likewise.
4906         * tree-ssa-strlen.c: Likewise.
4907         * tree-ssa.c: Likewise.
4908         * tree-switch-conversio: Likewise.n.c
4909         * tree-tailcall.c: Likewise.
4910         * tree-vect-data-refs.c: Likewise.
4911         * tree-vect-generic.c: Likewise.
4912         * tree-vect-loop-manip.c: Likewise.
4913         * tree-vect-loop.c: Likewise.
4914         * tree-vect-patterns.c: Likewise.
4915         * tree-vect-stmts.c: Likewise.
4916         * tsan.c: Likewise.
4917         * value-prof.c: Likewise.
4918         * config/aarch64/aarch64.c: Include gimplify.h instead of gimple.h.
4919         * config/alpha/alpha.c: Likewise.
4920         * config/darwin.c: Likewise.
4921         * config/i386/i386.c: Likewise.
4922         * config/ia64/ia64.c: Likewise.
4923         * config/mep/mep.c: Likewise.
4924         * config/mips/mips.c: Likewise.
4925         * config/rs6000/rs6000.c: Likewise.
4926         * config/s390/s390.c: Likewise.
4927         * config/sh/sh.c: Likewise.
4928         * config/sparc/sparc.c: Likewise.
4929         * config/spu/spu.c: Likewise.
4930         * config/stormy16/stormy16.c: Likewise.
4931         * config/tilegx/tilegx.c: Likewise.
4932         * config/tilepro/tilepro.c: Likewise.
4933         * config/xtensa/xtensa.c: Likewise.
4934
4935 2013-11-12  Adam Butcher  <adam@jessamine.co.uk>
4936
4937         * tree.c (grow_tree_vec_stat): New function ...
4938         * tree.h (grow_tree_vec_stat) (grow_tree_vec): ... and its declaration
4939         and macro front-end.
4940
4941 2013-11-12  Marek Polacek  <polacek@redhat.com>
4942
4943         * final.c (update_alignments): Initialize label to NULL_RTX.
4944
4945 2013-11-12  Jeff Law  <law@redhat.com>
4946
4947         * gimple-ssa-isolate-paths.c (check_loadstore): New function.
4948         (insert_trap_and_remove_trailing_statements): New argument OP which
4949         is the NULL pointer.  Emit the trap after the load/store through
4950         the NULL pointer.  Simplify the RHS of a store through a NULL pointer
4951         when trivial to do so.
4952         (isolate_path): Corresponding changes.
4953         (gimple_ssa_isolate_erroneous_path): Likewise.
4954
4955 2013-11-12  Teresa Johnson  <tejohnson@google.com>
4956             Jan Hubicka  <jh@suse.cz>
4957
4958         * predict.c (drop_profile): New function.
4959         (handle_missing_profiles): Ditto.
4960         (counts_to_freqs): Don't overwrite estimated frequencies
4961         when function has no profile counts.
4962         * predict.h (handle_missing_profiles): Declare.
4963         * tree-inline.c (freqs_to_counts): New function.
4964         (copy_cfg_body): Invoke freqs_to_counts as needed.
4965         * tree-profile.c (tree_profiling): Invoke handle_missing_profiles.
4966
4967 2013-11-12  H.J. Lu  <hongjiu.lu@intel.com>
4968
4969         PR target/59088
4970         * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL):
4971         Set for m_HASWELL.
4972         (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Set for m_HASWELL.
4973
4974 2013-11-12  H.J. Lu  <hongjiu.lu@intel.com>
4975
4976         PR target/59084
4977         * config/i386/i386.c (ix86_option_override_internal): Check
4978         X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL and
4979         X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL for
4980         MASK_AVX256_SPLIT_UNALIGNED_LOAD and
4981         MASK_AVX256_SPLIT_UNALIGNED_STORE.
4982
4983         * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
4984         Clear m_COREI7_AVX and update comments.
4985         (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Likewise.
4986
4987 2013-11-12  Martin Jambor  <mjambor@suse.cz>
4988
4989         PR rtl-optimization/10474
4990         * ira.c (interesting_dest_for_shprep): New function.
4991         (split_live_ranges_for_shrink_wrap): Likewise.
4992         (find_moveable_pseudos): Move calculation of dominance info,
4993         df_analysios and the final anlyses to...
4994         (ira): ...here, call split_live_ranges_for_shrink_wrap.
4995
4996 2013-11-12  Bin Cheng  <bin.cheng@arm.com>
4997
4998         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Refactor the code.
4999         Handle type conversion.
5000
5001 2013-11-11  Martin Liska  <marxin.liska@gmail.com>
5002             Jan Hubicka  <jh@suse.cz>
5003
5004         * cgraph.c (dump_cgraph_node): Profile dump added.
5005         * cgraph.h (struct cgraph_node): New time profile variable added.
5006         * cgraphclones.c (cgraph_clone_node): Time profile is cloned.
5007         * gcov-io.h (gcov_type): New profiler type introduced.
5008         * ipa-profile.c (lto_output_node): Streaming for time profile added.
5009         (input_node): Time profiler is read from LTO stream.
5010         * predict.c (maybe_hot_count_p): Hot prediction changed.
5011         * profile.c (instrument_values): New case for time profiler added.
5012         (compute_value_histograms): Read of time profile.
5013         * tree-pretty-print.c (dump_function_header): Time profiler is dumped.
5014         * tree-profile.c (init_ic_make_global_vars): Time profiler
5015         function added.
5016         (gimple_init_edge_profiler): TP function instrumentation.
5017         (gimple_gen_time_profiler): New.
5018         * value-prof.c (gimple_add_histogram_value): Support for time profiler
5019         added.
5020         (dump_histogram_value): TP type added to dumps.
5021         (visit_hist): More sensitive check that takes TP into account.
5022         (gimple_find_values_to_profile): TP instrumentation.
5023         * value-prof.h (hist_type): New histogram type added.
5024         (struct histogram_value_t): Pointer to struct function added.
5025         * libgcc/Makefile.in: New GCOV merge function for TP added.
5026         * libgcov.c: function_counter variable introduced.
5027         (_gcov_merge_time_profile): New.
5028         (_gcov_time_profiler): New.
5029
5030 2013-11-11  Marc Glisse  <marc.glisse@inria.fr>
5031             Jeff Law  <law@redhat.com>
5032
5033         * tree-ssa-alias.c (stmt_kills_ref_p_1): Use
5034         ao_ref_init_from_ptr_and_size for builtins.
5035
5036 2013-11-11  Uros Bizjak  <ubizjak@gmail.com>
5037             H.J. Lu  <hongjiu.lu@intel.com>
5038
5039         PR target/58853
5040         * config/i386/x86-tune.def
5041         (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Rename from
5042         TARGET_MISALIGNED_MOVE_STRING_PROLOGUES.
5043         * config/i386/i386.h
5044         (TARGET_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Rename from
5045         TARGET_MISALIGNED_MOVE_STRING_PROLOGUES_EPILOGUES.  Update for renamed
5046         X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES.
5047         * config/i386/i386.c (ix86_expand_set_or_movmem): Use
5048         TARGET_MISALIGNED_MOVE_STRING_PRO_EPILOGUES to calculate
5049         misaligned_prologue_used.  Check that
5050         desired_aling <= epilogue_size_needed.
5051
5052 2013-11-11  Cong Hou  <congh@google.com>
5053
5054         PR tree-optimization/59050
5055         * tree-vect-data-refs.c (comp_dr_addr_with_seg_len_pair): Bug fix.
5056
5057 2013-11-11  Joern Rennecke  <joern.rennecke@embecosm.com>
5058
5059         PR middle-end/59049
5060         * expmed.c (emit_store_flag): Fail for const-const comparison.
5061
5062 2013-11-11  Tristan Gingold  <gingold@adacore.com>
5063             Eric Botcazou  <ebotcazou@adacore.com>
5064
5065         * tree.h (CONSTRUCTOR_NO_CLEARING): Define.
5066         * tree-core.h (CONSTRUCTOR_NO_CLEARING): Document it.
5067         * tree.def (CONSTRUCTOR): Likewise.
5068         * doc/generic.texi (CONSTRUCTOR): Likewise.  Update description.
5069         * gimplify.c (gimplify_init_constructor): Do not clear the object when
5070         the constructor is incomplete and CONSTRUCTOR_NO_CLEARING is set.
5071
5072 2013-11-11  Basile Starynkevitch  <basile@starynkevitch.net>
5073
5074         * toplev.c (toplev_main): Move PLUGIN_FINISH invocation before
5075         diagnostic_finish.
5076
5077 2013-11-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5078
5079         * config/arm/arm.c (arm_new_rtx_costs): Return after handling
5080         comparisons.
5081
5082 2013-11-11  Joern Rennecke  <joern.rennecke@embecosm.com>
5083
5084         * config/arc/arc.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
5085
5086 2013-11-08  Jeff Law  <law@redhat.com>
5087
5088         * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
5089         threading paths first, then perform PHI node checks if applicable.
5090
5091 2013-11-10  Karlson2k  <k2k@narod.ru>
5092             Kai Tietz  <ktietz@redhat.com>
5093
5094         PR plugin/52872
5095         * configure.ac: Adding for exported symbols check
5096         and for rdynamic-check executable-extension.
5097         * configure: Regenerated.
5098
5099 2013-11-10  Uros Bizjak  <ubizjak@gmail.com>
5100
5101         * mode-switching.c (optimize_mode_switching): Mark block as
5102         nontransparent, if last_mode at block exit is different from no_mode.
5103
5104 2013-11-09  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
5105
5106         * function.c (NAME__MAIN): Move to...
5107         * cfgexpand.c (NAME__MAIN): ...here.
5108
5109 2013-11-09  Richard Sandiford  <rdsandiford@googlemail.com>
5110
5111         * target.def (can_use_doloop_p): New hook.
5112         * doc/tm.texi.in (TARGET_CAN_USE_DOLOOP_P): Add.
5113         * doc/tm.texi: Regenerate.
5114         * doc/md.texi (doloop_begin, doloop_end): Update documentation.
5115         * hooks.h (hook_bool_dint_dint_uint_true): Declare.
5116         * hooks.c (hook_bool_dint_dint_uint_true): New function.
5117         * targhooks.h (can_use_doloop_if_innermost): Declare.
5118         * targhooks.c (can_use_doloop_if_innermost): New function.
5119         * target.h: Include double-int.h.
5120         * loop-doloop.c (doloop_optimize): Call targetm.can_use_doloop_p.
5121         Remove iteration count, maximum iteration count, loop depth and
5122         enter-at-top inputs from doloop_begin and doloop_end.
5123         * config/arc/arc.md (doloop_begin, doloop_end): Update for new
5124         interface.
5125         * config/arc/arc.c (arc_can_use_doloop_p): New function.
5126         (TARGET_CAN_USE_DOLOOP_P): Define.
5127         * config/arm/thumb2.md (doloop_end): Update for new interface.
5128         * config/arm/arm.c (TARGET_CAN_USE_DOLOOP_P): Define.
5129         * config/bfin/bfin.md (doloop_end): Update for new interface.
5130         * config/bfin/bfin.c (bfin_can_use_doloop_p): New function.
5131         (TARGET_CAN_USE_DOLOOP_P): Define.
5132         * config/c6x/c6x.md (doloop_end): Update for new interface.
5133         * config/ia64/ia64.md (doloop_end): Update for new interface.
5134         * config/ia64/ia64.c (TARGET_CAN_USE_DOLOOP_P): Define.
5135         * config/mep/mep.md (doloop_begin, doloop_end): Update for new
5136         interface.
5137         * config/mep/mep.c (mep_emit_doloop): Likewise.
5138         (TARGET_CAN_USE_DOLOOP_P): Define.
5139         * config/rs6000/rs6000.md (doloop_end): Update for new interface.
5140         * config/rs6000/rs6000.c (TARGET_CAN_USE_DOLOOP_P): Define.
5141         * config/s390/s390.md (doloop_end): Update for new interface.
5142         * config/sh/sh.md (doloop_end): Likewise.
5143         * config/spu/spu.md (doloop_end): Likewise.
5144         * config/spu/spu.c (TARGET_CAN_USE_DOLOOP_P): Define.
5145         * config/tilegx/tilegx.md (doloop_end): Update for new interface.
5146         * config/tilegx/tilegx.c (TARGET_CAN_USE_DOLOOP_P): Define.
5147         * config/tilepro/tilepro.md (doloop_end): Update for new interface.
5148         * config/tilepro/tilepro.c (TARGET_CAN_USE_DOLOOP_P): Define.
5149         * config/v850/v850.md (doloop_begin, doloop_end): Update for new
5150         interface.
5151         * config/v850/v850.c (TARGET_CAN_USE_DOLOOP_P): Define.
5152
5153 2013-11-08  H.J. Lu  <hongjiu.lu@intel.com>
5154
5155         PR other/59055
5156         * doc/extend.texi: Move Cilk Plus Builtins node before Other
5157         Builtins node.
5158
5159 2013-11-08  Andrew MacLeod  <amacleod@redhat.com>
5160             Joseph Myers  <joseph@codesourcery.com>
5161
5162         * ginclude/stdatomic.h: New file.
5163         * Makefile.in (USER_H): Add stdatomic.h.
5164
5165 2013-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5166
5167         * config/arm/arm.c (arm_new_rtx_costs): Break after handling
5168         comparisons.
5169
5170 2013-11-08  Jeff Law  <law@redhat.com>
5171
5172         * tree-ssa-threadupdate.h (delete_thread_path): Declare.
5173         * tree-ssa-threadupdate.c (delete_thread_path): New function.
5174         (ssa_redirect_edges, thread_block_1): Use it.
5175         (thread_through_loop_header, mark_threaded_blocks): Likewise.
5176         (thread_through_all_blocks, register_jump_thread): Likewise.
5177         * tree-ssa-threadedge.c (thread_across_edge): Likewise.
5178
5179 2013-11-08  James Greenhalgh  <james.greenhalgh@arm.com>
5180
5181         * config/arm/aarch-common.c
5182         (search_term): New typedef.
5183         (shift_rtx_costs): New array.
5184         (arm_rtx_shift_left_p): New.
5185         (arm_find_sub_rtx_with_search_term): Likewise.
5186         (arm_find_sub_rtx_with_code): Likewise.
5187         (arm_early_load_addr_dep): Add sanity checking.
5188         (arm_no_early_alu_shift_dep): Likewise.
5189         (arm_no_early_alu_shift_value_dep): Likewise.
5190         (arm_no_early_mul_dep): Likewise.
5191         (arm_no_early_store_addr_dep): Likewise.
5192
5193 2013-11-08  Richard Biener  <rguenther@suse.de>
5194
5195         PR tree-optimization/59047
5196         * tree-predcom.c (ref_at_iteration): Handle bitfield accesses properly.
5197
5198 2013-11-08  Ilya Enkovich  <ilya.enkovich@intel.com>
5199
5200         * common.opt (fcheck-pointer-bounds): Move to ...
5201         * c-family/c.opt: ... here.
5202         * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): Remove.
5203         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CHKP_SUPPORTED.
5204         * langhooks.h (lang_hooks): Remove chkp_supported field.
5205         * toplev.c (process_options): Remove chkp_supported check.
5206
5207 2013-11-08  Richard Biener  <rguenther@suse.de>
5208
5209         PR tree-optimization/59038
5210         PR tree-optimization/58955
5211         * tree-loop-distribution.c (pg_add_dependence_edges): Revert
5212         previous change.  Handle known dependences correctly.
5213
5214 2013-11-08  Tom de Vries  <tom@codesourcery.com>
5215
5216         * config/rs6000/t-xilinx: Remove duplicate contents.
5217
5218 2013-11-07  Andrew MacLeod  <amacleod@redhat.com>
5219             Joseph Myers  <joseph@codesourcery.com>
5220
5221         * tree-core.h (enum cv_qualifier): Add TYPE_QUAL_ATOMIC.
5222         (enum tree_index): Add TI_ATOMICQI_TYPE, TI_ATOMICHI_TYPE,
5223         TI_ATOMICSI_TYPE, TI_ATOMICDI_TYPE and TI_ATOMICTI_TYPE.
5224         (struct tree_base): Add atomic_flag field.
5225         * tree.h (TYPE_ATOMIC): New accessor macro.
5226         (TYPE_QUALS, TYPE_QUALS_NO_ADDR_SPACE): Add TYPE_QUAL_ATOMIC.
5227         (TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC): New macro.
5228         (atomicQI_type_node, atomicHI_type_node, atomicSI_type_node)
5229         (atomicDI_type_node, atomicTI_type_node): New macros for type nodes.
5230         * tree.c (set_type_quals): Set TYPE_ATOMIC.
5231         (find_atomic_core_type): New function.
5232         (build_qualified_type): Adjust alignment for qualified types.
5233         (build_atomic_base): New function
5234         (build_common_tree_nodes): Build atomicQI_type_node,
5235         atomicHI_type_node, atomicSI_type_node, atomicDI_type_node and
5236         atomicTI_type_node.
5237         * print-tree.c (print_node): Print atomic qualifier.
5238         * tree-pretty-print.c (dump_generic_node): Print atomic type attribute.
5239         * target.def (atomic_assign_expand_fenv): New hook.
5240         * doc/tm.texi.in (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New @hook.
5241         * doc/tm.texi: Regenerate.
5242         * targhooks.c (default_atomic_assign_expand_fenv): New function.
5243         * targhooks.h (default_atomic_assign_expand_fenv): Declare.
5244         * sync-builtins.def (__atomic_feraiseexcept): New built-in function.
5245         * config/i386/i386-builtin-types.def (VOID_FTYPE_PUSHORT): New
5246         function type.
5247         * config/i386/i386.c (enum ix86_builtins): Add
5248         IX86_BUILTIN_FNSTENV, IX86_BUILTIN_FLDENV, IX86_BUILTIN_FNSTSW and
5249         IX86_BUILTIN_FNCLEX.
5250         (bdesc_special_args): Add __builtin_ia32_fnstenv,
5251         __builtin_ia32_fldenv, __builtin_ia32_fnstsw and __builtin_ia32_fnclex.
5252         (ix86_expand_builtin): Handle the new built-in functions.
5253         (ix86_atomic_assign_expand_fenv): New function.
5254         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New macro.
5255         * config/i386/i386.md (UNSPECV_FNSTENV, UNSPECV_FLDENV)
5256         (UNSPECV_FNSTSW, UNSPECV_FNCLEX): New unspecs.
5257         (fnstenv, fldenv, fnstsw, fnclex): New insns.
5258
5259 2013-11-07  Steve Ellcey  <sellcey@mips.com>
5260
5261         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add fp64 directory.
5262         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add -mfp64 flag.
5263         (MULTILIB_DIRNAMES): Add fp64 directory.
5264         (MULTILIB_EXCEPTIONS): Add new exclusions.
5265
5266 2013-11-07  Aldy Hernandez  <aldyh@redhat.com>
5267
5268         * gimplify.c (gimple_regimplify_operands): Do not set
5269         SSA_NAME_DEF_STMT.
5270         * graphite-sese-to-poly.c (remove_simple_copy_phi): Same.
5271         (rewrite_close_phi_out_of_ssa): Same.
5272         (rewrite_phi_out_of_ssa): Same.
5273         (rewrite_degenerate_phi): Same.
5274         (handle_scalar_deps_crossing_scop_limits): Same.
5275         * tree-if-conv.c (predicate_scalar_phi): Same.
5276         * tree-parloops.c (create_loads_for_reductions): Same.
5277         (create_final_loads_for_reduction): Same.
5278         (create_loads_and_stores_for_name): Same.
5279         (transform_to_exit_first_loop): Same.
5280         (create_parallel_loop): Same.
5281         * tree-ssa-loop-im.c
5282         (move_computations_dom_walker::before_dom_children): Same.
5283         * tree-ssa-loop-manip.c (rewrite_phi_with_iv): Same.
5284         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Same.
5285         * tree-ssa-propagate.c (substitute_and_fold): Same.
5286         * tree-vect-loop.c (vect_finalize_reduction): Same.
5287         * tree-vect-stmts.c (vectorizable_call): Same.
5288
5289 2013-11-07  Mike Stump  <mikestump@comcast.net>
5290
5291         * config/pdp11/pdp11.c: Include dbxout.h.
5292         * config/picochip/picochip.c: Likewise.
5293
5294 2013-11-07  Cong Hou  <congh@google.com>
5295
5296         PR tree-optimization/56764
5297         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
5298         Combine alias checks if it is possible to amortize the runtime
5299         overhead.  Return the number of alias checks after merging.
5300         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
5301         Use the function vect_create_cond_for_alias_checks () to check
5302         the number of alias checks.
5303
5304 2013-11-07  Jeff Law  <law@redhat.com>
5305
5306         * varpool.c (ctor_for_folding): Fix typo in comment.
5307
5308 2013-11-07  Joern Rennecke  <joern.rennecke@embecosm.com>
5309
5310         * config/arc/arc.c (arc_ifcvt): Use commutativity, e.g.:
5311         reg_a := reg_b + reg_a  ==>  reg_a := reg_a + reg_b
5312
5313 2013-11-07  Jeff Law  <law@redhat.com>
5314
5315         * doc/invoke.texi (-fisolate-erroneous-paths): Document.
5316
5317         * gimple-ssa-isolate-paths.c (gate_isolate_erroneous_paths):
5318         No longer check if we have __builtin_trap, assume it's available.
5319
5320 2013-11-07  Diego Novillo  <dnovillo@google.com>
5321
5322         * attribs.c (lookup_scoped_attribute_spec): Make static.
5323         (get_attribute_namespace): Likewise.
5324         * builtins.c (more_const_call_expr_args_p): Move from tree.h.
5325         (validate_arglist): Move earlier in the file. Make static.
5326         (expand_stack_restore): Move from stmt.c
5327         (expand_stack_save): Move from stmt.c
5328         (rewrite_call_expr_array): Move earlier in the file.
5329         (rewrite_call_expr_valist): Likewise.
5330         * cfgexpand.c: Include hard-reg-set.h before tree.h
5331         Include recog.h.
5332         Include output.h.
5333         (expand_asm_loc): Move from stmt.c.
5334         (n_occurrences): Move from stmt.c.
5335         (check_operand_nalternatives): Move from stmt.c.
5336         (tree_conflicts_with_clobbers_p): Move from stmt.c.
5337         (expand_asm_operands): Move from stmt.c
5338         (expand_asm_stmt): Move from stmt.c
5339         (expand_computed_goto): Move from stmt.c
5340         (expand_goto): Move from stmt.c
5341         (expand_null_return_1): Move from stmt.c
5342         (expand_null_return): Move from stmt.c
5343         (expand_value_return): Move from stmt.c
5344         (expand_return): Move from stmt.c
5345         (expand_main_function): Move from function.c
5346         (stack_protect_prologue): Move from function.c
5347         * cgraphclones.c (build_function_type_skip_args): Move from tree.c.
5348         (build_function_decl_skip_args): Move from tree.c.
5349         * explow.c (tree_expr_size): Move from tree.c.
5350         * expr.c (addr_expr_of_non_mem_decl_p): Remove.
5351         (fields_length): Move from tree.c.
5352         * fold-const.c (size_low_cst): Move from tree.c.
5353         (tree_expr_nonzero_warnv_p): Make static. Move earlier in the file.
5354         (tree_expr_nonzero_p): Make static. Move earlier in the file.
5355         (fold_build3_initializer_loc): Remove.
5356         (tree_invalid_nonnegative_warnv_p): Make static.
5357         * function.c (expand_main_function): Move to cfgexpand.c.
5358         (stack_protect_prologue): Move to cfgexpand.c.
5359         (set_insn_locations): Move earlier in the file.
5360         * gimple-fold.c: Include langhooks.h.
5361         (truth_type_for): Move from tree.c.
5362         * print-tree.c (print_vec_tree): Remove.
5363         * stmt.c (expand_computed_goto): Move to cfgexpand.c.
5364         (expand_goto): Move to cfgexpand.c.
5365         (n_occurrences): Move to cfgexpand.c.
5366         (expand_asm_loc): Move to cfgexpand.c
5367         (tree_conflicts_with_clobbers_p): Move to cfgexpand.c.
5368         (expand_asm_operands): Move to cfgexpand.c.
5369         (expand_asm_stmt): Move to cfgexpand.c.
5370         (check_operand_nalternatives): Move to cfgexpand.c
5371         (expand_null_return): Move to cfgexpand.c.
5372         (expand_value_return): Move to cfgexpand.c.
5373         (expand_null_return_1): Move to cfgexpand.c.
5374         (expand_return): Move to cfgexpand.c.
5375         (expand_stack_save): Move to builtins.c.
5376         (expand_stack_restore): Move to builtins.c
5377         * symtab.c: Include output.h.
5378         (decl_assembler_name_hash): Move from tree.c.
5379         (decl_assembler_name_equal): Move from tree.c.
5380         * trans-mem.c (is_tm_safe_or_pure): Move from tree.h.
5381         * tree-eh.c (in_array_bounds_p): Move from tree.c.
5382         (range_in_array_bounds_p): Move from tree.c.
5383         * tree-object-size.c (fini_object_sizes): Make static.
5384         * tree-ssa-dom.c (iterative_hash_exprs_commutative): Move from tree.h.
5385         * tree-vrp.c (ssa_name_nonnegative_p): Remove.
5386         * tree.c (decl_assembler_name_equal): Move to symtab.c.
5387         (tree_expr_size): Move to explow.c.
5388         (decl_assembler_name_hash): Move to symtab.c.
5389         (real_twop): Remove.
5390         (tree_expr_size): Move to explow.c.
5391         (stabilize_reference_1): Move earlier in the file. Make static.
5392         (omp_remove_redundant_declare_simd_attrs): Remove.
5393         (simple_cst_list_equal): Move earlier in the file. Make static.
5394         (size_low_cst): Move to fold-const.c.
5395         (build_type_no_quals): Remove.
5396         (build_function_type_skip_args): Move to cgraphclones.c.
5397         (build_function_decl_skip_args): Move to cgraphclones.c.
5398         (in_array_bounds_p): Move to tree-eh.c.
5399         (range_in_array_bounds_p): Move to tree-eh.c.
5400         (truth_type_for): Move to gimple-fold.c.
5401         (list_equal_p): Remove.
5402         * tree.h (decl_assembler_name_equal): Remove.
5403         (decl_assembler_name_hash): Remove.
5404         (truth_type_for): Remove.
5405         (build_type_no_quals): Remove.
5406         (build_function_decl_skip_args): Remove.
5407         (in_array_bounds_p): Remove.
5408         (range_in_array_bounds_p): Remove.
5409         (size_low_cst): Remove.
5410         (omp_remove_redundant_declare_simd_attrs): Remove.
5411         (tree_expr_size): Remove.
5412         (fields_length): Remove.
5413         (stabilize_reference_1): Remove.
5414         (expand_goto): Remove.
5415         (expand_stack_save): Remove.
5416         (expand_stack_restore): Remove.
5417         (expand_return): Remove.
5418         (fold_build3_initializer_loc): Remove.
5419         (tree_expr_nonzero_p): Remove.
5420         (tree_invalid_nonnegative_warnv_p): Remove.
5421         (tree_expr_nonzero_warnv_p): Remove.
5422         (fold_builtin_snprintf_chk): Remove.
5423         (validate_arglist): Remove.
5424         (iterative_hash_exprs_commutative): Move to tree-ssa-dom.c.
5425         (simple_cst_list_equal): Remove.
5426         (real_twop): Remove.
5427         (expand_main_function): Remove.
5428         (stack_protect_prologue): Remove.
5429         (print_vec_tree): Remove.
5430         (lookup_scoped_attribute_spec): Remove.
5431         (get_attribute_namespace): Remove.
5432         (expand_computed_goto): Remove.
5433         (expand_asm_stmt): Remove.
5434         (list_equal_p): Remove.
5435         (ssa_name_nonnegative_p): Remove.
5436         (fini_object_sizes): Remove.
5437         (addr_expr_of_non_mem_decl_p): Remove.
5438         (is_tm_safe_or_pure): Move to trans-mem.c.
5439         (more_const_call_expr_args_p): Remove.
5440         (save_vtable_map_decl): Remove.
5441
5442 2013-11-07  Thomas Schwinge  <thomas@codesourcery.com>
5443
5444         * doc/sourcebuild.texi (Top Level) <lto-plugin>: GNU ld can use
5445         linker plugins, too.
5446
5447         * config/arc/arc.h (LINK_COMMAND_SPEC): For -ftree-parallelize-loops=*,
5448         link to libgomp and its dependencies.
5449         * config/ia64/hpux.h (LIB_SPEC): Likewise.
5450         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
5451         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
5452         * gcc.c (GOMP_SELF_SPECS): Update comment about libgomp's dependencies.
5453
5454 2013-11-07  Jakub Jelinek  <jakub@redhat.com>
5455
5456         * tree-ssa-loop-niter.c: Include tree-ssanames.h.
5457         (determine_value_range): Add loop argument.  Use get_range_info to
5458         improve range.
5459         (bound_difference): Adjust caller.
5460
5461 2013-11-07  Richard Biener  <rguenther@suse.de>
5462             Jakub Jelinek  <jakub@redhat.com>
5463
5464         * tree-vrp.c (find_assert_locations): Pre-seed live bitmaps for loop
5465         latches from header PHI arguments from the latch edge.
5466
5467 2013-11-07  Paolo Carlini  <paolo.carlini@oracle.com>
5468
5469         PR c++/58176
5470         * varasm.c (output_constant): Handle NULLPTR_TYPE.
5471
5472 2013-11-07  H.J. Lu  <hongjiu.lu@intel.com>
5473
5474         * config/i386/i386.c (ix86_expand_set_or_movmem): Don't set
5475         misaligned_prologue_used when it has been set.
5476
5477 2013-11-07  Yury Gribov  <y.gribov@samsung.com>
5478             Jakub Jelinek  <jakub@redhat.com>
5479
5480         PR sanitizer/59029
5481         * asan.c (get_mem_refs_of_builtin_call): Allow
5482         integer literals as addresses in instrumented builtins.
5483
5484 2013-11-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5485
5486         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
5487         Explain why plus_constant is not used.
5488
5489 2013-11-07  Richard Biener  <rguenther@suse.de>
5490
5491         * tree-ssa-ccp.c (canonicalize_float_value): Rename to ...
5492         (canonicalize_value): ... this.  Also handle stripping of
5493         TREE_OVERFLOW.
5494         (get_value, set_lattice_value, get_value_for_expr): Adjust.
5495         * gimple-fold.c (canonicalize_constructor_val): Strip TREE_OVERFLOW.
5496         * tree-ssa-threadedge.c (set_ssa_name_value): Likewise.
5497
5498 2013-11-07  Richard Biener  <rguenther@suse.de>
5499
5500         * tree-dfa.c (get_ref_base_and_extent): Fix casting.
5501
5502 2013-11-07  H.J. Lu  <hongjiu.lu@intel.com>
5503
5504         PR target/59034
5505         * config/i386/i386.md (push peepholer/splitter): Use Pmode
5506         with stack_pointer_rtx.
5507
5508 2013-11-07  Bin Cheng  <bin.cheng@arm.com>
5509
5510         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Check equality
5511         using operand_equal_p.
5512
5513 2013-11-07  Bin Cheng  <bin.cheng@arm.com>
5514
5515         * tree-ssa-loop-ivopts.c (alloc_iv): Lower address expressions.
5516         * tree-affine.c (get_inner_reference_aff): Return base.
5517         * tree-affine.h (get_inner_reference_aff): Change prototype.
5518
5519 2013-11-06  Tobias Burnus  <burnus@net-b.de>
5520
5521         * doc/invoke.texi (Wdate-time): Fix typo.
5522
5523 2013-11-06  Oleg Endo  <olegendo@gcc.gnu.org>
5524
5525         * config/sh/sh.md (addsf3, divsf3, divsf3_i, rsqrtsf2, cmpgtdf_t,
5526         cmpeqdf_t, *ieee_ccmpeqdf_t, negdf2, sqrtdf2, absdf2): Use
5527         fp_arith_reg_operand instead of arith_reg_operand.
5528
5529 2013-11-06  Oleg Endo  <olegendo@gcc.gnu.org>
5530
5531         * config/sh/sh.md (adddi3): Remove empty constraints.
5532         Remove can_create_pseudo_p and arith_reg_operand check.
5533         (adddi3_compact, subdi3_compact, *negdi2): Remove constraints.
5534         Split before reload.
5535
5536 2013-11-06  Jeff Law  <law@redhat.com>
5537             Tom Tromey  <tromey@redhat.com>
5538
5539         * gdbinit.in: Disable strict type checking.
5540
5541 2013-11-06  Vladimir Makarov  <vmakarov@redhat.com>
5542
5543         * tree-pass.h (make_pass_live_range_shrinkage): New external.
5544         * timevar.def (TV_LIVE_RANGE_SHRINKAGE): New.
5545         * sched-rgn.c (gate_handle_live_range_shrinkage): New.
5546         (rest_of_handle_live_range_shrinkage): Ditto
5547         (class pass_live_range_shrinkage): Ditto.
5548         (pass_data_live_range_shrinkage): Ditto.
5549         (make_pass_live_range_shrinkage): Ditto.
5550         * sched-int.h (initialize_live_range_shrinkage): New prototype.
5551         (finish_live_range_shrinkage): Ditto.
5552         * sched-deps.c (create_insn_reg_set): Make void return value.
5553         * passes.def: Add pass_live_range_shrinkage.
5554         * ira.c (update_equiv_regs): Don't move if flag_live_range_shrinkage.
5555         * haifa-sched.c (live_range_shrinkage_p): New.
5556         (initialize_live_range_shrinkage, finish_live_range_shrinkage):
5557         New functions.
5558         (rank_for_schedule): Add code for pressure relief through live
5559         range shrinkage.
5560         (schedule_insn): Print more debug info.
5561         (sched_init): Setup SCHED_PRESSURE_WEIGHTED for pressure relief
5562         through live range shrinkage.
5563         * doc/invoke.texi (-flive-range-shrinkage): New.
5564         * common.opt (flive-range-shrinkage): New.
5565
5566 2013-11-06  Uros Bizjak  <ubizjak@gmail.com>
5567
5568         PR target/59021
5569         * config/i386/i386.c (ix86_avx_u128_mode_needed): Require
5570         AVX_U128_DIRTY mode for call_insn RTXes that use AVX256 registers.
5571         (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY mode for call_insn
5572         RTXes that return in AVX256 register.
5573
5574 2013-11-06  Richard Biener  <rguenther@suse.de>
5575
5576         PR tree-optimization/58653
5577         * tree-predcom.c (ref_at_iteration): Rewrite to generate a MEM_REF.
5578         (prepare_initializers_chain): Adjust.
5579
5580 2013-11-06  Andrew MacLeod  <amacleod@redhat.com>
5581
5582         * gimple.h (block_in_transaction): Move to basic-block.h and rename.
5583         (gimple_in_transaction): Use bb_in_transaction.
5584         * basic-block.h (bb_in_transaction): Relocate here and rename.
5585         * tree-ssa-loop-im.c (execute_sm): Use bb_in_transaction.
5586
5587 2013-11-06  Richard Biener  <rguenther@suse.de>
5588
5589         * tree.c (drop_tree_overflow): New function.
5590         * tree.h (drop_tree_overflow): Declare.
5591         * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW.
5592         * tree-vrp.c (range_int_cst_singleton_p): Use
5593         is_overflow_infinity instead of testing TREE_OVERFLOW.
5594         (extract_range_from_assert): Likewise.
5595         (zero_nonzero_bits_from_vr): Likewise.
5596         (extract_range_basic): Likewise.
5597         (register_new_assert_for): Use drop_tree_overflow.
5598         (vrp_visit_phi_node): Likewise.
5599
5600 2013-11-06  Eric Botcazou  <ebotcazou@adacore.com>
5601
5602         * config/i386/i386.c (ix86_expand_prologue): Optimize stack
5603         checking for leaf functions without dynamic stack allocation.
5604         * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust.
5605         (ia64_expand_prologue): Likewise.
5606         * config/mips/mips.c (mips_expand_prologue): Likewise.
5607         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
5608         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
5609         (sparc_flat_expand_prologue): Likewise.
5610
5611 2013-11-06  James Greenhalgh  <james.greenhalgh@arm.com>
5612
5613         * config/aarch64/arm_neon.h (__ST2_LANE_FUNC): Better model data size.
5614         (__ST3_LANE_FUNC): Likewise.
5615         (__ST4_LANE_FUNC): Likewise.
5616
5617 2013-11-06  Nick Clifton  <nickc@redhat.com>
5618
5619         * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define the
5620         name returned by msp430_mcu_name.
5621         (LIB_SPEC): If a -T option has not been specified then set a
5622         default, mcu-specific, linker script.
5623         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more mcu names.
5624         * config/msp430/msp430.c (msp430x_names): Likewise.
5625         Alpha sort the names for ease of comparison.
5626         (msp430_mcu_name): New function:  Returns a string suitable for
5627         use as a C preprocessor symbol based upon the name of the MCU
5628         being targeted.
5629         (msp430_option_override): Accept msp430x and msp430xv2 as generic
5630         mcu names.
5631         * config/msp430/msp430-protos.h (msp430_mcu_name): Prototype.
5632
5633         * gcc.c (do_spec_1): Do not insert a space after a %* substitution
5634         unless it is the last part of a spec substring.
5635         * doc/invoke.texi (Spec Files): Document space insertion
5636         behaviour of %*.
5637
5638 2013-11-06  Christian Bruel  <christian.bruel@st.com>
5639
5640         * config/sh/sh-mem.cc (sh_expand_cmpnstr, sh_expand_cmpstr):
5641         Factorize probabilities, Use adjust_address instead of
5642         adjust_automodify_address when possible. Enable for optimize.
5643         (sh_expand_strlen): New function.
5644         * config/sh/sh-protos.h (sh_expand_strlen): Declare.
5645         * config/sh/sh.md (strlensi): New pattern.
5646         (UNSPEC_BUILTIN_STRLEN): Define.
5647
5648 2013-11-06  Jakub Jelinek  <jakub@redhat.com>
5649
5650         PR middle-end/58970
5651         * expr.c (get_bit_range): Handle *offset == NULL_TREE.
5652         (expand_assignment): If *bitpos is negative, set *offset
5653         and adjust *bitpos, so that it is not negative.
5654
5655 2013-11-06  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
5656
5657         * config/i386/bdver3.md : Added two additional decoder units
5658         to support issue rate of 4 and remodeled vector unit.
5659         * config/i386/i386.c (ix86_issue_rate): Issue rate for BD
5660         architectures is set to 4.
5661         * config/i386/i386.c (ia32_multipass_dfa_lookahead): DFA
5662         lookahead is set to 4 for BD architectures.
5663
5664 2013-11-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5665
5666         * config/rs6000/rs6000.c (rs6000_option_override_internal):
5667         Remove restriction against use of VSX instructions when generating
5668         code for little endian mode.
5669
5670 2013-11-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5671
5672         * config/rs6000/altivec.md (mulv4si3): Ensure we generate vmulouh
5673         for both big and little endian.
5674         (mulv8hi3): Swap input operands for merge high and merge low
5675         instructions for little endian.
5676
5677 2013-11-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5678
5679         * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Change
5680         define_insn to define_expand that uses even patterns for big
5681         endian and odd patterns for little endian.
5682         (vec_widen_smult_even_v16qi): Likewise.
5683         (vec_widen_umult_even_v8hi): Likewise.
5684         (vec_widen_smult_even_v8hi): Likewise.
5685         (vec_widen_umult_odd_v16qi): Likewise.
5686         (vec_widen_smult_odd_v16qi): Likewise.
5687         (vec_widen_umult_odd_v8hi): Likewise.
5688         (vec_widen_smult_odd_v8hi): Likewise.
5689         (altivec_vmuleub): New define_insn.
5690         (altivec_vmuloub): Likewise.
5691         (altivec_vmulesb): Likewise.
5692         (altivec_vmulosb): Likewise.
5693         (altivec_vmuleuh): Likewise.
5694         (altivec_vmulouh): Likewise.
5695         (altivec_vmulesh): Likewise.
5696         (altivec_vmulosh): Likewise.
5697
5698 2013-11-05  Mike Stump  <mikestump@comcast.net>
5699
5700         * Makefile.in (mostlyclean): Remove c-family objects.
5701
5702 2013-11-05  Ian Lance Taylor  <iant@google.com>
5703
5704         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
5705         If possible, add .cfi directives to record change to bx.
5706         * config/i386/i386.c (ix86_emit_cfi): New function.
5707         * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
5708
5709 2013-11-05  Steven Bosscher  <steven@gcc.gnu.org>
5710
5711         * rtlanal.c (tablejump_p): Expect a JUMP_TABLE_DATA to always follow
5712         immediately after a label for a tablejump pattern.
5713
5714         * config/arm/arm.c (is_jump_table): Remove.
5715         (create_fix_barrier): Use tablejump_p instead.
5716         (arm_reorg): Likewise.
5717         (thumb1_output_casesi): Expect JUMP_TABLE_DATA to always be NEXT_INSN.
5718         (thumb2_output_casesi): Likewise.
5719         * config/aarch64/aarch64.c (aarch64_output_casesi): Likewise.
5720         * config/sh/sh.md (casesi_worker_1, casesi_worker_2,
5721         casesi_shift_media, casesi_load_media): Likewise.
5722         * config/iq2000/iq2000.md: Likewise (in anonymous define_insn).
5723         * config/microblaze/microblaze.md: Likewise.
5724
5725 2013-11-05  Tobias Burnus  <burnus@net-b.de>
5726
5727         * doc/invoke.texi (-Wdate-time): Document.
5728
5729 2013-11-05  Richard Sandiford  <rdsandiford@googlemail.com>
5730
5731         * double-int.c (lshift_double, rshift_double): Remove
5732         SHIFT_COUNT_TRUNCATED handling.
5733
5734 2013-11-05  Jeff Law  <law@redhat.com>
5735
5736         * Makefile.in (OBJS): Add gimple-ssa-isolate-paths.o
5737         * common.opt (-fisolate-erroneous-paths): Add option and documentation.
5738         * gimple-ssa-isolate-paths.c: New file.
5739         * gimple.c (check_loadstore): New function.
5740         (infer_nonnull_range): Moved into gimple.c from tree-vrp.c
5741         Verify OP is in the argument list and the argument corresponding
5742         to OP is a pointer type.  Use operand_equal_p rather than
5743         pointer equality when testing if OP is on the nonnull list.
5744         Use check_loadstore rather than count_ptr_derefs.  Handle
5745         GIMPLE_RETURN statements.
5746         * tree-vrp.c (infer_nonnull_range): Remove.
5747         * gimple.h (infer_nonnull_range): Declare.
5748         * opts.c (default_options_table): Add OPT_fisolate_erroneous_paths.
5749         * passes.def: Add pass_isolate_erroneous_paths.
5750         * timevar.def (TV_ISOLATE_ERRONEOUS_PATHS): New timevar.
5751         * tree-pass.h (make_pass_isolate_erroneous_paths): Declare.
5752         * tree-ssa.c (struct count_ptr_d): Remove.
5753         (count_ptr_derefs, count_uses_and_derefs): Remove.
5754         * tree-ssa.h (count_uses_and_derefs): Remove.
5755
5756 2013-11-05  Jakub Jelinek  <jakub@redhat.com>
5757
5758         PR rtl-optimization/58997
5759         * loop-iv.c (iv_subreg): For IV_UNKNOWN_EXTEND, expect
5760         get_iv_value to be in iv->mode rather than iv->extend_mode.
5761         (iv_extend): Likewise.  Otherwise, if iv->extend != extend,
5762         use lowpart_subreg on get_iv_value before calling simplify_gen_unary.
5763         * loop-unswitch.c (may_unswitch_on): Make sure op[i] is in the right
5764         mode.
5765
5766 2013-11-05  Andrew MacLeod  <amacleod@redhat.com>
5767
5768         * gimple.h: Move some prototypes to gimple-expr.h and add to include
5769         list.
5770         (extract_ops_from_tree, gimple_call_addr_fndecl, is_gimple_reg_type):
5771         Move to gimple-expr.h.
5772         * gimple-expr.h: New file.  Relocate some prototypes from gimple.h.
5773         (types_compatible_p, is_gimple_reg_type, is_gimple_variable,
5774         is_gimple_id, virtual_operand_p, is_gimple_addressable,
5775         is_gimple_constant, extract_ops_from_tree, gimple_call_addr_fndecl):
5776         Relocate here.
5777         * gimple.c (extract_ops_from_tree_1, gimple_cond_get_ops_from_tree,
5778         gimple_set_body, gimple_body, gimple_has_body_p, is_gimple_lvalue,
5779         is_gimple_condexpr, is_gimple_addressable, is_gimple_constant,
5780         is_gimple_address, is_gimple_invariant_address,
5781         is_gimple_ip_invariant_address, is_gimple_min_invariant,
5782         is_gimple_ip_invariant, is_gimple_variable, is_gimple_id,
5783         virtual_operand_p, is_gimple_reg, is_gimple_val, is_gimple_asm_val,
5784         is_gimple_min_lval, is_gimple_call_addr, is_gimple_mem_ref_addr,
5785         gimple_decl_printable_name, useless_type_conversion_p,
5786         types_compatible_p, gimple_can_coalesce_p, copy_var_decl): Move to
5787         gimple-expr.[ch].
5788         * gimple-expr.c: New File.
5789         (useless_type_conversion_p, gimple_set_body, gimple_body,
5790         gimple_has_body_p, gimple_decl_printable_name, copy_var_decl,
5791         gimple_can_coalesce_p, extract_ops_from_tree_1,
5792         gimple_cond_get_ops_from_tree, is_gimple_lvalue, is_gimple_condexpr,
5793         is_gimple_address, is_gimple_invariant_address,
5794         is_gimple_ip_invariant_address, is_gimple_min_invariant,
5795         is_gimple_ip_invariant, is_gimple_reg, is_gimple_val,
5796         is_gimple_asm_val, is_gimple_min_lval, is_gimple_call_addr,
5797         is_gimple_mem_ref_addr): Relocate here.
5798         * Makefile.in (OBJS): Add gimple-expr.o.
5799
5800 2013-11-05  David Malcolm  <dmalcolm@redhat.com>
5801
5802         * gengtype-parse.c (struct_field_seq): Support empty structs.
5803
5804 2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
5805
5806         * config/i386/t-rtems (MULTILIB_MATCHES): Fix option typos.
5807
5808 2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
5809
5810         * config/i386/i386-c.c (ix86_target_macros): Define _SOFT_FLOAT
5811         for !TARGET_80387.
5812         * config/i386/rtemself.h (TARGET_OS_CPP_BUILTINS): Do not define
5813         _SOFT_FLOAT here.
5814         (LONG_DOUBLE_TYPE_SIZE): New define.
5815         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Ditto.
5816
5817 2013-11-05  Paolo Carlini  <paolo.carlini@oracle.com>
5818
5819         PR c++/58724
5820         * doc/extend.texi [visibility ("visibility_type")]: Add example
5821         about visibility attribute on namespace declaration.
5822
5823 2013-11-05  Richard Biener  <rguenther@suse.de>
5824
5825         PR ipa/58492
5826         * passes.def (all_passes): Start with pass_fixup_cfg again.
5827
5828 2013-11-05  Richard Biener  <rguenther@suse.de>
5829
5830         PR tree-optimization/58955
5831         * tree-loop-distribution.c (pg_add_dependence_edges): Fix
5832         edge direction.
5833
5834 2013-11-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5835
5836         * config/rs6000/vector.md (vec_pack_sfix_trunc_v2df): Adjust for
5837         little endian.
5838         (vec_pack_ufix_trunc_v2df): Likewise.
5839
5840 2013-11-05  H.J. Lu  <hongjiu.lu@intel.com>
5841
5842         PR middle-end/58981
5843         * doc/md.texi (@code{movmem@var{m}}): Specify Pmode as mode of
5844         pattern, instead of word_mode.
5845
5846         * expr.c (emit_block_move_via_movmem): Don't use mode wider than
5847         Pmode for size.
5848         (set_storage_via_setmem): Likewise.
5849
5850 2013-11-05  Andrew MacLeod  <amacleod@redhat.com>
5851
5852         * tree-outof-ssa.c (queue_phi_copy_p): Combine phi_ssa_name_p from
5853         gimple.h and the rest of the condition in eliminate_build.
5854         (eliminate_build): Call new routine.
5855         * gimple.h (phi_ssa_name_p): Delete.
5856
5857 2013-11-05  Trevor Saunders  <tsaunders@mozilla.com>
5858
5859         * vec.c (vec_prefix::calculate_allocation): Don't try to handle the
5860         case of no prefix and reserving zero slots, because when that's the
5861         case we'll never get here.
5862         * vec.h (va_heap::reserve): Don't try and handle
5863         vec_prefix::calculate_allocation returning zero because that should
5864         never happen.
5865
5866 2013-11-05  Richard Biener  <rguenther@suse.de>
5867
5868         PR middle-end/58941
5869         * tree-dfa.c (get_ref_base_and_extent): Merge common code
5870         in MEM_REF and TARGET_MEM_REF handling.  Make sure to
5871         process trailing array detection before diving into the
5872         view-converted object (and possibly apply some extra offset).
5873
5874 2013-11-05  Joseph Myers  <joseph@codesourcery.com>
5875
5876         * config/i386/i386.c (ix86_float_exceptions_rounding_supported_p):
5877         New function.
5878         (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): Define.
5879
5880 2013-11-05  Marc Glisse  <marc.glisse@inria.fr>
5881
5882         PR tree-optimization/58958
5883         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Use
5884         get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
5885
5886 2013-11-05  Marc Glisse  <marc.glisse@inria.fr>
5887
5888         * tree-ssa-alias.h (ranges_overlap_p): Handle negative offsets.
5889         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Likewise.
5890
5891 2013-11-05  Jakub Jelinek  <jakub@redhat.com>
5892
5893         PR tree-optimization/58984
5894         * ipa-prop.c (ipa_load_from_parm_agg_1): Add SIZE_P argument,
5895         set *SIZE_P if non-NULL on success.
5896         (ipa_load_from_parm_agg, ipa_analyze_indirect_call_uses): Adjust
5897         callers.
5898         (ipcp_transform_function): Likewise.  Punt if size of access
5899         is different from TYPE_SIZE on v->value's type.
5900
5901 2013-11-05  Tobias Burnus  <burnus@net-b.de>
5902
5903         * doc/invoke.texi (-fopenmp-simd): Document new option.
5904         * gimplify.c (gimplify_body): Accept -fopenmp-simd.
5905         * omp-low.c (execute_expand_omp, execute_lower_omp): Ditto.
5906         * tree.c (attribute_value_equal): Ditto.
5907
5908 2013-11-04  Wei Mi  <wmi@google.com>
5909
5910         * sched-rgn.c (add_branch_dependences): Keep insns in
5911         a SCHED_GROUP at the end of BB to remain their location.
5912
5913 2013-11-04  Wei Mi  <wmi@google.com>
5914
5915         * config/i386/i386.c (memory_address_length): Extract a part
5916         of code to rip_relative_addr_p.
5917         (rip_relative_addr_p): New Function.
5918         (ix86_macro_fusion_p): Ditto.
5919         (ix86_macro_fusion_pair_p): Ditto.
5920         * config/i386/i386.h: Add new tune features about macro-fusion.
5921         * config/i386/x86-tune.def (DEF_TUNE): Ditto.
5922         * doc/tm.texi: Generated.
5923         * doc/tm.texi.in: Ditto.
5924         * haifa-sched.c (try_group_insn): New Function.
5925         (group_insns_for_macro_fusion): Ditto.
5926         (sched_init): Call group_insns_for_macro_fusion.
5927         * target.def: Add two hooks: macro_fusion_p and
5928         macro_fusion_pair_p.
5929
5930 2013-11-04  Kostya Serebryany  <kcc@google.com>
5931
5932         Update to match the changed asan API.
5933         * asan.c (asan_function_start): New function.
5934         (asan_emit_stack_protection): Update the string stored in the
5935         stack red zone to match new API.  Store the PC of the current
5936         function in the red zone.
5937         (asan_global_struct): Update the __asan_global definition to match
5938         the new API.
5939         (asan_add_global): Ditto.
5940         * asan.h (asan_function_start): New prototype.
5941         * final.c (final_start_function): Call asan_function_start.
5942         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v1
5943         to __asan_init_v3.
5944
5945 2013-11-04  Wei Mi  <wmi@google.com>
5946
5947         * config/i386/i386-c.c (ix86_target_macros_internal): Separate
5948         PROCESSOR_COREI7_AVX out from PROCESSOR_COREI7.
5949         * config/i386/i386.c (ix86_option_override_internal): Ditto.
5950         (ix86_issue_rate): Ditto.
5951         (ix86_adjust_cost): Ditto.
5952         (ia32_multipass_dfa_lookahead): Ditto.
5953         (ix86_sched_init_global): Ditto.
5954         (get_builtin_code_for_version): Ditto.
5955         * config/i386/i386.h (enum target_cpu_default): Ditto.
5956         (enum processor_type): Ditto.
5957         * config/i386/x86-tune.def (DEF_TUNE): Ditto.
5958
5959 2013-11-04  Vladimir Makarov  <vmakarov@redhat.com>
5960
5961         PR rtl-optimization/58967
5962         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Remove
5963         !lra_in_progress for mode sizes bigger word.
5964
5965 2013-11-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5966
5967         * config/rs6000/altivec.md (vec_widen_umult_hi_v16qi): Swap
5968         arguments to merge instruction for little endian.
5969         (vec_widen_umult_lo_v16qi): Likewise.
5970         (vec_widen_smult_hi_v16qi): Likewise.
5971         (vec_widen_smult_lo_v16qi): Likewise.
5972         (vec_widen_umult_hi_v8hi): Likewise.
5973         (vec_widen_umult_lo_v8hi): Likewise.
5974         (vec_widen_smult_hi_v8hi): Likewise.
5975         (vec_widen_smult_lo_v8hi): Likewise.
5976
5977 2013-11-04  Ian Lance Taylor  <iant@google.com>
5978
5979         * builtins.def (ATTR_NOTHROWCALL_LEAF_LIST): Define.
5980         * sync-builtins.def: Use ATTR_NOTHROWCALL_LEAF_LIST for all sync
5981         builtins that take pointers.
5982         * lto-opts.c (lto_write_options): Write -fnon-call-exceptions if set.
5983         * lto-wrapper.c (merge_and_complain): Collect OPT_fnon_call_exceptions.
5984         (run_gcc): Pass -fnon-call-exceptions.
5985
5986 2013-11-04  Jakub Jelinek  <jakub@redhat.com>
5987
5988         * optabs.c (expand_vec_perm): Revert one incorrect line from
5989         2013-10-31 change.
5990
5991         PR tree-optimization/58978
5992         * tree-vrp.c (all_imm_uses_in_stmt_or_feed_cond): Don't modify
5993         use_stmt by single_imm_use directly.  Only call single_imm_use
5994         on SSA_NAMEs.
5995
5996 2013-11-04  Vladimir Makarov  <vmakarov@redhat.com>
5997
5998         PR rtl-optimization/58968
5999         * lra-spills.c (return_regno_p): New function.
6000         (lra_final_code_change): Use it.
6001
6002 2013-11-04  Joseph Myers  <joseph@codesourcery.com>
6003
6004         * doc/cpp.texi (__GCC_IEC_559, __GCC_IEC_559_COMPLEX): Document macros.
6005         * target.def (float_exceptions_rounding_supported_p): New hook.
6006         * targhooks.c (default_float_exceptions_rounding_supported_p): New
6007         function.
6008         * targhooks.h (default_float_exceptions_rounding_supported_p): Declare.
6009         * doc/tm.texi.in (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P):
6010         New @hook.
6011         * doc/tm.texi: Regenerate.
6012         * config.gcc (powerpc*-*-linux*): Set extra_objs.
6013         * config/rs6000/rs6000-linux.c: New file.
6014         * config/rs6000/rs6000-protos.h
6015         (rs6000_linux_float_exceptions_rounding_supported_p): Declare.
6016         * config/rs6000/linux.h
6017         (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): New macro.
6018         * config/rs6000/linux64.h
6019         (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): Likewise.
6020         * config/rs6000/t-linux (rs6000-linux.o): New rule.
6021         * config/rs6000/t-linux64 (rs6000-linux.o): Likewise.
6022
6023 2013-11-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6024
6025         * config/rs6000/vsx.md (*vsx_le_perm_store_<mode> for VSX_D):
6026         Replace the define_insn_and_split with a define_insn and two
6027         define_splits, with the split after reload re-permuting the source
6028         register to its original value.
6029         (*vsx_le_perm_store_<mode> for VSX_W): Likewise.
6030         (*vsx_le_perm_store_v8hi): Likewise.
6031         (*vsx_le_perm_store_v16qi): Likewise.
6032
6033 2013-11-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6034
6035         * config/rs6000/vector.md (vec_pack_trunc_v2df):  Adjust for
6036         little endian.
6037
6038 2013-11-04  Jakub Jelinek  <jakub@redhat.com>
6039
6040         PR tree-optimization/58946
6041         * tree-ssa-reassoc.c (maybe_optimize_range_tests): Update all
6042         bbs with bbinfo[idx].op != NULL before all blocks with
6043         bbinfo[idx].op == NULL.
6044
6045 2013-11-04  Richard Sandiford  <rdsandiford@googlemail.com>
6046
6047         * config/avr/avr-log.c (avr_double_int_pop_digit): Delete.
6048         (avr_dump_double_int_hex): Likewise.
6049         (avr_log_vadump): Remove %D and %X handling.
6050         * config/avr/avr.c (avr_double_int_push_digit): Delete.
6051         (avr_map_op_t): Change map from double_int to unsigned int.
6052         (avr_map_op): Update accordingly.
6053         (avr_map, avr_map_metric, avr_has_nibble_0xf, avr_map_decompose)
6054         (avr_move_bits, avr_out_insert_bits, avr_fold_builtin): Operate on
6055         unsigned ints rather than double_ints.
6056
6057 2013-11-03  Marek Polacek  <polacek@redhat.com>
6058
6059         Implement -fsanitize=vla-bound.
6060         * opts.c (common_handle_option): Handle vla-bound.
6061         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE): Define.
6062         * flag-types.h (enum sanitize_code): Add SANITIZE_VLA.
6063         * asan.c (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR.
6064
6065 2013-11-02  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
6066
6067         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Adjust for
6068         little endian.
6069
6070 2013-11-02  Uros Bizjak  <ubizjak@gmail.com>
6071
6072         * config/i386/constraints.md (Ts, Tv): New address constrains.
6073         * config/i386/i386.md (*lea<mode>, *<mode>_<bndcheck>): Use Ts
6074         constraint for address_no_seg_operand.
6075         * config/i386/sse.md (*avx512pf_gatherpf<mode>_mask)
6076         (*avx512pf_gatherpf<mode>, *avx512pf_scatterpf<mode>_mask)
6077         (*avx512pf_scatterpf<mode>, *avx2_gathersi<mode>)
6078         (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>_2)
6079         (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4)
6080         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2)
6081         (*avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2)
6082         (*avx512f_scattersi<mode> *avx512f_scatterdi<mode>): Use Tv
6083         constraint for vsib_address_operand.
6084
6085 2013-11-02  Steven Bosscher  <steven@gcc.gnu.org>
6086
6087         * gcse.c (pre_delete): Remove references to regmove from comments.
6088         * recog.c: (validate_replace_rtx_1): Likewise.
6089         * config/rl78/rl78.c: Likewise.
6090         * config/v850/v850.h: Likewise, and remove unused ENABLE_REGMOVE_PASS.
6091         * common/config/m32r/m32r-common.c: Don't manipulate OPT_fregmove.
6092         * common/config/mmix/mmix-common.c: Likewise.
6093
6094 2013-11-01  Trevor Saunders  <tsaunders@mozilla.com>
6095
6096         * function.c (reorder_blocks): Convert block_stack to a stack_vec.
6097         * gimplify.c (gimplify_compound_lval): Likewise.
6098         * graphite-clast-to-gimple.c (gloog): Likewise.
6099         * graphite-dependences.c (loop_is_parallel_p): Likewise.
6100         * graphite-scop-detection.c (scopdet_basic_block_info): Likewise.
6101         (limit_scop); Likewise.
6102         (build_scops): Likewise.
6103         (dot_scop): Likewise.
6104         * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
6105         (build_scop_drs): Likewise.
6106         (insert_stmts): Likewise.
6107         (insert_out_of_ssa_copy): Likewise.
6108         (remove_phi): Likewise.
6109         (rewrite_commutative_reductions_out_of_ssa_close_phi): Likewise.
6110         * hw-doloop.c (discover_loop): Likewise.
6111         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Likewise.
6112         * tree-dfa.c (dump_enumerated_decls): Likewise.
6113         * tree-if-conv.c (if_convertable_loop_p): Likewise.
6114         * tree-inline.c (tree_function_versioning): Likewise.
6115         * tree-loop-distribution.c (build_rdg): Likewise.
6116         (rdg_flag_vertex_and_dependent): Likewise.
6117         (distribute_loop): Likewise.
6118         * tree-parloops.c (loop_parallel_p): Likewise.
6119         (eliminate_local_variables): Likewise.
6120         (separate_decls_in_region): Likewise.
6121         * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
6122         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Likewise.
6123         * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
6124         * tree-vect-loop.c (vect_analyze_scaler_cycles_1): Likewise.
6125         * tree-vect-patterns.c (vect_pattern_recog): Likewise.
6126         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
6127         (vectorizable_condition): Likewise.
6128
6129 2013-11-01  Uros Bizjak  <ubizjak@gmail.com>
6130
6131         * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): Always define as 0/1.
6132         * configure: Regenerate.
6133         * config/i386/i386.md (*movdi_internal): Change
6134         HAVE_AS_IX86_INTERUNIT_MOVQ to runtime check.
6135         (*movdf_internal): Ditto.
6136         * config/i386/mmx.md (*mov<mode>_internal): Ditto.
6137         * config/i386/sse.md (vec_concatv2di): Output interunit movq
6138         for HAVE_AS_IX86_INTERUNIT_MOVQ targets.
6139
6140 2013-10-31  Robert Suchanek  <Robert.Suchanek@imgtec.com>
6141
6142         * lra-spills.c (assign_spill_hard_regs): Remove statement terminator
6143         after comment.
6144
6145 2013-10-31  David Malcolm  <dmalcolm@redhat.com>
6146
6147         Automated part of renaming of symtab_node_base to symtab_node.
6148
6149         Patch autogenerated by rename_symtab.py from
6150         https://github.com/davidmalcolm/gcc-refactoring-scripts
6151         revision 58bb219cc090b2f4516a9297d868c245495ee622
6152         with ChangeLog entry fixed up by hand.
6153
6154         * cgraph.c (x_cgraph_nodes_queue): Rename symtab_node_base to
6155         symtab_node.
6156         (cgraph_node_for_asm): Likewise.
6157         * cgraph.h (symtab_node_base): Likewise.
6158         (cgraph_node): Likewise.
6159         (varpool_node): Likewise.
6160         (is_a_helper <cgraph_node>::test): Likewise.
6161         (is_a_helper <varpool_node>::test): Likewise.
6162         (symtab_nodes): Likewise.
6163         (symtab_register_node): Likewise.
6164         (symtab_unregister_node): Likewise.
6165         (symtab_remove_node): Likewise.
6166         (symtab_get_node): Likewise.
6167         (symtab_node_for_asm): Likewise.
6168         (symtab_node_asm_name): Likewise.
6169         (symtab_node_name): Likewise.
6170         (symtab_insert_node_to_hashtable): Likewise.
6171         (symtab_add_to_same_comdat_group): Likewise.
6172         (symtab_dissolve_same_comdat_group_list): Likewise.
6173         (dump_symtab_node): Likewise.
6174         (debug_symtab_node): Likewise.
6175         (dump_symtab_base): Likewise.
6176         (verify_symtab_node): Likewise.
6177         (verify_symtab_base): Likewise.
6178         (symtab_used_from_object_file_p): Likewise.
6179         (symtab_alias_ultimate_target): Likewise.
6180         (symtab_resolve_alias): Likewise.
6181         (fixup_same_cpp_alias_visibility): Likewise.
6182         (symtab_for_node_and_aliases): Likewise.
6183         (symtab_nonoverwritable_alias): Likewise.
6184         (availability symtab_node_availability): Likewise.
6185         (symtab_semantically_equivalent_p): Likewise.
6186         (fixup_same_cpp_alias_visibility): Likewise.
6187         (symtab_prevail_in_asm_name_hash): Likewise.
6188         (cgraph): Likewise.
6189         (varpool): Likewise.
6190         (varpool_first_variable): Likewise.
6191         (varpool_next_variable): Likewise.
6192         (varpool_first_static_initializer): Likewise.
6193         (varpool_next_static_initializer): Likewise.
6194         (varpool_first_defined_variable): Likewise.
6195         (varpool_next_defined_variable): Likewise.
6196         (cgraph_first_defined_function): Likewise.
6197         (cgraph_next_defined_function): Likewise.
6198         (cgraph_first_function): Likewise.
6199         (cgraph_next_function): Likewise.
6200         (cgraph_first_function_with_gimple_body): Likewise.
6201         (cgraph_next_function_with_gimple_body): Likewise.
6202         (symtab_alias_target): Likewise.
6203         (symtab_real_symbol_p): Likewise.
6204         (symtab_can_be_discarded): Likewise.
6205         * cgraphbuild.c (mark_address): Likewise.
6206         (mark_load): Likewise.
6207         (mark_store): Likewise.
6208         * cgraphunit.c (decide_is_symbol_needed): Likewise.
6209         (first): Likewise.
6210         (enqueue_node): Likewise.
6211         (referred_to_p): Likewise.
6212         (cgraph_process_same_body_aliases): Likewise.
6213         (analyze_functions): Likewise.
6214         (handle_alias_pairs): Likewise.
6215         (output_weakrefs): Likewise.
6216         (compile): Likewise.
6217         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
6218         * ipa-inline-analysis.c (inline_write_summary): Likewise.
6219         * ipa-prop.c (remove_described_reference): Likewise.
6220         (try_decrement_rdesc_refcount): Likewise.
6221         (ipa_edge_duplication_hook): Likewise.
6222         * ipa-ref.c (ipa_record_reference): Likewise.
6223         (ipa_maybe_record_reference): Likewise.
6224         (ipa_clone_ref): Likewise.
6225         (ipa_clone_references): Likewise.
6226         (ipa_clone_referring): Likewise.
6227         (ipa_find_reference): Likewise.
6228         (ipa_remove_stmt_references): Likewise.
6229         (ipa_clear_stmts_in_references): Likewise.
6230         * ipa-ref.h (symtab_node_base): Likewise.
6231         (ipa_ref): Likewise.
6232         (ipa_record_reference): Likewise.
6233         (ipa_maybe_record_reference): Likewise.
6234         (ipa_clone_references): Likewise.
6235         (ipa_clone_referring): Likewise.
6236         (ipa_clone_ref): Likewise.
6237         (ipa_find_reference): Likewise.
6238         (ipa_remove_stmt_references): Likewise.
6239         (ipa_clear_stmts_in_references): Likewise.
6240         * ipa-reference.c (ipa_reference_write_optimization_summary):
6241         Likewise.
6242         * ipa.c (enqueue_node): Likewise.
6243         (process_references): Likewise.
6244         (walk_polymorphic_call_targets): Likewise.
6245         (symtab_remove_unreachable_nodes): Likewise.
6246         (address_taken_from_non_vtable_p): Likewise.
6247         (comdat_can_be_unshared_p_1): Likewise.
6248         (comdat_can_be_unshared_p): Likewise.
6249         (can_replace_by_local_alias): Likewise.
6250         (function_and_variable_visibility): Likewise.
6251         * is-a.h: Likewise (within example in comment).
6252         * lto-cgraph.c (input_cgraph_opt_summary): Likewise.
6253         (lto_symtab_encoder_encode): Likewise.
6254         (lto_symtab_encoder_delete_node): Likewise.
6255         (lto_symtab_encoder_in_partition_p): Likewise.
6256         (lto_set_symtab_encoder_in_partition): Likewise.
6257         (output_refs): Likewise.
6258         (compute_ltrans_boundary): Likewise.
6259         (output_symtab): Likewise.
6260         (input_node): Likewise.
6261         (input_ref): Likewise.
6262         (input_edge): Likewise.
6263         (input_cgraph_1): Likewise.
6264         (input_refs): Likewise.
6265         (output_cgraph_opt_summary): Likewise.
6266         (input_node_opt_summary): Likewise.
6267         (input_cgraph_opt_section): Likewise.
6268         * lto-section-in.c (lto_free_function_in_decl_state_for_node):
6269         Likewise.
6270         * lto-streamer-out.c (lto_output): Likewise.
6271         (output_symbol_p): Likewise.
6272         (produce_symtab): Likewise.
6273         * lto-streamer.h (lto_encoder_entry): Likewise.
6274         (lto_free_function_in_decl_state_for_node): Likewise.
6275         (lto_symtab_encoder_encode): Likewise.
6276         (lto_symtab_encoder_delete_node): Likewise.
6277         (lto_symtab_encoder_in_partition_p): Likewise.
6278         (lto_set_symtab_encoder_in_partition): Likewise.
6279         (lto_symtab_encoder_lookup): Likewise.
6280         (lsei_node): Likewise.
6281         (lto_symtab_encoder_deref): Likewise.
6282         * symtab.c (symtab_hash): Likewise.
6283         (assembler_name_hash): Likewise.
6284         (symtab_nodes): Likewise.
6285         (hash_node): Likewise.
6286         (eq_node): Likewise.
6287         (hash_node_by_assembler_name): Likewise.
6288         (eq_assembler_name): Likewise.
6289         (insert_to_assembler_name_hash): Likewise.
6290         (unlink_from_assembler_name_hash): Likewise.
6291         (symtab_prevail_in_asm_name_hash): Likewise.
6292         (symtab_register_node): Likewise.
6293         (symtab_insert_node_to_hashtable): Likewise.
6294         (symtab_unregister_node): Likewise.
6295         (symtab_get_node): Likewise.
6296         (symtab_remove_node): Likewise.
6297         (symtab_initialize_asm_name_hash): Likewise.
6298         (symtab_node_for_asm): Likewise.
6299         (symtab_add_to_same_comdat_group): Likewise.
6300         (symtab_dissolve_same_comdat_group_list): Likewise.
6301         (symtab_node_asm_name): Likewise.
6302         (symtab_node_name): Likewise.
6303         (dump_symtab_base): Likewise.
6304         (dump_symtab_node): Likewise.
6305         (dump_symtab): Likewise.
6306         (debug_symtab_node): Likewise.
6307         (verify_symtab_base): Likewise.
6308         (verify_symtab_node): Likewise.
6309         (verify_symtab): Likewise.
6310         (symtab_used_from_object_file_p): Likewise.
6311         (symtab_node_availability): Likewise.
6312         (symtab_alias_ultimate_target): Likewise.
6313         (fixup_same_cpp_alias_visibility): Likewise.
6314         (symtab_resolve_alias): Likewise.
6315         (symtab_for_node_and_aliases): Likewise.
6316         (symtab_for_node_and_aliases): Likewise.
6317         (symtab_nonoverwritable_alias_1): Likewise.
6318         (symtab_nonoverwritable_alias): Likewise.
6319         (symtab_semantically_equivalent_p): Likewise.
6320         * value-prof.c (init_node_map): Likewise.
6321         * varasm.c (find_decl): Likewise.
6322         * varpool.c (varpool_node_for_asm): Likewise.
6323         (varpool_remove_unreferenced_decls): Likewise.
6324
6325 2013-10-31  David Malcolm  <dmalcolm@redhat.com>
6326
6327         Manual part of renaming of symtab_node_base to symtab_node.
6328
6329         * ipa-ref.h (symtab_node): Remove typedef to pointer type, as it
6330         clashes with the preferred name for the base class.
6331         (const_symtab_node): Remove redundant typedef.
6332
6333 2013-10-31  Jakub Jelinek  <jakub@redhat.com>
6334
6335         * optabs.c (expand_vec_perm): Avoid vector mode punning
6336         SUBREGs in SET_DEST.
6337         * expmed.c (store_bit_field_1): Likewise.
6338         * config/i386/sse.md (movdi_to_sse, vec_pack_sfix_trunc_v2df,
6339         vec_pack_sfix_v2df, vec_shl_<mode>, vec_shr_<mode>,
6340         vec_interleave_high<mode>, vec_interleave_low<mode>): Likewise.
6341         * config/i386/i386.c (ix86_expand_vector_move_misalign,
6342         ix86_expand_sse_movcc, ix86_expand_int_vcond, ix86_expand_vec_perm,
6343         ix86_expand_sse_unpack, ix86_expand_args_builtin,
6344         ix86_expand_vector_init_duplicate, ix86_expand_vector_set,
6345         emit_reduc_half, expand_vec_perm_blend, expand_vec_perm_pshufb,
6346         expand_vec_perm_interleave2, expand_vec_perm_pshufb2,
6347         expand_vec_perm_vpshufb2_vpermq,
6348         expand_vec_perm_vpshufb2_vpermq_even_odd, expand_vec_perm_even_odd_1,
6349         expand_vec_perm_broadcast_1, expand_vec_perm_vpshufb4_vpermq2,
6350         ix86_expand_sse2_mulv4si3, ix86_expand_pinsr): Likewise.
6351         (expand_vec_perm_palignr): Likewise.  Modify a copy of *d rather
6352         than *d itself.
6353
6354 2013-10-31  Uros Bizjak  <ubizjak@gmail.com>
6355
6356         * config/i386/i386.c (ix86_expand_sse2_abs): Rename function arguments.
6357         Use gcc_unreachable for unhandled modes.  Do not check results of
6358         expand_simple_binop.  If not expanded to target, move the result.
6359
6360 2013-10-31  Chung-Ju Wu  <jasonwucj@gmail.com>
6361             Shiva Chen  <shiva0217@gmail.com>
6362
6363         * config.gcc (nds32*-*-*): Add nds32 target.
6364         * config/nds32/nds32.c: New file.
6365         * config/nds32/nds32.h: New file.
6366         * config/nds32/nds32.md: New file.
6367         * config/nds32/constants.md: New file.
6368         * config/nds32/constraints.md: New file.
6369         * config/nds32/iterators.md: New file.
6370         * config/nds32/nds32-doubleword.md: New file.
6371         * config/nds32/nds32-intrinsic.md: New file.
6372         * config/nds32/nds32_intrinsic.h: New file.
6373         * config/nds32/nds32-modes.def: New file.
6374         * config/nds32/nds32-multiple.md: New file.
6375         * config/nds32/nds32.opt: New file.
6376         * config/nds32/nds32-opts.h: New file.
6377         * config/nds32/nds32-protos.h: New file.
6378         * config/nds32/nds32-peephole2.md: New file.
6379         * config/nds32/pipelines.md: New file.
6380         * config/nds32/predicates.md: New file.
6381         * config/nds32/t-mlibs: New file.
6382         * common/config/nds32: New directory and files.
6383
6384         * doc/invoke.texi (NDS32 options): Document nds32 specific options.
6385         * doc/md.texi (NDS32 family): Document nds32 specific constraints.
6386         * doc/install.texi (Cross-Compiler-Specific Options): Document
6387         --with-nds32-lib for nds32 target.
6388         * doc/extend.texi (Function Attributes, Target Builtins): Document
6389         nds32 specific attributes.
6390
6391 2013-10-31  Vladimir Makarov  <vmakarov@redhat.com>
6392
6393         * lra-constraints (process_alt_operands): Use the result
6394         elimination register for operand when matching constraints.
6395
6396 2013-10-31  Jakub Jelinek  <jakub@redhat.com>
6397
6398         * tree-vrp.c (maybe_set_nonzero_bits): New function.
6399         (remove_range_assertions): Call it.
6400
6401         * tree.c (tree_ctz): New function.
6402         * tree.h (tree_ctz): New prototype.
6403         * tree-ssanames.h (get_range_info, get_nonzero_bits): Change
6404         first argument from tree to const_tree.
6405         * tree-ssanames.c (get_range_info, get_nonzero_bits): Likewise.
6406         * tree-vectorizer.h (vect_generate_tmps_on_preheader): New prototype.
6407         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader): No longer
6408         static.
6409         * expr.c (highest_pow2_factor): Reimplemented using tree_ctz.
6410         * tree-vect-loop.c (vect_analyze_loop_operations,
6411         vect_transform_loop): Don't force scalar loop for bound just because
6412         number of iterations is unknown, only do it if it is not known to be
6413         a multiple of vectorization_factor.
6414         * builtins.c (get_object_alignment_2): Use tree_ctz on offset.
6415
6416         * gimple-pretty-print.c (dump_ssaname_info): Print newline also
6417         in case of VR_VARYING.  Print get_nonzero_bits if not all ones.
6418         * tree-ssanames.h (struct range_info_def): Add nonzero_bits field.
6419         (set_nonzero_bits, get_nonzero_bits): New prototypes.
6420         * tree-ssa-ccp.c (get_default_value): Use get_range_info to see if
6421         a default def isn't partially constant.
6422         (ccp_finalize): If after IPA, set_range_info if integral SSA_NAME
6423         is known to be partially zero.
6424         (evaluate_stmt): If we'd return otherwise VARYING, use get_range_info
6425         to see if a default def isn't partially constant.
6426         * tree-ssanames.c (set_range_info): Initialize nonzero_bits upon
6427         creation of a range, if VR_RANGE, try to improve nonzero_bits from
6428         the range.
6429         (set_nonzero_bits, get_nonzero_bits): New functions.
6430
6431         * tree-cfg.c (assert_unreachable_fallthru_edge_p): New function.
6432         * tree-cfg.h (assert_unreachable_fallthru_edge_p): New prototype.
6433         * tree-vrp.c (all_imm_uses_in_stmt_or_feed_cond): New function.
6434         (remove_range_assertions): If ASSERT_EXPR_VAR has no other immediate
6435         uses but in the condition and ASSERT_EXPR and the other successor of
6436         the predecessor bb is __builtin_unreachable (), set_range_info of the
6437         ASSERT_EXPR_VAR to the range info of the ASSERT_EXPR's lhs.
6438
6439 2013-10-31  Martin Jambor  <mjambor@suse.cz>
6440
6441         PR rtl-optimization/58934
6442         Revert:
6443         2013-10-30  Martin Jambor  <mjambor@suse.cz>
6444         PR rtl-optimization/10474
6445         * ira.c (find_moveable_pseudos): Do not calculate dominance info
6446         nor df analysis.
6447         (interesting_dest_for_shprep): New function.
6448         (split_live_ranges_for_shrink_wrap): Likewise.
6449         (ira): Calculate dominance info and df analysis. Call
6450         split_live_ranges_for_shrink_wrap.
6451
6452 2013-10-31  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
6453             Yury Gribov  <y.gribov@samsung.com>
6454
6455         PR sanitizer/58543
6456         * asan.c (asan_clear_shadow): Allocate a new vreg for temporary
6457         shadow pointer to avoid clobbering the main one.
6458
6459 2013-10-31  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6460
6461         * lower-subreg.c (resolve_simple_move): Copy REG_INC note.
6462
6463 2013-10-30  Vladimir Makarov  <vmakarov@redhat.com>
6464
6465         PR bootstrap/58933
6466         * ira-color.c (update_costs_from_copies): Add new parameter.  Use
6467         it for calling update_costs_from_allocno.
6468         (assign_hard_reg): Call restore_costs_from_copies only for
6469         !retry_p.  Pass new argument to update_costs_from_copies.
6470         (color_pass): Pass new argument to update_costs_from_copies.
6471         (ira_mark_allocation_change): Ditto.
6472
6473 2013-10-30  Sharad Singhai  <singhai@google.com>
6474
6475         PR middle-end/58134
6476         * opts.c (common_handle_option): Remove deprecated option
6477         -ftree-vectorizer-verbose.
6478         * doc/invoke.texi (Debugging Options): Ditto.
6479         * opts-global.c (handle_common_deferred_options): Ditto.
6480         (dump_remap_tree_vectorizer_verbose): Delete.
6481         * common.opt: Set -ftree-vectorizer-verbose as an ignored option.
6482
6483 2013-10-30  DJ Delorie  <dj@redhat.com>
6484
6485         * config/rx/rx.c (ADD_RX_BUILTIN0): New macro, used for builtins
6486         that take no arguments.
6487
6488 2013-10-30  Joern Rennecke  <joern.rennecke@embecosm.com>
6489
6490         PR other/58545
6491         * reload1.c (update_eliminables_and_spill): New function, broken
6492         out of reload.
6493         (reload): Use it.  Check for frame size change after frame size
6494         alignment, and call update_eliminables_and_spill first if continue-ing.
6495
6496 2013-10-30  Cong Hou  <congh@google.com>
6497
6498         PR target/58762
6499         * config/i386/i386-protos.h (ix86_expand_sse2_abs): New function.
6500         * config/i386/i386.c (ix86_expand_sse2_abs): New function.
6501         * config/i386/sse.md: Add SSE2 support to abs (8/16/32-bit-int).
6502
6503 2013-10-18  Mikael Pettersson  <mikpelinux@gmail.com>
6504
6505         PR rtl-optimization/58369
6506         * reload1.c (compute_reload_subreg_offset): New function.
6507         (choose_reload_regs): Use it to pass endian-correct
6508         offset to subreg_regno_offset.
6509
6510 2013-10-30  Tobias Burnus  <burnus@net-b.de>
6511
6512         PR other/33426
6513         * tree-cfg.c (replace_loop_annotate): Replace warning by
6514         warning_at.
6515
6516 2013-10-30  Jason Merrill  <jason@redhat.com>
6517
6518         * configure.ac (loose_warn): Add -Wno-format if
6519         --disable-build-format-warnings.
6520
6521 2013-10-30  David Malcolm  <dmalcolm@redhat.com>
6522
6523         * cgraphunit.c (analyze_functions): Split symtab_node declarations
6524         onto multiple lines to make things easier for rename_symtab.py.
6525
6526         * symtab.c (symtab_dissolve_same_comdat_group_list): Likewise.
6527         (symtab_semantically_equivalent_p): Likewise.
6528
6529 2013-10-30  Vladimir Makarov  <vmakarov@redhat.com>
6530
6531         PR target/58784
6532         * lra.c (check_rtl): Remove address check before LRA work.
6533
6534 2013-10-30  Marc Glisse  <marc.glisse@inria.fr>
6535
6536         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Look for a
6537         POINTER_PLUS_EXPR in the defining statement.
6538
6539 2013-10-30  Vladimir Makarov  <vmakarov@redhat.com>
6540
6541         * regmove.c: Remove.
6542         * tree-pass.h (make_pass_regmove): Remove.
6543         * timevar.def (TV_REGMOVE): Remove.
6544         * passes.def (pass_regmove): Remove.
6545         * opts.c (default_options_table): Remove entry for regmove.
6546         * doc/passes.texi: Remove regmove pass description.
6547         * doc/invoke.texi (-foptimize-register-move, -fregmove): Remove
6548         options.
6549         (-fdump-rtl-regmove): Ditto.
6550         * common.opt (foptimize-register-move, fregmove): Ignore.
6551         * Makefile.in (OBJS): Remove regmove.o.
6552         * regmove.c: Remove.
6553         * ira-int.h (struct ira_allocno_pref, ira_pref_t): New structure
6554         and type.
6555         (struct ira_allocno) New member allocno_prefs.
6556         (ALLOCNO_PREFS): New macro.
6557         (ira_prefs, ira_prefs_num): New external vars.
6558         (ira_setup_alts, ira_get_dup_out_num, ira_debug_pref): New prototypes.
6559         (ira_debug_prefs, ira_debug_allocno_prefs, ira_create_pref): Ditto.
6560         (ira_add_allocno_pref, ira_remove_pref, ira_remove_allocno_prefs):
6561         Ditto.
6562         (ira_add_allocno_copy_to_list): Remove prototype.
6563         (ira_swap_allocno_copy_ends_if_necessary): Ditto.
6564         (ira_pref_iterator): New type.
6565         (ira_pref_iter_init, ira_pref_iter_cond): New functions.
6566         (FOR_EACH_PREF): New macro.
6567         * ira.c (commutative_constraint_p): Move from ira-conflicts.c.
6568         (ira_get_dup_out_num): Ditto. Rename from get_dup_num.  Modify the
6569         code.
6570         (ira_setup_alts): New function.
6571         (decrease_live_ranges_number): New function.
6572         (ira): Call the above function.
6573         * ira-build.c (ira_prefs, ira_prefs_num): New global vars.
6574         (ira_create_allocno): Initialize allocno prefs.
6575         (pref_pool, pref_vec): New static vars.
6576         (initiate_prefs, find_allocno_pref, ira_create_pref): New
6577         functions.
6578         (add_allocno_pref_to_list, ira_add_allocno_pref, print_pref): Ditto.
6579         (ira_debug_pref, print_prefs, ira_debug_prefs): Ditto.
6580         (print_allocno_prefs, ira_debug_allocno_prefs, finish_pref): Ditto.
6581         (ira_remove_pref, ira_remove_allocno_prefs, finish_prefs): Ditto.
6582         (ira_add_allocno_copy_to_list): Make static.  Rename to
6583         add_allocno_copy_to_list.
6584         (ira_swap_allocno_copy_ends_if_necessary): Make static.  Rename to
6585         swap_allocno_copy_ends_if_necessary.
6586         (remove_unnecessary_allocnos, remove_low_level_allocnos): Call
6587         ira_remove_allocno_prefs.
6588         (ira_flattening): Ditto.
6589         (ira_build): Call initiate_prefs, print_prefs.
6590         (ira_destroy): Call finish_prefs.
6591         * ira-color.c (struct update_cost_record): New.
6592         (struct allocno_color_data): Add new member update_cost_records.
6593         (update_cost_record_pool): New static var.
6594         (init_update_cost_records, get_update_cost_record): New functions.
6595         (free_update_cost_record_list, finish_update_cost_records): Ditto.
6596         (struct update_cost_queue_elem): Add member from.
6597         (initiate_cost_update): Call init_update_cost_records.
6598         (finish_cost_update): Call finish_update_cost_records.
6599         (queue_update_cost, get_next_update_cost): Add new param from.
6600         (Update_allocno_cost, update_costs_from_allocno): New functions.
6601         (update_costs_from_prefs): Ditto.
6602         (update_copy_costs): Rename to update_costs_from_copies.
6603         (restore_costs_from_copies): New function.
6604         (update_conflict_hard_regno_costs): Don't go back.
6605         (assign_hard_reg): Call restore_costs_from_copies.  Add printing
6606         more debug info.
6607         (pop_allocnos): Add priniting more debug info.
6608         (color_allocnos): Remove prefs for conflicting hard regs.
6609         Call update_costs_from_prefs.
6610         * ira-conflicts.c (commutative_constraint_p): Move to ira.c
6611         (get_dup_num): Rename, modify, and move to ira.c
6612         (process_regs_for_copy): Add prefs.
6613         (add_insn_allocno_copies): Put src as first arg of
6614         process_regs_for_copy.  Remove dead code.  Call ira_setup_alts.
6615         * ira-costs.c (record_reg_classes): Modify and move code into
6616         record_operands_costs.
6617         (find_costs_and_classes): Create prefs for the hard reg of small
6618         reg class.
6619         (process_bb_node_for_hard_reg_moves): Add prefs.
6620
6621 2013-10-30  Richard Biener  <rguenther@suse.de>
6622
6623         PR middle-end/57100
6624         * basic-block.h (pre_and_rev_post_order_compute_fn): New function.
6625         * cfganal.c (pre_and_rev_post_order_compute_fn): New function
6626         as worker for ...
6627         (pre_and_rev_post_order_compute): ... which now wraps it.
6628         * graph.c (draw_cfg_nodes_no_loops): Use
6629         pre_and_rev_post_order_compute_fn to avoid ICEing and dependence
6630         on cfun.
6631
6632 2013-10-30  Christian Bruel  <christian.bruel@st.com>
6633
6634         * config/sh/sh-mem.cc (sh_expand_cmpnstr): New function.
6635         (sh_expand_cmpstr): Handle known align and schedule improvements.
6636         * config/sh/sh-protos.h (sh_expand_cmpstrn): Declare.
6637         * config/sh/sh.md (cmpstrnsi): New pattern.
6638
6639 2013-10-30  Martin Jambor  <mjambor@suse.cz>
6640
6641         PR rtl-optimization/10474
6642         * ira.c (find_moveable_pseudos): Do not calculate dominance info
6643         nor df analysis.
6644         (interesting_dest_for_shprep): New function.
6645         (split_live_ranges_for_shrink_wrap): Likewise.
6646         (ira): Calculate dominance info and df analysis. Call
6647         split_live_ranges_for_shrink_wrap.
6648
6649 2013-10-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6650
6651         PR target/58854
6652         * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Emit blockage.
6653
6654 2013-10-30  Ilya Enkovich  <ilya.enkovich@intel.com>
6655
6656         * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
6657         * tree.h (POINTER_BOUNDS_P): New.
6658         (BOUNDED_TYPE_P): New.
6659         (BOUNDED_P): New.
6660         (pointer_bounds_type_node): New.
6661         * tree.c (build_common_tree_nodes): Initialize
6662         pointer_bounds_type_node.
6663         * gimple.h (gimple_call_get_nobnd_arg_index): New.
6664         (gimple_call_num_nobnd_args): New.
6665         (gimple_call_nobnd_arg): New.
6666         (gimple_return_retbnd): New.
6667         (gimple_return_set_retbnd): New
6668         * gimple.c (gimple_build_return): Increase number of ops
6669         for return statement.
6670         (gimple_call_get_nobnd_arg_index): New.
6671         * gimple-pretty-print.c (dump_gimple_return): Print second op.
6672
6673 2013-10-30  Ilya Enkovich  <ilya.enkovich@intel.com>
6674
6675         * ipa.c (cgraph_build_static_cdtor_1): Support contructors
6676         with "chkp ctor" and "bnd_legacy" attributes.
6677         * gimplify.c (gimplify_init_constructor): Avoid infinite
6678         loop during gimplification of bounds initializer.
6679
6680 2013-10-30  Ilya Enkovich  <ilya.enkovich@intel.com>
6681
6682         * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
6683         (handle_bnd_legacy): New.
6684         (c_common_attribute_table): Add bnd_variable_size and bnd_legacy.
6685         * doc/extend.texi: Document bnd_variable_size and bnd_legacy
6686         attributes.
6687
6688 2013-10-29  Ilya Enkovich  <ilya.enkovich@intel.com>
6689
6690         * builtin-types.def (BT_FN_VOID_CONST_PTR): New.
6691         (BT_FN_PTR_CONST_PTR): New.
6692         (BT_FN_CONST_PTR_CONST_PTR): New.
6693         (BT_FN_PTR_CONST_PTR_SIZE): New.
6694         (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
6695         (BT_FN_VOID_PTRPTR_CONST_PTR): New.
6696         (BT_FN_VOID_CONST_PTR_SIZE): New.
6697         (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
6698         * chkp-builtins.def: New.
6699         * builtins.def: include chkp-builtins.def.
6700         (DEF_CHKP_BUILTIN): New.
6701         * builtins.c (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
6702         BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
6703         BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
6704         BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
6705         BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
6706         BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
6707         BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
6708         BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
6709         BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_ARG_BND, BUILT_IN_CHKP_NARROW,
6710         BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
6711         * common.opt (fcheck-pointer-bounds): New.
6712         * toplev.c (process_options): Check Pointer Bounds Checker is
6713         supported.
6714         * doc/extend.texi: Document Pointer Bounds Checker built-in functions.
6715
6716 2013-10-30  Ilya Enkovich  <ilya.enkovich@intel.com>
6717
6718         * target.def (builtin_chkp_function): New.
6719         (chkp_bound_type): New.
6720         (chkp_bound_mode): New.
6721         (fn_abi_va_list_bounds_size): New.
6722         (load_bounds_for_arg): New.
6723         (store_bounds_for_arg): New.
6724         * targhooks.h (default_load_bounds_for_arg): New.
6725         (default_store_bounds_for_arg): New.
6726         (default_fn_abi_va_list_bounds_size): New.
6727         (default_chkp_bound_type): New.
6728         (default_chkp_bound_mode): New.
6729         (default_builtin_chkp_function): New.
6730         * targhooks.c (default_load_bounds_for_arg): New.
6731         (default_store_bounds_for_arg): New.
6732         (default_fn_abi_va_list_bounds_size): New.
6733         (default_chkp_bound_type): New.
6734         (default_chkp_bound_mode); New.
6735         (default_builtin_chkp_function): New.
6736         * doc/tm.texi.in (TARGET_FN_ABI_VA_LIST_BOUNDS_SIZE): New.
6737         (TARGET_LOAD_BOUNDS_FOR_ARG): New.
6738         (TARGET_STORE_BOUNDS_FOR_ARG): New.
6739         (TARGET_BUILTIN_CHKP_FUNCTION): New.
6740         (TARGET_CHKP_BOUND_TYPE): New.
6741         (TARGET_CHKP_BOUND_MODE): New.
6742         * doc/tm.texi: Regenerated.
6743         * langhooks.h (lang_hooks): Add chkp_supported field.
6744         * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): New.
6745         (LANG_HOOKS_INITIALIZER); Add LANG_HOOKS_CHKP_SUPPORTED.
6746
6747 2013-10-29  Andrew Pinski <apinski@cavium.com>
6748
6749         * tree-ssa-ifcombine.c: Include rtl.h and tm_p.h.
6750         (ifcombine_ifandif): Handle cases where maybe_fold_and_comparisons
6751         fails, combining the branches anyways.
6752         (tree_ssa_ifcombine): Inverse the order of the basic block walk,
6753         increases the number of combinings.
6754         * gimple.h (gsi_start_nondebug_after_labels_bb): New function.
6755
6756 2013-10-29  Mike Stump  <mikestump@comcast.net>
6757
6758         * machmode.def (PARTIAL_INT_MODE): Add precision and name.
6759         * genmodes.c (PARTIAL_INT_MODE): Add precision and name.
6760         (make_vector_mode): Increase namebuf to 16.
6761         (emit_insn_modes_h): When processing BImode, don't
6762         also match partial int modes.
6763         (emit_class_narrowest_mode): Likewise.
6764
6765         * config/bfin/bfin-modes.def: Add precision to PDI.
6766         * config/m32c/m32c-modes.def: Add precision to PSI.
6767         * config/msp430/msp430-modes.def: Add precision to PSI.
6768         * config/rs6000/rs6000-modes.def: Add precision to PTI.
6769         * config/sh/sh-modes.def: Add precision to PSI and PDI.
6770
6771 2013-10-29  Oleg Endo  <olegendo@gcc.gnu.org>
6772
6773         PR target/54236
6774         * config/sh/sh.md (*addc): Rename existing variations to ...
6775         (*addc_r_r_1, *addc_2r_1, *addc_r_1): ... these.
6776         (*addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_2r_lsb, *addc_r_msb,
6777         *addc_r_r_msb, *addc_2r_msb): New insn_and_split patterns.
6778         * config/sh/sh.c (addsubcosts): Handle some addc special cases.
6779
6780 2013-10-29  Teresa Johnson  <tejohnson@google.com>
6781
6782         PR ipa/58862
6783         * tree-ssa-tail-merge.c (replace_block_by): Tolerate profile
6784         insanities when updating probabilities.
6785
6786 2013-10-29  David Malcolm  <dmalcolm@redhat.com>
6787
6788         * gdbhooks.py (CGraphNodePrinter.to_string): Update gdb
6789         prettyprinter for cgraph_node to reflect the conversion of the
6790         symtable types to a C++ class hierarchy: it now *is* a
6791         symtab_node_base, rather than having one (named "symbol").
6792
6793 2013-10-29  Balaji V. Iyer  <balaji.v.iyer@intel.com>
6794
6795         * builtins.c (is_builtin_name): Added a check for __cilkrts_detach and
6796         __cilkrts_pop_frame.  If matched, then return true for built-in
6797         function name.
6798         (expand_builtin): Added BUILT_IN_CILK_DETACH and
6799         BUILT_IN_CILK_POP_FRAME case.
6800         * langhooks-def.h (lhd_install_body_with_frame_cleanup): New prototype.
6801         (lhs_cilk_detect_spawn): Likewise.
6802         (LANG_HOOKS_DECLS): Added LANG_HOOKS_CILKPLUS.
6803         (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): New #define.
6804         (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
6805         (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
6806         (LANG_HOOKS_CILKPLUS): Likewise.
6807         * tree.h (CILK_SPAWN_FN): Likewise.
6808         * builtin.def (DEF_CILK_BUILTIN_STUB): Likewise.
6809         * Makefile.in (C_COMMON_OBJS): Added c-family/cilk.o.
6810         (OBJS): Added cilk-common.o.
6811         (BUILTINS_DEF): Added cilk-builtins.def.
6812         * langhooks.c (lhd_install_body_with_frame_cleanup): New function.
6813         (lhd_cilk_detect_spawn): Likewise.
6814         * langhooks.h (lang_hooks_for_cilkplus): New struct.
6815         (struct lang_hooks): Added new field called "cilkplus."
6816         * cilk-common.c: New file.
6817         * cilk.h: Likewise.
6818         * cilk-builtins.def: Likewise.
6819         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Added
6820         "__cilk" macro and set it to 200.
6821         * function.h (struct function::cilk_frame_decl): New field.
6822         (struct function::is_cilk_function): Likewise.
6823         (struct function::calls_cilk_spawn): Likewise.
6824         * gimplify.c (gimplify_call_expr): Added a check if the function call
6825         being gimplified is a spawn detach point.  If so, then add pop_frame
6826         and detach function calls.
6827         (gimplify_expr): Added a CILK_SPAWN_STMT and CILK_SYNC_STMT case
6828         for gimplifying _Cilk_spawn and _Cilk_sync statements.
6829         (gimplify_return_expr): Added a check for _Cilk_spawn usage in
6830         function.  If so, added a _Cilk_sync and gimplified it.
6831         (gimplify_modify_expr): Added a check for _Cilk_spawn in MODIFY and
6832         INIT_EXPRs.  If so, then call gimplify_cilk_spawn.
6833         * ipa-inline-analysis (initialize_inline_failed): Prevent inlining of
6834         spawner function.
6835         (can_inline_edge_p): Prevent inling of spawnee function.
6836         * ira.c (ira_setup_eliminable_regset): Force usage of frame pointer
6837         for functions that use Cilk keywords.
6838         * tree-inline.h (struct copy_body_data::remap_var_for_cilk): New field.
6839         * tree-pretty-print.c (dump_generic_node): Added CILK_SPAWN_STMT and
6840         CILK_SYNC_STMT cases.
6841         * tree.def (DEFTREECODE): Added CILK_SPAWN_STMT and CILK_SYNC_STMT
6842         trees.
6843         * generic.texi (CILK_SPAWN_STMT): Added documentation for _Cilk_spawn.
6844         (CILK_SYNC_STMT): Added documentation for _Cilk_sync.
6845         * passes.texi (Cilk Keywords): New section that describes the compiler
6846         code changes for handling Cilk Keywords.
6847
6848 2013-10-29  David Malcolm  <dmalcolm@redhat.com>
6849
6850         Patch autogenerated by refactor_symtab.py from
6851         https://github.com/davidmalcolm/gcc-refactoring-scripts
6852         revision 58bb219cc090b2f4516a9297d868c245495ee622
6853
6854         * asan.c (asan_finish_file): Update for conversion of symtab types to
6855         a true class hierarchy.
6856         * cfgexpand.c (estimated_stack_frame_size): Likewise.
6857         * cgraph.c (cgraph_get_body): Likewise.
6858         (cgraph_get_create_real_symbol_node): Likewise.
6859         (verify_cgraph_node): Likewise.
6860         (verify_edge_corresponds_to_fndecl): Likewise.
6861         (verify_edge_count_and_frequency): Likewise.
6862         (cgraph_will_be_removed_from_program_if_no_direct_calls): Likewise.
6863         (cgraph_can_remove_if_no_direct_calls_p): Likewise.
6864         (cgraph_can_remove_if_no_direct_calls_and_refs_p): Likewise.
6865         (cgraph_node_cannot_return): Likewise.
6866         (cgraph_set_pure_flag_1): Likewise.
6867         (cgraph_set_const_flag_1): Likewise.
6868         (cgraph_set_nothrow_flag_1): Likewise.
6869         (cgraph_make_node_local_1): Likewise.
6870         (cgraph_for_node_and_aliases): Likewise.
6871         (cgraph_for_node_thunks_and_aliases): Likewise.
6872         (cgraph_node_can_be_local_p): Likewise.
6873         (cgraph_node_cannot_be_local_p_1): Likewise.
6874         (cgraph_function_body_availability): Likewise.
6875         (dump_cgraph_node): Likewise.
6876         (cgraph_rtl_info): Likewise.
6877         (cgraph_mark_address_taken_node): Likewise.
6878         (cgraph_remove_node): Likewise.
6879         (cgraph_release_function_body): Likewise.
6880         (cgraph_update_edges_for_call_stmt_node): Likewise.
6881         (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
6882         (cgraph_make_edge_direct): Likewise.
6883         (cgraph_resolve_speculation): Likewise.
6884         (cgraph_speculative_call_info): Likewise.
6885         (cgraph_turn_edge_to_speculative): Likewise.
6886         (cgraph_create_edge_1): Likewise.
6887         (cgraph_set_call_stmt): Likewise.
6888         (cgraph_node_for_asm): Likewise.
6889         (cgraph_add_thunk): Likewise.
6890         (cgraph_same_body_alias): Likewise.
6891         (cgraph_create_function_alias): Likewise.
6892         (cgraph_create_node): Likewise.
6893         (cgraph_create_empty_node): Likewise.
6894         (record_function_versions): Likewise.
6895         (used_from_object_file_p): Likewise.
6896         * cgraph.h (symtab_can_be_discarded): Likewise.
6897         (symtab_real_symbol_p): Likewise.
6898         (cgraph_mark_force_output_node): Likewise.
6899         (cgraph_edge_recursive_p): Likewise.
6900         (symtab_alias_target): Likewise.
6901         (varpool_all_refs_explicit_p): Likewise.
6902         (varpool_can_remove_if_no_refs): Likewise.
6903         (cgraph_only_called_directly_or_aliased_p): Likewise.
6904         (cgraph_next_function_with_gimple_body): Likewise.
6905         (cgraph_first_function_with_gimple_body): Likewise.
6906         (cgraph_function_with_gimple_body_p): Likewise.
6907         (cgraph_next_function): Likewise.
6908         (cgraph_first_function): Likewise.
6909         (cgraph_next_defined_function): Likewise.
6910         (cgraph_first_defined_function): Likewise.
6911         (varpool_next_defined_variable): Likewise.
6912         (varpool_first_defined_variable): Likewise.
6913         (varpool_next_static_initializer): Likewise.
6914         (varpool_first_static_initializer): Likewise.
6915         (varpool_next_variable): Likewise.
6916         (varpool_first_variable): Likewise.
6917         (varpool_node_name): Likewise.
6918         (varpool): Likewise.
6919         (cgraph): Likewise.
6920         (is_a_helper <varpool_node>::test): Likewise.
6921         (is_a_helper <cgraph_node>::test): Likewise.
6922         (varpool_variable_node): Likewise.
6923         (cgraph_function_or_thunk_node): Likewise.
6924         (varpool_alias_target): Likewise.
6925         (cgraph_alias_target): Likewise.
6926         (cgraph_node_name): Likewise.
6927         (varpool_node_asm_name): Likewise.
6928         (cgraph_node_asm_name): Likewise.
6929         * cgraphbuild.c (remove_cgraph_callee_edges): Likewise.
6930         (cgraph_rebuild_references): Likewise.
6931         (rebuild_cgraph_edges): Likewise.
6932         (record_eh_tables): Likewise.
6933         (build_cgraph_edges): Likewise.
6934         (mark_store): Likewise.
6935         (mark_load): Likewise.
6936         (mark_address): Likewise.
6937         (record_type_list): Likewise.
6938         (record_reference): Likewise.
6939         * cgraphclones.c (cgraph_materialize_all_clones): Likewise.
6940         (cgraph_materialize_clone): Likewise.
6941         (cgraph_function_versioning): Likewise.
6942         (cgraph_copy_node_for_versioning): Likewise.
6943         (update_call_expr): Likewise.
6944         (cgraph_find_replacement_node): Likewise.
6945         (cgraph_create_virtual_clone): Likewise.
6946         (cgraph_clone_node): Likewise.
6947         * cgraphunit.c (compile): Likewise.
6948         (output_weakrefs): Likewise.
6949         (output_in_order): Likewise.
6950         (expand_function): Likewise.
6951         (assemble_thunks_and_aliases): Likewise.
6952         (expand_thunk): Likewise.
6953         (mark_functions_to_output): Likewise.
6954         (handle_alias_pairs): Likewise.
6955         (analyze_functions): Likewise.
6956         (walk_polymorphic_call_targets): Likewise.
6957         (varpool_finalize_decl): Likewise.
6958         (process_function_and_variable_attributes): Likewise.
6959         (cgraph_process_same_body_aliases): Likewise.
6960         (analyze_function): Likewise.
6961         (cgraph_add_new_function): Likewise.
6962         (cgraph_finalize_function): Likewise.
6963         (referred_to_p): Likewise.
6964         (cgraph_reset_node): Likewise.
6965         (cgraph_process_new_functions): Likewise.
6966         (enqueue_node): Likewise.
6967         (decide_is_symbol_needed): Likewise.
6968         * coverage.c (coverage_compute_profile_id): Likewise.
6969         * dbxout.c (dbxout_expand_expr): Likewise.
6970         * dwarf2out.c (premark_types_used_by_global_vars_helper): Likewise.
6971         (reference_to_unused): Likewise.
6972         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
6973         * gimplify.c (unvisit_body): Likewise.
6974         (unshare_body): Likewise.
6975         * ipa-cp.c (ipcp_generate_summary): Likewise.
6976         (ipcp_decision_stage): Likewise.
6977         (identify_dead_nodes): Likewise.
6978         (decide_whether_version_node): Likewise.
6979         (decide_about_value): Likewise.
6980         (perhaps_add_new_callers): Likewise.
6981         (create_specialized_node): Likewise.
6982         (update_profiling_info): Likewise.
6983         (ipcp_propagate_stage): Likewise.
6984         (estimate_local_effects): Likewise.
6985         (good_cloning_opportunity_p): Likewise.
6986         (devirtualization_time_bonus): Likewise.
6987         (propagate_constants_accross_call): Likewise.
6988         (initialize_node_lattices): Likewise.
6989         (ipcp_cloning_candidate_p): Likewise.
6990         (determine_versionability): Likewise.
6991         (print_all_lattices): Likewise.
6992         (print_lattice): Likewise.
6993         (ipcp_discover_new_direct_edges): Likewise.
6994         * ipa-devirt.c (ipa_devirt): Likewise.
6995         (likely_target_p): Likewise.
6996         (update_type_inheritance_graph): Likewise.
6997         (possible_polymorphic_call_target_p): Likewise.
6998         (dump_possible_polymorphic_call_targets): Likewise.
6999         (devirt_variable_node_removal_hook): Likewise.
7000         (record_binfo): Likewise.
7001         (maybe_record_node): Likewise.
7002         (build_type_inheritance_graph): Likewise.
7003         * ipa-inline-analysis.c (inline_write_summary): Likewise.
7004         (inline_generate_summary): Likewise.
7005         (inline_analyze_function): Likewise.
7006         (do_estimate_growth): Likewise.
7007         (simple_edge_hints): Likewise.
7008         (estimate_node_size_and_time): Likewise.
7009         (estimate_edge_devirt_benefit): Likewise.
7010         (compute_inline_parameters): Likewise.
7011         (estimate_function_body_sizes): Likewise.
7012         (compute_bb_predicates): Likewise.
7013         (initialize_inline_failed): Likewise.
7014         (dump_inline_summary): Likewise.
7015         (dump_inline_edge_summary): Likewise.
7016         * ipa-inline-transform.c (inline_transform): Likewise.
7017         (preserve_function_body_p): Likewise.
7018         (save_inline_function_body): Likewise.
7019         (inline_call): Likewise.
7020         (clone_inlined_nodes): Likewise.
7021         (can_remove_node_now_p): Likewise.
7022         (can_remove_node_now_p_1): Likewise.
7023         * ipa-inline.c (early_inliner): Likewise.
7024         (early_inline_small_functions): Likewise.
7025         (inline_always_inline_functions): Likewise.
7026         (ipa_inline): Likewise.
7027         (flatten_function): Likewise.
7028         (inline_small_functions): Likewise.
7029         (speculation_useful_p): Likewise.
7030         (recursive_inlining): Likewise.
7031         (update_caller_keys): Likewise.
7032         (reset_edge_caches): Likewise.
7033         (update_edge_key): Likewise.
7034         (edge_badness): Likewise.
7035         (relative_time_benefit): Likewise.
7036         (want_inline_self_recursive_call_p): Likewise.
7037         (want_inline_small_function_p): Likewise.
7038         (want_early_inline_function_p): Likewise.
7039         (num_calls): Likewise.
7040         (can_early_inline_edge_p): Likewise.
7041         (can_inline_edge_p): Likewise.
7042         (report_inline_failed_reason): Likewise.
7043         * ipa-profile.c (ipa_profile): Likewise.
7044         (ipa_propagate_frequency): Likewise.
7045         (ipa_propagate_frequency_1): Likewise.
7046         (ipa_profile_generate_summary): Likewise.
7047         * ipa-prop.c (ipcp_transform_function): Likewise.
7048         (read_replacements_section): Likewise.
7049         (ipa_prop_read_section): Likewise.
7050         (ipa_modify_call_arguments): Likewise.
7051         (ipa_print_node_params): Likewise.
7052         (propagate_controlled_uses): Likewise.
7053         (update_indirect_edges_after_inlining): Likewise.
7054         (remove_described_reference): Likewise.
7055         (ipa_make_edge_direct_to_target): Likewise.
7056         (ipa_analyze_node): Likewise.
7057         (ipa_analyze_params_uses): Likewise.
7058         (ipa_compute_jump_functions): Likewise.
7059         (ipa_get_callee_param_type): Likewise.
7060         (ipa_print_node_jump_functions): Likewise.
7061         (ipa_initialize_node_params): Likewise.
7062         (ipa_populate_param_decls): Likewise.
7063         (ipa_func_spec_opts_forbid_analysis_p): Likewise.
7064         (write_agg_replacement_chain): Likewise.
7065         (ipa_write_node_info): Likewise.
7066         (ipa_edge_duplication_hook): Likewise.
7067         (try_decrement_rdesc_refcount): Likewise.
7068         * ipa-pure-const.c (propagate_nothrow): Likewise.
7069         (propagate_pure_const): Likewise.
7070         (pure_const_read_summary): Likewise.
7071         (pure_const_write_summary): Likewise.
7072         (analyze_function): Likewise.
7073         * ipa-ref-inline.h (ipa_ref_referred_ref_list): Likewise.
7074         (ipa_ref_referring_ref_list): Likewise.
7075         * ipa-ref.c (ipa_clear_stmts_in_references): Likewise.
7076         (ipa_remove_stmt_references): Likewise.
7077         (ipa_find_reference): Likewise.
7078         (ipa_dump_referring): Likewise.
7079         (ipa_dump_references): Likewise.
7080         (ipa_record_reference): Likewise.
7081         * ipa-reference.c (ipa_reference_read_optimization_summary): Likewise.
7082         (ipa_reference_write_optimization_summary): Likewise.
7083         (write_node_summary_p): Likewise.
7084         (propagate): Likewise.
7085         (read_write_all_from_decl): Likewise.
7086         (generate_summary): Likewise.
7087         (analyze_function): Likewise.
7088         (propagate_bits): Likewise.
7089         (ipa_reference_get_not_written_global): Likewise.
7090         (ipa_reference_get_not_read_global): Likewise.
7091         * ipa-split.c (execute_split_functions): Likewise.
7092         (split_function): Likewise.
7093         * ipa-utils.c (ipa_merge_profiles): Likewise.
7094         (dump_cgraph_node_set): Likewise.
7095         (ipa_reverse_postorder): Likewise.
7096         (ipa_edge_within_scc): Likewise.
7097         (ipa_get_nodes_in_cycle): Likewise.
7098         (ipa_free_postorder_info): Likewise.
7099         (ipa_reduced_postorder): Likewise.
7100         (searchc): Likewise.
7101         (recursive_call_p): Likewise.
7102         * ipa.c (ipa_cdtor_merge): Likewise.
7103         (record_cdtor_fn): Likewise.
7104         (function_and_variable_visibility): Likewise.
7105         (varpool_externally_visible_p): Likewise.
7106         (cgraph_externally_visible_p): Likewise.
7107         (comdat_can_be_unshared_p): Likewise.
7108         (comdat_can_be_unshared_p_1): Likewise.
7109         (address_taken_from_non_vtable_p): Likewise.
7110         (ipa_discover_readonly_nonaddressable_vars): Likewise.
7111         (symtab_remove_unreachable_nodes): Likewise.
7112         (walk_polymorphic_call_targets): Likewise.
7113         (process_references): Likewise.
7114         (enqueue_node): Likewise.
7115         (has_addr_references_p): Likewise.
7116         (cgraph_non_local_node_p_1): Likewise.
7117         * is-a.h (varpool_analyze_node): Likewise.
7118         * lto-cgraph.c (input_symtab): Likewise.
7119         (merge_profile_summaries): Likewise.
7120         (input_cgraph_1): Likewise.
7121         (input_edge): Likewise.
7122         (input_varpool_node): Likewise.
7123         (input_node): Likewise.
7124         (input_overwrite_node): Likewise.
7125         (compute_ltrans_boundary): Likewise.
7126         (output_refs): Likewise.
7127         (lto_output_varpool_node): Likewise.
7128         (lto_output_node): Likewise.
7129         (reachable_from_other_partition_p): Likewise.
7130         (referenced_from_other_partition_p): Likewise.
7131         (lto_output_edge): Likewise.
7132         (output_node_opt_summary): Likewise.
7133         (add_node_to): Likewise.
7134         (reachable_from_this_partition_p): Likewise.
7135         (lto_set_symtab_encoder_in_partition): Likewise.
7136         (lto_symtab_encoder_in_partition_p): Likewise.
7137         (lto_set_symtab_encoder_encode_initializer): Likewise.
7138         (lto_symtab_encoder_encode_initializer_p): Likewise.
7139         (lto_set_symtab_encoder_encode_body): Likewise.
7140         (lto_symtab_encoder_encode_body_p): Likewise.
7141         * lto-section-in.c (lto_free_function_in_decl_state_for_node):
7142         Likewise.
7143         * lto-streamer-in.c (lto_read_body): Likewise.
7144         (fixup_call_stmt_edges): Likewise.
7145         (fixup_call_stmt_edges_1): Likewise.
7146         * lto-streamer-out.c (produce_symtab): Likewise.
7147         (output_symbol_p): Likewise.
7148         (write_symbol): Likewise.
7149         (lto_output): Likewise.
7150         (copy_function): Likewise.
7151         (output_function): Likewise.
7152         * passes.c (function_called_by_processed_nodes_p): Likewise.
7153         (ipa_write_optimization_summaries): Likewise.
7154         (ipa_write_summaries): Likewise.
7155         (do_per_function_toporder): Likewise.
7156         (do_per_function): Likewise.
7157         (dump_passes): Likewise.
7158         * symtab.c (symtab_semantically_equivalent_p): Likewise.
7159         (symtab_nonoverwritable_alias): Likewise.
7160         (symtab_nonoverwritable_alias_1): Likewise.
7161         (symtab_for_node_and_aliases): Likewise.
7162         (symtab_resolve_alias): Likewise.
7163         (fixup_same_cpp_alias_visibility): Likewise.
7164         (symtab_alias_ultimate_target): Likewise.
7165         (symtab_used_from_object_file_p): Likewise.
7166         (verify_symtab_base): Likewise.
7167         (dump_symtab_base): Likewise.
7168         (symtab_node_name): Likewise.
7169         (symtab_node_asm_name): Likewise.
7170         (symtab_dissolve_same_comdat_group_list): Likewise.
7171         (symtab_add_to_same_comdat_group): Likewise.
7172         (symtab_unregister_node): Likewise.
7173         (symtab_insert_node_to_hashtable): Likewise.
7174         (symtab_register_node): Likewise.
7175         (unlink_from_assembler_name_hash): Likewise.
7176         (insert_to_assembler_name_hash): Likewise.
7177         (eq_assembler_name): Likewise.
7178         (hash_node_by_assembler_name): Likewise.
7179         (eq_node): Likewise.
7180         (hash_node): Likewise.
7181         * toplev.c (wrapup_global_declaration_2): Likewise.
7182         * trans-mem.c (ipa_tm_execute): Likewise.
7183         (ipa_tm_transform_clone): Likewise.
7184         (ipa_tm_transform_transaction): Likewise.
7185         (ipa_tm_transform_calls_redirect): Likewise.
7186         (ipa_tm_insert_gettmclone_call): Likewise.
7187         (ipa_tm_insert_irr_call): Likewise.
7188         (ipa_tm_create_version): Likewise.
7189         (ipa_tm_create_version_alias): Likewise.
7190         (ipa_tm_mark_forced_by_abi_node): Likewise.
7191         (ipa_tm_mark_force_output_node): Likewise.
7192         (ipa_tm_diagnose_tm_safe): Likewise.
7193         (ipa_tm_mayenterirr_function): Likewise.
7194         (ipa_tm_scan_irr_function): Likewise.
7195         (ipa_tm_note_irrevocable): Likewise.
7196         (ipa_tm_scan_calls_clone): Likewise.
7197         (get_cg_data): Likewise.
7198         * tree-eh.c (tree_could_trap_p): Likewise.
7199         * tree-emutls.c (ipa_lower_emutls): Likewise.
7200         (create_emultls_var): Likewise.
7201         (lower_emutls_function_body): Likewise.
7202         (gen_emutls_addr): Likewise.
7203         (emutls_decl): Likewise.
7204         (new_emutls_decl): Likewise.
7205         * tree-inline.c (tree_function_versioning): Likewise.
7206         (optimize_inline_calls): Likewise.
7207         (expand_call_inline): Likewise.
7208         (estimate_num_insns): Likewise.
7209         (copy_bb): Likewise.
7210         (delete_unreachable_blocks_update_callgraph): Likewise.
7211         * tree-nested.c (gimplify_all_functions): Likewise.
7212         (create_nesting_tree): Likewise.
7213         (check_for_nested_with_variably_modified): Likewise.
7214         * tree-pretty-print.c (dump_function_header): Likewise.
7215         * tree-profile.c (tree_profiling): Likewise.
7216         * tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.
7217         (modify_function): Likewise.
7218         (convert_callers): Likewise.
7219         (convert_callers_for_node): Likewise.
7220         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
7221         (associate_varinfo_to_alias): Likewise.
7222         (create_variable_info_for): Likewise.
7223         (get_constraint_for_ssa_var): Likewise.
7224         * tree-vectorizer.c (increase_alignment): Likewise.
7225         * tree.c (find_decls_types_in_var): Likewise.
7226         (find_decls_types_in_node): Likewise.
7227         (free_lang_data_in_decl): Likewise.
7228         * value-prof.c (gimple_ic_transform): Likewise.
7229         (gimple_ic): Likewise.
7230         (check_ic_target): Likewise.
7231         (init_node_map): Likewise.
7232         * varasm.c (decl_binds_to_current_def_p): Likewise.
7233         (default_binds_local_p_1): Likewise.
7234         (dump_tm_clone_pairs): Likewise.
7235         (assemble_alias): Likewise.
7236         (find_decl): Likewise.
7237         (mark_decl_referenced): Likewise.
7238         * varpool.c (varpool_for_node_and_aliases): Likewise.
7239         (varpool_extra_name_alias): Likewise.
7240         (varpool_create_variable_alias): Likewise.
7241         (add_new_static_var): Likewise.
7242         (varpool_finalize_named_section_flags): Likewise.
7243         (varpool_remove_unreferenced_decls): Likewise.
7244         (enqueue_node): Likewise.
7245         (varpool_assemble_decl): Likewise.
7246         (assemble_aliases): Likewise.
7247         (varpool_analyze_node): Likewise.
7248         (cgraph_variable_initializer_availability): Likewise.
7249         (varpool_add_new_variable): Likewise.
7250         (ctor_for_folding): Likewise.
7251         (dump_varpool_node): Likewise.
7252         (varpool_remove_initializer): Likewise.
7253         (varpool_remove_node): Likewise.
7254         (varpool_node_for_decl): Likewise.
7255         (varpool_create_empty_node): Likewise.
7256         * config/i386/i386.c (ix86_generate_version_dispatcher_body): Likewise.
7257         (ix86_get_function_versions_dispatcher): Likewise.
7258
7259 2013-10-29  David Malcolm  <dmalcolm@redhat.com>
7260
7261         * cgraph.h (symtab_node_base): Convert to a class;
7262         add GTY((desc ("%h.type"), tag ("SYMTAB_SYMBOL"))), and take
7263         chain_next/prev from symtab_node_def.
7264         (cgraph_node): Inherit from symtab_node; add GTY option
7265         tag ("SYMTAB_FUNCTION").
7266         (varpool_node): Inherit from symtab_node; add GTY option
7267         tag ("SYMTAB_VARIABLE").
7268         (symtab_node_def): Remove.
7269         (is_a_helper <cgraph_node>::test (symtab_node_def *)): Convert to...
7270         (is_a_helper <cgraph_node>::test (symtab_node_base *)): ...this.
7271         (is_a_helper <varpool_node>::test (symtab_node_def *)): Convert to...
7272         (is_a_helper <varpool_node>::test (symtab_node_base *)): ...this.
7273
7274         * ipa-ref.h (symtab_node_def): Drop.
7275         (symtab_node): Change underlying type from symtab_node_def to
7276         symtab_node_base.
7277         (const_symtab_node): Likwise.
7278
7279         * is-a.h: Update examples in comment.
7280
7281         * symtab.c (symtab_hash): Change symtab_node_def to symtab_node_base.
7282         (assembler_name_hash): Likewise.
7283
7284 2013-10-29  Martin Liska  <marxin.liska@gmail.com>
7285
7286         * doc/tree-ssa.texi (gimple_phi_result): Document.
7287         (gimple_phi_num_args, gimple_phi_arg): Likewise.
7288         (gimple_phi_arg_edge, gimple_phi_arg_def): Likewise.
7289         (PHI_RESULT, PHI_NUM_ARGS): Remove.
7290         (PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF): Likewise.
7291
7292 2013-10-29  Andrew MacLeod  <amacleod@redhat.com>
7293
7294         * expr.h: Revert change and include tree-core.h.
7295         * rtl.h: Revert change and don't include tree-core.h.
7296
7297 2013-10-29  Andrew MacLeod  <amacleod@redhat.com>
7298
7299         * config/darwin.c: Include gimple.h.
7300         * config/i386/winnt.c: Likewise.
7301
7302 2013-10-29  Marc Glisse  <marc.glisse@inria.fr>
7303
7304         PR tree-optimization/19831
7305         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle BUILT_IN_FREE.
7306
7307 2013-10-29  Andrew MacLeod  <amacleod@redhat.com>
7308
7309         * tree-outof-ssa.h: Remove include files.
7310         * tree-outof-ssa.c: Add required include files from tree-outof-ssa.h.
7311         * expr.c: Likewise.
7312         * tree-ssa-coalesce.c: Likewise.
7313         * cfgexpand.c: Likewise.
7314         * tree-ssa-ter.c: Likewise.
7315         * ipa-prop.h: Remove gimple.h and tree-core.h from include list.
7316         * lto-streamer.h: Likewise.
7317         * cgraphbuild.c: Add gimple.h to include list.
7318         * data-streamer-in.c: Likewise.
7319         * ipa-cp.c: Likewise.
7320         * tree-streamer.c: Likewise.
7321         * lto-compress.c: Likewise.
7322         * ipa-reference.c: Likewise.
7323         * data-streamer-out.c: Likewise.
7324         * lto-cgraph.c: Likewise.
7325         * cgraphclones.c: Likewise.
7326         * ipa-utils.c: Likewise.
7327         * data-streamer.c: Likewise.
7328         * ipa-split.c: Likewise.
7329         * lto-section-in.c: Likewise.
7330         * tree-streamer-out.c: Likewise.
7331         * ipa-prop.c: Likewise.
7332         * tree-streamer-in.c: Likewise.
7333         * symtab.c: Likewise.
7334         * opts-global.c: Likewise.
7335         * lto-opts.c: Likewise.
7336         * lto-section-out.c: Likewise.
7337         * lto-streamer.c: Likewise.
7338         * rtl.h: Add tree-core.h to include list.
7339         * expr.h: Remove tree-core.h from include list.
7340         * gimple.h: Likewise.
7341         * ipa-utils.h: Likewise.
7342         * streamer-hooks.h: Likewise.
7343         * streamer-hooks.c: Include input.h.
7344
7345 2013-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7346
7347         * config/arm/arm.c (cortexa7_extra_costs): New table.
7348         (arm_cortex_a7_tune): New.
7349         * config/arm/arm-cores.def: Use cortex_a7 tuning for cortex-a7.
7350
7351 2013-10-29  Eric Botcazou  <ebotcazou@adacore.com>
7352
7353         * expr.c (expand_expr_real_1) <MEM_EXPR>: Eliminate small redundancy.
7354
7355 2013-10-29  David Malcolm  <dmalcolm@redhat.com>
7356
7357         * doc/gty.texi ("Inheritance and GTY"): Make it clear that
7358         to use autogenerated markers for a class-hierarchy, every class
7359         must have a GTY marker.
7360         * gengtype.h (struct type): Add linked list of subclasses to
7361         the "s" member of the union.
7362         (add_subclass): New decl.
7363         * gengtype-state.c (read_state_struct_type): Set up subclass
7364         linked list.
7365         * gengtype.c (get_ultimate_base_class): New.
7366         (add_subclass): New.
7367         (new_structure): Set up subclass linked list.
7368         (set_gc_used_type): Propagate usage information to subclasses.
7369         (output_mangled_typename): Use get_ultimate_base_class.
7370         (walk_subclasses): Use the subclass linked list, avoiding an
7371         O(N^2) when writing out all types.
7372         (walk_type): Issue an error if the base class is missing a tag,
7373         rather than generating bogus C code.  Add a gcc_unreachable
7374         default case, in case people omit tags from concrete subclasses,
7375         or get the values wrong.
7376         (write_func_for_structure): Issue an error for subclasses for
7377         which the base doesn't have a "desc", since otherwise the
7378         autogenerated routines for the base would silently fail to visit
7379         any subclass fields.
7380         (write_root): Use get_ultimate_base_class, tweaking constness of
7381         tp to match that function's signature.
7382
7383 2013-10-29  David Malcolm  <dmalcolm@redhat.com>
7384
7385         * doc/gty.texi (GTY Options): Add note about inheritance to
7386         description of desc and tag.
7387         (Inheritance and GTY): New.
7388
7389 2013-10-29  David Malcolm  <dmalcolm@redhat.com>
7390
7391         * gengtype-parse.c (opts_have): Drop "static" so that
7392         we can use this from gengtype.c.
7393         * gengtype.c (set_gc_used_type): Mark any base class as used;
7394         update field traversal to visit inherited fields.
7395         (output_mangled_typename):  Convert references to classes within
7396         an inheritance hierarchy to reference the ultimate base class,
7397         since only it will have gt_ functions.
7398         (get_string_option): New.
7399         (walk_subclasses): New.
7400         (walk_type): Treat GTY structs that have a "desc" as being the
7401         root of an inheritance hierarchy.  Generate a switch on it
7402         within the marking function which walks all subclasses, adding
7403         cases for them via walk_subclasses.  For subclasses, visit all
7404         fields of the type (including inherited ones).
7405         (write_func_for_structure): Don't write fns for subclasses, only
7406         for the ultimate base class within an inheritance hierarchy.
7407         Subclasses-marking will be handled by the base class marking functions.
7408         (write_types): Likewise.
7409         (write_local_func_for_structure): Likewise.
7410         (USED_BY_TYPED_GC_P): Emit allocators for subclasses that have
7411         a "tag" option (and are thus concrete subclasses).
7412         (write_root): Use the marker function for the ultimate base class.
7413         * gengtype.h (FOR_ALL_INHERITED_FIELDS): New.
7414         (opts_have): Add declaration.
7415
7416 2013-10-28  Vladimir Makarov  <vmakarov@redhat.com>
7417
7418         * lra-spills.c (lra_final_code_change): Remove useless move insns
7419         originated from moves of pseudos.
7420
7421 2013-10-28  Jeff Law  <law@redhat.com>
7422
7423         * lower-subreg.c (resolve_simple_move): Fix comment typo.
7424
7425 2013-10-28  Trevor Saunders  <tsaunders@mozilla.com>
7426
7427         * df-scan.c (df_collection_rec): Adjust.
7428         (copy_defs): New constant.
7429         (copy_uses): Likewise.
7430         (copy_eq_uses): Likewise.
7431         (copy_mw): Likewise.
7432         (copy_all): Likewise.
7433         (df_insn_rescan): Adjust.
7434         (df_notes_rescan): Likewise.
7435         (df_swap_refs): Likewise.
7436         (df_sort_and_compress_refs): Likewise.
7437         (df_sort_and_compress_mws): Likewise.
7438         (df_install_refs): Likewise.
7439         (df_install_mws): Likewise.
7440         (df_refs_add_to_chains): Add flags parameter controlling which vectors
7441         are coppied.
7442         (df_bb_refs_record): Adjust.
7443         (df_record_entry_block_defs): Likewise.
7444         (df_record_exit_block_defs): Likewise.
7445         (df_refs_verify): Likewise.
7446         (df_mws_verify): Likewise.
7447         (df_insn_refs_verify): Likewise.
7448         (df_bb_verify): Likewise.
7449         * ipa-pure-const.c (finish_state): Remove.
7450         (propagate): Adjust.
7451         * tree-data-ref.c tree-ssa-alias.c tree-ssa-loop-ivcanon.c
7452         tree-ssa-threadedge.c tree-vect-loop-manip.c tree-vect-slp.c
7453         var-tracking.c: Adjust.
7454         * vec.c (stack_vecs): Remove.
7455         (register_stack_vec): Likewise.
7456         (stack_vec_register_index): Likewise.
7457         (unregister_stack_vec): Likewise.
7458         * vec.h (struct va_stack): Remove.
7459         (struct vec<T, A, vl_ptr>): Specialize as
7460         struct vec<T, va_heap, vl_ptr> instead since va_heap is the only
7461         allocation strategy compatable with the vl_ptr layout.
7462         (struct vec<T, va_gc, vl_ptr>): Remove because it now gets an empty
7463         specialization anyway.
7464         (class stack_vec): New class.
7465         (vec_stack_alloc): Remove.
7466         (vec<T, va_heap, vl_ptr>::using_auto_storage): New method.
7467
7468 2013-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
7469             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
7470             Sergey Lega  <sergey.s.lega@intel.com>
7471             Anna Tikhonova  <anna.tikhonova@intel.com>
7472             Ilya Tocar  <ilya.tocar@intel.com>
7473             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7474             Ilya Verbin  <ilya.verbin@intel.com>
7475             Kirill Yukhin  <kirill.yukhin@intel.com>
7476             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7477
7478         * config/i386/i386.md (prefetch): Allow TARGET_AVX512PF.
7479         (*prefetch_avx512pf_<mode>): New.
7480         * config/i386/sse.md (avx512f_vmcmp<mode>3): Ditto.
7481         (avx512f_maskcmp<mode>3): Ditto.
7482         (vashrv16si3): Ditto.
7483
7484 2013-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
7485             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
7486             Sergey Lega  <sergey.s.lega@intel.com>
7487             Anna Tikhonova  <anna.tikhonova@intel.com>
7488             Ilya Tocar  <ilya.tocar@intel.com>
7489             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7490             Ilya Verbin  <ilya.verbin@intel.com>
7491             Kirill Yukhin  <kirill.yukhin@intel.com>
7492             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7493
7494         * config/i386/i386.md (any_truncate): New.
7495         (trunsuffix): Ditto.
7496         * config/i386/predicates.md (const_8_to_9_operand): New.
7497         (const_10_to_11_operand): Ditto.
7498         (const_12_to_13_operand): Ditto.
7499         (const_14_to_15_operand): Ditto.
7500         (const_16_to_19_operand): Ditto.
7501         (const_20_to_23_operand): Ditto.
7502         (const_24_to_27_operand): Ditto.
7503         (const_28_to_31_operand): Ditto.
7504         * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_FIX_NOTRUNC.
7505         (cvtusi2<ssescalarmodesuffix>32): New.
7506         (cvtusi2<ssescalarmodesuffix>64): Ditto.
7507         (ufloatv16siv16sf2): Ditto.
7508         (avx512f_fix_notruncv16sfv16si): Ditto.
7509         (avx512f_ufix_notruncv16sfv16si): Ditto.
7510         (avx512f_vcvtss2usi): Ditto.
7511         (avx512f_vcvtss2usiq): Ditto.
7512         (avx512f_vcvttss2usi): Ditto.
7513         (avx512f_vcvttss2usiq): Ditto.
7514         (avx512f_vcvtsd2usi): Ditto.
7515         (avx512f_vcvtsd2usiq): Ditto.
7516         (avx512f_vcvttsd2usi): Ditto.
7517         (avx512f_vcvttsd2usiq): Ditto.
7518         (ufloatv8siv8df): Ditto.
7519         (avx512f_cvtdq2pd512_2): Ditto.
7520         (avx512f_cvtpd2dq512): Ditto.
7521         (avx512f_ufix_notruncv8dfv8si): Ditto.
7522         (avx512f_cvtpd2ps512): Ditto.
7523         (vec_unpacks_lo_v16sf): Ditto.
7524         (vec_unpacks_hi_v16sf): Ditto.
7525         (vec_unpacks_float_hi_v16si): Ditto.
7526         (vec_unpacks_float_lo_v16si): Ditto.
7527         (avx512f_unpckhps512): Ditto.
7528         (avx512f_unpcklps512): Ditto.
7529         (avx512f_movshdup512): Ditto.
7530         (avx512f_movsldup512): Ditto.
7531         (vec_extract_lo_v32hi): Ditto.
7532         (vec_extract_hi_v32hi): Ditto.
7533         (vec_extract_lo_v64qi): Ditto.
7534         (vec_extract_hi_v64qi): Ditto.
7535         (avx512f_unpckhpd512): Ditto.
7536         (avx512f_movddup512): Ditto.
7537         (avx512f_unpcklpd512): Ditto.
7538         (*avx512f_unpcklpd512): Ditto.
7539         (avx512f_shufps512_1): Ditto.
7540         (avx512f_shufpd512_1): Ditto.
7541         (avx512f_interleave_highv8di): Ditto.
7542         (avx512f_interleave_lowv8di): Ditto.
7543         (PMOV_DST_MODE): Ditto.
7544         (pmov_src_mode): Ditto.
7545         (pmov_src_lower): Ditto.
7546         (pmov_suff): Ditto.
7547         (*avx512f_<code><pmov_src_lower><mode>2): Ditto.
7548         (*avx512f_<code>v8div16qi2): Ditto.
7549         (*avx512f_<code>v8div16qi2_store): Ditto.
7550         (vec_widen_umult_even_v16si): Ditto.
7551         (*vec_widen_umult_even_v16si): Ditto.
7552         (vec_widen_smult_even_v16si): Ditto.
7553         (*vec_widen_smult_even_v16si): Ditto.
7554         (avx512f_interleave_highv16si): Ditto.
7555         (avx512f_interleave_lowv16si): Ditto.
7556         (avx512f_<code>v16qiv16si2): Ditto.
7557         (avx512f_<code>v16hiv16si2): Ditto.
7558         (avx512f_<code>v8qiv8di2): Ditto.
7559         (avx512f_<code>v8hiv8di2): Ditto.
7560         (avx512f_<code>v8siv8di2): Ditto.
7561         (avx512cd_maskb_vec_dupv8di): Ditto.
7562         (avx512cd_maskw_vec_dupv16si): Ditto.
7563         (avx512f_vcvtph2ps512): Ditto.
7564         (avx512f_vcvtps2ph512): Ditto.
7565         (VEC_EXTRACT_MODE): Extened with wider modes.
7566         (VEC_PERM_AVX2): Ditto.
7567         (VEC_PERM_CONST): Ditto.
7568
7569 2013-10-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7570
7571         * config/arc/arc.c (arc_ccfsm_post_advance):
7572         Add comment about TYPE_RETURN.
7573
7574 2013-10-28  Bin Cheng  <bin.cheng@arm.com>
7575
7576         * tree-ssa-loop-ivopts.c (strip_offset_1): Change parameter type.
7577         Count DECL_FIELD_BIT_OFFSET for COMPONENT_REF.
7578         (strip_offset): Convert offset to unsigned number.
7579
7580 2013-10-27  Tom de Vries  <tom@codesourcery.com>
7581
7582         * cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn.
7583         Don't commit insertions after NOTE_INSN_FUNCTION_BEG.
7584
7585 2013-10-27  Oleg Endo  <olegendo@gcc.gnu.org>
7586
7587         * config/sh/sh.c (MSW, LSW): Move and rename macros to...
7588         * config/sh/sh.h (SH_REG_MSW_OFFSET, SH_REG_LSW_OFFSET): ... here.
7589         (TARGET_BIG_ENDIAN): New macro.
7590         * config/sh/sh.md: Use it instead of !TARGET_LITTLE_ENDIAN.
7591         Use SH_REG_MSW_OFFSET and SH_REG_LSW_OFFSET.
7592         * config/sh/sh.c: Likewise.
7593         * config/sh/sh.h: Likewise.
7594
7595 2013-10-27  Hans-Peter Nilsson  <hp@axis.com>
7596
7597         * config/cris/cris.c (cris_emit_trap_for_misalignment): Replace the
7598         removed PRED_MUDFLAP with PRED_NORETURN.  Correct file-path in comment.
7599
7600 2013-10-26  Oleg Endo  <olegendo@gcc.gnu.org>
7601
7602         * config/sh/sh.md (movmemsi): Remove empty constraints and predicates.
7603         Fix formatting.
7604         (cmpstr_t, cmpstrsi): Fix formatting.
7605
7606 2013-10-26  Oleg Endo  <olegendo@gcc.gnu.org>
7607
7608         PR target/52483
7609         * config/sh/predicates.md (general_movdst_operand): Allow reg+reg
7610         addressing, do not use general_operand for memory operands.
7611
7612 2013-10-26  Vladimir Makarov  <vmakarov@redhat.com>
7613
7614         Revert:
7615         2013-10-25  Vladimir Makarov  <vmakarov@redhat.com>
7616         * lra-spills.c (lra_final_code_change): Remove useless move insns.
7617
7618 2013-10-26  Jeff Law  <law@redhat.com>
7619
7620         * predict.c (PRED_MUDFLAP): Remove.
7621         * targhooks.c (build_va_arg_indirect_ref): Remove mudflap support.
7622
7623         * Makefile.in (C_COMMON_OBJS): Remove tree-mudflap.
7624         (OBJS): Remove tree-nomudflap.o
7625         (GTFILES): Remove tree-mudflap.c
7626         * builtins.c (expand_builtin_alloc): Remove mudflap support.
7627         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Likewise.
7628         (mfwrap_spec, mflib_spec): Likewise.
7629         (cpp_unique_options, cc1_options, static_specs): Likewise.
7630         * gimplify (gimplify_vla_decl, build_va_arg_indirect_ref): Likewise.
7631         * passes.def: Likewise.
7632         * toplev.c (compile_file, process_options): Likewise.
7633         * tree-inline.c (copy_tree_r): Likewise.
7634         * tree-pass.,h (make_pass_mudflap_1, make_pass_mudflap_2): Likewise.
7635         * varasm.c (make_decl_rtl, make_decl_rtl_for_debug): Likewise.
7636         (build_constant_desc, output_constant_def_contents): Likewise.
7637         (categorize_decl_for_section): Likewise.
7638         * tree-mudflap.c: Removed.
7639         * tree-mudflap.h: Removed.
7640         * tree-nomudflap.c: Removed.
7641         * bfin/uclinux.h (MFWRAP_SPEC): Remove.
7642         * moxie/uclinux.h (MFWRAP_SPEC): Likewise.
7643         * rs6000/aix.h (MFWRAP_SPEC, MFLIB_SPEC): Likewise.
7644         * config/sol2.h (MFLIB_SPEC): Likewise.
7645         * doc/install.texi: Remove mudflap references.
7646         * doc/passes.texi: Similarly.
7647         * doc/sourcebuild.texi: Similarly.
7648         * doc/invoke.texi: Remove mudlfap related options.
7649
7650 2013-10-25  Vladimir Makarov  <vmakarov@redhat.com>
7651
7652         PR rtl-optimization/58759
7653         * lra-constraints.c (lra_constraints): Remove wrong condition to
7654         remove insn setting up an equivalent pseudo.
7655
7656 2013-10-25  Vladimir Makarov  <vmakarov@redhat.com>
7657
7658         * config/rs6000/rs6000-protos.h
7659         (rs6000_secondary_memory_needed_mode): New prototype.
7660         * config/rs6000/rs6000.c: Include ira.h.
7661         (TARGET_LRA_P): Redefine.
7662         (rs6000_legitimate_offset_address_p): Call
7663         legitimate_constant_pool_address_p in strict mode for LRA.
7664         (rs6000_legitimate_address_p): Ditto.
7665         (legitimate_lo_sum_address_p): Add code for LRA.  Use lra_in_progress.
7666         (rs6000_emit_move): Add LRA version of code to generate load/store
7667         of SDmode values.
7668         (rs6000_secondary_memory_needed_mode): New.
7669         (rs6000_alloc_sdmode_stack_slot): Do nothing for LRA.
7670         (rs6000_secondary_reload_class): Return NO_REGS for LRA for
7671         constants, memory, and FP registers.
7672         (rs6000_lra_p): New.
7673         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): New macro.
7674         * config/rs6000/rs6000.opt (mlra): New option.
7675         * lra-spills.c (lra_final_code_change): Remove useless move insns.
7676
7677 2013-10-25  Yufeng Zhang  <yufeng.zhang@arm.com>
7678
7679         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Call
7680         has_single_use () and not do the conversion if has_single_use ()
7681         returns false for the multiplication result.
7682
7683 2013-10-25  David Malcolm  <dmalcolm@redhat.com>
7684
7685         * tree.h (EXCEPTIONAL_CLASS_P): Rename parameter from "CODE"
7686         to "NODE", since this works on a "tree", not an
7687         "enum tree_code".
7688         (CONSTANT_CLASS_P): Likewise.
7689         (TYPE_P): Likewise.
7690         (DECL_P): Likewise.
7691         (INDIRECT_REF_P): Likewise.
7692         (REFERENCE_CLASS_P): Likewise.
7693         (COMPARISON_CLASS_P): Likewise.
7694         (UNARY_CLASS_P): Likewise.
7695         (BINARY_CLASS_P): Likewise.
7696         (STATEMENT_CLASS_P): Likewise.
7697         (VL_EXP_CLASS_P): Likewise.
7698         (EXPRESSION_CLASS_P): Likewise.
7699         (IS_TYPE_OR_DECL_P): Likewise.
7700
7701 2013-10-25  Marc Glisse  <marc.glisse@inria.fr>
7702
7703         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Look for an
7704         ADDR_EXPR in the defining statement.
7705
7706 2013-10-25  Richard Biener  <rguenther@suse.de>
7707
7708         PR tree-optimization/58626
7709         * tree-loop-distribution.c (enum rdg_dep_type): Remove
7710         anti_dd, output_dd and input_dd.
7711         (struct rdg_edge): Remove level and relation members.
7712         (RDGE_LEVEL, RDGE_RELATION): Remove.
7713         (dot_rdg_1): Adjust.
7714         (create_rdg_edge_for_ddr): Remove.
7715         (create_rdg_edges_for_scalar): Adjust.
7716         (create_edge_for_control_dependence): Likewise.
7717         (create_rdg_edges): Split into ...
7718         (create_rdg_flow_edges): ... this
7719         (create_rdg_cd_edges): ... and this.
7720         (free_rdg): Adjust.
7721         (build_rdg): Likewise, do not compute data dependences or
7722         add edges for them.
7723         (pg_add_dependence_edges): New function.
7724         (pgcmp): Likewise.
7725         (distribute_loop): First apply all non-dependence based
7726         partition mergings.  Then compute dependences between partitions
7727         and merge and order partitions according to them.
7728
7729 2013-10-25  Eric Botcazou  <ebotcazou@adacore.com>
7730
7731         PR rtl-optimization/58831
7732         * alias.c (init_alias_analysis): At the beginning of each iteration,
7733         set the reg_seen[N] bit if static_reg_base_value[N] is non-null.
7734
7735 2013-10-25  Eric Botcazou  <ebotcazou@adacore.com>
7736
7737         * recog.c (search_ofs): New static variable moved from...
7738         (peep2_find_free_register): ...here.
7739         (peephole2_optimize): Initialize it.
7740
7741 2013-10-25  Tobias Burnus  <burnus@net-b.de>
7742
7743         * doc/invoke.texi (fopenmp): Change supported OpenMP version to 4.0.
7744
7745 2013-10-25  Uros Bizjak  <ubizjak@gmail.com>
7746
7747         * config/i386/i386.h (TARGET_MPX): New define.
7748         (TARGET_MPX_P): Ditto.
7749
7750 2013-10-24  Ilya Enkovich  <ilya.enkovich@intel.com>
7751
7752         * config/i386/constraints.md (B): New.
7753         (Ti): New.
7754         (Tb): New.
7755         * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
7756         * config/i386/i386-modes.def (BND32): New.
7757         (BND64): New.
7758         * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
7759         * config/i386/i386.c (isa_opts): Add mmpx.
7760         (regclass_map): Add bound registers.
7761         (dbx_register_map): Likewise.
7762         (dbx64_register_map): Likewise.
7763         (svr4_dbx_register_map): Likewise.
7764         (PTA_MPX): New.
7765         (ix86_option_override_internal): Support MPX ISA.
7766         (ix86_conditional_register_usage): Support bound registers.
7767         (print_reg): Likewise.
7768         (ix86_code_end): Add MPX bnd prefix.
7769         (output_set_got): Likewise.
7770         (ix86_output_call_insn): Likewise.
7771         (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
7772         (ix86_print_operand_punct_valid_p): Likewise.
7773         (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
7774         UNSPEC_BNDMK_ADDR.
7775         (ix86_class_likely_spilled_p): Add bound regs support.
7776         (ix86_hard_regno_mode_ok): Likewise.
7777         (x86_order_regs_for_local_alloc): Likewise.
7778         (ix86_bnd_prefixed_insn_p): New.
7779         * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Fix to new value.
7780         (FIXED_REGISTERS): Add bound registers.
7781         (CALL_USED_REGISTERS): Likewise.
7782         (REG_ALLOC_ORDER): Likewise.
7783         (HARD_REGNO_NREGS): Likewise.
7784         (TARGET_MPX): New.
7785         (VALID_BND_REG_MODE): New.
7786         (FIRST_BND_REG): New.
7787         (LAST_BND_REG): New.
7788         (reg_class): Add BND_REGS.
7789         (REG_CLASS_NAMES): Likewise.
7790         (REG_CLASS_CONTENTS): Likewise.
7791         (BND_REGNO_P): New.
7792         (ANY_BND_REG_P): New.
7793         (BNDmode): New.
7794         (HI_REGISTER_NAMES): Add bound registers.
7795         * config/i386/i386.md (UNSPEC_BNDMK): New.
7796         (UNSPEC_BNDMK_ADDR): New.
7797         (UNSPEC_BNDSTX): New.
7798         (UNSPEC_BNDLDX): New.
7799         (UNSPEC_BNDLDX_ADDR): New.
7800         (UNSPEC_BNDCL): New.
7801         (UNSPEC_BNDCU): New.
7802         (UNSPEC_BNDCN): New.
7803         (UNSPEC_MPX_FENCE): New.
7804         (BND0_REG): New.
7805         (BND1_REG): New.
7806         (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
7807         (length_immediate): Likewise.
7808         (prefix_0f): Likewise.
7809         (memory): Likewise.
7810         (prefix_rep): Check for bnd prefix.
7811         (length_nobnd): New.
7812         (length): Use length_nobnd if specified.
7813         (BND): New.
7814         (bnd_ptr): New.
7815         (BNDCHECK): New.
7816         (bndcheck): New.
7817         (*jcc_1): Add bnd prefix and rename length attr to length_nobnd.
7818         (*jcc_2): Likewise.
7819         (jump): Likewise.
7820         (simple_return_internal): Likewise.
7821         (simple_return_pop_internal): Likewise.
7822         (*indirect_jump): Add MPX bnd prefix.
7823         (*tablejump_1): Likewise.
7824         (simple_return_internal_long): Likewise.
7825         (simple_return_indirect_internal): Likewise.
7826         (<mode>_mk): New.
7827         (*<mode>_mk): New.
7828         (mov<mode>): New.
7829         (*mov<mode>_internal_mpx): New.
7830         (<mode>_<bndcheck>): New.
7831         (*<mode>_<bndcheck>): New.
7832         (<mode>_ldx): New.
7833         (*<mode>_ldx): New.
7834         (<mode>_stx): New.
7835         (*<mode>_stx): New.
7836         * config/i386/predicates.md (lea_address_operand): Rename to...
7837         (address_no_seg_operand): ... this.
7838         (address_mpx_no_base_operand): New.
7839         (address_mpx_no_index_operand): New.
7840         (bnd_mem_operator): New.
7841         * config/i386/i386.opt (mmpx): New.
7842         * doc/invoke.texi: Add documentation for the flags -mmpx, -mno-mpx.
7843         * doc/rtl.texi Add documentation for BND32mode and BND64mode.
7844
7845 2013-10-24  Ilya Enkovich  <ilya.enkovich@intel.com>
7846
7847         * mode-classes.def (MODE_POINTER_BOUNDS): New.
7848         * tree.def (POINTER_BOUNDS_TYPE): New.
7849         * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
7850         (POINTER_BOUNDS_MODE): New.
7851         (make_pointer_bounds_mode): New.
7852         * machmode.h (POINTER_BOUNDS_MODE_P): New.
7853         * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
7854         (layout_type): Support POINTER_BOUNDS_TYPE.
7855         * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
7856         * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
7857         (type_contains_placeholder_1): Likewise.
7858         * tree.h (POINTER_BOUNDS_TYPE_P): New.
7859         * varasm.c (output_constant): Support POINTER_BOUNDS_TYPE.
7860         * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
7861
7862 2013-10-24  Igor Shevlyakov  <igor.shevlyakov@gmail.com>
7863
7864         * expr.c (expand_expr_real_1): Use mode of memory reference rather than
7865         mode of address computation when calling memory_address_addr_space.
7866
7867 2013-08-24  Richard Henderson  <rth@twiddle.net>
7868
7869         PR rtl/58542
7870         * optabs.c (maybe_emit_atomic_exchange): Use create_input_operand
7871         instead of create_convert_operand_to.
7872         (maybe_emit_sync_lock_test_and_set): Likewise.
7873         (expand_atomic_compare_and_swap): Likewise.
7874         (maybe_emit_compare_and_swap_exchange_loop): Don't convert_modes.
7875
7876 2013-08-24  Sriraman Tallam  <tmsriram@google.com>
7877
7878         * cgraph.c (cgraph_fnver_htab): Move GTY((...)) to be before htab_t.
7879         Change param_is to use the struct and not the pointer to the struct.
7880
7881 2013-10-24  Andrew MacLeod  <amacleod@redhat.com>
7882
7883         * builtins.c (dummy_object, gimplify_va_arg_expr): Move to gimplify.c.
7884         * gimplify.c (build_va_arg_indirect_ref, std_gimplify_va_arg_expr):
7885         Move to targhooks.c.
7886         (dummy_object, gimplify_va_arg_expr): Relocate from builtins.c.
7887         * targhooks.c (build_va_arg_indirect_ref, std_gimplify_va_arg_expr):
7888         Relocate from gimplify.c.
7889         * targhooks.h: Add 2 prototypes.
7890         * tree.h: Delete 2 prototypes.
7891
7892 2013-10-24  Igor Shevlyakov  <igor.shevlyakov@gmail.com>
7893
7894         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p ): Check both
7895         [reg+mult*reg] and [mult*reg] to determine if multiplier is allowed.
7896
7897 2013-10-24  Cong Hou  <congh@google.com>
7898
7899         * convert.c (convert_to_real): Guard those unsafe math function
7900         convertions with flag_unsafe_math_optimizations.  Handle sqrt()
7901         specially.
7902
7903 2013-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
7904
7905         PR ipa/58712
7906         * cgraph.c (cgraph_create_edge_1): Add indirect_unknown_callee
7907         as argument.
7908         (cgraph_create_edge): Use the new argument.
7909         (cgraph_create_indirect_edge): Likewise.
7910
7911 2013-10-24  Joern Rennecke  <joern.rennecke@embecosm.com>
7912
7913         * config/arc/arc.c (arc_ccfsm_post_advance): Also handle
7914         TYPE_UNCOND_BRANCH.
7915         (arc_ifcvt) <case 1 and 2>: Check that arc_ccfsm_post_advance
7916         changes statep->state.
7917
7918 2013-10-24  Tobias Burnus  <burnus@net-b.de>
7919
7920         PR other/33426
7921         * tree-cfg.c (replace_loop_annotate): New function.
7922         (execute_build_cfg): Call it.
7923         * gimplify.c (gimple_boolify, gimplify_expr): Handle ANNOTATE_EXPR.
7924         * internal-fn.c (expand_ANNOTATE): New function.
7925         * internal-fn.def (ANNOTATE): Define as new internal function.
7926         * tree-core.h (tree_node_kind): Add annot_expr_ivdep_kind.
7927         * tree-pretty-print.c (dump_generic_node): Handle ANNOTATE_EXPR.
7928         * tree.def (ANNOTATE_EXPR): New DEFTREECODE.
7929         * doc/extend.texi (Pragmas): Document #pragma ivdep.
7930         * doc/generic.texi (Expressions): Document ANNOTATE_EXPR.
7931
7932 2013-10-17  Ian Bolton  <ian.bolton@arm.com>
7933             Marcus Shawcroft  <marcus.shawcroft@arm.com>
7934
7935         * config/aarch64/aarch64.c (aarch64_preferred_reload_class):
7936         Special case reload SP+C into none GENERAL_REGS.
7937
7938 2013-10-24  Michael Matz  <matz@suse.de>
7939
7940         * gengtype.c (is_file_equal): Check that files will be same length.
7941
7942 2013-10-25  Christian Bruel  <christian.bruel@st.com>
7943
7944         * config.gcc (sh-*): Add sh-mem.o to extra_obj.
7945         * config/sh/t-sh (sh-mem.o): New rule.
7946         * config/sh/sh-mem.cc (expand_block_move): Moved here.
7947         (sh_expand_cmpstr): New function.
7948         * config/sh/sh.c (force_into, expand_block_move): Move to sh-mem.c.
7949         * config/sh/sh-protos.h (sh_expand_cmpstr): Declare.
7950         * config/sh/sh.md (cmpstrsi, cmpstr_t): New patterns.
7951         (rotlhi3_8): Rename.
7952
7953 2013-10-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7954
7955         * configure.ac (ZW_PROG_COMPILER_DEPENDENCIES): Use CXX instead of CC.
7956         * Makefile.in (CXXDEPMODE): Assign and change users.
7957         (CCDEPMODE): Delete.
7958         * configure: Regenerate.
7959
7960 2013-10-23  David Malcolm  <dmalcolm@redhat.com>
7961
7962         * gengtype-parse.c (require_without_advance): New.
7963         (type): For GTY-marked types that are not GTY((user)), parse any
7964         base classes, requiring them to be single-inheritance, and not
7965         be templates.  For non-GTY-marked types and GTY((user)),
7966         continue to skip over any C++ inheritance specification.
7967         * gengtype-state.c (state_writer::write_state_struct_type):
7968         Write base class of type (if any).
7969         (read_state_struct_type): Read base class of type (if any).
7970         * gengtype.c (new_structure): Add a "base_class" parameter.
7971         (create_optional_field_): Update for new parameter to new_structure.
7972         (adjust_field_rtx_def): Likewise.
7973         (adjust_field_tree_exp): Likewise.
7974         * gengtype.h (struct type): Add "base_class" field to the s
7975         union field.
7976         (new_structure): Add "base" parameter.
7977
7978 2013-10-23  Sriraman Tallam  <tmsriram@google.com>
7979
7980         PR target/57756
7981         * config/i386/i386.c (ix86_option_override_internal):
7982         Change TARGET_SSE2 to TARGET_SSE2_P (opts->...)
7983         (ix86_valid_target_attribute_tree):
7984         Change TARGET_64BIT to TARGET_64BIT_P (opts->...)
7985         Change TARGET_SSE to TARGET_SSE_P (opts->...)
7986
7987 2013-10-23  Andrew MacLeod  <amacleod@redhat.com>
7988
7989         * tree-ssa-loop.h: Remove include files.
7990         * gengtype.c (open_base_files): Adjust include list for gtype-desc.c.
7991         * cfgloopmanip.c: Move required includes from tree-ssa-loop.h.
7992         * graphite-clast-to-gimple.c: Likewise.
7993         * graphite-scop-detection.c: Likewise.
7994         * graphite-sese-to-poly.c: Likewise.
7995         * ipa-inline-analysis.c: Likewise.
7996         * ipa-pure-const.c: Likewise.
7997         * loop-init.c: Likewise.
7998         * passes.c: Likewise.
7999         * predict.c: Likewise.
8000         * tree-cfg.c: Likewise.
8001         * tree-cfgcleanup.c: Likewise.
8002         * tree-chrec.c: Likewise.
8003         * tree-data-ref.c: Likewise.
8004         * tree-loop-distribution.c: Likewise.
8005         * tree-parloops.c: Likewise.
8006         * tree-predcom.c: Likewise.
8007         * tree-scalar-evolution.c: Likewise.
8008         * tree-ssa-address.c: Likewise.
8009         * tree-ssa.c: Likewise.
8010         * tree-ssa-dce.c: Likewise.
8011         * tree-ssa-loop.c: Likewise.
8012         * tree-ssa-loop-im.c: Likewise.
8013         * tree-ssa-loop-ivcanon.c: Likewise.
8014         * tree-ssa-loop-ivopts.c: Likewise.
8015         * tree-ssa-loop-manip.c: Likewise.
8016         * tree-ssa-loop-niter.c: Likewise.
8017         * tree-ssa-loop-prefetch.c: Likewise.
8018         * tree-ssa-loop-unswitch.c: Likewise.
8019         * tree-ssa-reassoc.c: Likewise.
8020         * tree-vect-data-refs.c: Likewise.
8021         * tree-vect-loop.c: Likewise.
8022         * tree-vect-loop-manip.c: Likewise.
8023         * tree-vectorizer.c: Likewise.
8024         * tree-vect-stmts.c: Likewise.
8025         * tree-vrp.c: Likewise.
8026
8027 2013-10-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8028
8029         * config/rs6000/altivec.md (mulv8hi3): Adjust for little endian.
8030
8031 2013-10-23  Jakub Jelinek  <jakub@redhat.com>
8032
8033         PR tree-optimization/58775
8034         PR tree-optimization/58791
8035         * tree-ssa-reassoc.c (reassoc_stmt_dominates_stmt_p): New function.
8036         (insert_stmt_after): Rewritten, don't move the stmt, but really
8037         insert it.
8038         (get_stmt_uid_with_default): Remove.
8039         (build_and_add_sum): Use insert_stmt_after and
8040         reassoc_stmt_dominates_stmt_p.  Fix up uid if bb contains only labels.
8041         (update_range_test): Set uid on stmts added by
8042         force_gimple_operand_gsi.  Don't immediately modify statements
8043         in inter-bb optimization, just update oe->op values.
8044         (optimize_range_tests): Return bool whether any changed have been made.
8045         (update_ops): New function.
8046         (struct inter_bb_range_test_entry): New type.
8047         (maybe_optimize_range_tests): Perform statement changes here.
8048         (not_dominated_by, appears_later_in_bb, get_def_stmt,
8049         ensure_ops_are_available): Remove.
8050         (find_insert_point): Rewritten.
8051         (rewrite_expr_tree): Remove MOVED argument, add CHANGED argument,
8052         return LHS of the (new resp. old) stmt.  Don't call
8053         ensure_ops_are_available, don't reuse SSA_NAMEs, recurse first
8054         instead of last, move new stmt at the right place.
8055         (linearize_expr, repropagate_negates): Don't reuse SSA_NAMEs.
8056         (negate_value): Likewise.  Set uids.
8057         (break_up_subtract_bb): Initialize uids.
8058         (reassociate_bb): Adjust rewrite_expr_tree caller.
8059         (do_reassoc): Don't call renumber_gimple_stmt_uids.
8060
8061 2013-10-23  David Edelsohn  <dje.gcc@gmail.com>
8062
8063         PR target/58838
8064         * config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add
8065         TARGET_32BIT final condition.
8066         (mulsi3_internal2 and splitter): Same.
8067
8068 2013-10-23  Jeff Law  <law@redhat.com>
8069
8070         * tree-ssa-threadedge.c (thread_across_edge): Do not allow threading
8071         through joiner blocks with abnormal outgoing edges.
8072
8073         * tree-ssa-threadupdate.c (thread_block_1): Renamed from thread_block.
8074         Add parameter JOINERS, to allow/disallow threading through joiner
8075         blocks.
8076         (thread_block): New.  Call thread_block_1.
8077         (mark_threaded_blocks): Remove code to filter out certain cases
8078         of threading through joiner blocks.
8079         (thread_through_all_blocks): Document how we can have a dangling
8080         edge AUX field and clear it.
8081
8082 2013-10-23  Ian Lance Taylor  <iant@google.com>
8083
8084         * doc/invoke.texi (Option Summary): Remove -fno-default-inline.
8085         (C++ Dialect Options): Likewise.
8086         (Optimize Options): Likewise.
8087
8088 2013-10-23  Tom de Vries  <tom@codesourcery.com>
8089
8090         PR tree-optimization/58805
8091         * tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check.
8092
8093 2013-10-23  Jakub Jelinek  <jakub@redhat.com>
8094
8095         * tree-vect-patterns.c (vect_recog_divmod_pattern): Optimize
8096         sequence based on get_range_info returned range.
8097
8098 2013-10-23  Andrew MacLeod  <amacleod@redhat.com>
8099
8100         * tree-ssa.h: Remove all #include's
8101         * gengtype.c (open_base_files): Adjust include list for gtype-desc.c.
8102         * alias.c: Move required includes from tree-ssa.h.
8103         * asan.c: Likewise.
8104         * builtins.c: Likewise.
8105         * calls.c: Likewise.
8106         * cfgexpand.c: Likewise.
8107         * cfghooks.c: Likewise.
8108         * cfgloop.c: Likewise.
8109         * cfgloopmanip.c: Likewise.
8110         * cgraph.c: Likewise.
8111         * cgraphbuild.c: Likewise.
8112         * cgraphclones.c: Likewise.
8113         * cgraphunit.c: Likewise.
8114         * dse.c: Likewise.
8115         * except.c: Likewise.
8116         * expr.c: Likewise.
8117         * final.c: Likewise.
8118         * fold-const.c: Likewise.
8119         * ggc-page.c: Likewise.
8120         * gimple-builder.c: Likewise.
8121         * gimple-fold.c: Likewise.
8122         * gimple-iterator.c: Likewise.
8123         * gimple-low.c: Likewise.
8124         * gimple-pretty-print.c: Likewise.
8125         * gimple-ssa-strength-reduction.c: Likewise.
8126         * gimple-streamer-in.c: Likewise.
8127         * gimple-streamer-out.c: Likewise.
8128         * gimplify.c: Likewise.
8129         * graphite-blocking.c: Likewise.
8130         * graphite-clast-to-gimple.c: Likewise.
8131         * graphite-dependences.c: Likewise.
8132         * graphite-interchange.c: Likewise.
8133         * graphite-optimize-isl.c: Likewise.
8134         * graphite-poly.c: Likewise.
8135         * graphite-scop-detection.c: Likewise.
8136         * graphite-sese-to-poly.c: Likewise.
8137         * graphite.c: Likewise.
8138         * ipa-cp.c: Likewise.
8139         * ipa-inline-analysis.c: Likewise.
8140         * ipa-inline-transform.c: Likewise.
8141         * ipa-inline.c: Likewise.
8142         * ipa-prop.c: Likewise.
8143         * ipa-pure-const.c: Likewise.
8144         * ipa-reference.c: Likewise.
8145         * ipa-split.c: Likewise.
8146         * ipa-utils.c: Likewise.
8147         * loop-init.c: Likewise.
8148         * lto-cgraph.c: Likewise.
8149         * lto-section-in.c: Likewise.
8150         * lto-section-out.c: Likewise.
8151         * lto-streamer-in.c: Likewise.
8152         * lto-streamer-out.c: Likewise.
8153         * lto-streamer.c: Likewise.
8154         * omp-low.c: Likewise.
8155         * passes.c: Likewise.
8156         * predict.c: Likewise.
8157         * print-tree.c: Likewise.
8158         * profile.c: Likewise.
8159         * sese.c: Likewise.
8160         * targhooks.c: Likewise.
8161         * tracer.c: Likewise.
8162         * trans-mem.c: Likewise.
8163         * tree-call-cdce.c: Likewise.
8164         * tree-cfg.c: Likewise.
8165         * tree-cfgcleanup.c: Likewise.
8166         * tree-chrec.c: Likewise.
8167         * tree-complex.c: Likewise.
8168         * tree-data-ref.c: Likewise.
8169         * tree-dfa.c: Likewise.
8170         * tree-eh.c: Likewise.
8171         * tree-emutls.c: Likewise.
8172         * tree-if-conv.c: Likewise.
8173         * tree-inline.c: Likewise.
8174         * tree-into-ssa.c: Likewise.
8175         * tree-loop-distribution.c: Likewise.
8176         * tree-mudflap.c: Likewise.
8177         * tree-nested.c: Likewise.
8178         * tree-nrv.c: Likewise.
8179         * tree-object-size.c: Likewise.
8180         * tree-outof-ssa.c: Likewise.
8181         * tree-parloops.c: Likewise.
8182         * tree-phinodes.c: Likewise.
8183         * tree-predcom.c: Likewise.
8184         * tree-pretty-print.c: Likewise.
8185         * tree-profile.c: Likewise.
8186         * tree-scalar-evolution.c: Likewise.
8187         * tree-sra.c: Likewise.
8188         * tree-ssa-address.c: Likewise.
8189         * tree-ssa-alias.c: Likewise.
8190         * tree-ssa-ccp.c: Likewise.
8191         * tree-ssa-coalesce.c: Likewise.
8192         * tree-ssa-copy.c: Likewise.
8193         * tree-ssa-copyrename.c: Likewise.
8194         * tree-ssa-dce.c: Likewise.
8195         * tree-ssa-dom.c: Likewise.
8196         * tree-ssa-dse.c: Likewise.
8197         * tree-ssa-forwprop.c: Likewise.
8198         * tree-ssa-ifcombine.c: Likewise.
8199         * tree-ssa-live.c: Likewise.
8200         * tree-ssa-loop-ch.c: Likewise.
8201         * tree-ssa-loop-im.c: Likewise.
8202         * tree-ssa-loop-ivcanon.c: Likewise.
8203         * tree-ssa-loop-ivopts.c: Likewise.
8204         * tree-ssa-loop-manip.c: Likewise.
8205         * tree-ssa-loop-niter.c: Likewise.
8206         * tree-ssa-loop-prefetch.c: Likewise.
8207         * tree-ssa-loop-unswitch.c: Likewise.
8208         * tree-ssa-loop.c: Likewise.
8209         * tree-ssa-math-opts.c: Likewise.
8210         * tree-ssa-operands.c: Likewise.
8211         * tree-ssa-phiopt.c: Likewise.
8212         * tree-ssa-phiprop.c: Likewise.
8213         * tree-ssa-pre.c: Likewise.
8214         * tree-ssa-propagate.c: Likewise.
8215         * tree-ssa-reassoc.c: Likewise.
8216         * tree-ssa-sccvn.c: Likewise.
8217         * tree-ssa-sink.c: Likewise.
8218         * tree-ssa-strlen.c: Likewise.
8219         * tree-ssa-structalias.c: Likewise.
8220         * tree-ssa-tail-merge.c: Likewise.
8221         * tree-ssa-ter.c: Likewise.
8222         * tree-ssa-threadedge.c: Likewise.
8223         * tree-ssa-threadupdate.c: Likewise.
8224         * tree-ssa-uncprop.c: Likewise.
8225         * tree-ssa-uninit.c: Likewise.
8226         * tree-ssa.c: Likewise.
8227         * tree-ssanames.c: Likewise.
8228         * tree-stdarg.c: Likewise.
8229         * tree-streamer-in.c: Likewise.
8230         * tree-switch-conversion.c: Likewise.
8231         * tree-tailcall.c: Likewise.
8232         * tree-vect-data-refs.c: Likewise.
8233         * tree-vect-generic.c: Likewise.
8234         * tree-vect-loop-manip.c: Likewise.
8235         * tree-vect-loop.c: Likewise.
8236         * tree-vect-patterns.c: Likewise.
8237         * tree-vect-slp.c: Likewise.
8238         * tree-vect-stmts.c: Likewise.
8239         * tree-vectorizer.c: Likewise.
8240         * tree-vrp.c: Likewise.
8241         * tree.c: Likewise.
8242         * tsan.c: Likewise.
8243         * value-prof.c: Likewise.
8244         * var-tracking.c: Likewise.
8245         * varpool.c: Likewise.
8246         * vtable-verify.c: Likewise.
8247
8248 2013-10-23  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8249
8250         * config/tilegx/tilegx.c: Include "tree.h".
8251
8252 2013-10-23  Jakub Jelinek  <jakub@redhat.com>
8253
8254         * gimple-pretty-print.c (dump_ssaname_info): Always print "# " before
8255         the info, not after it.
8256         (gump_gimple_phi): Add COMMENT argument, if true, print "# " after
8257         dump_ssaname_info call.
8258         (pp_gimple_stmt_1): Adjust caller.
8259         (dump_phi_nodes): Likewise.  Don't print "# " here.
8260
8261 2013-10-22  Jan Hubicka  <jh@suse.cz>
8262
8263         * i386.h (TARGET_MISALIGNED_MOVE_STRING_PROLOGUES_EPILOGUES): New
8264         tuning flag.
8265         * x86-tune.def (TARGET_MISALIGNED_MOVE_STRING_PROLOGUES): Define it.
8266         * i386.c (expand_small_movmem_or_setmem): New function.
8267         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): New
8268         function.
8269         (alg_usable_p): Add support for value ranges; cleanup.
8270         (ix86_expand_set_or_movmem): Add support for misaligned moves.
8271
8272 2013-10-22  Sterling Augustine  <saugustine@google.com>
8273
8274         * doc/invoke.texi: Document -ggnu-pubnames.
8275         * common.opt: Add new option -ggnu-pubnames and modify -gpubnames
8276         logic.
8277         * dwarf2out.c: Include gdb/gdb-index.h.
8278         (DEBUG_PUBNAMES_SECTION, DEBUG_PUBTYPES_SECTION): Handle
8279         debug_generate_pub_sections.
8280         (is_java, output_pubtables, output_pubname): New functions.
8281         (include_pubname_in_output): Handle debug_generate_pub_sections at
8282         level 2.
8283         (size_of_pubnames): Use new local space_for_flags based on
8284         debug_generate_pub_sections.
8285         (output_pubnames): Unify pubnames and pubtypes output logic.
8286         Genericize comments.  Call output_pubname.
8287         (dwarf2out_finish): Move logic to output_pubnames and call it.
8288
8289 2013-10-22  Uros Bizjak  <ubizjak@gmail.com>
8290
8291         PR target/58779
8292         * config/i386/i386.c (put_condition_code) <case GTU, case LEU>:
8293         Remove CCCmode handling.
8294         <case LTU>: Return 'c' suffix for CCCmode.
8295         <case GEU>: Return 'nc' suffix for CCCmode.
8296         (ix86_cc_mode) <case GTU, case LEU>: Do not generate overflow checks.
8297         * config/i386/i386.md (*sub<mode>3_cconly_overflow): Remove.
8298         (*sub<mode>3_cc_overflow): Ditto.
8299         (*subsi3_zext_cc_overflow): Ditto.
8300
8301 2013-10-22  Steve Ellcey  <sellcey@mips.com>
8302
8303         * config/mips/mips.c (mips_rtx_costs):  Fix cost estimate for nor
8304         (AND (NOT OP1) (NOT OP2)).
8305
8306 2013-10-22  Bill Schmidt  <wschmidt@vnet.ibm.com>
8307
8308         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
8309         meaning of merge-high and merge-low masks for little endian; avoid
8310         use of vector-pack masks for little endian for mismatched modes.
8311
8312 2013-10-22  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8313
8314         * config/tilepro/tilepro.c: Include "tree.h".
8315
8316 2013-10-22  Andreas Schwab  <schwab@suse.de>
8317
8318         * config/m68k/m68k.c (notice_update_cc): Handle register conflict
8319         with PRE_DEC.
8320
8321 2013-10-22  Paolo Carlini  <paolo.carlini@oracle.com>
8322
8323         * doc/contrib.texi ([Fran@,{c}ois Dumont], [Tim Shen],
8324         [Ed Smith-Rowland]): New entries.
8325         ([Stephen M. Webb]): Update.
8326
8327 2013-10-22  Andrew MacLeod  <amacleod@redhat.com>
8328
8329         * tree-ssa-ter.h: Remove duplicate copy of file contents.
8330
8331 2013-10-21  Marek Polacek  <polacek@redhat.com>
8332
8333         PR middle-end/58809
8334         * fold-const.c (fold_range_test): Return 0 if the type is not
8335         an integral type.
8336
8337 2013-10-21  Richard Sandiford  <rdsandiford@googlemail.com>
8338
8339         * system.h: Move hwint.h include further down.
8340         * hwint.h (sext_hwi, zext_hwi): Define unconditionally.  Add
8341         gcc_checking_asserts.
8342         * hwint.c (sext_hwi, zext_hwi): Delete ENABLE_CHECKING versions.
8343
8344 2013-10-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8345
8346         Fix volatile issues in optimize_bit_field_compare.
8347         * fold-const.c (optimize_bit_field_compare): Bail out if
8348         lvolatilep or rvolatilep.
8349
8350 2013-10-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8351
8352         Fix DECL_BIT_FIELD depencency on flag_strict_volatile_bitfields
8353         and get_inner_reference returning different pmode for non-volatile
8354         bit-field members dependent on flag_strict_volatile_bitfields.
8355         * stor-layout.c (layout_decl): Remove special handling of
8356         flag_strict_volatile_bitfields.
8357         * expr.c (get_inner_reference): Don't use DECL_BIT_FIELD
8358         if flag_strict_volatile_bitfields > 0 and TREE_THIS_VOLATILE.
8359
8360 2013-10-21  Paulo Matos  <pmatos@broadcom.com>
8361
8362         * ipa-inline.c (edge_badness): Cap edge->count at max_count for badness
8363         calculations.
8364
8365 2013-10-21  Jeff Law  <law@redhat.com>
8366
8367         * tree-ssa-threadedge.c (thread_through_normal_block): New
8368         argument VISITED.  Remove VISISTED as a local variable.  When we
8369         have a threadable jump, verify the destination of the jump has not
8370         been visised.
8371         (thread_across_edge): Allocate VISITED bitmap once at function
8372         scope and use it throughout.  Make sure to set appropriate bits in
8373         VISITED for E (start of jump thread path).
8374         * tree-ssa-threadupdate.c (mark_threaded_blocks): Reject threading
8375         through a joiner if any edge on the path has a recorded jump thread.
8376
8377 2013-10-21  Ian Lance Taylor  <iant@google.com>
8378
8379         * doc/invoke.texi (Optimize Options): For -fno-toplevel-reorder,
8380         don't imply that attributes can solve all problems.
8381         (Directory Options): Fix typo.
8382
8383 2013-10-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8384
8385         * config/arm/arm.c (cortexa9_extra_costs): Update mult costs for
8386         extend and extend_add.
8387
8388 2013-10-21  Richard Biener  <rguenther@suse.de>
8389
8390         PR tree-optimization/58794
8391         * fold-const.c (operand_equal_p): Compare FIELD_DECL operand
8392         of COMPONENT_REFs with OEP_CONSTANT_ADDRESS_OF left in place.
8393
8394 2013-10-21  Richard Biener  <rguenther@suse.de>
8395
8396         PR middle-end/58742
8397         * fold-const.c (fold_binary_loc): Fold ((T) (X /[ex] C)) * C
8398         to (T) X for sign-changing conversions (or no conversion).
8399
8400 2013-10-20  Uros Bizjak  <ubizjak@gmail.com>
8401
8402         * config/i386/i386.md (kxnor<mode>): Add FLAGS_REG clobber.
8403
8404 2013-10-20  Jan Hubicka  <jh@suse.cz>
8405
8406         * config/i386/i386-tune.def: Add comment; organize into categories
8407
8408 2013-10-21  Michael Zolotukhin  <michael.v.zolotukhin@gmail.com>
8409
8410         * config/i386/i386.c (expand_set_or_movmem_via_loop): Add issetmem
8411         argument.  Update function comment.
8412         (expand_set_or_movmem_via_rep): New function combining
8413         expand_movmem_via_rep_mov and expand_setmem_via_rep_stos.
8414         (expand_movmem_via_rep_mov): Remove.
8415         expand_setmem_via_rep_stos): Remove.
8416         (expand_movmem_epilogue): Update calls correspondingly.
8417         (expand_setmem_epilogue_via_loop): Likewise.
8418         (emit_memset): New.
8419         (expand_setmem_epilogue): Add VEC_VALUE argument, refactor.
8420         (expand_set_or_movmem_prologue): New function combining
8421         expand_movmem_prologue and expand_setmem_prologue.
8422         (expand_movmem_prologue): Remove.
8423         (expand_setmem_prologue): Remove.
8424         (expand_set_or_movmem_constant_prologue): New function combining
8425         expand_constant_movmem_prologue and expand_constant_setmem_prologue.
8426         (expand_constant_movmem_prologue): Remove.
8427         (expand_constant_setmem_prologue): Remove.
8428         (promote_duplicated_reg): Allow vector-const0 value.
8429         (ix86_expand_set_or_movmem): New function combining ix86_expand_movmem
8430         and ix86_expand_setmem.
8431         (ix86_expand_movmem): Call ix86_expand_set_or_movmem.
8432         (ix86_expand_setmem): Call ix86_expand_set_or_movmem.
8433
8434 2013-10-21  Diego Novillo  <dnovillo@google.com>
8435
8436         * asan.c: Include tree.h
8437         * bb-reorder.c: Likewise.
8438         * cfgcleanup.c: Likewise.
8439         * cfgloopmanip.c: Likewise.
8440         * data-streamer-in.c: Likewise.
8441         * data-streamer-out.c: Likewise.
8442         * data-streamer.c: Likewise.
8443         * dwarf2cfi.c: Likewise.
8444         * graphite-blocking.c: Likewise.
8445         * graphite-clast-to-gimple.c: Likewise.
8446         * graphite-dependences.c: Likewise.
8447         * graphite-interchange.c: Likewise.
8448         * graphite-optimize-isl.c: Likewise.
8449         * graphite-poly.c: Likewise.
8450         * graphite-scop-detection.c: Likewise.
8451         * graphite-sese-to-poly.c: Likewise.
8452         * graphite.c: Likewise.
8453         * ipa-devirt.c: Likewise.
8454         * ipa-profile.c: Likewise.
8455         * ipa.c: Likewise.
8456         * ira.c: Likewise.
8457         * loop-init.c: Likewise.
8458         * loop-unroll.c: Likewise.
8459         * lower-subreg.c: Likewise.
8460         * lto/lto-object.c: Likewise.
8461         * recog.c: Likewise.
8462         * reginfo.c: Likewise.
8463         * tree-loop-distribution.c: Likewise.
8464         * tree-parloops.c: Likewise.
8465         * tree-ssa-strlen.c: Likewise.
8466         * tree-streamer.c: Likewise.
8467         * value-prof.c: Likewise.
8468         * target-globals.c: Likewise.
8469         * expr.h: Include tree-core.h instead of tree.h.
8470         * gimple.h: Likewise.
8471         * ipa-prop.h: Likewise.
8472         * ipa-utils.h: Likewise.
8473         * lto-streamer.h: Likewise.
8474         * streamer-hooks.h: Likewise.
8475         * ipa-reference.h: Include cgraph.h instead of tree.h.
8476         * cgraph.h: Include basic-block.h instead of tree.h.
8477         * tree-streamer.h: Do not include tree.h.
8478         * genattrtab.c (write_header): Generate inclusion of tree.h.
8479         * genautomata.c (main): Likewise.
8480         * genemit.c: Likewise.
8481         * genopinit.c: Likewise.
8482         * genoutput.c (output_prologue): Likewise.
8483         * genpeep.c: Likewise.
8484
8485 2013-10-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8486
8487         * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Adjust for
8488         little endian.
8489         (vec_unpacku_hi_v8hi): Likewise.
8490         (vec_unpacku_lo_v16qi): Likewise.
8491         (vec_unpacku_lo_v8hi): Likewise.
8492
8493 2013-10-20  Jan Hubicka  <jh@suse.cz>
8494
8495         * config/i386/x86-tune.def (X86_TUNE_SLOW_IMUL_IMM32_MEM,
8496         X86_TUNE_SLOW_IMUL_IMM8): Keep enabled only for K8 and AMDFAM10.
8497         (X86_TUNE_USE_VECTOR_FP_CONVERTS): Disable for generic.
8498
8499 2013-10-20  Richard Sandiford  <rdsandiford@googlemail.com>
8500
8501         * config/mips/mips.h (ISA_HAS_WSBH): Define.
8502         * config/mips/mips.md (UNSPEC_WSBH, UNSPEC_DSBH, UNSPEC_DSHD): New
8503         constants.
8504         (bswaphi2, bswapsi2, bswapdi2, wsbh, dsbh, dshd): New patterns.
8505
8506 2013-10-19  John David Anglin  <danglin@gcc.gnu.org>
8507
8508         PR target/58603
8509         * system.h: Undef m_slot.
8510
8511 2013-10-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8512
8513         * config/rs6000/rs6000.c (vspltis_constant): Make sure we check
8514         all elements for both endian flavors.
8515
8516 2013-10-19  Uros Bizjak  <ubizjak@gmail.com>
8517
8518         PR target/58792
8519         * config/i386/i386.c (ix86_function_value_regno): Add DX_REG,
8520         ST1_REG and XMM1_REG for 32bit and 64bit targets.  Also add DI_REG
8521         and SI_REG for 64bit SYSV ABI targets.
8522
8523 2013-10-19  Uros Bizjak  <ubizjak@gmail.com>
8524
8525         * mode-switching.c (create_pre_exit): Rename maybe_builtin_apply
8526         to multi_reg_return.  Clarify that we are skipping USEs of multiple
8527         return registers.  Use bool type where appropriate.
8528
8529 2013-10-18  Jan Hubicka  <jh@suse.cz>
8530
8531         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Disable accumulation
8532         for cold functions.
8533         * x86-tune.def (X86_TUNE_USE_LEAVE): Update comment.
8534         (X86_TUNE_PUSH_MEMORY): Likewise.
8535         (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL,
8536         X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): New.
8537         (X86_TUNE_ACCUMULATE_OUTGOING_ARGS, X86_TUNE_ALWAYS_FANCY_MATH_387):
8538         New.
8539         * i386.c (x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
8540         x86_avx256_split_unaligned_load, x86_avx256_split_unaligned_store):
8541         Remove.
8542         (ix86_option_override_internal): Update to use tune features instead
8543         of variables.
8544
8545 2013-10-18  Cong Hou  <congh@google.com>
8546
8547         PR tree-optimization/58508
8548         * tree-vect-loop-manip.c (vect_loop_versioning): Hoist loop invariant
8549         statement that contains data refs with zero-step.
8550
8551 2013-10-18  Andrew MacLeod  <amacleod@redhat.com>
8552
8553         * tree-ssa.h: Don't include gimple-low.h, tree-ssa-address.h,
8554         sbitmap.h, tree-ssa-threadedge.h, tree-ssa-dom.h and tree-cfgcleanup.h.
8555         * gimple-low.c (gimple_check_call_arg,
8556         gimple_check_call_matching_types): Move to cgraph.c.
8557         * gimple-low.h: Remove prototype.
8558         * cgraph.c: (gimple_check_call_arg, gimple_check_call_matching_types):
8559         Relocate from gimple-low.c.
8560         * cgraph.h: Add prototype.  Don't include basic-block.h.
8561         * gimplify.c: Add gimple-low to include list.
8562         * omp-low.c: Add gimple-low and tree-cfgcleanup.h to include list.
8563         * tree-eh.c: Add gimple-low to include list.
8564         * tree-nested.c: Likewise.
8565         * cfgexpand.c: Add tree-ssa-address.h to include list.
8566         * expr.c: Likewise.
8567         * gimple-fold.c: Likewise.
8568         * gimple-ssa-strength-reduction.c: Likewise.
8569         * trans-mem.c: Likewise.
8570         * tree-mudflap.c: Likewise.
8571         * tree-ssa-loop-ivopts.c: Likewise.
8572         * tree-ssa-dom.c: Include tree-ssa-threadedge.h and tree-ssa-dom.h.
8573         (degenerate_phi_result): Move to tree-phinodes.c.
8574         * tree-ssa-loop-ch.c: Include tree-ssa-threadedge.h.
8575         * tree-ssa-threadedge.c: Likewise.
8576         * tree-vrp.c: Likewise.
8577         * tree-phinodes.c (degenerate_phi_result): Relocate here.
8578         * tree-ssa-dom.h (degenerate_phi_result): Remove Prototype.
8579         * tree-phinodes.h (degenerate_phi_result): Add prototype.
8580         * tree-ssa-copy.c: Include tree-ssa-dom.h.
8581         * tree-ssa-forwprop.c: Likewise.
8582         * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing,
8583         pass_data_cleanup_cfg_post_optimizing,
8584         make_pass_cleanup_cfg_post_optimizing): Relocate from tree-optimize.c.
8585         * tree-optimize.c: Delete File.
8586         * graphite.c: Include tree-cfgcleanup.h.
8587         * passes.c: Likewise.
8588         * tree-cfg.c: Likewise.
8589         * tree-profile.c: Likewise.
8590         * tree-ssa-dse.c: Likewise.
8591         * tree-ssa-loop-ivcanon.c: Likewise.
8592         * tree-switch-conversion.c: Don't include tree-ssa-operands.h.
8593         * tree-outof-ssa.c: Include sbitmap.h.
8594         * tree-ssa-live.c: Likewise.
8595         * tree-ssa-propagate.c: Likewise.
8596         * tree-ssa-structalias.c: Likewise.
8597         * tree-stdarg.c: Likewise.
8598         * Makefile.in (OBJS): Delete tree-optimize.o.
8599         * basic-block.h (gcov_type, gcov_type_unsigned): Move to coretypes.h.
8600         * coretypes.h (gcov_type, gcov_type_unsigned): Relocate here.
8601         * varasm.c: Include basic-block.h.
8602         * cfgloop.h: Include function.h instead of basic-block.h
8603         (bb_loop_depth): Move to cfgloop.c.
8604         * cfgloop.c (bb_loop_depth): Relocate from cfgloop.h.
8605
8606 2013-10-18  Teresa Johnson  <tejohnson@google.com>
8607
8608         * predict.c (probably_never_executed): Compare frequency-based
8609         count to number of training runs.
8610         * params.def (UNLIKELY_BB_COUNT_FRACTION): New parameter.
8611
8612 2013-10-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8613
8614         * config/arm/arm.c (cortexa9_extra_costs): New table.
8615         (arm_cortex_a9_tune): Use cortexa9_extra_costs.
8616
8617 2013-10-18  Jeff Law  <law@redhat.com>
8618
8619         * tree-ssa-threadupdate.c: Do not include "tm.h" or "tm_p.h".
8620
8621         * tree-ssa-threadupdate.c: Include "dbgcnt.h".
8622         (register_jump_thread): Add "registered_jump_thread" debug
8623         counter support.
8624         * dbgcnt.def (registered_jump_thread): New debug counter.
8625
8626 2013-10-18  Andrew MacLeod  <amacleod@redhat.com>
8627
8628         * config/rs6000/rs6000.c: Include cgraph.h.
8629
8630 2013-10-18  Teresa Johnson  <tejohnson@google.com>
8631
8632         * tree-ssa-tail-merge.c (replace_block_by): Update edge
8633         weights during merging.
8634
8635 2013-10-18  Andrew MacLeod  <amacleod@redhat.com>
8636
8637         * tree-cfg.h: Rename from tree-flow.h.  Remove #includes.
8638         * tree-ssa.h: Relocate required #includes from tree-cfg.h.
8639         * tree-ssa-operands.h: Remove prototype.
8640         * tree-ssa-operands.c (virtual_operand_p): Move to gimple.c.
8641         * gimple.c (virtual_operand_p): Relocate from gimple.c.
8642         * gimple.h: Add prototype.
8643         * gimple-ssa.h: Include tree-ssa-operands.h.
8644         * tree-dump.c: Add tree-cfg.h to include list.
8645         * tree-ssa-alias.c: Add ipa-reference.h to include list.
8646         * config/alpha/alpha.c: Include gimple-ssa.h instead of tree-flow.h.
8647         * config/i386/i386.c: Don't include tree-flow.h.
8648         * config/rs6000/rs6000.c: Likewise.
8649
8650 2013-10-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
8651
8652         * config/frv/frv.c (frv_init_cumulative_args): Fix wrong cast.
8653
8654 2013-10-18  Richard Biener  <rguenther@suse.de>
8655
8656         * stor-layout.c (layout_type): Do not change TYPE_PRECISION
8657         or TYPE_UNSIGNED of integral types.
8658         (set_min_and_max_values_for_integral_type): Leave TYPE_MIN/MAX_VALUE
8659         NULL_TREE for zero-precision integral types.
8660
8661 2013-10-18  James Greenhalgh  <james.greenhalgh@arm.com>
8662
8663         * config/aarch64/arm_neon.h
8664         (vcvt<ds>_n_<fsu><32,64>_<fsu><32,64>): Correct argument types.
8665
8666 2013-10-17  Sriraman Tallam  <tmsriram@google.com>
8667
8668         PR target/57756
8669         * opth-gen.awk: Define target_flags_explicit.
8670
8671 2013-10-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
8672
8673         * config/rs6000/rs6000.c (enum rs6000_reload_reg_type): Add new
8674         fields to the reg_addr array that describes the valid addressing
8675         mode for any register, general purpose registers, floating point
8676         registers, and Altivec registers.
8677         (FIRST_RELOAD_REG_CLASS): Likewise.
8678         (LAST_RELOAD_REG_CLASS): Likewise.
8679         (struct reload_reg_map_type): Likewise.
8680         (reload_reg_map_type): Likewise.
8681         (RELOAD_REG_VALID): Likewise.
8682         (RELOAD_REG_MULTIPLE): Likewise.
8683         (RELOAD_REG_INDEXED): Likewise.
8684         (RELOAD_REG_OFFSET): Likewise.
8685         (RELOAD_REG_PRE_INCDEC): Likewise.
8686         (RELOAD_REG_PRE_MODIFY): Likewise.
8687         (reg_addr): Likewise.
8688         (mode_supports_pre_incdec_p): New helper functions to say whether
8689         a given mode supports PRE_INC, PRE_DEC, and PRE_MODIFY.
8690         (mode_supports_pre_modify_p): Likewise.
8691         (rs6000_debug_vector_unit): Rearrange the -mdebug=reg output to
8692         print the valid address mode bits for each mode.
8693         (rs6000_debug_print_mode): Likewise.
8694         (rs6000_debug_reg_global): Likewise.
8695         (rs6000_setup_reg_addr_masks): New function to set up the address
8696         mask bits for each type.
8697         (rs6000_init_hard_regno_mode_ok): Use memset to clear arrays.
8698         Call rs6000_setup_reg_addr_masks to set up the address mask bits.
8699         (rs6000_legitimate_address_p): Use mode_supports_pre_incdec_p and
8700         mode_supports_pre_modify_p to determine if PRE_INC, PRE_DEC, and
8701         PRE_MODIFY are supported.
8702         (rs6000_output_move_128bit): Change to use {src,dest}_vmx_p for altivec
8703         registers, instead of {src,dest}_av_p.
8704         (rs6000_print_options_internal): Tweak the debug output slightly.
8705
8706 2013-10-17  Uros Bizjak  <ubizjak@gmail.com>
8707
8708         * config/i386/sse.md (*vec_widen_smult_even_v8si): Remove
8709         isa attribute.
8710
8711 2013-10-17  Andrew MacLeod  <amacleod@redhat.com>
8712
8713         * tree-flow.h (struct omp_region): Move to omp-low.c.
8714         Remove omp_ prototypes and variables.
8715         * gimple.h (omp_reduction_init): Move prototype to omp-low.h.
8716         (copy_var_decl): Relocate prototype from tree-flow.h.
8717         * gimple.c (copy_var_decl): Relocate from omp-low.c.
8718         * tree.h: Move prototype to omp-low.h.
8719         * omp-low.h: New File.  Relocate prototypes here.
8720         * omp-low.c (struct omp_region): Make local here.
8721         (root_omp_region): Make static.
8722         (copy_var_decl) Move to gimple.c.
8723         (new_omp_region): Make static.
8724         (make_gimple_omp_edges): New.  Refactored from tree-cfg.c make_edges.
8725         * tree-cfg.c: Include omp-low.h.
8726         (make_edges): Factor out OMP specific bits to make_gimple_omp_edges.
8727         * gimplify.c: Include omp-low.h.
8728         * tree-parloops.c: Likewise.
8729
8730 2013-10-17  Uros Bizjak  <ubizjak@gmail.com>
8731
8732         * config/i386/i386.c (ix86_fixup_binary_operands): When both source
8733         operands are in memory, prefer to force non-matched operand 1 to
8734         the register.
8735
8736 2013-10-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
8737
8738         PR target/58673
8739         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only
8740         restrict TImode addresses to single indirect registers if both
8741         -mquad-memory and -mvsx-timode are used.
8742         (rs6000_output_move_128bit): Use quad_load_store_p to determine if
8743         we should emit load/store quad.  Remove using %y for quad memory
8744         addresses.
8745
8746         * config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add
8747         constraints to allow load/store quad on machines where TImode is
8748         not allowed in VSX registers.  Use 'n' instead of 'F' constraint
8749         for TImode to load integer constants.
8750
8751 2013-10-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8752
8753         * config/aarch64/aarch64.c (aarch64_print_operand): Handle 'c'.
8754
8755 2013-10-17  Marcus Shawcroft  <marcus.shawcroft@arm.com>
8756
8757         * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Adjust
8758         handling of STACK_REG.
8759
8760 2013-10-17  Richard Biener  <rguenther@suse.de>
8761
8762         PR tree-optimization/58143
8763         * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
8764         New function.
8765         (rewrite_to_defined_overflow): Likewise.
8766         (move_computations_dom_walker::before_dom): Rewrite stmts
8767         with undefined signed overflow that are not always executed
8768         into unsigned arithmetic.
8769
8770 2013-10-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
8771
8772         PR target/57756
8773         * config/rs6000/rs6000.opt (rs6000_isa_flags_explicit): Move the
8774         explicit isa flag to be an options variable, instead of using
8775         global_options_set.  Remove define from rs6000.h.
8776         * config/rs6000/rs6000.h (rs6000_isa_flags_explicit): Likewise.
8777
8778         * config/rs6000/rs6000.c (rs6000_option_override_internal):
8779         Initialize rs6000_isa_flags_explicit.
8780         (rs6000_function_specific_save): Add gcc_options* parameter, so
8781         that the powerpc builds after the 2013-10-15 changes.
8782         (rs6000_function_specific_restore): Likewise.
8783
8784 2013-10-16  DJ Delorie  <dj@redhat.com>
8785
8786         * config/rl78/rl78.c (rl78_alloc_address_registers_macax): Verify
8787         op is a REG before checking REGNO.
8788         (rl78_alloc_physical_registers): Verify pattern is a SET before
8789         checking SET_SRC.
8790
8791 2013-10-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8792
8793         * config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for
8794         endianness.
8795         (vec_unpacks_lo_v4sf): Likewise.
8796         (vec_unpacks_float_hi_v4si): Likewise.
8797         (vec_unpacks_float_lo_v4si): Likewise.
8798         (vec_unpacku_float_hi_v4si): Likewise.
8799         (vec_unpacku_float_lo_v4si): Likewise.
8800
8801 2013-10-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8802
8803         * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
8804         (vsx_concat_v2sf): Likewise.
8805
8806 2013-10-16  James Greenhalgh  <james.greenhalgh@arm.com>
8807
8808         * config/aarch64/aarch64.md
8809         (*mov<mode>_aarch64): Fix output template for DUP (element) Scalar.
8810
8811 2013-10-16  Andrew MacLeod  <amacleod@redhat.com>
8812
8813         PR tree-optimization/58697
8814         * cfgloop.c (get_estimated_loop_iterations_int): Rename from
8815         estimated_loop_iterations_int.
8816         (max_stmt_executions_int): Call get_max_loop_iterations_int.
8817         (get_max_loop_iterations_int): New.  HWINT version of
8818         get_max_loop_iterations.
8819         * cfgloop.h: Add prototypes.
8820         * loop-iv.c (find_simple_exit): call get_estimated_loop_iterations_int.
8821         * loop-unroll.c (decide_peel_once_rolling): Call
8822         get_estimated_loop_iterations_int.
8823         * tree-ssa-loop-niter.c (estimated_loop_iterations_int): Add back.
8824         * tree-ssa-loop-niter.h: Tweak prototypes.
8825
8826 2013-10-16  David Malcolm  <dmalcolm@redhat.com>
8827
8828         * gengtype-parse.c (struct_field_seq): Ignore access-control
8829         keywords ("public:" etc).
8830
8831 2013-10-16  Marcus Shawcroft  <marcus.shawcroft@arm.com>
8832
8833         * config/aarch64/aarch64.c (aarch64_regno_regclass): Classify
8834         FRAME_POINTER_REGNUM and ARG_POINTER_REGNUM as POINTER_REGS.
8835
8836 2013-10-16  Yvan Roux  <yvan.roux@linaro.org>
8837
8838         * config/arm/arm.opt (mlra): New option.
8839         * config/arm/arm.c (arm_lra_p): New function.
8840         (TARGET_LRA_P): Define.
8841
8842 2013-10-16  Paulo Matos  <pmatos@broadcom.com>
8843
8844         * tree-core.h (tree_code_name): Remove.
8845         * tree.h (get_tree_code_name): New prototype.
8846         * tree.c (tree_code_name): Make static.
8847         (get_tree_code_name): New function.
8848         (dump_tree_statistics, tree_check_failed, tree_not_check_failed,
8849         tree_class_check_failed, tree_range_check_failed,
8850         tree_not_class_check_failed, omp_clause_check_failed,
8851         tree_contains_struct_check_failed, tree_operand_check_failed): Use new
8852         wrapper get_tree_code_name instead of calling tree_code_name directly.
8853         * tree-vrp.c (dump_asserts_for): Likewise.
8854         * tree-dump.c (dequeue_and_dump): Likewise.
8855         * tree-pretty-print.c (do_niy, dump_generic_node): Likewise.
8856         * tree-pretty-print.h (pp_unsupported_tree): Likewise.
8857         * lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise.
8858         * tree-ssa-dom.c (print_expr_hash_elt): Likewise.
8859         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
8860         dump_ternary_rhs, dump_gimple_assign, dump_gimple_cond,
8861         dump_gimple_omp_for): Likewise.
8862         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
8863         * tree-ssa-pre.c (print_pre_expr): Likewise.
8864         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
8865         * print-tree.c (print_node_brief, print_node): Likewise.
8866         * gimple.c (gimple_check_failed): Likewise.
8867         * lto-streamer.c (lto_tag_name, print_lto_report): Likewise.
8868         * config/frv/frv.c (frv_init_cumulative_args): Likewise.
8869         * config/mep/mep.c (mep_validate_vliw): Likewise.
8870         * config/iq2000/iq2000.c (init_cumulative_args): Likewise.
8871         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
8872
8873 2013-10-16 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
8874
8875         * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
8876         for AMD bdver3.
8877
8878 2013-10-16  Hans-Peter Nilsson  <hp@axis.com>
8879
8880         * config/cris/t-elfmulti (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
8881         (MULTILIB_MATCHES): Add multilib for -march=v8.
8882
8883 2013-10-15 Sriraman Tallam  <tmsriram@google.com>
8884
8885         PR target/57756
8886         * optc-save-gen.awk: Add extra parameter to the save and restore
8887         target calls.
8888         * opth-gen.awk: Generate new TARGET_* macros  to accept a parameter.
8889         * tree.c (build_optimization_node): New parameter.  Add extra parameter
8890         to call to cl_optimization_save.
8891         (build_target_option_node): New parameter. Add extra parameter
8892         to call to cl_target_option_save.
8893         * tree.h (build_optimization_node): New parameter.
8894         (build_target_option_node): New parameter.
8895         * c-family/c-common.c (handle_optimize_attribute): Fix calls to
8896         build_optimization_node and build_target_option_node.
8897         * c-family/c-pragma.c (handle_pragma_optimize): Ditto.
8898         (handle_pragma_push_options): Ditto.
8899         * toplev.c (process_options): Ditto.
8900         * opts.c (init_options_struct): Check for opts_set non-null.
8901         * target.def (target_option.save): New parameter.
8902         (target_option.restore): New parameter.
8903         * tm.texi: Generate.
8904         * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
8905         (ix86_pragma_target_parse): Ditto.
8906         * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): New
8907         parameters.
8908         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix calls
8909         to  build_optimization_node and build_target_option_node.
8910         (rs6000_valid_attribute_p): Ditto.
8911         (rs6000_pragma_target_parse): Ditto.
8912         * config/i386/i386.opt (x_ix86_target_flags_explicit): New TargetSave
8913         data.
8914         * config/i386/i386.h:
8915         TARGET_64BIT_P: New Macro
8916         TARGET_MMX_P: New Macro.
8917         TARGET_3DNOW_P: New Macro.
8918         TARGET_3DNOW_A_P: New Macro.
8919         TARGET_SSE_P: New Macro.
8920         TARGET_SSE2_P: New Macro.
8921         TARGET_SSE3_P: New Macro.
8922         TARGET_SSSE3_P: New Macro.
8923         TARGET_SSE4_1_P: New Macro.
8924         TARGET_SSE4_2_P: New Macro.
8925         TARGET_AVX_P: New Macro.
8926         TARGET_AVX2_P: New Macro.
8927         TARGET_AVX512F_P: New Macro.
8928         TARGET_AVX512PF_P: New Macro.
8929         TARGET_AVX512ER_P: New Macro.
8930         TARGET_AVX512CD_P: New Macro.
8931         TARGET_FMA_P: New Macro.
8932         TARGET_SSE4A_P: New Macro.
8933         TARGET_FMA4_P: New Macro.
8934         TARGET_XOP_P: New Macro.
8935         TARGET_LWP_P: New Macro.
8936         TARGET_ABM_P: New Macro.
8937         TARGET_BMI_P: New Macro.
8938         TARGET_BMI2_P: New Macro.
8939         TARGET_LZCNT_P: New Macro.
8940         TARGET_TBM_P: New Macro.
8941         TARGET_POPCNT_P: New Macro.
8942         TARGET_SAHF_P: New Macro.
8943         TARGET_MOVBE_P: New Macro.
8944         TARGET_CRC32_P: New Macro.
8945         TARGET_AES_P: New Macro.
8946         TARGET_PCLMUL_P: New Macro.
8947         TARGET_CMPXCHG16B_P: New Macro.
8948         TARGET_FSGSBASE_P: New Macro.
8949         TARGET_RDRND_P: New Macro.
8950         TARGET_F16C_P: New Macro.
8951         TARGET_RTM_P: New Macro.
8952         TARGET_HLE_P: New Macro.
8953         TARGET_RDSEED_P: New Macro.
8954         TARGET_PRFCHW_P: New Macro.
8955         TARGET_ADX_P: New Macro.
8956         TARGET_FXSR_P: New Macro.
8957         TARGET_XSAVE_P: New Macro.
8958         TARGET_XSAVEOPT_P: New Macro.
8959         TARGET_LP64_P: New Macro.
8960         TARGET_X32_P: New Macro.
8961         TARGET_FPMATH_DEFAULT_P: New Macro.
8962         TARGET_FLOAT_RETURNS_IN_80387_P: New Macro.
8963         * config/i386/i386.c (ix86_option_override_internal): New parameters.
8964         opts and opts_set.
8965         Change ix86_tune_string to access opts->x_ix86_tune_string.
8966         Change ix86_isa_flags to access opts->x_ix86_isa_flags.
8967         Change ix86_arch_string to access opts->x_ix86_arch_string.
8968         Change ix86_stringop_alg to access opts->x_ix86_stringop_alg.
8969         Change ix86_pmode to access opts->x_ix86_pmode.
8970         Change ix86_abi to access opts->x_ix86_abi.
8971         Change ix86_cmodel to access opts->x_ix86_cmodel.
8972         Change ix86_asm_dialect to access opts->x_ix86_asm_dialect.
8973         Change ix86_isa_flags_explicit to access
8974         opts->x_ix86_isa_flags_explicit.
8975         Change ix86_dump_tunes to access opts->x_ix86_dump_tunes.
8976         Change ix86_regparm to access opts->x_ix86_regparm.
8977         Change ix86_branch_cost to access opts->x_ix86_branch_cost.
8978         Change ix86_preferred_stack_boundary_arg to access
8979         opts->x_ix86_preferred_stack_boundary_arg.
8980         Change ix86_force_align_arg_pointer to access
8981         opts->x_ix86_force_align_arg_pointer.
8982         Change ix86_incoming_stack_boundar_arg to access
8983         opts->x_ix86_incoming_stack_boundar_arg.
8984         Change ix86_fpmath to access opts->x_ix86_fpmath.
8985         Change ix86_veclibabi_type to access opts->x_ix86_veclibabi_type.
8986         Change ix86_recip_name to access opts->x_ix86_recip_name.
8987         Change ix86_stack_protector_guard to access
8988         opts->x_ix86_stack_protector_guard.
8989         Change ix86_tune_memcpy_strategy to access
8990         opts->x_ix86_tune_memcpy_strategy.
8991         Change ix86_tune_memset_strategy to access
8992         opts->x_ix86_tune_memset_strategy.
8993         Change global_options to access opts.
8994         Change global_options_set to access opts_set.
8995         Change TARGET_64BIT to TARGET_64BIT_P (opts->...).
8996         Change TARGET_MMX to TARGET_MMX_P (opts->...).
8997         Change TARGET_3DNOW to TARGET_3DNOW_P (opts->...).
8998         Change TARGET_3DNOW_A to TARGET_3DNOW_A_P (opts->...).
8999         Change TARGET_SSE to TARGET_SSE_P (opts->...).
9000         Change TARGET_SSE2 to TARGET_SSE2_P (opts->...).
9001         Change TARGET_SSE3 to TARGET_SSE3_P (opts->...).
9002         Change TARGET_SSSE3 to TARGET_SSSE3_P (opts->...).
9003         Change TARGET_SSE4_1 to TARGET_SSE4_1_P (opts->...).
9004         Change TARGET_SSE4_2 to TARGET_SSE4_2_P (opts->...).
9005         Change TARGET_AVX to TARGET_AVX_P (opts->...).
9006         Change TARGET_AVX2 to TARGET_AVX2_P (opts->...).
9007         Change TARGET_AVX512F to TARGET_AVX512F_P (opts->...).
9008         Change TARGET_AVX512PF to TARGET_AVX512PF_P (opts->...).
9009         Change TARGET_AVX512ER to TARGET_AVX512ER_P (opts->...).
9010         Change TARGET_AVX512CD to TARGET_AVX512CD_P (opts->...).
9011         Change TARGET_FMA to TARGET_FMA_P (opts->...).
9012         Change TARGET_SSE4A to TARGET_SSE4A_P (opts->...).
9013         Change TARGET_FMA4 to TARGET_FMA4_P (opts->...).
9014         Change TARGET_XOP to TARGET_XOP_P (opts->...).
9015         Change TARGET_LWP to TARGET_LWP_P (opts->...).
9016         Change TARGET_ABM to TARGET_ABM_P (opts->...).
9017         Change TARGET_BMI to TARGET_BMI_P (opts->...).
9018         Change TARGET_BMI2 to TARGET_BMI2_P (opts->...).
9019         Change TARGET_LZCNT to TARGET_LZCNT_P (opts->...).
9020         Change TARGET_TBM to TARGET_TBM_P (opts->...).
9021         Change TARGET_POPCNT to TARGET_POPCNT_P (opts->...).
9022         Change TARGET_SAHF to TARGET_SAHF_P (opts->...).
9023         Change TARGET_MOVBE to TARGET_MOVBE_P (opts->...).
9024         Change TARGET_CRC32 to TARGET_CRC32_P (opts->...).
9025         Change TARGET_AES to TARGET_AES_P (opts->...).
9026         Change TARGET_PCLMUL to TARGET_PCLMUL_P (opts->...).
9027         Change TARGET_CMPXCHG16B to TARGET_CMPXCHG16B_P (opts->...).
9028         Change TARGET_FSGSBASE to TARGET_FSGSBASE_P (opts->...).
9029         Change TARGET_RDRND to TARGET_RDRND_P (opts->...).
9030         Change TARGET_F16C to TARGET_F16C_P (opts->...).
9031         Change TARGET_RTM to TARGET_RTM_P (opts->...).
9032         Change TARGET_HLE to TARGET_HLE_P (opts->...).
9033         Change TARGET_RDSEED to TARGET_RDSEED_P (opts->...).
9034         Change TARGET_PRFCHW to TARGET_PRFCHW_P (opts->...).
9035         Change TARGET_ADX to TARGET_ADX_P (opts->...).
9036         Change TARGET_FXSR to TARGET_FXSR_P (opts->...).
9037         Change TARGET_XSAVE to TARGET_XSAVE_P (opts->...).
9038         Change TARGET_XSAVEOPT to TARGET_XSAVEOPT_P (opts->...).
9039         Change TARGET_LP64 to TARGET_LP64_P (opts->...).
9040         Change TARGET_X32 to TARGET_X32_P (opts->...).
9041         Change TARGET_FPMATH_DEFAULT to TARGET_FPMATH_DEFAULT_P (opts->...).
9042         Change TARGET_FLOAT_RETURNS_IN_80387 to
9043         TARGET_FLOAT_RETURNS_IN_80387_P (opts->...).
9044         (ix86_function_specific_save): New parameter. Use opts-> fields
9045         to replace global fields.
9046         (ix86_function_specific_restore): Ditto.
9047         (ix86_valid_target_attribute_inner_p): New parameters.
9048         Fix recursive call.
9049         Fix call to ix86_handle_option and set_option.
9050         (ix86_valid_target_attribute_tree): New parameters.
9051         Change global_options to access opts.
9052         Change global_options_set to access opts_set.
9053         Fix call to ix86_valid_target_attribute_inner_p.
9054         Change ix86_tune_string to access opts->x_ix86_tune_string.
9055         Change ix86_arch_string to access opts->x_ix86_arch_string.
9056         Change ix86_fpmath to access opts->x_ix86_fpmath
9057         Fix call to ix86_option_override_internal.
9058         Fix call to ix86_add_new_builtins.
9059         Fix calls to build_optimization_node and build_target_option_node.
9060         (ix86_valid_target_attribute_p): Remove access to global_options.
9061         Use new gcc_options structure func_options.
9062         Fix call to ix86_valid_target_attribute_tree.
9063         Fix call to  build_optimization_node.
9064         (get_builtin_code_for_version): Fix call to
9065         ix86_valid_target_attribute_tree.
9066
9067 2013-10-15  David Malcolm  <dmalcolm@redhat.com>
9068
9069         * Makefile.in (PICFLAG): New.
9070         (enable_host_shared): New.
9071         (INTERNAL_CFLAGS): Use PICFLAG.
9072         (LIBIBERTY): Use pic build of libiberty.a if configured with
9073         --enable-host-shared.
9074         * configure.ac: Add --enable-host-shared, setting up new
9075         PICFLAG variable.
9076         * configure: Regenerate.
9077         * doc/install.texi (--enable-shared): Add note contrasting it with ...
9078         (--enable-host-shared): New option.
9079
9080 2013-10-15  Richard Biener  <rguenther@suse.de>
9081
9082         * tree-tailcall.c (find_tail_calls): Don't use tail-call recursion
9083         for built-in functions.
9084
9085 2013-10-15  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9086
9087         * tree-ssa-reassoc.c: Include rtl.h and tm_p.h.
9088         (optimize_range_tests_1): New function,
9089         extracted from optimize_range_tests.
9090         (optimize_range_tests_xor): Similarly.
9091         (optimize_range_tests_diff): New function.
9092         (optimize_range_tests): Use optimize_range_tests_1.
9093
9094 2013-10-15  Cong Hou  <congh@google.com>
9095
9096         * tree-vect-loop.c (vect_is_simple_reduction_1): Relax the
9097         requirement of the reduction pattern so that one operand of the
9098         reduction operation can come from outside of the loop.
9099
9100 2013-10-15  James Greenhalgh  <james.greenhalgh@arm.com>
9101
9102         * config/arm/neon-schedgen.ml: Remove.
9103         * config/arm/cortex-a9-neon.md: Remove comment regarding
9104         neon-schedgen.ml.
9105
9106 2013-10-15  James Greenhalgh  <james.greenhalgh@arm.com>
9107
9108         * config/arm/types: Remove old neon types.
9109
9110 2013-10-15  James Greenhalgh  <james.greenhalgh@arm.com>
9111
9112         * config/arm/cortex-a7.md
9113         (cortex_a7_neon_type): New.
9114         (cortex_a7_neon_mul): Update for new types.
9115         (cortex_a7_neon_mla): Likewise.
9116         (cortex_a7_neon): Likewise.
9117
9118 2013-10-15  James Greenhalgh  <james.greenhalgh@arm.com>
9119
9120         * config/arm/cortex-a15-neon.md
9121         (cortex_a15_neon_type): New,
9122
9123         (cortex_a15_neon_int_1): Remove.
9124         (cortex_a15_neon_int_2): Likewise.
9125         (cortex_a15_neon_int_3): Likewise.
9126         (cortex_a15_neon_int_4): Likewise.
9127         (cortex_a15_neon_int_5): Likewise.
9128         (cortex_a15_neon_vqneg_vqabs): Likewise.
9129         (cortex_a15_neon_vmov): Likewise.
9130         (cortex_a15_neon_vaba): Likewise.
9131         (cortex_a15_neon_vaba_qqq): Likewise.
9132         (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
9133         (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
9134         (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
9135         Likewise.
9136         (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
9137         (cortex_a15_neon_mla_qqq_8_16): Likewise.
9138         (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar): Likewise.
9139         (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
9140         (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
9141         (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
9142         (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
9143         (cortex_a15_neon_shift_1): Likewise.
9144         (cortex_a15_neon_shift_2): Likewise.
9145         (cortex_a15_neon_shift_3): Likewise.
9146         (cortex_a15_neon_vshl_ddd): Likewise.
9147         (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
9148         (cortex_a15_neon_vsra_vrsra): Likewise.
9149         (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
9150         (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
9151         (cortex_a15_neon_bp_3cycle): Likewise.
9152         (cortex_a15_neon_ldm_2): Likewise.
9153         (cortex_a15_neon_stm_2): Likewise.
9154         (cortex_a15_neon_mcr): Likewise.
9155         (cortex_a15_neon_mrc): Likewise.
9156         (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
9157         (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
9158         (cortex_a15_neon_fp_vmul_ddd): Likewise.
9159         (cortex_a15_neon_fp_vmul_qqd): Likewise.
9160         (cortex_a15_neon_fp_vmla_ddd): Likewise.
9161         (cortex_a15_neon_fp_vmla_qqq): Likewise.
9162         (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
9163         (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
9164         (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
9165         (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
9166         (cortex_a15_neon_bp_simple): Likewise.
9167         (cortex_a15_neon_bp_2cycle): Likewise.
9168         (cortex_a15_neon_bp_3cycle): Likewise.
9169         (cortex_a15_neon_vld1_1_2_regs): Likewise.
9170         (cortex_a15_neon_vld1_3_4_regs): Likewise.
9171         (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
9172         (cortex_a15_neon_vld2_4_regs): Likewise.
9173         (cortex_a15_neon_vld3_vld4): Likewise.
9174         (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
9175         (cortex_a15_neon_vst1_3_4_regs): Likewise.
9176         (cortex_a15_neon_vst2_4_regs_vst3_vst4): Rename to...
9177         (cortex_a15_neon_vst2_4_regs_vst3): ...This, update for new attributes.
9178         (cortex_a15_neon_vst3_vst4): Rename to...
9179         (cortex_a15_neon_vst4): This, update for new attributes.
9180         (cortex_a15_neon_vld1_vld2_lane): Update for new attributes.
9181         (cortex_a15_neon_vld3_vld4_lane): Likewise.
9182         (cortex_a15_neon_vst1_vst2_lane): Likewise.
9183         (cortex_a15_neon_vst3_vst4_lane): Likewise.
9184         (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
9185         (cortex_a15_neon_ldm_2): Likewise.
9186         (cortex_a15_neon_stm_2): Likewise.
9187         (cortex_a15_neon_mcr): Likewise.
9188         (cortex_a15_neon_mcr_2_mcrr): Likewise.
9189         (cortex_a15_neon_mrc): Likewise.
9190         (cortex_a15_neon_mrrc): Likewise.
9191
9192         (cortex_a15_neon_abd): New.
9193         (cortex_a15_neon_abd_q): Likewise.
9194         (cortex_a15_neon_aba): Likewise.
9195         (cortex_a15_neon_aba_q): Likewise.
9196         (cortex_a15_neon_acc): Likewise.
9197         (cortex_a15_neon_acc_q): Likewise.
9198         (cortex_a15_neon_arith_basic): Likewise.
9199         (cortex_a15_neon_arith_complex): Likewise.
9200         (cortex_a15_neon_multiply): Likewise.
9201         (cortex_a15_neon_multiply_q): Likewise.
9202         (cortex_a15_neon_mla): Likewise.
9203         (cortex_a15_neon_mla_q): Likewise.
9204         (cortex_a15_neon_sat_mla_long): Likewise.
9205         (cortex_a15_neon_shift_acc): Likewise.
9206         (cortex_a15_neon_shift_imm_basic): Likewise.
9207         (cortex_a15_neon_shift_imm_complex): Likewise.
9208         (cortex_a15_neon_shift_reg_basic): Likewise.
9209         (cortex_a15_neon_shift_reg_basic_q): Likewise.
9210         (cortex_a15_neon_shift_reg_complex): Likewise.
9211         (cortex_a15_neon_shift_reg_complex_q): Likewise.
9212         (cortex_a15_neon_fp_negabs): Likewise
9213         (cortex_a15_neon_fp_arith): Likewise
9214         (cortex_a15_neon_fp_arith_q): Likewise
9215         (cortex_a15_neon_fp_cvt_int): Likewise
9216         (cortex_a15_neon_fp_cvt_int_q): Likewise
9217         (cortex_a15_neon_fp_cvt_16): Likewise
9218         (cortex_a15_neon_fp_mul): Likewise
9219         (cortex_a15_neon_fp_mul_q): Likewise
9220         (cortex_a15_neon_fp_mla): Likewise
9221         (cortex_a15_neon_fp_mla_q): Likewise
9222         (cortex_a15_neon_fp_recps_rsqrte): Likewise.
9223         (cortex_a15_neon_fp_recps_rsqrte_q): Likewise.
9224         (cortex_a15_neon_bitops): Likewise.
9225         (cortex_a15_neon_bitops_q): Likewise.
9226         (cortex_a15_neon_from_gp): Likewise.
9227         (cortex_a15_neon_from_gp_q): Likewise.
9228         (cortex_a15_neon_tbl3_tbl4): Likewise.
9229         (cortex_a15_neon_zip_q): Likewise.
9230         (cortex_a15_neon_to_gp): Likewise.
9231         (cortex_a15_neon_load_a): Likewise.
9232         (cortex_a15_neon_load_b): Likewise.
9233         (cortex_a15_neon_load_c): Likewise.
9234         (cortex_a15_neon_load_d): Likewise.
9235         (cortex_a15_neon_load_e): Likewise.
9236         (cortex_a15_neon_load_f): Likewise.
9237         (cortex_a15_neon_store_a): Likewise.
9238         (cortex_a15_neon_store_b): Likewise.
9239         (cortex_a15_neon_store_c): Likewise.
9240         (cortex_a15_neon_store_d): Likewise.
9241         (cortex_a15_neon_store_e): Likewise.
9242         (cortex_a15_neon_store_f): Likewise.
9243         (cortex_a15_neon_store_g): Likewise.
9244         (cortex_a15_neon_store_h): Likewise.
9245         (cortex_a15_vfp_to_from_gp): Likewise.
9246
9247 2013-10-15  James Greenhalgh  <james.greenhalgh@arm.com>
9248
9249         * config/arm/cortex-a9-neon.md (cortex_a9_neon_type): New.
9250
9251         (cortex_a9_neon_vshl_ddd): Remove.
9252         (cortex_a9_neon_vst3_vst4): Likewise.
9253         (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
9254
9255         (cortex_a9_neon_bit_ops_q): New.
9256
9257         (cortex_a9_neon_int_1): Use cortex_a8_neon_type.
9258         (cortex_a9_neon_int_2): Likewise.
9259         (cortex_a9_neon_int_3): Likewise.
9260         (cortex_a9_neon_int_4): Likewise.
9261         (cortex_a9_neon_int_5): Likewise.
9262         (cortex_a9_neon_vqneg_vqabs): Likewise.
9263         (cortex_a9_neon_vmov): Likewise.
9264         (cortex_a9_neon_vaba): Likewise.
9265         (cortex_a9_neon_vaba_qqq): Likewise.
9266         (cortex_a9_neon_shift_1): Likewise.
9267         (cortex_a9_neon_shift_2): Likewise.
9268         (cortex_a9_neon_shift_3): Likewise.
9269         (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
9270         (cortex_a9_neon_vsra_vrsra): Likewise.
9271         (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
9272         (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
9273         (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
9274         Likewise.
9275         (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
9276         (cortex_a9_neon_mla_qqq_8_16): Likewise.
9277         (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
9278         Likewise.
9279         (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
9280         (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
9281         (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
9282         (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
9283         (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
9284         (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
9285         (cortex_a9_neon_fp_vsum): Likewise.
9286         (cortex_a9_neon_fp_vmul_ddd): Likewise.
9287         (cortex_a9_neon_fp_vmul_qqd): Likewise.
9288         (cortex_a9_neon_fp_vmla_ddd): Likewise.
9289         (cortex_a9_neon_fp_vmla_qqq): Likewise.
9290         (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
9291         (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
9292         (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
9293         (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
9294         (cortex_a9_neon_bp_simple): Likewise.
9295         (cortex_a9_neon_bp_2cycle): Likewise.
9296         (cortex_a9_neon_bp_3cycle): Likewise.
9297         (cortex_a9_neon_ldr): Likewise.
9298         (cortex_a9_neon_str): Likewise.
9299         (cortex_a9_neon_vld1_1_2_regs): Likewise.
9300         (cortex_a9_neon_vld1_3_4_regs): Likewise.
9301         (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
9302         (cortex_a9_neon_vld2_4_regs): Likewise.
9303         (cortex_a9_neon_vld3_vld4): Likewise.
9304         (cortex_a9_neon_vld1_vld2_lane): Likewise.
9305         (cortex_a9_neon_vld3_vld4_lane): Likewise.
9306         (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
9307         (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
9308         (cortex_a9_neon_vst1_3_4_regs): Likewise.
9309         (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
9310         (cortex_a9_neon_vst1_vst2_lane): Likewise.
9311         (cortex_a9_neon_vst3_vst4_lane): Likewise.
9312         (cortex_a9_neon_mcr): Likewise.
9313         (cortex_a9_neon_mcr_2_mcrr): Likewise.
9314         (cortex_a9_neon_mrc): Likewise.
9315         (cortex_a9_neon_mrrc): Likewise.
9316
9317 2013-10-15  James Greenhalgh  <james.greenhalgh@arm.com>
9318
9319         * config/arm/cortex-a8-neon.md (cortex_a8_neon_type): New.
9320
9321         (cortex_a8_neon_vshl_ddd): Remove.
9322         (cortex_a8_neon_vst3_vst4): Likewise.
9323         (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
9324
9325         (cortex_a8_neon_bit_ops_q): New.
9326
9327         (cortex_a8_neon_int_1): Use cortex_a8_neon_type.
9328         (cortex_a8_neon_int_2): Likewise..
9329         (cortex_a8_neon_int_3): Likewise.
9330         (cortex_a8_neon_int_5): Likewise.
9331         (cortex_a8_neon_vqneg_vqabs): Likewise.
9332         (cortex_a8_neon_int_4): Likewise.
9333         (cortex_a8_neon_vaba): Likewise.
9334         (cortex_a8_neon_vaba_qqq): Likewise.
9335         (cortex_a8_neon_shift_1): Likewise.
9336         (cortex_a8_neon_shift_2): Likewise.
9337         (cortex_a8_neon_shift_3): Likewise.
9338         (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
9339         (cortex_a8_neon_vsra_vrsra): Likewise.
9340         (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
9341         (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
9342         (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
9343         Likewise.
9344         (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
9345         (cortex_a8_neon_mla_qqq_8_16): Likewise.
9346         (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
9347         Likewise.
9348         (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
9349         (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
9350         (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
9351         (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
9352         (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
9353         (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
9354         (cortex_a8_neon_fp_vsum): Likewise.
9355         (cortex_a8_neon_fp_vmul_ddd): Likewise.
9356         (cortex_a8_neon_fp_vmul_qqd): Likewise.
9357         (cortex_a8_neon_fp_vmla_ddd): Likewise.
9358         (cortex_a8_neon_fp_vmla_qqq): Likewise.
9359         (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
9360         (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
9361         (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
9362         (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
9363         (cortex_a8_neon_bp_simple): Likewise.
9364         (cortex_a8_neon_bp_2cycle): Likewise.
9365         (cortex_a8_neon_bp_3cycle): Likewise.
9366         (cortex_a8_neon_ldr): Likewise.
9367         (cortex_a8_neon_str): Likewise.
9368         (cortex_a8_neon_vld1_1_2_regs): Likewise.
9369         (cortex_a8_neon_vld1_3_4_regs): Likewise.
9370         (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
9371         (cortex_a8_neon_vld2_4_regs): Likewise.
9372         (cortex_a8_neon_vld3_vld4): Likewise.
9373         (cortex_a8_neon_vld1_vld2_lane): Likewise.
9374         (cortex_a8_neon_vld3_vld4_lane): Likewise.
9375         (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
9376         (cortex_a8_neon_vst1_3_4_regs): Likewise.
9377         (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
9378         (cortex_a8_neon_vst1_vst2_lane): Likewise.
9379         (cortex_a8_neon_vst3_vst4_lane): Likewise.
9380         (cortex_a8_neon_mcr): Likewise.
9381         (cortex_a8_neon_mcr_2_mcrr): Likewise.
9382         (cortex_a8_neon_mrc): Likewise.
9383         (cortex_a8_neon_mrrc): Likewise.
9384
9385 2013-10-15  James Greenhalgh  <james.greenhalgh@arm.com>
9386
9387         * config/aarch64/iterators.md (Vetype): Add SF and DF modes.
9388         (fp): New.
9389         * config/aarch64/aarch64-simd.md (neon_type): Remove.
9390         (aarch64_simd_dup<mode>): Add "type" attribute.
9391         (aarch64_dup_lane<mode>): Likewise.
9392         (aarch64_dup_lane_<vswap_width_name><mode>): Likewise.
9393         (*aarch64_simd_mov<mode>): Likewise.
9394         (aarch64_simd_mov_from_<mode>low): Likewise.
9395         (aarch64_simd_mov_from_<mode>high): Likewise.
9396         (orn<mode>3): Likewise.
9397         (bic<mode>3): Likewise.
9398         (add<mode>3): Likewise.
9399         (sub<mode>3): Likewise.
9400         (mul<mode>3): Likewise.
9401         (*aarch64_mul3_elt<mode>): Likewise.
9402         (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
9403         (*aarch64_mul3_elt_to_128df): Likewise.
9404         (*aarch64_mul3_elt_to_64v2df): Likewise.
9405         (neg<mode>2): Likewise.
9406         (abs<mode>2): Likewise.
9407         (abd<mode>_3): Likewise.
9408         (aba<mode>_3): Likewise.
9409         (fabd<mode>_3): Likewise.
9410         (*fabd_scalar<mode>3): Likewise.
9411         (and<mode>3): Likewise.
9412         (ior<mode>3): Likewise.
9413         (xor<mode>3): Likewise.
9414         (one_cmpl<mode>2): Likewise.
9415         (aarch64_simd_vec_set<mode>): Likewise.
9416         (aarch64_simd_lshr<mode>): Likewise.
9417         (aarch64_simd_ashr<mode>): Likewise.
9418         (aarch64_simd_imm_shl<mode>): Likewise.
9419         (aarch64_simd_reg_sshl<mode): Likewise.
9420         (aarch64_simd_reg_shl<mode>_unsigned): Likewise.
9421         (aarch64_simd_reg_shl<mode>_signed): Likewise.
9422         (aarch64_simd_vec_setv2di): Likewise.
9423         (aarch64_simd_vec_set<mode>): Likewise.
9424         (aarch64_mla<mode>): Likewise.
9425         (*aarch64_mla_elt<mode>): Likewise.
9426         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
9427         (aarch64_mls<mode>): Likewise.
9428         (*aarch64_mls_elt<mode>): Likewise.
9429         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
9430         (<su><maxmin><mode>3): Likewise.
9431         (move_lo_quad_<mode>): Likewise.
9432         (aarch64_simd_move_hi_quad_<mode>): Likewise.
9433         (aarch64_simd_vec_pack_trunc_<mode>): Likewise.
9434         (vec_pack_trunc_<mode>): Likewise.
9435         (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
9436         (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
9437         (*aarch64_<su>mlal_lo<mode>): Likewise.
9438         (*aarch64_<su>mlal_hi<mode>): Likewise.
9439         (*aarch64_<su>mlsl_lo<mode>): Likewise.
9440         (*aarch64_<su>mlsl_hi<mode>): Likewise.
9441         (*aarch64_<su>mlal<mode>): Likewise.
9442         (*aarch64_<su>mlsl<mode>): Likewise.
9443         (aarch64_simd_vec_<su>mult_lo_<mode>): Likewise.
9444         (aarch64_simd_vec_<su>mult_hi_<mode>): Likewise.
9445         (add<mode>3): Likewise.
9446         (sub<mode>3): Likewise.
9447         (mul<mode>3): Likewise.
9448         (div<mode>3): Likewise.
9449         (neg<mode>2): Likewise.
9450         (abs<mode>2): Likewise.
9451         (fma<mode>4): Likewise.
9452         (*aarch64_fma4_elt<mode>): Likewise.
9453         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
9454         (*aarch64_fma4_elt_to_128df): Likewise.
9455         (*aarch64_fma4_elt_to_64v2df): Likewise.
9456         (fnma<mode>4): Likewise.
9457         (*aarch64_fnma4_elt<mode>): Likewise.
9458         (*aarch64_fnma4_elt_<vswap_width_name><mode>
9459         (*aarch64_fnma4_elt_to_128df): Likewise.
9460         (*aarch64_fnma4_elt_to_64v2df): Likewise.
9461         (<frint_pattern><mode>2): Likewise.
9462         (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
9463         (<optab><fcvt_target><VDQF:VDQF:mode>2): Likewise.
9464         (vec_unpacks_lo_v4sf): Likewise.
9465         (aarch64_float_extend_lo_v2df): Likewise.
9466         (vec_unpacks_hi_v4sf): Likewise.
9467         (aarch64_float_truncate_lo_v2sf): Likewise.
9468         (aarch64_float_truncate_hi_v4sf): Likewise.
9469         (aarch64_vmls<mode>): Likewise.
9470         (<su><maxmin><mode>3): Likewise.
9471         (<maxmin_uns><mode>3): Likewise.
9472         (reduc_<sur>plus_<mode>): Likewise.
9473         (reduc_<sur>plus_v2di): Likewise.
9474         (reduc_<sur>plus_v2si): Likewise.
9475         (reduc_<sur>plus_<mode>): Likewise.
9476         (aarch64_addpv4sf): Likewise.
9477         (clz<mode>2): Likewise.
9478         (reduc_<maxmin_uns>_<mode>): Likewise.
9479         (reduc_<maxmin_uns>_v2di): Likewise.
9480         (reduc_<maxmin_uns>_v2si): Likewise.
9481         (reduc_<maxmin_uns>_<mode>): Likewise.
9482         (reduc_<maxmin_uns>_v4sf): Likewise.
9483         (aarch64_simd_bsl<mode>_internal): Likewise.
9484         (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
9485         (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
9486         (aarch64_get_lane<mode>): Likewise.
9487         (*aarch64_combinez<mode>): Likewise.
9488         (aarch64_combine<mode>): Likewise.
9489         (aarch64_simd_combine<mode>): Likewise.
9490         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): Likewise.
9491         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): Likewise.
9492         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Likewise.
9493         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>): Likewise.
9494         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal): Likewise.
9495         (aarch64_<sur>h<addsub><mode>): Likewise.
9496         (aarch64_<sur><addsub>hn<mode>): Likewise.
9497         (aarch64_<sur><addsub>hn2<mode>): Likewise.
9498         (aarch64_pmul<mode>): Likewise.
9499         (aarch64_<su_optab><optab><mode>): Likewise.
9500         (aarch64_<sur>qadd<mode>): Likewise.
9501         (aarch64_sqmovun<mode>): Likewise.
9502         (aarch64_<sur>qmovn<mode>): Likewise.
9503         (aarch64_s<optab><mode>): Likewise.
9504         (aarch64_sq<r>dmulh<mode>): Likewise.
9505         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
9506         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
9507         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
9508         (aarch64_sqdml<SBINQOPS:as>l<mode>): Likewise.
9509         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
9510         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
9511         (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Likewise.
9512         (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Likewise.
9513         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
9514         (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
9515         (aarch64_sqdmull<mode>): Likewise.
9516         (aarch64_sqdmull_lane<mode>_internal): Likewise.
9517         (aarch64_sqdmull_n<mode>): Likewise.
9518         (aarch64_sqdmull2<mode>_internal): Likewise.
9519         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
9520         (aarch64_sqdmull2_n<mode>_internal): Likewise.
9521         (aarch64_<sur>shl<mode>): Likewise.
9522         (aarch64_<sur>q<r>shl<mode>
9523         (aarch64_<sur>shll_n<mode>): Likewise.
9524         (aarch64_<sur>shll2_n<mode>): Likewise.
9525         (aarch64_<sur>shr_n<mode>): Likewise.
9526         (aarch64_<sur>sra_n<mode>): Likewise.
9527         (aarch64_<sur>s<lr>i_n<mode>): Likewise.
9528         (aarch64_<sur>qshl<u>_n<mode>): Likewise.
9529         (aarch64_<sur>q<r>shr<u>n_n<mode>): Likewise.
9530         (aarch64_cm<optab><mode>): Likewise.
9531         (aarch64_cm<optab>di): Likewise.
9532         (aarch64_cm<optab><mode>): Likewise.
9533         (aarch64_cm<optab>di): Likewise.
9534         (aarch64_cmtst<mode>): Likewise.
9535         (aarch64_cmtstdi): Likewise.
9536         (aarch64_cm<optab><mode>): Likewise.
9537         (*aarch64_fac<optab><mode>): Likewise.
9538         (aarch64_addp<mode>): Likewise.
9539         (aarch64_addpdi): Likewise.
9540         (sqrt<mode>2): Likewise.
9541         (vec_load_lanesoi<mode>): Likewise.
9542         (vec_store_lanesoi<mode>): Likewise.
9543         (vec_load_lanesci<mode>): Likewise.
9544         (vec_store_lanesci<mode>): Likewise.
9545         (vec_load_lanesxi<mode>): Likewise.
9546         (vec_store_lanesxi<mode>): Likewise.
9547         (*aarch64_mov<mode>): Likewise.
9548         (aarch64_ld2<mode>_dreg): Likewise.
9549         (aarch64_ld2<mode>_dreg): Likewise.
9550         (aarch64_ld3<mode>_dreg): Likewise.
9551         (aarch64_ld3<mode>_dreg): Likewise.
9552         (aarch64_ld4<mode>_dreg): Likewise.
9553         (aarch64_ld4<mode>_dreg): Likewise.
9554         (aarch64_tbl1<mode>): Likewise.
9555         (aarch64_tbl2v16qi): Likewise.
9556         (aarch64_combinev16qi): Likewise.
9557         (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Likewise.
9558         (aarch64_st2<mode>_dreg): Likewise.
9559         (aarch64_st2<mode>_dreg): Likewise.
9560         (aarch64_st3<mode>_dreg): Likewise.
9561         (aarch64_st3<mode>_dreg): Likewise.
9562         (aarch64_st4<mode>_dreg): Likewise.
9563         (aarch64_st4<mode>_dreg): Likewise.
9564         (*aarch64_simd_ld1r<mode>): Likewise.
9565         (aarch64_frecpe<mode>): Likewise.
9566         (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
9567         (aarch64_frecps<mode>): Likewise.
9568
9569 2013-10-15  James Greenhalgh  <james.greenhalgh@arm.com>
9570
9571         * config/arm/iterators.md (V_elem_ch): New.
9572         (q): Likewise.
9573         (VQH_type): Likewise.
9574         * config/arm/arm.md (is_neon_type): New.
9575         (conds): Use is_neon_type.
9576         (anddi3_insn): Update type attribute.
9577         (xordi3_insn): Likewise.
9578         (one_cmpldi2): Likewise.
9579         * config/arm/vfp.md (movhf_vfp_neon): Update type attribute.
9580         * config/arm/neon.md (neon_mov): Update type attribute.
9581         (*movmisalign<mode>_neon_store): Likewise.
9582         (*movmisalign<mode>_neon_load): Likewise.
9583         (vec_set<mode>_internal): Likewise.
9584         (vec_set<mode>_internal): Likewise.
9585         (vec_setv2di_internal): Likewise.
9586         (vec_extract<mode>): Likewise.
9587         (vec_extract<mode>): Likewise.
9588         (vec_extractv2di): Likewise.
9589         (*add<mode>3_neon): Likewise.
9590         (adddi3_neon): Likewise.
9591         (*sub<mode>3_neon): Likewise.
9592         (subdi3_neon): Likewise.
9593         (fma<VCVTF:mode>4): Likewise.
9594         (fma<VCVTF:mode>4_intrinsic): Likewise.
9595         (*fmsub<VCVTF:mode>4): Likewise.
9596         (fmsub<VCVTF:mode>4_intrinsic): Likewise.
9597         (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
9598         (ior<mode>3): Likewise.
9599         (and<mode>3): Likewise.
9600         (orn<mode>3_neon): Likewise.
9601         (orndi3_neon): Likewise.
9602         (bic<mode>3_neon): Likewise.
9603         (bicdi3_neon): Likewise.
9604         (xor<mode>3): Likewise.
9605         (one_cmpl<mode>2): Likewise.
9606         (abs<mode>2): Likewise.
9607         (neg<mode>2): Likewise.
9608         (negdi2_neon): Likewise.
9609         (*umin<mode>3_neon): Likewise.
9610         (*umax<mode>3_neon): Likewise.
9611         (*smin<mode>3_neon): Likewise.
9612         (*smax<mode>3_neon): Likewise.
9613         (vashl<mode>3): Likewise.
9614         (vashr<mode>3_imm): Likewise.
9615         (vlshr<mode>3_imm): Likewise.
9616         (ashl<mode>3_signed): Likewise.
9617         (ashl<mode>3_unsigned): Likewise.
9618         (neon_load_count): Likewise.
9619         (ashldi3_neon_noclobber): Likewise.
9620         (ashldi3_neon): Likewise.
9621         (signed_shift_di3_neon): Likewise.
9622         (unsigned_shift_di3_neon): Likewise.
9623         (ashrdi3_neon_imm_noclobber): Likewise.
9624         (lshrdi3_neon_imm_noclobber): Likewise.
9625         (<shift>di3_neon): Likewise.
9626         (widen_ssum<mode>3): Likewise.
9627         (widen_usum<mode>3): Likewise.
9628         (quad_halves_<code>v4si): Likewise.
9629         (quad_halves_<code>v4sf): Likewise.
9630         (quad_halves_<code>v8hi): Likewise.
9631         (quad_halves_<code>v16qi): Likewise.
9632         (reduc_splus_v2di): Likewise.
9633         (neon_vpadd_internal<mode>): Likewise.
9634         (neon_vpsmin<mode>): Likewise.
9635         (neon_vpsmax<mode>): Likewise.
9636         (neon_vpumin<mode>): Likewise.
9637         (neon_vpumax<mode>): Likewise.
9638         (*ss_add<mode>_neon): Likewise.
9639         (*us_add<mode>_neon): Likewise.
9640         (*ss_sub<mode>_neon): Likewise.
9641         (*us_sub<mode>_neon): Likewise.
9642         (neon_vadd<mode>_unspec): Likewise.
9643         (neon_vaddl<mode>): Likewise.
9644         (neon_vaddw<mode>): Likewise.
9645         (neon_vhadd<mode>): Likewise.
9646         (neon_vqadd<mode>): Likewise.
9647         (neon_vaddhn<mode>): Likewise.
9648         (neon_vmul<mode>): Likewise.
9649         (neon_vfms<VCVTF:mode>): Likewise.
9650         (neon_vmlal<mode>): Likewise.
9651         (neon_vmls<mode>): Likewise.
9652         (neon_vmlsl<mode>): Likewise.
9653         (neon_vqdmulh<mode>): Likewise.
9654         (neon_vqdmlal<mode>): Likewise.
9655         (neon_vqdmlsl<mode>): Likewise.
9656         (neon_vmull<mode>): Likewise.
9657         (neon_vqdmull<mode>): Likewise.
9658         (neon_vsub<mode>_unspec): Likewise.
9659         (neon_vsubl<mode>): Likewise.
9660         (neon_vsubw<mode>): Likewise.
9661         (neon_vqsub<mode>): Likewise.
9662         (neon_vhsub<mode>): Likewise.
9663         (neon_vsubhn<mode>): Likewise.
9664         (neon_vceq<mode>): Likewise.
9665         (neon_vcge<mode>): Likewise.
9666         (neon_vcgeu<mode>): Likewise.
9667         (neon_vcgt<mode>): Likewise.
9668         (neon_vcgtu<mode>): Likewise.
9669         (neon_vcle<mode>): Likewise.
9670         (neon_vclt<mode>): Likewise.
9671         (neon_vcage<mode>): Likewise.
9672         (neon_vcagt<mode>): Likewise.
9673         (neon_vtst<mode>): Likewise.
9674         (neon_vabd<mode>): Likewise.
9675         (neon_vabdl<mode>): Likewise.
9676         (neon_vaba<mode>): Likewise.
9677         (neon_vabal<mode>): Likewise.
9678         (neon_vmax<mode>): Likewise.
9679         (neon_vmin<mode>): Likewise.
9680         (neon_vpaddl<mode>): Likewise.
9681         (neon_vpadal<mode>): Likewise.
9682         (neon_vpmax<mode>): Likewise.
9683         (neon_vpmin<mode>): Likewise.
9684         (neon_vrecps<mode>): Likewise.
9685         (neon_vrsqrts<mode>): Likewise.
9686         (neon_vqabs<mode>): Likewise.
9687         (neon_vqneg<mode>): Likewise.
9688         (neon_vcls<mode>): Likewise.
9689         (clz<mode>2): Likewise.
9690         (popcount<mode>2): Likewise.
9691         (neon_vrecpe<mode>): Likewise.
9692         (neon_vrsqrte<mode>): Likewise.
9693         (neon_vget_lane<mode>_sext_internal): Likewise.
9694         (neon_vget_lane<mode>_zext_internal): Likewise.
9695         (neon_vdup_n<mode>): Likewise.
9696         (neon_vdup_n<mode>): Likewise.
9697         (neon_vdup_nv2di): Likewise.
9698         (neon_vdup_lane<mode>_interal): Likewise.
9699         (*neon_vswp<mode>): Likewise.
9700         (neon_vcombine<mode>): Likewise.
9701         (float<mode><V_cvtto>2): Likewise.
9702         (floatuns<mode><V_cvtto>2): Likewise.
9703         (fix_trunc<mode><V_cvtto>2): Likewise.
9704         (fixuns_trunc<mode><V_cvtto>2
9705         (neon_vcvt<mode>): Likewise.
9706         (neon_vcvt<mode>): Likewise.
9707         (neon_vcvtv4sfv4hf): Likewise.
9708         (neon_vcvtv4hfv4sf): Likewise.
9709         (neon_vcvt_n<mode>): Likewise.
9710         (neon_vcvt_n<mode>): Likewise.
9711         (neon_vmovn<mode>): Likewise.
9712         (neon_vqmovn<mode>): Likewise.
9713         (neon_vqmovun<mode>): Likewise.
9714         (neon_vmovl<mode>): Likewise.
9715         (neon_vmul_lane<mode>): Likewise.
9716         (neon_vmul_lane<mode>): Likewise.
9717         (neon_vmull_lane<mode>): Likewise.
9718         (neon_vqdmull_lane<mode>): Likewise.
9719         (neon_vqdmulh_lane<mode>): Likewise.
9720         (neon_vqdmulh_lane<mode>): Likewise.
9721         (neon_vmla_lane<mode>): Likewise.
9722         (neon_vmla_lane<mode>): Likewise.
9723         (neon_vmlal_lane<mode>): Likewise.
9724         (neon_vqdmlal_lane<mode>): Likewise.
9725         (neon_vmls_lane<mode>): Likewise.
9726         (neon_vmls_lane<mode>): Likewise.
9727         (neon_vmlsl_lane<mode>): Likewise.
9728         (neon_vqdmlsl_lane<mode>): Likewise.
9729         (neon_vext<mode>): Likewise.
9730         (neon_vrev64<mode>): Likewise.
9731         (neon_vrev32<mode>): Likewise.
9732         (neon_vrev16<mode>): Likewise.
9733         (neon_vbsl<mode>_internal): Likewise.
9734         (neon_vshl<mode>): Likewise.
9735         (neon_vqshl<mode>): Likewise.
9736         (neon_vshr_n<mode>): Likewise.
9737         (neon_vshrn_n<mode>): Likewise.
9738         (neon_vqshrn_n<mode>): Likewise.
9739         (neon_vqshrun_n<mode>): Likewise.
9740         (neon_vshl_n<mode>): Likewise.
9741         (neon_vqshl_n<mode>): Likewise.
9742         (neon_vqshlu_n<mode>): Likewise.
9743         (neon_vshll_n<mode>): Likewise.
9744         (neon_vsra_n<mode>): Likewise.
9745         (neon_vsri_n<mode>): Likewise.
9746         (neon_vsli_n<mode>): Likewise.
9747         (neon_vtbl1v8qi): Likewise.
9748         (neon_vtbl2v8qi): Likewise.
9749         (neon_vtbl3v8qi): Likewise.
9750         (neon_vtbl4v8qi): Likewise.
9751         (neon_vtbl1v16qi): Likewise.
9752         (neon_vtbl2v16qi): Likewise.
9753         (neon_vcombinev16qi): Likewise.
9754         (neon_vtbx1v8qi): Likewise.
9755         (neon_vtbx2v8qi): Likewise.
9756         (neon_vtbx3v8qi): Likewise.
9757         (neon_vtbx4v8qi): Likewise.
9758         (*neon_vtrn<mode>_insn): Likewise.
9759         (*neon_vzip<mode>_insn): Likewise.
9760         (*neon_vuzp<mode>_insn): Likewise.
9761         (neon_vld1<mode>): Likewise.
9762         (neon_vld1_lane<mode>): Likewise.
9763         (neon_vld1_lane<mode>): Likewise.
9764         (neon_vld1_dup<mode>): Likewise.
9765         (neon_vld1_dup<mode>): Likewise.
9766         (neon_vld1_dupv2di): Likewise.
9767         (neon_vst1<mode>): Likewise.
9768         (neon_vst1_lane<mode>): Likewise.
9769         (neon_vst1_lane<mode>): Likewise.
9770         (neon_vld2<mode>): Likewise.
9771         (neon_vld2<mode>): Likewise.
9772         (neon_vld2_lane<mode>): Likewise.
9773         (neon_vld2_lane<mode>): Likewise.
9774         (neon_vld2_dup<mode>): Likewise.
9775         (neon_vst2<mode>): Likewise.
9776         (neon_vst2<mode>): Likewise.
9777         (neon_vst2_lane<mode>): Likewise.
9778         (neon_vst2_lane<mode>): Likewise.
9779         (neon_vld3<mode>): Likewise.
9780         (neon_vld3qa<mode>): Likewise.
9781         (neon_vld3qb<mode>): Likewise.
9782         (neon_vld3_lane<mode>): Likewise.
9783         (neon_vld3_lane<mode>): Likewise.
9784         (neon_vld3_dup<mode>): Likewise.
9785         (neon_vst3<mode>): Likewise.
9786         (neon_vst3qa<mode>): Likewise.
9787         (neon_vst3qb<mode>): Likewise.
9788         (neon_vst3_lane<mode>): Likewise.
9789         (neon_vst3_lane<mode>): Likewise.
9790         (neon_vld4<mode>): Likewise.
9791         (neon_vld4qa<mode>): Likewise.
9792         (neon_vld4qb<mode>): Likewise.
9793         (neon_vld4_lane<mode>): Likewise.
9794         (neon_vld4_lane<mode>): Likewise.
9795         (neon_vld4_dup<mode>): Likewise.
9796         (neon_vst4<mode>): Likewise.
9797         (neon_vst4qa<mode>): Likewise.
9798         (neon_vst4qb<mode>): Likewise.
9799         (neon_vst4_lane<mode>): Likewise.
9800         (neon_vst4_lane<mode>): Likewise.
9801         (neon_vec_unpack<US>_lo_<mode>): Likewise.
9802         (neon_vec_unpack<US>_hi_<mode>): Likewise.
9803         (neon_vec_<US>mult_lo_<mode>): Likewise.
9804         (neon_vec_<US>mult_hi_<mode>): Likewise.
9805         (neon_vec_<US>shiftl_<mode>): Likewise.
9806         (neon_unpack<US>_<mode>): Likewise.
9807         (neon_vec_<US>mult_<mode>): Likewise.
9808         (vec_pack_trunc_<mode>): Likewise.
9809         (neon_vec_pack_trunc_<mode>): Likewise.
9810         (neon_vabd<mode>_2): Likewise.
9811         (neon_vabd<mode>_3): Likewise.
9812
9813 2013-10-15  James Greenhalgh  <james.greenhalgh@arm.com>
9814
9815         * config/aarch64/aarch64.md (movtf_aarch64): Update type attribute.
9816         (load_pair): Update type attribute.
9817         (store_pair): Update type attribute.
9818         * config/aarch64/iterators.md (q): New.
9819
9820 2013-10-15  James Greenhalgh  <james.greenhalgh@arm.com>
9821
9822         * config/arm/types.md: Add new types for Neon insns.
9823
9824 2013-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9825             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9826             Sergey Lega  <sergey.s.lega@intel.com>
9827             Anna Tikhonova  <anna.tikhonova@intel.com>
9828             Ilya Tocar  <ilya.tocar@intel.com>
9829             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9830             Ilya Verbin  <ilya.verbin@intel.com>
9831             Kirill Yukhin  <kirill.yukhin@intel.com>
9832             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9833
9834         * config/i386/sse.md (unspec): Add UNSPEC_RCP14, UNSPEC_RSQRT14,
9835         UNSPEC_FIXUPIMM, UNSPEC_SCALEF, UNSPEC_GETEXP, UNSPEC_GETMANT,
9836         UNSPEC_EXP2, UNSPEC_RCP28, UNSPEC_RSQRT28.
9837         (rcp14<mode>): New.
9838         (srcp14<mode>): Ditto.
9839         (rsqrt14<mode>): Ditto.
9840         (rsqrt14<mode>): Ditto.
9841         (avx512f_vmscalef<mode>): Ditto.
9842         (avx512f_scalef<mode>): Ditto.
9843         (avx512f_getexp<mode>): Ditto.
9844         (avx512f_sgetexp<mode>): Ditto.
9845         (avx512f_fixupimm<mode>): Ditto.
9846         (avx512f_sfixupimm<mode>): Ditto.
9847         (avx512f_rndscale<mode>): Ditto.
9848         (*avx512er_exp2<mode>): Ditto.
9849         (*avx512er_rcp28<mode>): Ditto.
9850         (avx512er_rsqrt28<mode>): Ditto.
9851         (avx512f_getmant<mode>): Ditto.
9852         (avx512f_getmant<mode>): Ditto.
9853         (avx512f_rndscale<mode>): Fix formatting.
9854
9855 2013-10-15  Martin Jambor  <mjambor@suse.cz>
9856
9857         * ipa-utils.h (ipa_edge_within_scc): Declare.
9858         * ipa-cp.c (edge_within_scc): Moved...
9859         * ipa-utils.c (ipa_edge_within_scc): ...here.  Updated all callers.
9860
9861 2013-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9862             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9863             Sergey Lega  <sergey.s.lega@intel.com>
9864             Anna Tikhonova  <anna.tikhonova@intel.com>
9865             Ilya Tocar  <ilya.tocar@intel.com>
9866             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9867             Ilya Verbin  <ilya.verbin@intel.com>
9868             Kirill Yukhin  <kirill.yukhin@intel.com>
9869             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9870
9871         * config/i386/predicates.md (const_8_to_15_operand): New.
9872         (const_16_to_31_operand): Ditto.
9873         * config/i386/sse.md (V8FI): New.
9874         (V16FI): Ditto.
9875         (reduc_splus_v8df): Ditto.
9876         (reduc_splus_v16sf): Ditto.
9877         (avx512f_vextract<shuffletype>32x4_1): Ditto.
9878         (vec_extract_hi_<mode>): Ditto.
9879         (avx512f_vinsert<shuffletype>32x4_1): Ditto.
9880         (vec_set_lo_<mode>): Ditto.
9881         (vec_set_hi_<mode>): Ditto.
9882         (avx512f_shuf_<shuffletype>64x2_1): Ditto.
9883         (avx512f_shuf_<shuffletype>32x4_1): Ditto.
9884         (avx512f_pshufd_1): Ditto.
9885         (avx512f_broadcast<mode>): Ditto.
9886         (avx512f_broadcast<mode>): Ditto.
9887         (define_split): Split vec_extract_lo into move.
9888         (ssequartermode): Ditto.
9889         (ssedoublemode): Extened with wider modes.
9890         (vec_extract_lo_<mode>): Ditto.
9891
9892 2013-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9893             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9894             Sergey Lega  <sergey.s.lega@intel.com>
9895             Anna Tikhonova  <anna.tikhonova@intel.com>
9896             Ilya Tocar  <ilya.tocar@intel.com>
9897             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9898             Ilya Verbin  <ilya.verbin@intel.com>
9899             Kirill Yukhin  <kirill.yukhin@intel.com>
9900             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9901
9902         * config/i386/predicates.md (register_or_constm1_operand): New.
9903         * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_PCMP, UNSPEC_TESTM,
9904         UNSPEC_TESTNM, UNSPEC_VTERNLOG, UNSPEC_ALIGN, UNSPEC_CONFLICT,
9905         UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT, UNSPEC_GATHER_PREFETCH,
9906         UNSPEC_SCATTER_PREFETCH
9907         (VI48_512): New.
9908         (avx512f_ucmp<mode>3): Ditto.
9909         (avx512f_vternlog<mode>): Ditto.
9910         (avx512f_align<mode>): Ditto.
9911         (<shift_insn><mode>3): Ditto.
9912         (avx512f_<rotate>v<mode>): Ditto.
9913         (avx512f_<rotate><mode>): Ditto.
9914         (avx512f_eq<mode>3): Ditto.
9915         (avx512f_eq<mode>3_1): Ditto.
9916         (avx512f_gt<mode>3): Ditto.
9917         (avx512f_testm<mode>3): Ditto.
9918         (avx512f_testnm<mode>3): Ditto.
9919         (avx512pf_gatherpf<mode>): Ditto.
9920         (*avx512pf_gatherpf<mode>_mask): Ditto.
9921         (*avx512pf_gatherpf<mode>): Ditto.
9922         (avx512pf_scatterpf<mode>): Ditto.
9923         (*avx512pf_scatterpf<mode>_mask): Ditto.
9924         (*avx512pf_scatterpf<mode>): Ditto.
9925         (avx512f_vec_dup_gpr<mode>): Ditto.
9926         (clz<mode>2): Ditto.
9927         (conflict<mode>): Ditto.
9928         (REDUC_SMINMAX_MODE): Extened with wider modes.
9929         (reduc_<code>_<mode>): Ditto.
9930         (vlshr<mode>3): Ditto.
9931         (vashl<mode>3): Ditto.
9932
9933 2013-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9934             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9935             Sergey Lega  <sergey.s.lega@intel.com>
9936             Anna Tikhonova  <anna.tikhonova@intel.com>
9937             Ilya Tocar  <ilya.tocar@intel.com>
9938             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9939             Ilya Verbin  <ilya.verbin@intel.com>
9940             Kirill Yukhin  <kirill.yukhin@intel.com>
9941             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9942
9943         * config/i386/sse.md (unspec): Added UNSPEC_VPERMI2, UNSPEC_VPERMT2,
9944         UNSPEC_SCATTER.
9945         (VI48F_512): New.
9946         (avx512fmaskmode): Ditto.
9947         (bcstscalarsuff): Ditto.
9948         (avx512f_blendm<mode>): Ditto.
9949         (cmp_imm_predicate): Ditto.
9950         (avx512f_cmp<mode>3): Ditto.
9951         (avx512f_vec_dup<mode>): Ditto.
9952         (avx512f_vec_dup_mem<mode>): Ditto.
9953         (avx512f_vpermi2var<mode>3): Ditto.
9954         (avx512f_vpermt2var<mode>3): Ditto.
9955         (vec_init<mode>): Ditto.
9956         (avx512f_gathersi<mode>): Ditto.
9957         (*avx512f_gathersi<mode>): Ditto.
9958         (*avx512f_gathersi<mode>_2): Ditto.
9959         (avx512f_gatherdi<mode>): Ditto.
9960         (*avx512f_gatherdi<mode>): Ditto.
9961         (*avx512f_gatherdi<mode>_2): Ditto.
9962         (avx512f_scattersi<mode>): Ditto.
9963         (*avx512f_scattersi<mode>): Ditto.
9964         (avx512f_scatterdi<mode>): Ditto.
9965         (*avx512f_scatterdi<mode>): Ditto.
9966         (sseintprefix): Extened with wider modes.
9967         (VEC_GATHER_IDXSI): Ditto.
9968         (VEC_GATHER_IDXDI): Ditto.
9969         (VEC_GATHER_SRCDI): Ditto.
9970
9971 2013-10-15  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
9972             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9973
9974         * config/arm/t-aprofile: New file.
9975         * config.gcc: Handle --with-multilib-list option.
9976
9977 2013-10-15  Bernd Schmidt  <bernds@codesourcery.com>
9978
9979         * reload1.c (reloads_unique_chain_p): Ensure that r1 is
9980         the input for r2.
9981
9982 2013-10-15  Richard Biener  <rguenther@suse.de>
9983
9984         * tree-loop-distribution.c (build_empty_rdg): Inline into
9985         single user.
9986         (rdg_flag_vertex): Inline into single user.
9987         (rdg_flag_vertex_and_dependent): Likewise.
9988         (build_rdg_partition_for_vertex): Remove processed bitmap.
9989         (rdg_build_partitions): Simplify.
9990
9991 2013-10-15  Richard Biener  <rguenther@suse.de>
9992
9993         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
9994         Restructure forwarding through conversions and copies to
9995         avoid performing copy-propagation the wrong way.  Adjust
9996         recursion invocations.
9997         (forward_propagate_addr_expr): Add argument stating if we
9998         are recursing from a single-use.
9999         (ssa_forward_propagate_and_combine): Adjust.
10000
10001 2013-10-14  David Malcolm  <dmalcolm@redhat.com>
10002
10003         * dumpfile.h (gcc::dump_manager): New class, to hold state
10004         relating to dumpfile management.
10005         (get_dump_file_name): Remove in favor of method of dump_manager.
10006         (dump_initialized_p): Likewise.
10007         (dump_start): Likewise.
10008         (dump_finish): Likewise.
10009         (dump_switch_p): Likewise.
10010         (dump_register): Likewise.
10011         (get_dump_file_info): Likewise.
10012         * context.c (gcc::context::context): Construct the dump_manager
10013         instance.
10014         * context.h (gcc::context::get_dumps): New.
10015         (gcc::context::m_dumps): New.
10016         * coverage.c (coverage_init): Port to dump_manager API.
10017         * dumpfile.c (extra_dump_files): Convert to field of gcc::dump_manager.
10018         (extra_dump_files_in_use): Likewise.
10019         (extra_dump_files_alloced): Likewise.
10020         (gcc::dump_manager::dump_manager): New.
10021         (dump_register): Convert to...
10022         (gcc::dump_manager::dump_register): ...method, replacing
10023         function-static next_dump with m_next_dump field.
10024         (get_dump_file_info): Convert to...
10025         (gcc::dump_manager::get_dump_file_info): ...method.
10026         (get_dump_file_name): Convert to...
10027         (gcc::dump_manager::get_dump_file_name): ...method.
10028         (dump_start): Convert to...
10029         (gcc::dump_manager::dump_start): ...method.
10030         (dump_finish): Convert to...
10031         (gcc::dump_manager::dump_finish): ...method.
10032         (dump_begin): Replace body with...
10033         (gcc::dump_manager::dump_begin): ...new method.
10034         (dump_phase_enabled_p): Convert to...
10035         (gcc::dump_manager::dump_phase_enabled_p): ...method.
10036         (dump_phase_enabled_p): Convert to...
10037         (gcc::dump_manager::dump_phase_enabled_p): ...method.
10038         (dump_initialized_p):  Convert to...
10039         (gcc::dump_manager::dump_initialized_p): ...method.
10040         (dump_flag_name): Replace body with...
10041         (gcc::dump_manager::dump_flag_name): ...new method.
10042         (dump_enable_all): Convert to...
10043         (gcc::dump_manager::dump_enable_all): ...new method.
10044         (opt_info_enable_passes): Convert to...
10045         (gcc::dump_manager::opt_info_enable_passes): ...new method.
10046         (dump_switch_p_1): Convert to...
10047         (gcc::dump_manager::dump_switch_p_1): ...new method.
10048         (dump_switch_p):  Convert to...
10049         (gcc::dump_manager::dump_switch_p): ...new method.
10050         (opt_info_switch_p): Port to dump_manager API.
10051         (enable_rtl_dump_file): Likewise.
10052         * opts-global.c (handle_common_deferred_options): Port to new
10053         dump_manager API.
10054         * passes.c (pass_manager::finish_optimization_passes): Likewise.
10055         (pass_manager::register_one_dump_file): Likewise.
10056         (pass_manager::register_pass): Likewise.
10057         (pass_init_dump_file): Likewise.
10058         (pass_fini_dump_file): Likewise.
10059         * statistics.c (statistics_early_init): Likewise.
10060
10061 2013-10-14  Richard Biener  <rguenther@suse.de>
10062
10063         * gimple.c (gimple_canonical_types, canonical_type_hash_cache,
10064         iterative_hash_canonical_type, gimple_canonical_type_hash,
10065         gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
10066         gimple_register_canonical_type, print_gimple_types_stats,
10067         free_gimple_type_tables): Move to lto/lto.c
10068         (gt-gimple.h): Do not include.
10069         * gimple.h (gimple_register_canonical_type,
10070         print_gimple_types_stats, free_gimple_type_tables): Remove.
10071         * Makefile.in (GTFILES): Remove gimple.c.
10072
10073 2013-10-14  Travis Snoozy  <quandary@remstate.com>
10074
10075         PR target/58716
10076         * config/msp430/msp430.c (msp430_option_override): Correct thinko
10077         scanning for msp430x targets.
10078
10079 2013-10-14  Eric Botcazou  <ebotcazou@adacore.com>
10080
10081         PR bootstrap/58509
10082         * config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
10083         (registers_ok_for_ldd_peep): Move around.
10084         * config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
10085         * config/sparc/sparc.md (widening peepholes): Use it.
10086
10087 2013-10-14  Richard Biener  <rguenther@suse.de>
10088
10089         PR middle-end/58712
10090         PR middle-end/55358
10091         * gimple.c (iterative_hash_canonical_type): Make sure to
10092         record the hash into the correct hashtable slot.
10093
10094 2013-10-13  Eric Botcazou  <ebotcazou@adacore.com>
10095
10096         PR rtl-optimization/58662
10097         * combine.c (try_combine): Take into account death nodes on I2 when
10098         splitting a PARALLEL of two independent SETs.  Fix dump message.
10099
10100 2013-10-12  Oleg Endo  <olegendo@gcc.gnu.org>
10101
10102         PR target/51244
10103         * config/sh/sh_treg_combine.cc: New SH specific RTL pass.
10104         * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add sh_treg_combine.o to
10105         extra_objs.
10106         * config/sh/t-sh (sh_treg_combine.o): New entry.
10107         * config/sh/sh.c (sh_fixed_condition_code_regs): New function that
10108         implements the target hook TARGET_FIXED_CONDITION_CODE_REGS.
10109         (register_sh_passes): New function.  Register sh_treg_combine pass.
10110         (sh_option_override): Invoke it.
10111         (sh_canonicalize_comparison): Handle op0_preserve_value.
10112         * sh.md (*cbranch_t"): Do not try to optimize missed test and branch
10113         opportunities.  Canonicalize branch condition.
10114         (nott): Allow only if pseudos can be created for non-SH2A.
10115
10116 2013-10-12  H.J. Lu  <hongjiu.lu@intel.com>
10117
10118         PR target/58690
10119         * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
10120         (ix86_expand_movmem): Replace copy_addr_to_reg with
10121         ix86_copy_addr_to_reg.
10122         (ix86_expand_setmem): Likewise.
10123
10124 2013-10-12  Alexander Monakov  <amonakov@ispras.ru>
10125
10126         * config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
10127         provided by ix86_fp_compare_mode instead of CCFPUmode.
10128
10129 2013-10-12  James Greenhalgh  <james.greenhalgh@arm.com>
10130
10131         * config/aarch64/arm_neon.h
10132         (vtbx<1,3>_<psu>8): Fix register constriants.
10133
10134 2013-10-11  Jeff Law  <law@redhat.com>
10135
10136         PR tree-optimization/58640
10137         * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
10138         threading paths that cross over two loop entry points.
10139
10140 2013-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10141
10142         * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
10143         handle vector float as well.
10144         (*vsx_le_perm_load_v4si): Likewise.
10145         (*vsx_le_perm_store_v2di): Likewise.
10146         (*vsx_le_perm_store_v4si): Likewise.
10147
10148 2013-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10149
10150         * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
10151         directly to circumvent subtract from splat{31} workaround.
10152         * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
10153         prototype.
10154         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
10155         * config/rs6000/altivec.md (define_c_enum "unspec"): Add
10156         UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
10157         (altivec_vperm_<mode>): Convert to define_insn_and_split to
10158         separate big and little endian logic.
10159         (*altivec_vperm_<mode>_internal): New define_insn.
10160         (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
10161         separate big and little endian logic.
10162         (*altivec_vperm_<mode>_uns_internal): New define_insn.
10163         (vec_permv16qi): Add little endian logic.
10164
10165 2013-10-11  Marc Glisse  <marc.glisse@inria.fr>
10166
10167         * doc/extend.texi (returns_nonnull): Remove arguments.
10168
10169 2013-10-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10170             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10171             Sergey Lega  <sergey.s.lega@intel.com>
10172             Anna Tikhonova  <anna.tikhonova@intel.com>
10173             Ilya Tocar  <ilya.tocar@intel.com>
10174             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10175             Ilya Verbin  <ilya.verbin@intel.com>
10176             Kirill Yukhin  <kirill.yukhin@intel.com>
10177             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10178
10179         * config/i386/sse.md (VI48F_256_512): New.
10180         (avx2_permvar<mode>): Change to ...
10181         (<avx2_avx512f>_permvar<mode>): This.
10182
10183 2013-10-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10184             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10185             Sergey Lega  <sergey.s.lega@intel.com>
10186             Anna Tikhonova  <anna.tikhonova@intel.com>
10187             Ilya Tocar  <ilya.tocar@intel.com>
10188             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10189             Ilya Verbin  <ilya.verbin@intel.com>
10190             Kirill Yukhin  <kirill.yukhin@intel.com>
10191             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10192
10193         * config/i386/i386.c (bdesc_args): Change corresponding pattern for
10194         __builtin_ia32_cvtps2dq, __builtin_ia32_cvtps2dq256.
10195         * config/i386/sse.md (VI4_AVX): New.
10196         (sf2simodelower): Ditto.
10197         (sse2_cvtps2dq): Change to ...
10198         (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode>): This.
10199
10200 2013-10-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10201             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10202             Sergey Lega  <sergey.s.lega@intel.com>
10203             Anna Tikhonova  <anna.tikhonova@intel.com>
10204             Ilya Tocar  <ilya.tocar@intel.com>
10205             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10206             Ilya Verbin  <ilya.verbin@intel.com>
10207             Kirill Yukhin  <kirill.yukhin@intel.com>
10208             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10209
10210         * config/i386/sse.md (V_512): New.
10211         (VI_512): Ditto.
10212         (vcond<V_512:mode><VF_512:mode>): Ditto.
10213         (vcond<V_512:mode><VI_512:mode>): Ditto.
10214         (vcondu<V_512:mode><VI_512:mode>): Ditto.
10215
10216 2013-10-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10217             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10218             Sergey Lega  <sergey.s.lega@intel.com>
10219             Anna Tikhonova  <anna.tikhonova@intel.com>
10220             Ilya Tocar  <ilya.tocar@intel.com>
10221             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10222             Ilya Verbin  <ilya.verbin@intel.com>
10223             Kirill Yukhin  <kirill.yukhin@intel.com>
10224             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10225
10226         * config/i386/i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F.
10227         * config/i386/sse.md (FMAMODEM): Changed modes and conditions.
10228         (FMAMODE): Ditto.
10229         (fma<mode>4): Removed condition.
10230         (fms<mode>4): Ditto.
10231         (fnma<mode>4): Ditto.
10232         (fnms<mode>4): Ditto.
10233         (fma4i_fmadd_<mode>): Ditto.
10234         (*fma_fmadd_<mode>): Ditto.
10235         (*fma_fmsub_<mode>): Ditto.
10236         (*fma_fnmadd_<mode>): Ditto.
10237         (*fma_fnmsub_<mode>): Ditto.
10238         (fmaddsub_<mode>): Allow for TARGET_AVX512F.
10239         (*fma_fmaddsub_<mode>): Ditto.
10240         (*fma_fmsubadd_<mode>): Ditto.
10241         (*fmai_fmadd_<mode>): Ditto.
10242         (*fmai_fmsub_<mode>): Ditto.
10243         (*fmai_fnmadd_<mode>): Ditto.
10244         (*fmai_fnmsub_<mode>): Ditto.
10245
10246 2013-10-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10247             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10248             Sergey Lega  <sergey.s.lega@intel.com>
10249             Anna Tikhonova  <anna.tikhonova@intel.com>
10250             Ilya Tocar  <ilya.tocar@intel.com>
10251             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10252             Ilya Verbin  <ilya.verbin@intel.com>
10253             Kirill Yukhin  <kirill.yukhin@intel.com>
10254             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10255
10256         * config/i386/sse.md (VI248_AVX2_8_AVX512F): New.
10257         (VI124_256): Changed to ...
10258         (VI124_256_48_512): This.
10259         (ssepackmode): Extended with wider modes.
10260         (<code><mode>3): Changed iterator.
10261         (*avx2_<code><mode>3): Ditto.
10262         (vec_pack_trunc_<mode>): Ditto.
10263
10264 2013-10-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10265             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10266             Sergey Lega  <sergey.s.lega@intel.com>
10267             Anna Tikhonova  <anna.tikhonova@intel.com>
10268             Ilya Tocar  <ilya.tocar@intel.com>
10269             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10270             Ilya Verbin  <ilya.verbin@intel.com>
10271             Kirill Yukhin  <kirill.yukhin@intel.com>
10272             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10273
10274         * config/i386/sse.md (VI124_AVX2_48_AVX512F): New.
10275         (VI8F_256_512): Ditto.
10276         (abs<mode>2): Changed iterator.
10277         (avx2_perm<mode>): Changed to ...
10278         (<avx2_avx512f>_perm<mode>): This.
10279         (avx2_perm<mode>_1): Changed to ...
10280         (<avx2_avx512f>_perm<mode>_1): This.
10281
10282 2013-10-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10283             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10284             Sergey Lega  <sergey.s.lega@intel.com>
10285             Anna Tikhonova  <anna.tikhonova@intel.com>
10286             Ilya Tocar  <ilya.tocar@intel.com>
10287             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10288             Ilya Verbin  <ilya.verbin@intel.com>
10289             Kirill Yukhin  <kirill.yukhin@intel.com>
10290             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10291
10292         * config/i386/sse.md (VI48_AVX512F): New.
10293         (VI48_AVX2): Changed to ...
10294         (VI48_AVX2_48_AVX512F): This.
10295         (avx2_ashrv<mode>): Changed to ...
10296         (<avx2_avx512f>_ashrv<mode>): This.
10297         (avx2_<shift_insn>v<mode>): Changed to ...
10298         (<avx2_avx512f>_<shift_insn>v<mode>): This.
10299
10300 2013-10-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10301             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10302             Sergey Lega  <sergey.s.lega@intel.com>
10303             Anna Tikhonova  <anna.tikhonova@intel.com>
10304             Ilya Tocar  <ilya.tocar@intel.com>
10305             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10306             Ilya Verbin  <ilya.verbin@intel.com>
10307             Kirill Yukhin  <kirill.yukhin@intel.com>
10308             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10309
10310         * config/i386/sse.md (VI4_AVX512F): New.
10311         (VI8_AVX2_AVX512F): Ditto.
10312         (mul<mode>3): Extended with wider modes.
10313         (*<sse4_1_avx2>_mul<mode>3): Ditto.
10314         (mul<mode>3): Ditto.
10315         (vec_widen_<s>mult_odd_<mode>): Ditto.
10316
10317 2013-10-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10318             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10319             Sergey Lega  <sergey.s.lega@intel.com>
10320             Anna Tikhonova  <anna.tikhonova@intel.com>
10321             Ilya Tocar  <ilya.tocar@intel.com>
10322             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10323             Ilya Verbin  <ilya.verbin@intel.com>
10324             Kirill Yukhin  <kirill.yukhin@intel.com>
10325             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10326
10327         * config/i386/sse.md (VI2_AVX512F): New.
10328         (VI124_AVX512F): Ditto.
10329         (sseunpackmode): Extended with wider modes.
10330         (sseunpackfltmode): Ditto.
10331         (vec_unpacks_float_hi_<mode>): Ditto.
10332         (vec_unpacks_float_lo_<mode>): Ditto.
10333         (vec_unpacku_float_hi_<mode>): Ditto.
10334         (vec_unpacku_float_lo_<mode>): Ditto.
10335         (vec_unpacks_lo_<mode>): Ditto.
10336         (vec_unpacks_hi_<mode>): Ditto.
10337         (vec_unpacku_lo_<mode>): Ditto.
10338         (vec_unpacku_hi_<mode>): Ditto.
10339
10340 2013-10-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10341             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10342             Sergey Lega  <sergey.s.lega@intel.com>
10343             Anna Tikhonova  <anna.tikhonova@intel.com>
10344             Ilya Tocar  <ilya.tocar@intel.com>
10345             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10346             Ilya Verbin  <ilya.verbin@intel.com>
10347             Kirill Yukhin  <kirill.yukhin@intel.com>
10348             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10349
10350         * config/i386/i386.md (multdiv): New.
10351         (multdiv_mnemonic): Ditto.
10352         * config/i386/sse.md (<sse>_vmmul<mode>3): Changed to...
10353         (<sse>_vm<multdiv_mnemonic><mode>3): This.
10354         (<sse>_vmdiv<mode>3): Removed.
10355
10356 2013-10-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10357             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10358             Sergey Lega  <sergey.s.lega@intel.com>
10359             Anna Tikhonova  <anna.tikhonova@intel.com>
10360             Ilya Tocar  <ilya.tocar@intel.com>
10361             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10362             Ilya Verbin  <ilya.verbin@intel.com>
10363             Kirill Yukhin  <kirill.yukhin@intel.com>
10364             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10365
10366         * config/i386/sse.md (V): Extended with wider modes.
10367         (VF2): Ditto.
10368         (ssehalfvecmode): Ditto.
10369         (i128): Ditto.
10370         (ssepackfltmode): Ditto.
10371         (avx_vec_concat<mode>): Ditto.
10372         (V_256_512): New iterator.
10373         (VF2_512_256): Ditto.
10374         (si2dfmode): New attribute.
10375         (si2dfmodelower): Ditto.
10376         (sf2dfmode): Ditto.
10377         (concat_tg_mode): Ditto.
10378         (floatv4siv4df2): Changed to ...
10379         (float<si2dfmodelower><mode>2): This.
10380         (avx_cvtps2pd256): Changed to ...
10381         (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix>): This.
10382         (vec_pack_trunc_v4df): Changed to ...
10383         (vec_pack_trunc_<mode>): This.
10384         (avx_vpermil<mode>): Changed to ...
10385         (<sse2_avx_avx512f>_vpermil<mode>): This.
10386         (<fixsuffix>fix_truncv8dfv8si2): New.
10387         (vec_pack_sfix_trunc_v8df): Ditto.
10388         (avx512f_rndscale<mode>): Ditto.
10389         (avx512f_roundpd512): Ditto.
10390         (vec_pack_ufix_trunc_<mode>): Updated iterator.
10391
10392 2013-10-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10393             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10394             Sergey Lega  <sergey.s.lega@intel.com>
10395             Anna Tikhonova  <anna.tikhonova@intel.com>
10396             Ilya Tocar  <ilya.tocar@intel.com>
10397             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10398             Ilya Verbin  <ilya.verbin@intel.com>
10399             Kirill Yukhin  <kirill.yukhin@intel.com>
10400             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10401
10402         * config/i386/i386.md (any_fix): New iterator.
10403         (fixsuffix): New attribute.
10404         * config/i386/sse.md (VF1): Extened with wider modes.
10405         (VI): Ditto.
10406         (VI_AVX2): Ditto.
10407         (VI8): Ditto.
10408         (sseintvecmodelower): Ditto.
10409         (ssescalarmode): Ditto.
10410         (ssescalarnum): Ditto.
10411         (VF1_128_256): New.
10412         (ssexmmmode): Ditto.
10413         (<fixsuffix>fix_truncv16sfv16si2): Ditto.
10414         (<sse>_rcp<mode>2): Change iterator.
10415         (rsqrt<mode>2): Ditto.
10416         (<sse>_rsqrt<mode>2): Ditto.
10417         (avx2_vec_dup<mode>): Ditto.
10418         (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
10419         (round<mode>2_sfix): Ditto.
10420         (avx2_pbroadcast<mode>): Ditto.
10421         (*andnot<mode>3): Handle XI mode.
10422         (*<code><mode>3): Ditto.
10423         (AVXTOSSEMODE): Removed.
10424         (avx_vpermil<mode>): Changed to ...
10425         (<sse2_avx_avx512f>_vpermil<mode>): This.
10426
10427 2013-10-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10428             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10429             Sergey Lega  <sergey.s.lega@intel.com>
10430             Anna Tikhonova  <anna.tikhonova@intel.com>
10431             Ilya Tocar  <ilya.tocar@intel.com>
10432             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10433             Ilya Verbin  <ilya.verbin@intel.com>
10434             Kirill Yukhin  <kirill.yukhin@intel.com>
10435             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10436
10437         * config/i386/sse.md (<sse2>_movnt<mode>): Update constraint to "v".
10438         (<sse>_comi): Ditto.
10439         (<sse>_ucomi): Ditto.
10440         (sse_cvtss2siq_2): Ditto.
10441         (sse2_cvtsd2si): Ditto.
10442         (sse2_cvtsd2siq): Ditto.
10443         (sse2_cvttsd2si): Ditto.
10444         (sse2_cvttsd2siq): Ditto.
10445         (<shift_insn><mode>3): Ditto.
10446         (sse2_cvtsi2sdq): Update constraint and prefix.
10447         (sse_cvtsi2ss): Update prefix.
10448         (sse_cvtsi2ssq): Ditto.
10449
10450 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
10451
10452         * tree-vrp.c (infer_nonnull_range): Use is_gimple_call,
10453         ignore internal calls.
10454
10455 2013-10-11  Richard Biener  <rguenther@suse.de>
10456
10457         * tree-pretty-print.c (dump_generic_node): Allow to dump both (D)
10458         and (ab) for SSA_NAMEs.  Mark INTEGER_CSTs with (OVF) if
10459         TREE_OVERFLOW is set.
10460
10461 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
10462
10463         * tree.h (OMP_CLAUSE_CODE): Remove duplicate definition.
10464
10465         * gimple.c: GIMPLE statements have subcodes, not sub-codes.
10466         * gimple.h: Likewise.
10467
10468         * doc/generic.texi (OpenMP): OMP_CLAUSE_* are subcodes, not sub-codes.
10469
10470         * doc/generic.texi (Adding new DECL node types): Explain *_CHECK
10471         macros.
10472
10473         * doc/gimple.texi (is_gimple_omp): Move into the correct section.
10474
10475         * acinclude.m4 (gcc_GAS_FLAGS): Add more gcc_cv_as_flags overrides.
10476         * configure: Regenerate.
10477
10478 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
10479
10480         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
10481         and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
10482         formatting fixes, use pp_colon instead of pp_character (..., ':'),
10483         similarly pp_right_paren.
10484         (dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
10485         OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
10486         allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
10487         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
10488         clauses.
10489         (omp_declare_simd_clauses_equal,
10490         omp_remove_redundant_declare_simd_attrs): New functions.
10491         (attribute_value_equal): Use omp_declare_simd_clauses_equal.
10492         (walk_tree_1): Handle new OpenMP 4.0 clauses.
10493         * tree.h (OMP_LOOP_CHECK): Define.
10494         (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
10495         OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
10496         (OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
10497         OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
10498         OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
10499         OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
10500         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
10501         OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
10502         OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
10503         OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
10504         OMP_CLAUSE_SIMDLEN_EXPR): Define.
10505         (OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
10506         (omp_remove_redundant_declare_simd_attrs): New prototype.
10507         * gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
10508         GIMPLE_OMP_TEAMS): New codes.
10509         (GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
10510         * omp-low.c (struct omp_context): Add cancel_label and cancellable
10511         fields.
10512         (target_nesting_level): New variable.
10513         (extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
10514         OMP_CLAUSE_DIST_SCHEDULE.  Don't fallback to library implementation
10515         for collapse > 1 static schedule unless ordered.
10516         (get_ws_args_for): Add par_stmt argument.  Handle combined loops.
10517         (determine_parallel_type): Adjust get_ws_args_for caller.
10518         (install_var_field): Handle mask & 4 for double indirection.
10519         (scan_sharing_clauses): Ignore shared clause on teams construct.
10520         Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
10521         (create_omp_child_function): If inside target or declare target
10522         constructs, set "omp declare target" attribute on the child function.
10523         (find_combined_for): New function.
10524         (scan_omp_parallel): Handle combined loops.
10525         (scan_omp_target, scan_omp_teams): New functions.
10526         (check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
10527         restrictions and set ctx->cancellable for cancellable constructs.
10528         (scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
10529         selected builtin calls.  Handle GIMPLE_OMP_TASKGROUP,
10530         GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
10531         (build_omp_barrier): Add lhs argument, return gimple rather than tree.
10532         (omp_clause_aligned_alignment): New function.
10533         (lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR on decls.
10534         (lower_rec_input_clauses): Add FD argument.  Ignore shared clauses
10535         on teams constructs.  Handle user defined reductions and new
10536         OpenMP 4.0 clauses.
10537         (lower_reduction_clauses): Don't set placeholder to address of ref
10538         if it has already the right type.
10539         (lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
10540         (expand_parallel_call): Use the new non-_start suffixed builtins,
10541         handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
10542         and GOMP_parallel_end after the call.
10543         (expand_task_call): Handle OMP_CLAUSE_DEPEND.
10544         (expand_omp_for_init_counts): Handle combined loops.
10545         (expand_omp_for_init_vars): Add inner_stmt argument, handle combined
10546         loops.
10547         (expand_omp_for_generic): Likewise.  Use GOMP_loop_end_cancel at the
10548         end of cancellable loops.
10549         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
10550         Likewise.  Handle collapse > 1 loops.
10551         (expand_omp_simd): Handle combined loops.
10552         (expand_omp_for): Add inner_stmt argument, adjust callers of
10553         expand_omp_for* functions, use expand_omp_for_static*chunk even
10554         for collapse > 1 unless ordered.
10555         (expand_omp_sections): Use GOMP_sections_end_cancel at the end
10556         of cancellable sections.
10557         (expand_omp_single): Remove need_barrier variable, just rely on
10558         gimple_omp_return_nowait_p.  Adjust build_omp_barrier caller.
10559         (expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
10560         (expand_omp_atomic_load, expand_omp_atomic_store,
10561         expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
10562         (expand_omp_target): New function.
10563         (expand_omp): Handle combined loops.  Handle GIMPLE_OMP_TASKGROUP,
10564         GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
10565         (build_omp_regions_1): Immediately close region for
10566         GF_OMP_TARGET_KIND_UPDATE.
10567         (maybe_add_implicit_barrier_cancel): New function.
10568         (lower_omp_sections): Adjust lower_rec_input_clauses caller.  Handle
10569         cancellation.
10570         (lower_omp_single): Likewise.  Add clobber after the barrier.
10571         (lower_omp_taskgroup): New function.
10572         (lower_omp_for): Handle combined loops.  Adjust
10573         lower_rec_input_clauses caller.  Handle cancellation.
10574         (lower_depend_clauses): New function.
10575         (lower_omp_taskreg): Lower depend clauses.  Adjust
10576         lower_rec_input_clauses caller.  Add clobber after the call.  Handle
10577         cancellation.
10578         (lower_omp_target, lower_omp_teams): New functions.
10579         (lower_omp_1): Handle cancellation.  Handle GIMPLE_OMP_TASKGROUP,
10580         GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
10581         and GOMP_cancellation_point calls.
10582         (lower_omp): Fold stmts inside of target region.
10583         (diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
10584         GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
10585         * builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
10586         (BT_FN_VOID_OMPFN_PTR_UINT,
10587         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
10588         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
10589         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
10590         (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
10591         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
10592         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
10593         BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
10594         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
10595         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
10596         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
10597         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
10598         call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
10599         BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
10600         BUILT_IN_GOMP_SECTIONS_END_CANCEL.  Don't handle
10601         BUILT_IN_GOMP_PARALLEL_END.
10602         * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
10603         GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
10604         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
10605         GF_OMP_FOR_KIND_DISTRIBUTE.
10606         (dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
10607         (dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
10608         (dump_gimple_omp_return): Print lhs if it has any.
10609         (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
10610         gimple_omp_atomic_seq_cst_p.
10611         (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
10612         and GIMPLE_OMP_TEAMS.
10613         * langhooks.c (lhd_omp_mappable_type): New function.
10614         * tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
10615         * langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
10616         hook.
10617         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
10618         GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
10619         (enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and ORT_TARGET.
10620         (struct gimplify_omp_ctx): Add combined_loop field.
10621         (gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
10622         on stmts inside of target region.
10623         (is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
10624         (omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
10625         ORT_TARGET and ORT_TARGET_DATA.
10626         (omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
10627         Handle GOVD_MAP.
10628         (omp_notice_threadprivate_variable): Complain about threadprivate
10629         variables in target region.
10630         (omp_notice_variable): Complain about vars with non-mappable type
10631         in target region.  Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
10632         (omp_check_private): Ignore ORT_TARGET* regions.
10633         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
10634         gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
10635         (find_combined_omp_for): New function.
10636         (gimplify_omp_for): Handle gimplification of combined loops.
10637         (gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
10638         OMP_TEAMS.
10639         (gimplify_omp_target_update): New function.
10640         (gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
10641         (gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
10642         OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
10643         (gimplify_body): If fndecl has "omp declare target" attribute, add
10644         implicit ORT_TARGET context around it.
10645         * tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
10646         OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
10647         * tree-nested.c (convert_nonlocal_reference_stmt,
10648         convert_local_reference_stmt, convert_gimple_call): Handle
10649         GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
10650         * omp-builtins.def (BUILT_IN_GOMP_TASK): Use
10651         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
10652         instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
10653         (BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
10654         BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
10655         BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
10656         BUILT_IN_GOMP_LOOP_END_CANCEL,
10657         BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
10658         BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
10659         BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
10660         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
10661         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
10662         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
10663         BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
10664         BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
10665         (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
10666         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
10667         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
10668         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
10669         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
10670         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
10671         * tree-inline.c (remap_gimple_stmt, estimate_num_insns):
10672         Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
10673         * gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
10674         gimple_build_omp_teams): New functions.
10675         (walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
10676         GIMPLE_OMP_TASKGROUP.  Walk optional lhs on GIMPLE_OMP_RETURN.
10677         (walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
10678         GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
10679         * gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
10680         GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
10681         GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
10682         GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
10683         GF_OMP_ATOMIC_SEQ_CST): New.
10684         (gimple_build_omp_taskgroup, gimple_build_omp_target,
10685         gimple_build_omp_teams): New prototypes.
10686         (gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
10687         GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
10688         (gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
10689         GIMPLE_OMP_SINGLE as end of range.
10690         (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
10691         gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
10692         gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
10693         gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
10694         gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
10695         gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
10696         gimple_omp_target_kind, gimple_omp_target_set_kind,
10697         gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
10698         gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
10699         gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
10700         gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
10701         gimple_omp_teams_set_clauses): New inlines.
10702         (CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
10703         and GIMPLE_OMP_TASKGROUP.
10704         * tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause codes.
10705         (enum omp_clause_depend_kind, enum omp_clause_map_kind,
10706         enum omp_clause_proc_bind_kind): New.
10707         (union omp_clause_subcode): Add depend_kind, map_kind and
10708         proc_bind_kind fields.
10709         * tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
10710         GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
10711         * langhooks-def.h (lhd_omp_mappable_type): New prototype.
10712         (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
10713         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
10714
10715 2013-10-10  Teresa Johnson  <tejohnson@google.com>
10716
10717         * predict.c (tree_estimate_probability): Add new parameter
10718         for estimate_bb_frequencies.
10719         (estimate_bb_frequencies): Add new parameter to force estimation.
10720         (rebuild_frequencies): When max frequency in function is small,
10721         recompute counts from frequencies.
10722         * predict.h (estimate_bb_frequencies): New parameter.
10723
10724 2013-10-10  David Malcolm  <dmalcolm@redhat.com>
10725
10726         * ipa-inline.c (ipa_inline): Fix leak of "order" when
10727         optimizations are disabled.
10728
10729 2013-10-10  David Malcolm  <dmalcolm@redhat.com>
10730
10731         * coverage.c (coverage_finish): Fix leak of da_file_name.
10732
10733 2013-10-10  Jan Hubicka  <jh@suse.cz>
10734
10735         * config/i386/x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES
10736         for generic, enable X86_TUNE_SSE_LOAD0_BY_PXOR for Bulldozer,
10737         Bobcat and generic.
10738
10739 2013-10-10  Jakub Jelinek  <jakub@redhat.com>
10740
10741         PR middle-end/58670
10742         * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
10743         if any labels are in FALLTHRU_BB, use a special label emitted
10744         immediately after the asm goto insn rather than label_rtx
10745         of the LABEL_DECL.
10746         (expand_asm_stmt): Adjust caller.
10747         * cfgrtl.c (commit_one_edge_insertion): Force splitting of
10748         edge if the last insn in predecessor is a jump with single successor,
10749         but it isn't simplejump_p.
10750
10751 2013-10-10  Richard Biener  <rguenther@suse.de>
10752
10753         PR tree-optimization/58656
10754         * tree-ssa-pre.c (phi_translate): Do not cache failed translations.
10755
10756 2013-10-10  Andrew MacLeod  <amacleod@redhat.com>
10757
10758         * gimplify.c: Include expr.h and tm_p.h for targets with special
10759         va-arg padding requirements.
10760
10761 2013-10-10  Andrew MacLeod  <amacleod@redhat.com>
10762
10763         * tree-flow.h: Move some prototypes to gimple.h.
10764         (gimple_fold_indirect_ref): Move prototype to gimple-fold.h.
10765         * gimple.h: Relocate some prototypes from tree-flow.h
10766         * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref):
10767         Move to gimplify.c.
10768         * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c.
10769         (build_va_arg_indirect_ref): Relocate and make static.
10770         (std_gimplify_va_arg_expr): Relocate here.
10771         * gimple-fold.c (gimple_fold_indirect_ref): Relocate here.
10772         * gimple-fold.h (gimple_fold_indirect_ref): Add prototype.
10773
10774 2013-10-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10775
10776         * doc/md.texi: Document the mnemonic attribute.
10777
10778 2013-10-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10779
10780         PR target/57377
10781         * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
10782         (set_attr_alternative x ...) when searching for user defined
10783         mnemonic attribute.
10784
10785 2013-10-10  Andrew MacLeod  <amacleod@redhat.com>
10786
10787         * config/aplha/alpha.c: Add gimple-ssa.h to include list.
10788
10789 2013-10-09  Easwaran Raman <eraman@google.com>
10790
10791         * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
10792         * cfgexpand.c (defer_stack_allocation): ...use here
10793         * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.
10794
10795 2013-10-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
10796
10797         * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
10798         (operand_equal_for_value_replacement): New function, extracted from
10799         value_replacement and enhanced to catch more cases.
10800         (value_replacement): Use operand_equal_for_value_replacement.
10801
10802 2013-10-09  Andrew MacLeod  <amacleod@redhat.com>
10803
10804         * loop-doloop.c (doloop_modify, doloop_optimize): Use
10805         get_max_loop_iterations.
10806
10807 2013-10-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10808
10809         * config/arm/aarch-common.c (arm_early_load_addr_dep):
10810         Place comment above function.
10811
10812 2013-10-09  Andrew MacLeod  <amacleod@redhat.com>
10813
10814         * tree-flow.h: Remove all remaining prototypes, enums and structs that
10815         are not related to tree-cfg.c.
10816         * tree-ssa-address.h: New file.  Relocate prototypes.
10817         * tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
10818         (addr_for_mem_ref): New.  Combine call to get_address_description and
10819         return addr_for_mem_ref.
10820         * expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
10821         * tree-ssa-live.h: Adjust prototypes.
10822         * passes.c: Include tree-ssa-live.h.
10823         * gimple-pretty-print.h (gimple_dump_bb): Add prototype.
10824         * graphite.c (graphite_transform_loops): Make static.
10825         (graphite_transforms, gate_graphite_transforms, pass_data_graphite,
10826         make_pass_graphite, pass_data_graphite_transforms,
10827         make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
10828         * ipa-pure-const.c (warn_function_noreturn): Make static.
10829         (execute_warn_function_noreturn, gate_warn_function_noreturn,
10830         class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
10831         Relocate from tree-cfg.c
10832         * tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
10833         static.
10834         (execute_warn_function_noreturn, gate_warn_function_noreturn,
10835         class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
10836         Move to ipa-pure-const.c.
10837         (execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg):
10838         Relocate from tree-optimize.c.
10839         * tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
10840         make_pass_fixup_cfg): Move to tree-cfg.c.
10841         * tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
10842         Relocate some prototypes.
10843         * tree-data-ref.h (tree_check_data_deps) Add prototype.
10844         * tree-dump.c (dump_function_to_file): Remove prototype.
10845         Add tree-flow.h to the include file.
10846         * tree-dump.h: Remove prototype.
10847         * tree-parloops.h: New File.  Add prototypes.
10848         * tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
10849         pass_data_parallelize_loops,  make_pass_parallelize_loops): Relocate
10850         from tree-ssa-loop.c.
10851         * tree-predcom.c (run_tree_predictive_commoning,
10852         gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
10853         Relocate here from tree-ssa-loop.c.
10854         * tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call
10855         ssa_name_values.release ().
10856         * tree-ssa-threadedge.h: New File.  Relocate prototypes here.
10857         (ssa_name_values): Relocate from tree-flow.h.
10858         * tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
10859         * tree-ssa-loop.c (run_tree_predictive_commoning,
10860         gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
10861         graphite_transforms, gate_graphite_transforms, pass_data_graphite,
10862         make_pass_graphite, pass_data_graphite_transforms,
10863         make_pass_graphite_transforms, gate_tree_parallelize_loops,
10864         tree_parallelize_loops, pass_data_parallelize_loops,
10865         make_pass_parallelize_loops): Move to other files.
10866         * tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
10867         moved here.
10868         * tree.h: Remove prototypes from tree-address.c.
10869
10870 2013-10-09  Andrew MacLeod  <amacleod@redhat.com>
10871
10872         * tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
10873         (struct int_tree_map): Move to tree-hasher.h
10874         (SCALE, LABEL, PERCENT): Move to gimple.h
10875         * tree-flow-inline.h: Delete.  Move functions to other files.
10876         (unmodifiable_var_p, ref_contains_array_ref): Unused, so delete.
10877         * gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h.
10878         (gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h
10879         * gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid,
10880         inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h.
10881         (SCALE, LABEL, PERCENT): Relocate from tree-flow.h
10882         * tree-hasher.h: Don't include tree-flow.h.
10883         (struct int_tree_map): Relocate from tree-flow.h.
10884         * tree-sra.c (contains_view_convert_expr_p): Relocate from
10885         tree-flow-inline.h and make static.
10886         * tree-ssa-alias.h (ranges_overlap_p): Relocate from
10887         tree-flow-inline.h.
10888         * tree-ssa-operands.c (gimple_ssa_operands): Relocate from
10889         tree-flow-inline.h and make static.
10890         * tree.h (is_global_var, may_be_aliased): Relocate from
10891         tree-flow-inline.h.
10892         * Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h.
10893         * value-prof.c: No longer include tree-flow-inline.h.
10894         * tree-switch-conversion.c: No longer include tree-flow-inline.h.
10895
10896 2013-10-09  Andrew MacLeod  <amacleod@redhat.com>
10897
10898         * tree-flow.h: Move some protoypes.  Include new tree-ssa-loop.h.
10899         (struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h.
10900         (enum move_pos): Move to tree-ssa-loop-im.h
10901         * cfgloop.h: Move some prototypes.
10902         (gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c.
10903         * tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h.
10904         * tree-ssa-loop.h: New File.  Include other tree-ssa-loop-*.h files.
10905         (struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h.
10906         (loop_containing_stmt): Relocate from tree-flow-inline.h.
10907         * tree-ssa-loop-ch.c: (do_while_loop_p): Make static.
10908         * tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c.
10909         (enum move_pos): Relocate here.
10910         (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to
10911         tree-ssa-loop.c.
10912         (execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call.
10913         (tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim,
10914         make_pass_lim): Relocate here from tree-ssa-loop.c.
10915         * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to
10916         tree-ssa-loop.c.
10917         (loop_edge_to_cancel, unloop_loops): Make static.
10918         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
10919         make_pass_iv_canon): Relocate from tree-ssa-loop.c.
10920         (tree_complete_unroll, gate_tree_complete_unroll,
10921         pass_data_complete_unroll, make_pass_complete_unroll): Relocate here.
10922         (tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
10923         pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here.
10924         * tree-ssa-loop-ivopts.c: Remove local prototypes.
10925         (stmt_invariant_in_loop_p): Remove unused function.
10926         * tree-ssa-loop-ivopts.h: New file.  Add prototypes.
10927         * tree-ssa-loop-manip.h: New file.  Add prototypes.
10928         * tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c.
10929         (gcov_type_to_double_int): Move to cfgloop.h.
10930         (double_int_cmp, bound_index,
10931         estimate_numbers_of_iterations_loop): Make static.
10932         (estimated_loop_iterations): Factor out get_estimated_loop_iterations.
10933         (max_loop_iterations): Factor out get_max_loop_iterations.
10934         (estimated_loop_iterations_int, max_stmt_executions_int): Move to
10935         cfgloop.c.
10936         * tree-ssa-loop-niter.h: New file.  Add prototypes.
10937         * tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch,
10938         gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch,
10939         make_pass_loop_prefetch): Relocate from tree-ssa-loop.c.
10940         * tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch,
10941         gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch,
10942         make_pass_tree_unswitch): Relocate from tree-ssa-loop.c.
10943         * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im,
10944         pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c.
10945         (tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch,
10946         pass_data_tree_unswitch, make_pass_tree_unswitch): Move.
10947         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
10948         make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll,
10949         pass_data_complete_unroll, make_pass_complete_unroll,
10950         tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
10951         pass_data_complete_unrolli, make_pass_complete_unrolli): Move to
10952         tree-ssa-loop-ivcanon.c.
10953         (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
10954         pass_data_loop_prefetch, make_pass_loop_prefetch): Move to
10955         tree-ssa-loop-prefetch.c.
10956         (for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from
10957         tree-ssa-loop-im.c.
10958         (get_lsm_tmp_name): Relocate and add suffix parameter.
10959         (tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c.
10960         * tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef.
10961         * cfgloop.c (record_niter_bound, estimated_loop_iterations_int,
10962         max_stmt_executions_int): Move from tree-ssa-loop-niter.c.
10963         (get_estimated_loop_iterations): Factor out accessor from
10964         estimated_loop_iterations in tree-ssa-loop-niter.c.
10965         (get_max_loop_iterations): Factor out accessor from
10966         _max_loop_iterations in tree-ssa-niter.c.
10967         * loop-unroll.c (decide_unroll_constant_iterations,
10968         decide_unroll_runtime_iterations, decide_peel_simple,
10969         decide_unroll_stupid): Use new get_* accessors.
10970
10971 2013-10-09  Marc Glisse  <marc.glisse@inria.fr>
10972
10973         PR tree-optimization/20318
10974         * doc/extend.texi (returns_nonnull): New function attribute.
10975         * fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
10976         attribute.
10977         * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
10978         (stmt_interesting_for_vrp): Accept all GIMPLE_CALL.
10979
10980 2013-10-09  Eric Botcazou  <ebotcazou@adacore.com>
10981
10982         PR middle-end/58570
10983         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return
10984         false if both components are bitfields.
10985
10986 2013-10-09  Alex Velenko  <Alex.Velenko@arm.com>
10987
10988         * config/aarch64/arm_neon.h (vclz_s8, vclz_s16, vclz_s32)
10989         (vclzq_s8, vclzq_s16, vclzq_s32, vclz_u8, vclz_u16, vclz_u32)
10990         (vclzq_u8, vclzq_u16, vclzq_u32): Replace ASM with C.
10991         * config/aarch64/aarch64.h
10992         (CLZ_DEFINED_VALUE_AT_ZERO): Macro fixed for clz.
10993         * config/aarch64/aarch64-simd-builtins.def
10994         (VAR1 (UNOP, clz, 0, v4si)): Replaced with iterator.
10995
10996 2013-10-09  Alex Velenko  <Alex.Velenko@arm.com>
10997
10998         * config/aarch64/arm_neon.h (vadd_f64, vsub_f64): Implementation added.
10999
11000 2013-10-09  Alex Velenko  <Alex.Velenko@arm.com>
11001
11002         * config/aarch64/arm_neon.h (vdiv_f64): Added.
11003
11004 2013-10-09  Alex Velenko  <Alex.Velenko@arm.com>
11005
11006         * config/aarch64/arm_neon.h (vneg_f32): Asm replaced with C.
11007         (vneg_f64): New intrinsic.
11008         (vneg_s8): Asm replaced with C.
11009         (vneg_s16): Likewise.
11010         (vneg_s32): Likewise.
11011         (vneg_s64): New intrinsic.
11012         (vnegq_f32): Asm replaced with C.
11013         (vnegq_f64): Likewise.
11014         (vnegq_s8): Likewise.
11015         (vnegq_s16): Likewise.
11016         (vnegq_s32): Likewise.
11017         (vnegq_s64): Likewise.
11018
11019 2013-10-09  Renlin Li  <Renlin.Li@arm.com>
11020
11021         * config/arm/arm.c (arm_output_mi_thunk): Use plus_constant.
11022
11023 2013-10-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11024
11025         * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove
11026         packed stack special handling.
11027         (s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch
11028         back to fixed stack slots for FPRs saved due to stdarg.
11029
11030 2013-10-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11031
11032         * config/s390/s390.c (s390_frame_info): Restructure function.
11033
11034 2013-10-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11035
11036         * config/s390/s390.c (struct s390_frame_layout): New field
11037         gpr_save_slots.
11038         (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros.
11039         (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of
11040         regs_ever_clobbered to char*.
11041         (s390_regs_ever_clobbered): Check crtl->saves_all_registers instead
11042         of cfun->has_nonlocal_label.  Ignore frame related restore INSNs.
11043         (s390_register_info): Enable FPR save slots.  Move/Copy some
11044         functionality into ...
11045         (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr)
11046         (s390_register_info_stdarg_gpr, s390_optimize_register_info): New
11047         function.
11048         (s390_frame_info): Do gpr slot allocation here now.  stdarg does
11049         not imply a stack frame.
11050         (s390_init_frame_layout): Remove variable clobbered_regs.
11051         (s390_update_register_info): Remove function.
11052         (s390_hard_regno_rename_ok): Call-saved regs without a save slot
11053         cannot be used for register renaming.
11054         (s390_hard_regno_scratch_ok): New function.
11055         (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook.
11056         (s390_initial_elimination_offset): Change offset calculation of
11057         the return address pointer.
11058         (save_gprs): Deal with only r6 being saved from the call-saved regs.
11059         (restore_gprs): Set frame related flag.
11060         (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New functions.
11061         (s390_emit_prologue): Call s390_register_info instead of
11062         s390_update_frame_layout.  Call s390_save_gprs_to_fprs.
11063         (s390_emit_epilogue): Call s390_restore_gprs_from_fprs.
11064         (s390_optimize_prologue): Call s390_optimize_register_info.
11065         Try to remove also FPR slot save/restore INSNs.  Remove frame
11066         related flags from restore INSNs.
11067
11068 2013-10-08  DJ Delorie  <dj@redhat.com>
11069
11070         * config/rl78/rl78-expand.md (movqi): use operands[] not operandN.
11071         (movhi): Likewise.
11072
11073         * config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
11074         avoid conflict with the MI use of %c.
11075         * config/rl78/rl78-real.md: change %c to %C throughout.
11076         * config/rl78/rl78-virt.md: Likewise.
11077
11078 2013-10-08  Jan Hubicka  <jh@suse.cz>
11079
11080         * config/i386/i386.c (ix86_option_override_internal): Switch
11081         to SSE math for -ffast-math when target ISA supports SSE2.
11082
11083 2013-10-08  Andrew MacLeod  <amacleod@redhat.com>
11084
11085         * tree-flow.h: Remove some prototypes.
11086         * tree.h: Remove some protypes, add a couple.
11087         * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
11088         using_eh_for_cleanups_p): Add interface routines for front ends.
11089         * tree-eh.h: New file.  Add protoptyes.
11090         * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
11091         (add_stmt_to_eh_lp_fn): Make static.
11092         (lower_try_finally): Use new using_eh_for_cleanups_p.
11093         * emit-rtl.c: Include tree-eh.h.
11094         * gimple.h: Include tree-eh.h.
11095
11096 2013-10-08  Marc Glisse  <marc.glisse@inria.fr>
11097
11098         PR tree-optimization/58480
11099         * tree-vrp.c (infer_nonnull_range): New function.
11100         (infer_value_range): Call infer_nonnull_range.
11101
11102 2013-10-08  Dehao Chen  <dehao@google.com>
11103
11104         PR tree-optimization/58619
11105         * tree-inline.c (copy_phis_for_bb): Combine location data
11106         only if non-null.
11107
11108 2013-10-08  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
11109
11110         PR target/58423
11111         * config/arm/arm.c (arm_emit_ldrd_pop): Attach
11112         RTX_FRAME_RELATED_P on INSN.
11113
11114 2013-10-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11115
11116         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
11117         (altivec_expand_vec_perm_const): Call it.
11118
11119 2013-10-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11120
11121         * config/rs6000/vector.md (mov<mode>): Emit permuted move
11122         sequences for LE VSX loads and stores at expand time.
11123         * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
11124         prototype.
11125         * config/rs6000/rs6000.c (rs6000_const_vec): New.
11126         (rs6000_gen_le_vsx_permute): New.
11127         (rs6000_gen_le_vsx_load): New.
11128         (rs6000_gen_le_vsx_store): New.
11129         (rs6000_gen_le_vsx_move): New.
11130         * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
11131         (*vsx_le_perm_load_v4si): New.
11132         (*vsx_le_perm_load_v8hi): New.
11133         (*vsx_le_perm_load_v16qi): New.
11134         (*vsx_le_perm_store_v2di): New.
11135         (*vsx_le_perm_store_v4si): New.
11136         (*vsx_le_perm_store_v8hi): New.
11137         (*vsx_le_perm_store_v16qi): New.
11138         (*vsx_xxpermdi2_le_<mode>): New.
11139         (*vsx_xxpermdi4_le_<mode>): New.
11140         (*vsx_xxpermdi8_le_V8HI): New.
11141         (*vsx_xxpermdi16_le_V16QI): New.
11142         (*vsx_lxvd2x2_le_<mode>): New.
11143         (*vsx_lxvd2x4_le_<mode>): New.
11144         (*vsx_lxvd2x8_le_V8HI): New.
11145         (*vsx_lxvd2x16_le_V16QI): New.
11146         (*vsx_stxvd2x2_le_<mode>): New.
11147         (*vsx_stxvd2x4_le_<mode>): New.
11148         (*vsx_stxvd2x8_le_V8HI): New.
11149         (*vsx_stxvd2x16_le_V16QI): New.
11150
11151 2013-10-07  Renlin Li  <Renlin.Li@arm.com>
11152
11153         * config/arm/arm-cores.def (cortex-a53): Use cortex tuning.
11154
11155 2013-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11156
11157         * config/s390/s390.c (s390_register_info): Make the call-saved FPR
11158         loop to work also for 31bit ABI.
11159         Save the stack pointer for frame_size > 0.
11160
11161 2013-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11162
11163         * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
11164         ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
11165         constraint letters from expanders.
11166         ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
11167         retry count to general_operand.
11168         ("tabort"): Give operand 0 a mode.
11169         ("tabort_1"): Add mode and constraint letter for operand 0.
11170         * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
11171
11172 2013-10-04  Jeff Law  <law@redhat.com>
11173
11174         * tree-ssa-threadedge.c: Fix some trailing whitespace problems.
11175
11176         * tree-ssa-threadedge.c (thread_through_normal_block): Broken
11177         out of ...
11178         (thread_across_edge): Here.  Call it.
11179
11180 2013-10-04  Cary Coutant  <ccoutant@google.com>
11181
11182         * dwarf2out.c (dw_sra_loc_expr): Release addr_table entries when
11183         discarding a location list expression (or a piece of one).
11184
11185 2013-10-03  Jan Hubicka  <jh@suse.cz>
11186
11187         * config/i386/i386.c (ix86_issue_rate): Pentium4, Nocona has issue
11188         rate of 2.  Core2, Corei7 and Haswell has issue rate of 4.
11189         (ix86_adjust_cost): Remove Atom case; fix core2/corei7/Haswell case.
11190
11191 2013-10-03  Jan Hubicka  <jh@suse.cz>
11192
11193         * config/i386/i386.c (ix86_option_override_internal): Do not enable
11194         accumulate-outgoing-args when producing unwind info.
11195
11196 2013-10-03  Wei Mi  <wmi@google.com>
11197
11198         * lra-constraints.c (insert_move_for_subreg): New function
11199         extracted from simplify_operand_subreg.
11200         (simplify_operand_subreg): Add reload for paradoxical subreg.
11201
11202 2013-10-03  Rong Xu  <xur@google.com>
11203
11204         * ipa-inline-analysis.c (find_foldable_builtin_expect): Find
11205         the candidate of builtin_expect such that we should fix the
11206         size/time estimation.
11207         (estimate_function_body_sizes): Do the acutally size/time fix-up
11208         for builtin_expect.
11209
11210 2013-10-03  Rong Xu  <xur@google.com>
11211
11212         * predict.c (tree_predict_by_opcode): Get the probability
11213         for builtin_expect from param builtin_expect_probability.
11214         * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
11215         * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
11216         * doc/invoke.texi: Add documentation for builtin-expect-probability.
11217
11218 2013-10-03  Marc Glisse  <marc.glisse@inria.fr>
11219
11220         PR c++/19476
11221         * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'.
11222         * calls.c (alloca_call_p): Use get_callee_fndecl.
11223         * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new.
11224         * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp):
11225         Likewise.
11226         (vrp_visit_stmt): Remove duplicated code.
11227
11228 2013-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
11229
11230         * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
11231         ceildf2, btruncdf2, instead of vsx_* name.
11232
11233         * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
11234         iterators to only do V2DF and V4SF here.  Move the DF code to
11235         rs6000.md where it is combined with SF mode.  Replace <VSv> with
11236         just 'v' since only vector operations are handled with these insns
11237         after moving the DF support to rs6000.md.
11238         (vsx_sub<mode>3): Likewise.
11239         (vsx_mul<mode>3): Likewise.
11240         (vsx_div<mode>3): Likewise.
11241         (vsx_fre<mode>2): Likewise.
11242         (vsx_neg<mode>2): Likewise.
11243         (vsx_abs<mode>2): Likewise.
11244         (vsx_nabs<mode>2): Likewise.
11245         (vsx_smax<mode>3): Likewise.
11246         (vsx_smin<mode>3): Likewise.
11247         (vsx_sqrt<mode>2): Likewise.
11248         (vsx_rsqrte<mode>2): Likewise.
11249         (vsx_fms<mode>4): Likewise.
11250         (vsx_nfma<mode>4): Likewise.
11251         (vsx_copysign<mode>3): Likewise.
11252         (vsx_btrunc<mode>2): Likewise.
11253         (vsx_floor<mode>2): Likewise.
11254         (vsx_ceil<mode>2): Likewise.
11255         (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
11256         (vsx_sminsf3): Likewise.
11257         (vsx_fmadf4): Likewise.
11258         (vsx_fmsdf4): Likewise.
11259         (vsx_nfmadf4): Likewise.
11260         (vsx_nfmsdf4): Likewise.
11261         (vsx_cmpdf_internal1): Likewise.
11262
11263         * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
11264         simpler to select whether a target has SPE or traditional floating
11265         point support in iterators.
11266         (TARGET_DF_SPE): Likewise.
11267         (TARGET_SF_FPR): Likewise.
11268         (TARGET_DF_FPR): Likewise.
11269         (TARGET_SF_INSN): Macros to say whether floating point support
11270         exists for a given operation for expanders.
11271         (TARGET_DF_INSN): Likewise.
11272
11273         * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
11274         combining of SF/DF mode operations, using both traditional and VSX
11275         registers.
11276         (Fvsx): Likewise.
11277         (Ff): Likewise.
11278         (Fv): Likewise.
11279         (Fs): Likewise.
11280         (Ffre): Likewise.
11281         (FFRE): Likewise.
11282         (abs<mode>2): Combine SF/DF modes using traditional floating point
11283         instructions.  Add support for using the upper DF registers with
11284         VSX support, and SF registers with power8-vector support.  Update
11285         expanders for operations supported by both the SPE and traditional
11286         floating point units.
11287         (abs<mode>2_fpr): Likewise.
11288         (nabs<mode>2): Likewise.
11289         (nabs<mode>2_fpr): Likewise.
11290         (neg<mode>2): Likewise.
11291         (neg<mode>2_fpr): Likewise.
11292         (add<mode>3): Likewise.
11293         (add<mode>3_fpr): Likewise.
11294         (sub<mode>3): Likewise.
11295         (sub<mode>3_fpr): Likewise.
11296         (mul<mode>3): Likewise.
11297         (mul<mode>3_fpr): Likewise.
11298         (div<mode>3): Likewise.
11299         (div<mode>3_fpr): Likewise.
11300         (sqrt<mode>3): Likewise.
11301         (sqrt<mode>3_fpr): Likewise.
11302         (fre<Fs>): Likewise.
11303         (rsqrt<mode>2): Likewise.
11304         (cmp<mode>_fpr): Likewise.
11305         (smax<mode>3): Likewise.
11306         (smin<mode>3): Likewise.
11307         (smax<mode>3_vsx): Likewise.
11308         (smin<mode>3_vsx): Likewise.
11309         (negsf2): Delete SF operations that are merged with DF.
11310         (abssf2): Likewise.
11311         (addsf3): Likewise.
11312         (subsf3): Likewise.
11313         (mulsf3): Likewise.
11314         (divsf3): Likewise.
11315         (fres): Likewise.
11316         (fmasf4_fpr): Likewise.
11317         (fmssf4_fpr): Likewise.
11318         (nfmasf4_fpr): Likewise.
11319         (nfmssf4_fpr): Likewise.
11320         (sqrtsf2): Likewise.
11321         (rsqrtsf_internal1): Likewise.
11322         (smaxsf3): Likewise.
11323         (sminsf3): Likewise.
11324         (cmpsf_internal1): Likewise.
11325         (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
11326         (negdf2): Delete DF operations that are merged with SF.
11327         (absdf2): Likewise.
11328         (nabsdf2): Likewise.
11329         (adddf3): Likewise.
11330         (subdf3): Likewise.
11331         (muldf3): Likewise.
11332         (divdf3): Likewise.
11333         (fred): Likewise.
11334         (rsqrtdf_internal1): Likewise.
11335         (fmadf4_fpr): Likewise.
11336         (fmsdf4_fpr): Likewise.
11337         (nfmadf4_fpr): Likewise.
11338         (nfmsdf4_fpr): Likewise.
11339         (sqrtdf2): Likewise.
11340         (smaxdf3): Likewise.
11341         (smindf3): Likewise.
11342         (cmpdf_internal1): Likewise.
11343         (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
11344         (btrunc<mode>2): Delete separate expander, and combine with the
11345         insn and add VSX instruction support.  Use TARGET_<MODE>_FPR.
11346         (btrunc<mode>2_fpr): Likewise.
11347         (ceil<mode>2): Likewise.
11348         (ceil<mode>2_fpr): Likewise.
11349         (floor<mode>2): Likewise.
11350         (floor<mode>2_fpr): Likewise.
11351         (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
11352         Add support for using the upper registers with VSX and
11353         power8-vector.  Move insns to be closer to the define_expands. On
11354         VSX systems, prefer the traditional form of FMA over the VSX
11355         version, since the traditional form allows the target not to
11356         overlap with the inputs.
11357         (fms<mode>4_fpr): Likewise.
11358         (nfma<mode>4_fpr): Likewise.
11359         (nfms<mode>4_fpr): Likewise.
11360
11361 2013-10-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11362             Richard Earnshaw  <richard.earnshaw@arm.com>
11363
11364         * config/arm/aarch-common-protos.h (struct alu_cost_table): New.
11365         (struct mult_cost_table): Likewise.
11366         (struct mem_cost_table): Likewise.
11367         (struct fp_cost_table): Likewise.
11368         (struct vector_cost_table): Likewise.
11369         (cpu_cost_table): Likewise.
11370         * config/arm/arm.opt (mold-rts-costs): New option.
11371         (mnew-generic-costs): Likewise.
11372         * config/arm/arm.c (generic_extra_costs): New table.
11373         (cortexa15_extra_costs): Likewise.
11374         (arm_slowmul_tune): Use NULL as new costs.
11375         (arm_fastmul_tune): Likewise.
11376         (arm_strongarm_tune): Likewise.
11377         (arm_xscale_tune): Likewise.
11378         (arm_9e_tune): Likewise.
11379         (arm_v6t2_tune): Likewise.
11380         (arm_cortex_a5_tune): Likewise.
11381         (arm_cortex_a9_tune): Likewise.
11382         (arm_v6m_tune): Likewise.
11383         (arm_fa726te_tune): Likewise.
11384         (arm_cortex_a15_tune): Use cortex15_extra_costs.
11385         (arm_cortex_tune): Use generict_extra_costs.
11386         (shifter_op_p): New function.
11387         (arm_unspec_cost): Likewise.
11388         (LIBCALL_COST): Define.
11389         (arm_new_rtx_costs): New function.
11390         (arm_rtx_costs): Use arm_new_rtx_costs when core-specific
11391         table is available. Use old costs otherwise unless mnew-generic-costs
11392         is specified.
11393         * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field.
11394         (cpu_cost_table): Declare.
11395
11396 2013-10-03  Marcus Shawcroft  <marcus.shawcroft@arm.com>
11397
11398         PR target/58460
11399         * config/aarch64/aarch64.md (*adds_mul_imm_<mode>)
11400         (*subs_mul_imm_<mode>)
11401         (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>)
11402         (*sub_<shift>_<mode>)
11403         (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
11404         Remove k constraint.
11405
11406 2013-10-03  Ian Bolton  <ian.bolton@arm.com>
11407
11408         * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy
11409         code.
11410         * config/aarch64/aarch64.md (reload_sp_immediate): Likewise.
11411
11412 2013-10-02  Teresa Johnson  <tejohnson@google.com>
11413
11414         * predict.c (probably_never_executed): New function.
11415         (probably_never_executed_bb_p): Invoke probably_never_executed.
11416         (probably_never_executed_edge_p): Ditto.
11417         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
11418         Treat profile insanities conservatively.
11419
11420 2013-10-02  John David Anglin  <danglin@gcc.gnu.org>
11421
11422         * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
11423
11424 2013-10-02  Vladimir Makarov  <vmakarov@redhat.com>
11425
11426         * lra-constraints.c (process_alt_operand): Calculate scratch_p and
11427         use it.  Use smaller increase for scratch.  Don't increase reject
11428         for early clobber scratch.
11429         * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
11430         setting eliminated regs except setting fp from hfp.
11431         (lra_eliminate): Check lra_insn_recog_data on NULL.
11432
11433 2013-10-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
11434
11435         PR target/58587
11436         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
11437         setting -mvsx-timode by default until the underlying problem is fixed.
11438         (RS6000_CPU, power7 defaults): Likewise.
11439
11440 2013-10-02  Uros Bizjak  <ubizjak@gmail.com>
11441
11442         * config/x-linux (host-linux.o): Remove header dependencies.
11443         Use $(COMPILE) and $(POSTCOMPILE).
11444         * config/t-linux-android (linux-android.o): Ditto.
11445
11446 2013-10-02  Uros Bizjak  <ubizjak@gmail.com>
11447
11448         * Makefile.in (expmed.o-warn): Remove.
11449
11450 2013-10-02  Andrew MacLeod  <amacleod@redhat.com>
11451
11452         * graphite-scop-detection.c: Include tree-ssa-propagate,h.
11453         * graphite-sese-to-poly.c: Include tree-ssa-propagate.h.
11454
11455 2013-10-02  Teresa Johnson  <tejohnson@google.com>
11456
11457         * dojump.c (do_jump_1): Divide probability between
11458         both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR.
11459
11460 2013-10-02  Tom Tromey  <tromey@redhat.com>
11461
11462         * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and).
11463
11464 2013-10-02  Andrew MacLeod  <amacleod@redhat.com>
11465
11466         * tree-flow.h: Remove some prototypes.
11467         * tree-ssa-dce.c (mark_virtual_operand_for_renaming,
11468         mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c.
11469         * tree-into-ssa.c (mark_virtual_operand_for_renaming,
11470         mark_virtual_phi_result_for_renaming): Relocate here.
11471         * tree-into-ssa.h: Add prototypes.
11472         * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use
11473         single_pred_before_succ_order.
11474         (blocks_in_phiopt_order): Rename and move to cfganal.c.
11475         (nonfreeing_call_p) Move to gimple.c.
11476         * cfganal.c (single_pred_before_succ_order): Move and renamed from
11477         tree-ssa-phiopt.c.
11478         * basic-block.h (single_pred_before_succ_order): Add prototype.
11479         * gimple.c (nonfreeing_call_p): Relocate here.
11480         * gimple.h: Add prototype.
11481         * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h.
11482         * tree-ssa-dom.h: New file.  Relocate prototypes here.
11483         * tree-ssa.h: Include tree-ssa-dom.h.
11484
11485 2013-10-02  Uros Bizjak  <ubizjak@gmail.com>
11486
11487         * config/i386/x-i386 (driver-i386.o): Remove header dependencies.
11488         Use $(COMPILE) and $(POSTCOMPILE).
11489
11490         * config/alpha/x-alpha (driver-alpha.o): Ditto.
11491
11492 2013-10-02  Andrew MacLeod  <amacleod@redhat.com>
11493
11494         * tree-flow.h: Remove some prototypes.
11495         * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
11496         * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
11497         * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
11498         propagate_tree_value*): Move from here to...
11499         * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
11500         propagate_tree_value*): Relocate here.
11501         * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
11502         * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
11503         * gimple-fold.c: Remove gimple-fold.h from include list.
11504         * tree-vrp.c: Remove gimple-fold.h from include list.
11505         * tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
11506         * tree-ssa-ccp.c: Remove gimple-fold.h from include list.
11507         * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
11508         * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
11509         * sese.c: Add tree-ssa-propagate.h to include list.
11510
11511 2013-10-02  Richard Biener  <rguenther@suse.de>
11512
11513         * tree-loop-distribution.c: Include tree-vectorizer.h for
11514         find_loop_location.
11515         (enum partition_kind): Remove PKIND_REDUCTION.
11516         (struct partition_s): Remove has_writes member, add reduction_p member.
11517         (partition_alloc): Adjust.
11518         (partition_builtin_p): Likewise.
11519         (partition_has_writes): Remove.
11520         (partition_reduction_p): New function.
11521         (partition_merge_into): Likewise.
11522         (generate_code_for_partition): Commonize builtin partition
11523         handling tail.
11524         (rdg_cannot_recompute_vertex_p): Remove.
11525         (already_processed_vertex_p): Likewise.
11526         (rdg_flag_vertex): Do not set has_writes.
11527         (classify_partition): Adjust.
11528         (rdg_build_partitions): Do not set has_writes, treat all
11529         partitions as useful.
11530         (distribute_loop): Record number of library calls generated.  Adjust.
11531         (tree_loop_distribution): Report number of loops and library
11532         calls generated as opt-info.
11533
11534 2013-10-02  Andrew MacLeod  <amacleod@redhat.com>
11535
11536         * tree-flow.h: Include new .h files.  Move prototypes.
11537         * tree-cfgcleanup.h: New file.  Add prototypes from tree-flow.h.
11538         * tree-dfa.h: New File.  Add prototypes from tree-flow.h.
11539         (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
11540         * tree-pretty-print.h: Add prototypes from tree-flow.h.
11541         * tree-into-ssa.h: New File.  Add prototypes from tree-flow.h.
11542         ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
11543         * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
11544         * tree.h (get_ref_base_and_extent): Move prototype out.
11545         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
11546         tree-dfa.h.
11547         * gimple-low.h: New File.  Add prototypes from tree-flow.h.
11548         * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
11549         * tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
11550         * tree-scalar-evolution.c: Include tree.h.
11551         * sese.c: Include tree.h.
11552         * dumpfile.c: Move gimple-pretty-print.h include after tree.h.
11553         * dwarf2out.c: Include tree-dfa.h.
11554         * tree-chrec.c: Include tree.h.
11555         * tree-data-ref.c: Include tree.h.
11556
11557 2013-10-02  Yufeng Zhang  <yufeng.zhang@arm.com>
11558
11559         * gimple-ssa-strength-reduction.c (backtrace_base_for_ref):
11560         Fix whitespace.
11561
11562 2013-10-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11563
11564         * config/t-sol2 (sol2-c.o): Remove header dependencies.
11565         Use $(COMPILE) and $(POSTCOMPILE).
11566         (sol2-cxx.o): Likewise.
11567         (sol2-stubs.o): Likewise.
11568         (sol2.o): Likewise.
11569         * config/x-solaris (host-solaris.o): Likewise.
11570
11571         * config/sparc/t-sparc (sparc.o): Remove.
11572         (sparc-c.o): Remove header dependencies.
11573         Use $(COMPILE) and $(POSTCOMPILE).
11574         * config/sparc/x-sparc: Likewise.
11575
11576 2013-10-02  Joern Rennecke  <joern.rennecke@embecosm.com>
11577
11578         * config/arc/arc-opts.h: Add 2013 to Copyright years.
11579         * config/arc/arc700.md: Likewise.
11580         * config/arc/arc-modes.def: Likewise.
11581         * config/arc/arc-simd.h: Likewise.
11582         * config/arc/t-arc-uClibc: Likewise.
11583         * config/arc/t-arc-newlib: Likewise.
11584
11585 2013-10-02  Renlin Li  <renlin.li@arm.com>
11586
11587         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
11588         plus_constant.
11589         (aarch64_expand_epilogue): Likewise.
11590
11591 2013-10-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11592             Yufeng Zhang  <yufeng.zhang@arm.com>
11593
11594         * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
11595         declaration.
11596         (backtrace_base_for_ref): Call get_unwidened with 'base_in' if
11597         'base_in' represent a conversion and legal_cast_p_1 holds; set
11598         'base_in' with the returned value from get_unwidened.
11599
11600 2013-10-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11601
11602         * config/arm/arm.c (arm_legitimize_reload_address): Explain why
11603         plus_constant is not used.
11604
11605 2013-10-01  Wei Mi  <wmi@google.com>
11606
11607         * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL.
11608         * config/i386/i386.md: Add define_peephole2 to
11609         break partial reg stall for cvtss2sd/cvtsd2ss.
11610
11611 2013-10-01  Joern Rennecke  <joern.rennecke@embecosm.com>
11612
11613         * config/arc/arc.c (pass_arc_ifcvt::clone):
11614         Update for ctxt_ -> m_ctxt change.
11615
11616 2013-10-01  Jeff Law  <law@redhat.com>
11617
11618         * tree-ssa-threadupdate.c (struct redirection_data): Delete
11619         outgoing_edge and intermediate_edge fields.  Instead store the path.
11620         (redirection_data::hash): Hash on the last edge's destination index.
11621         (redirection_data::equal): Check the entire thread path.
11622         (lookup_redirectio_data): Corresponding changes.
11623         (create_edge_and_update_destination_phis): Likewise.
11624         (thread_single_edge): Likewise.
11625
11626 2013-10-01  Joern Rennecke  <joern.rennecke@embecosm.com>
11627             Diego Novillo <dnovillo@google.com>
11628
11629         * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
11630         (UNSPEC_ARC_SIMD_VLD32WL): Likewise.
11631         (vld32wh_insn, vld32wl_insn): Delete commented-out old
11632         versions of these patterns.
11633
11634         * doc/extend.texi (long_call/medium_call/short_call): Typo fix.
11635         (__builtin_arc_aligned): Likewise.
11636
11637         * config/arc/arc.md: Expand adc_0 comment stating the intended
11638         purpose and why it isn't ready.
11639         Replace commented out call_value_via_label_mixed with a
11640         plain comment about bl_s.
11641
11642         * config/arc/arc.c (stdio.h): Don't include directly.
11643         (arc_expand_epilogue): Remove [0]: Remove fp_restored_p.
11644         Remove if (1) condition.
11645         (arc_encode_section_info): Fix comment.
11646
11647 2013-10-01  Joern Rennecke  <joern.rennecke@embecosm.com>
11648
11649         * config/arc/arc.c (arc_conditional_register_usage):
11650         Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG.
11651         Also set reg_alloc_order for DMA config regs.
11652
11653 2013-10-01  Joern Rennecke  <joern.rennecke@embecosm.com>
11654             Jeremy Bennett  <jeremy.bennett@embecosm.com>
11655
11656         * doc/install.texi (--with-cpu): Mention ARC.
11657         (arc-*-elf32): New paragraph.
11658         (arc-linux-uclibc): Likewise.
11659         * doc/md.texi (Machine Constraints): Add ARC part.
11660         * doc/invoke.texi: (menu): Add ARC Options.
11661         (Machine Dependent Options) <ARC Options>: Add synopsis.
11662         (node ARC Options): Add.
11663         * doc/extend.texi (long_call / short_call attribute): Add ARC.
11664         (ARC Built-in Functions): New section defining
11665         generic ARC built-in functions.
11666         (ARC SIMD Built-in Functions): New section defining SIMD specific
11667         built-in functions.
11668         (Declaring Attributes of Functions): Extended
11669         description of short_call and long_call attributes for ARC and
11670         added index entries.
11671
11672 2013-10-01  Saurabh Verma  <saurabh.verma@codito.com>
11673             Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
11674             Joern Rennecke  <joern.rennecke@embecosm.com>
11675             Muhammad Khurram Riaz  <khurram.riaz@arc.com>
11676             Brendan Kehoe  <brendan@zen.org>
11677             Michael Eager  <eager@eagercon.com>
11678             Simon Cook  <simon.cook@embecosm.com>
11679             Jeremy Bennett  <jeremy.bennett@embecosm.com>
11680
11681         * config/arc, common/config/arc: New directories.
11682
11683 2013-10-01  Joern Rennecke  <joern.rennecke@embecosm.com>
11684             Brendan Kehoe  <brendan@zen.org>
11685             Simon Cook  <simon.cook@embecosm.com>
11686
11687         * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
11688
11689 2013-10-01  Andrew MacLeod  <amacleod@redhat.com>
11690
11691         * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
11692         * tree-ssa-coalesce.h: New. Move prototype to here.
11693         * tree-outof-ssa.h: Include tree-ssa-coalesce.h.
11694         * tree-ssa-coalesce.c: Include tree-outof-ssa.h.
11695         (gimple_can_coalesce_p): Move to...
11696         * gimple.c (gimple_can_coalesce_p): Here.
11697
11698 2013-10-01  Andrew MacLeod  <amacleod@redhat.com>
11699
11700         * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h.
11701         (dump_decl_set): Move to gimple.c.
11702         * gimple.h: Don't include tree-ssa-operands.h.
11703         (dump_decl_set): Add prototype.
11704         (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
11705         Move to gimple-ssa.h.
11706         (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def,
11707         gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location,
11708         gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location,
11709         gimple_phi_arg_has_location): Relocate from tree-flow-inline.h
11710         * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather
11711         than PHI_ARG_DEF.
11712         (dump_decl_set): Relocate here.
11713         * gimple-ssa.h: New file.
11714         (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
11715         Relocate from gimple.h.
11716         * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to...
11717         * tree-ssa-operands.c (swap_ssa_operands): Rename from
11718         swap_tree_operands and remove non-ssa path.
11719         (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c.
11720         * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use
11721         swap_ssa_operands.
11722         * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction,
11723         vect_is_simple_reduction_1): Use swap_ssa_operands.
11724         * tree-flow.h: Move various prototypes to tree-phinodes.h.
11725         (enum need_phi_state): Move to tree-into-ssa.c.
11726         (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
11727         BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h.
11728         (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h.
11729         * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
11730         link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
11731         relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
11732         next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
11733         num_imm_uses): Move to ssa-iterators.h.
11734         (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h
11735         (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to
11736         tree-phinodes.h.
11737         (op_iter_done, op_iter_next_def, op_iter_next_tree,
11738         clear_and_done_ssa_iter, op_iter_init, op_iter_init_use,
11739         op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand,
11740         single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands,
11741         num_ssa_operands, delink_stmt_imm_use, single_phi_def,
11742         op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p,
11743         end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after,
11744         first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt,
11745         end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h.
11746         (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge,
11747         gimple_phi_arg_location, gimple_phi_arg_location_from_edge,
11748         gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes,
11749         phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h.
11750         (set_phi_nodes): Move to tree-phinodes.h.
11751         * tree-ssa-operands.h (enum ssa_op_iter_type,
11752         struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*,
11753         ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h.
11754         (dump_decl_set): Remove prototype.
11755         (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h.
11756         * tree-phinodes.h: New file.  Move some prototypes from tree-flow.h.
11757         (set_phi_nodes): Relocate from tree-flow-inline.h.
11758         (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from
11759         tree-flow-inline.h
11760         * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to
11761         include list.  Temporarily add gimple.h to include list.
11762         * ssa-iterators.h: New file.
11763         (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
11764         BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h.
11765         (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*,
11766         FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS):
11767         Relocate from tree-ssa-operands.h.
11768         (delink_imm_use, link_imm_use_to_list, link_imm_use,
11769         set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
11770         relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
11771         next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
11772         num_imm_uses, get_use_from_ptr, get_def_from_ptr,
11773         phi_arg_index_from_use, op_iter_done, op_iter_next_def,
11774         op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init,
11775         op_iter_init_use, op_iter_init_def, op_iter_init_tree,
11776         single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand,
11777         zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use,
11778         single_phi_def, op_iter_init_phiuse, op_iter_init_phidef,
11779         end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head,
11780         link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt,
11781         first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt):
11782         Relocate from tree-flow-inline.h.
11783         * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H.
11784
11785 2013-10-01  Vidya Praveen  <vidyapraveen@arm.com>
11786
11787         * aarch64-simd.md
11788         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ...
11789         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this;
11790         Insert '\t' to output template.
11791         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New.
11792         (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call
11793         gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead.
11794         (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto.
11795
11796 2013-10-01  Uros Bizjak  <ubizjak@gmail.com>
11797
11798         * doc/install.texi (Host/target specific installation notes for GCC):
11799         Put @anchor before @heading.
11800         * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
11801         Use @email for email addresses.
11802
11803 2013-10-01  Jeff Law  <law@redhat.com>
11804
11805         * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
11806         a vec.  Only delete the path if we create one without successfully
11807         registering a jump thread.
11808         * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
11809         as a pointer.
11810         * tree-ssa-threadupdate.c (threaded_edges): Remove.  No longer used
11811         (paths): New vector of jump threading paths.
11812         (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
11813         (THREAD_PATH): New accessor macro for the entire thread path.
11814         (lookup_redirection_data): Get intermediate and final outgoing edge
11815         from the thread path.
11816         (create_edge_and_update_destination_phis): Copy the threading path.
11817         (ssa_fix_duplicate_block_edges): Get edges and block types from the
11818         jump threading path.
11819         (ssa_redirect_edges): Get edges and block types from the jump threading
11820         path.  Free the path vector.
11821         (thread_block): Get edges from the jump threading path.  Look at the
11822         entire path to see if we thread to a loop exit.  If we cancel a jump
11823         thread request, then free the path vector.
11824         (thread_single_edge): Get edges and block types from the jump threading
11825         path.  Free the path vector.
11826         (thread_through_loop_header): Get edges and block types from the jump
11827         threading path.  Free the path vector.
11828         (mark_threaded_blocks): Iterate over the vector of paths and store
11829         the path on the appropriate edge.  Get edges and block types from the
11830         jump threading path.
11831         (mark_threaded_blocks): Get edges and block types from the jump
11832         threading path.  Free the path vector.
11833         (thread_through_all_blocks): Use the vector of paths rather than
11834         a vector of 3-edge sets.
11835         (register_jump_thread): Accept pointer to a path vector rather
11836         than the path vector itself.  Store the path vector for later use.
11837         Simplify.
11838
11839 2013-10-01  Jakub Jelinek  <jakub@redhat.com>
11840             Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11841
11842         PR target/58574
11843         * config/s390/s390.c (s390_split_branches): Modify check for table
11844         jump insns.
11845         (s390_chunkify_start): Rearrange table jump insn check in order to
11846         deal with compare and branch insns correctly.
11847
11848 2013-10-01  Kugan Vivekanandarajah  <kuganv@linaro.org>
11849
11850         PR target/58578
11851         Revert
11852         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
11853         * config/arm/arm.md (arm_ashldi3_1bit):  define_insn into
11854         define_insn_and_split.
11855         (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
11856         (shiftsi3_compare): New pattern.
11857         (rrx): New pattern.
11858         * config/arm/unspecs.md (UNSPEC_RRX): New.
11859
11860 2013-10-01  Alan Modra  <amodra@gmail.com>
11861
11862         * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special
11863         casing inout operands.
11864
11865 2013-10-01  Richard Biener  <rguenther@suse.de>
11866
11867         PR tree-optimization/58553
11868         * tree-loop-distribution.c (struct partition_s): Add niter member.
11869         (classify_partition): Populate niter member for the partition
11870         and properly identify whether the relevant store happens before
11871         or after the loop exit.
11872         (generate_memset_builtin): Use niter member from the partition.
11873         (generate_memcpy_builtin): Likewise.
11874
11875 2013-09-30  Richard Sandiford  <rdsandiford@googlemail.com>
11876
11877         * vec.h (vec_prefix, vec): Prefix member names with "m_".
11878         * vec.c (vec_prefix::calculate_allocation): Update accordingly.
11879
11880 2013-09-30  Richard Sandiford  <rdsandiford@googlemail.com>
11881
11882         * basic-block.h (edge_list): Prefix member names with "m_".
11883         * context.h (context): Likewise.
11884         * domwalk.h (dom_walker): Likewise.
11885         * gengtype-state.c (s_expr_writer, state_writer): Likewise.
11886         * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
11887         * hash-table.h (hash_table): Likewise.
11888         * machmode.h (bit_field_mode_iterator): Likewise.
11889         * pass_manager.h (pass_list): Likewise.
11890         * tree-into-ssa.c (mark_def_dom_walker): Likewise.
11891         * tree-pass.h (pass_data): Likewise.
11892         * tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
11893         * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
11894         * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
11895         * asan.c (pass_data_asan): Update accordingly.
11896         * cfganal.c (control_dependences::find_control_dependence): Likewise.
11897         (control_dependences::control_dependences): Likewise.
11898         (control_dependences::~control_dependences): Likewise.
11899         (control_dependences::~control_dependences): Likewise.
11900         (control_dependences::get_edges_dependent_on): Likewise.
11901         * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
11902         (pass_data_remove_cgraph_callee_edges::clone): Likewise.
11903         * context.c (gcc::context::context): Likewise.
11904         * cprop.c (pass_rtl_cprop::clone): Likewise.
11905         * domwalk.c (dom_walker::walk): Likewise.
11906         * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
11907         * ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
11908         * mode-switching.c (pass_mode_switching::clone): Likewise.
11909         * passes.c (opt_pass::opt_pass): Likewise.
11910         (pass_manager::pass_manager): Likewise.
11911         * predict.c (pass_strip_predict_hints::clone): Likewise.
11912         * recog.c (pass_data pass_data_peephole2::clone): Likewise.
11913         (pass_split_all_insns::clone): Likewise.
11914         * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
11915         Likewise.
11916         (bit_field_mode_iterator::next_mode): Likewise.
11917         (bit_field_mode_iterator::prefer_smaller_modes): Likewise.
11918         * tree-cfg.c (pass_split_crit_edges::clone): Likewise.
11919         * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
11920         * tree-complex.c (pass_lower_complex::clone): Likewise.
11921         * tree-eh.c (pass_cleanup_eh::clone): Likewise.
11922         * tree-object-size.c (pass_object_sizes::clone): Likewise.
11923         * tree-optimize.c (pass_fixup_cfg::clone): Likewise.
11924         * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
11925         (pass_fold_builtins::clone): Likewise.
11926         * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
11927         * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
11928         * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
11929         (pass_cd_dce::clone): Likewise.
11930         * tree-ssa-dom.c (pass_dominator::clone): Likewise.
11931         (pass_phi_only_cprop::clone): Likewise.
11932         * tree-ssa-dse.c (pass_dse::clone): Likewise.
11933         * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
11934         * tree-ssa-loop.c (pass_lim::clone): Likewise.
11935         * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
11936         * tree-ssa-pre.c (pass_fre::clone): Likewise.
11937         * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
11938         * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
11939         * tree-tailcall.c (pass_tail_recursion::clone): Likewise.
11940         * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
11941         * tree-vrp.c (pass_vrp::clone): Likewise.
11942         * tsan.c (pass_tsan::clone): Likewise.
11943
11944 2013-09-30  Jakub Jelinek  <jakub@redhat.com>
11945
11946         PR middle-end/58564
11947         * fold-const.c (tree_unary_nonnegative_warnv_p): Use
11948         INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
11949
11950         PR middle-end/58564
11951         * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
11952         optimization, punt if sign_bit_p looked through any zero extension.
11953
11954 2013-09-30  Teresa Johnson  <tejohnson@google.com>
11955
11956         * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
11957         Update redirected out edge count in joiner case.
11958         (ssa_redirect_edges): Common the joiner and non-joiner cases
11959         so that joiner case gets profile updates.
11960
11961 2013-09-30  Richard Biener  <rguenther@suse.de>
11962
11963         PR tree-optimization/58554
11964         * tree-loop-distribution.c (classify_partition): Require
11965         unconditionally executed stores for memcpy and memset recognition.
11966         (tree_loop_distribution): Calculate dominance info.
11967
11968 2013-09-30  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
11969
11970         * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
11971         (NO_PROFILE_COUNTERS): Likewise.
11972         (PROFILE_HOOK): Likewise.
11973         (FUNCTION_PROFILER): Likewise.
11974         * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
11975
11976 2013-09-30  Iain Sandoe  <iain@codesourcery.com>
11977
11978         * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic
11979         calls and defines in TARGET_MACHO conditional.
11980         (load_macho_picbase_di): Likewise.
11981         (reload_macho_picbase): Likewise.
11982         (reload_macho_picbase_si): Likewise.
11983         (reload_macho_picbase_di): Likewise.
11984         (nonlocal_goto_receiver): Likewise.
11985
11986 2013-09-30  Nick Clifton  <nickc@redhat.com>
11987
11988         * config/msp430/msp430.c (msp430x_names): New array.  Lists MCUs
11989         that use the MSP430X ISA.
11990         (msp430_option_override): Scan -mmcu command line option for any
11991         MCU name that supports the MSP430X ISA.
11992         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
11993         -mmcu options which enable the MSP430X ISA.
11994
11995 2013-09-30  Richard Biener  <rguenther@suse.de>
11996
11997         PR middle-end/58532
11998         * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements
11999         before looking for setjmp-like calls.
12000
12001 2013-09-29  Iain Sandoe  <iain@codesourcery.com>
12002
12003         PR target/10901
12004         * config/darwin-protos.h (machopic_get_function_picbase): New.
12005         * config/darwin.c (machopic_get_function_picbase): New.
12006         * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase
12007         label for a new func.  (load_macho_picbase_di): Likewise.
12008         (reload_macho_picbase): New expand.
12009         (reload_macho_picbase_si): New insn.
12010         (reload_macho_picbase_di): New insn.
12011         (nonlocal_goto_receiver): New define and split.
12012         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC.
12013         (unspecv enum): Add UNSPECV_NLGR.
12014
12015 2013-09-29  Iain Sandoe  <iain@codesourcery.com>
12016
12017         * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
12018         that altivec registers are correctly sized on Darwin.
12019
12020 2013-09-29  Iain Sandoe  <iain@codesourcery.com>
12021
12022         * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
12023         darwin-driver.o): Use COMPILE and POSTCOMPILE.
12024         * config/x-darwin (host-darwin.o): Likewise.
12025         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
12026         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
12027         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
12028
12029 2013-09-29  Uros Bizjak  <ubizjak@gmail.com>
12030
12031         * doc/invoke.texi: Fix usage of @tie{} command.
12032
12033 2013-09-29  Eric Botcazou  <ebotcazou@adacore.com>
12034
12035         * config/sparc/sync.md: Add peephole for consecutive memory barriers.
12036
12037 2013-09-28  Jan Hubicka  <jh@suse.cz>
12038
12039         * config/i386/x86-tune.def: Add documentation for each of the options;
12040         add whitespace.
12041
12042 2013-09-28  Jan Hubicka  <jh@suse.cz>
12043
12044         * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for
12045         generic.
12046         (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
12047         (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
12048         (X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
12049         (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
12050         (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.
12051
12052 2013-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
12053
12054         * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
12055         bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
12056         cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
12057         cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
12058         combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
12059         cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
12060         df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
12061         dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
12062         errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
12063         fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
12064         gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
12065         genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
12066         genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
12067         genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
12068         gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
12069         gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
12070         gimple.h, godump.c, graphite-clast-to-gimple.c,
12071         graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
12072         graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
12073         hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
12074         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
12075         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
12076         ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
12077         loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
12078         lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
12079         mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
12080         pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
12081         predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
12082         profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
12083         regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
12084         reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
12085         sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
12086         statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
12087         system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
12088         tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
12089         tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
12090         tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
12091         tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
12092         tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
12093         tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
12094         tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
12095         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
12096         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
12097         tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
12098         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
12099         tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
12100         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
12101         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
12102         tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
12103         tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
12104         tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
12105         tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
12106         tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
12107         tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
12108         varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
12109         whitespace before "(".
12110
12111 2013-09-28  Sandra Loosemore  <sandra@codesourcery.com>
12112
12113         * expr.h (extract_bit_field): Remove packedp parameter.
12114         * expmed.c (extract_fixed_bit_field): Remove packedp parameter
12115         from forward declaration.
12116         (store_split_bit_field): Remove packedp arg from calls to
12117         extract_fixed_bit_field.
12118         (extract_bit_field_1): Remove packedp parameter and packedp
12119         argument from recursive calls and calls to extract_fixed_bit_field.
12120         (extract_bit_field): Remove packedp parameter and corresponding
12121         arg to extract_bit_field_1.
12122         (extract_fixed_bit_field): Remove packedp parameter.  Remove code
12123         to issue warnings.
12124         (extract_split_bit_field): Remove packedp arg from call to
12125         extract_fixed_bit_field.
12126         * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
12127         (copy_blkmode_from_reg): Likewise.
12128         (copy_blkmode_to_reg): Likewise.
12129         (read_complex_part): Likewise.
12130         (store_field): Likewise.
12131         (expand_expr_real_1): Likewise.
12132         * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
12133         to extract_bit_field.
12134         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
12135         call to extract_bit_field.
12136         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
12137         call to extract_bit_field.
12138         * doc/invoke.texi (Code Gen Options): Remove mention of warnings
12139         and special packedp behavior from -fstrict-volatile-bitfields
12140         documentation.
12141
12142 2013-09-27  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
12143
12144         * lra-eliminations.c (init_elim_table): Guard value_p.
12145
12146 2013-09-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
12147
12148         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
12149         DFmode, DImode, and SFmode in the upper VSX registers based on the
12150         -mupper-regs-{df,sf} flags.  Fix wu constraint to be ALTIVEC_REGS
12151         if -mpower8-vector.  Combine -mvsx-timode handling with the rest
12152         of the VSX register handling.
12153
12154         * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
12155         (f32_sv): Likewise.
12156         (zero_extendsidi2_lfiwzx): Add support for loading into the
12157         Altivec registers with -mpower8-vector.  Use wu/wv constraints to
12158         only do VSX memory options on Altivec registers.
12159         (extendsidi2_lfiwax): Likewise.
12160         (extendsfdf2_fpr): Likewise.
12161         (mov<mode>_hardfloat, SF/SD modes): Likewise.
12162         (mov<mode>_hardfloat32, DF/DD modes): Likewise.
12163         (mov<mode>_hardfloat64, DF/DD modes): Likewise.
12164         (movdi_internal64): Likewise.
12165
12166 2013-09-27  Xinliang David Li  <davidxl@google.com>
12167
12168         * opts.c (finish_options): Adjust parameters
12169         according to vect cost model.
12170         (common_handle_option): Set dynamic vect cost
12171         model for FDO.
12172         targhooks.c (default_add_stmt_cost): Compute stmt cost
12173         unconditionally.
12174         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
12175         Use helper function.
12176         * tree-vectorizer.h (unlimited_cost_model): New function.
12177         * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
12178         * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
12179         function.
12180         (vect_enhance_data_refs_alignment): Ditto.
12181         * flag-types.h: New enum.
12182         * common/config/i386/i386-common.c (ix86_option_init_struct):
12183         No need to initialize vect_cost_model flag.
12184         * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
12185         unconditionally.
12186
12187 2013-09-27  Diego Novillo  <dnovillo@google.com>
12188
12189         * gimple.h (enum ssa_mode): Remove.
12190
12191 2013-09-27  Paulo Matos  <pmatos@broadcom.com>
12192
12193         * cfgloop.h (number_of_loops): Fix typo in check for null.
12194
12195 2013-09-27  Jakub Jelinek  <jakub@redhat.com>
12196
12197         PR middle-end/58551
12198         * tree-cfg.c (move_sese_region_to_fn): Also move loops that
12199         are children of outermost saved_cfun's loop, and set it up to
12200         be moved to dest_cfun's outermost loop.  Fix up num_nodes adjustments
12201         if loop != loop0 and SESE region contains bbs that belong to loop0.
12202
12203 2013-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
12204
12205         * rtlanal.c (must_be_base_p, must_be_index_p): Delete.
12206         (binary_scale_code_p, get_base_term, get_index_term): New functions.
12207         (set_address_segment, set_address_base, set_address_index)
12208         (set_address_disp): Accept the argument unconditionally.
12209         (baseness): Remove must_be_base_p and must_be_index_p checks.
12210         (decompose_normal_address): Classify as much as possible in the
12211         main loop.
12212
12213 2013-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
12214
12215         * cse.c (count_reg_usage): Handle INT_LIST.
12216         * lra-eliminations.c (lra_eliminate_regs_1): Likewise.
12217         * reginfo.c (reg_scan_mark_refs): Likewise.
12218         * reload1.c (eliminate_regs_1): Likewise.
12219
12220 2013-09-27  Iain Sandoe  <iain@codesourcery.com>
12221
12222         PR middle-end/58547
12223         * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison
12224         signed.
12225
12226 2013-09-27  Richard Biener  <rguenther@suse.de>
12227
12228         PR tree-optimization/58459
12229         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove
12230         restriction not propagating into loops.
12231
12232 2013-09-26  Florian Weimer  <fw@deneb.enyo.de>
12233
12234         * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete.
12235         * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete.
12236         * doc/tree-ssa.texi (Walking use-def chains): Delete.
12237
12238 2013-09-26  Richard Biener  <rguenther@suse.de>
12239
12240         * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous.
12241
12242 2013-09-26  Richard Biener  <rguenther@suse.de>
12243
12244         * alias.h (component_uses_parent_alias_set): Rename to ...
12245         (component_uses_parent_alias_set_from): ... this.
12246         * alias.c (component_uses_parent_alias_set): Rename to ...
12247         (component_uses_parent_alias_set_from): ... this and return
12248         the desired parent.
12249         (reference_alias_ptr_type_1): Use the result from
12250         component_uses_parent_alias_set_from instead of stripping
12251         components one at a time.
12252         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
12253
12254 2013-09-26  Andrew MacLeod  <amacleod@redhat.com>
12255
12256         * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs):
12257         Move prototypes to...
12258         * tree-ssa-ter.h: New File.  Move prototypes here.
12259         * tree-flow.h (stmt_is_replaceable_p): Remove prototype.
12260         * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
12261         * tree-outof-ssa.c (ssa_is_replaceable_p): New.  Refactor common bits
12262         from is_replaceable_p.
12263         * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
12264         (ter_is_replaceable_p): New.  Use new refactored ssa_is_replaceable_p.
12265         (process_replaceable): Use ter_is_replaceable_p.
12266         (find_replaceable_in_bb): Use ter_is_replaceable_p.
12267         * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c.  Use
12268         newly refactored ssa_is_replaceable_p.
12269         * cfgexpand.c: Include tree-outof-ssa.h.
12270         * ssaexpand.h: Delete.
12271
12272 2013-09-26  Andrew MacLeod <amacleod@redhat.com>
12273
12274         * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename.
12275         (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to
12276         tree-ssa.c
12277         (create_gimple_tmp): Delete.
12278         (get_expr_type, build_assign, build_type_cast): Move to...
12279         * gimple-builder.c: New File.
12280         (get_expr_type): Relocate from gimple.c.
12281         (build_assign, build_type_cast): Change to only create ssanames.
12282         * gimple.h: Move prototypes to...
12283         * gimple-builder.h: New File. Here.
12284         * tree-ssa.h: And here.
12285         * tree-ssa.c (struct count_ptr_d, count_ptr_derefs,
12286         count_uses_and_derefs): Relocate from gimple.c.
12287         (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c
12288         * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs.
12289         * tree-ssa-math-opts (execute_cse_reciprocals): Use
12290         gimple_replace_ssa_lhs.
12291         * asan.c: Include gimple-builder.h.
12292         * Makefile.in: Add gimple-builder.o.
12293
12294 2013-09-26  Richard Biener  <rguenther@suse.de>
12295
12296         * tree-ssa-live.c (var_map_base_init): Handle SSA names with
12297         DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
12298         (loe_visit_block): Use gcc_checking_assert.
12299         * tree-ssa-coalesce.c (create_outofssa_var_map): Use
12300         gimple_assign_ssa_name_copy_p.
12301         (gimple_can_coalesce_p): Adjust according to the var_map_base_init
12302         change.
12303
12304 2013-09-26  David Edelsohn  <dje.gcc@gmail.com>
12305
12306         * config/rs6000/t-rs6000 (rs6000.o): Remove.
12307         (rs6000-c.o): Use COMPILE and POSTCOMPILE.
12308
12309 2013-09-26  Richard Biener  <rguenther@suse.de>
12310
12311         PR tree-optimization/58539
12312         * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
12313         the fact that debug statements are not taking part in loop-closed
12314         SSA construction.
12315
12316 2013-09-26  Nick Clifton  <nickc@redhat.com>
12317
12318         * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile
12319         time warning message.
12320         (msp430_print_operand_raw): Delete unused letter parameter.
12321         (TARGET_PRINT_OPERAND_ADDRESS): Define.
12322         (msp430_print_operand_address): New function.
12323         (msp430_print_operand): Move address printing code from here to
12324         new function.
12325         * config/msp430/msp430.md (movsipsi2): Add comment in generated
12326         assembler.
12327         (zero_extendpsisi2): Likewise.
12328         (extendpsisi2): New pattern.
12329         (andneghi3): New pattern.
12330
12331 2013-09-26  Yvan Roux  <yvan.roux@linaro.org>
12332
12333         * config/aarch64/aarch64.opt (mlra): New option.
12334         * config/aarch64/aarch64.c (aarch64_lra_p): New function.
12335         (TARGET_LRA_P): Define.
12336
12337 2013-09-26  Eric Botcazou  <ebotcazou@adacore.com>
12338
12339         * expr.c (expand_assignment): Remove obsolete comment.
12340
12341 2013-09-25  Jeff Law  <law@redhat.com>
12342
12343         * tree-flow.h (thread_through_all_blocks): Prototype moved into
12344         tree-ssa-threadupdate.h.
12345         (register_jump_thread): Similarly.
12346         * tree-ssa-threadupdate.h: New header file.
12347         * tree-ssa-dom.c: Include tree-ssa-threadupdate.h.
12348         * tree-vrp.c: Likewise.
12349         * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h.
12350         (thread_around_empty_blocks): Change type of path vector argument to
12351         an edge,type pair from just an edge.  Initialize both elements when
12352         appending to a jump threading path.  Tweak references to elements
12353         appropriately.
12354         (thread_across_edge): Similarly.  Release memory for the elements
12355         as needed.
12356         * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h.
12357         (dump_jump_thread_path): New function broken out from
12358         register_jump_thread.
12359         (register_jump_thread): Use dump_jump_thread_path.  Change type of
12360         path vector entries.  Search the path for NULL edges and dump
12361         the path if one is found.  Tweak the conversion of path to 3-edge
12362         form to use the block copy type information embedded in the path.
12363
12364 2013-09-25  Yvan Roux  <yvan.roux@linaro.org>
12365
12366         * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes.
12367
12368 2013-09-25  Yvan Roux  <yvan.roux@linaro.org>
12369             Vladimir Makarov  <vmakarov@redhat.com>
12370
12371         * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations
12372         from the least significant bit.
12373         (strip_address_mutations): Add bitfield operations handling.
12374         (must_be_index_p): Add shifting and rotate operations handling.
12375         (set_address_base): Use must_be_base_p predicate.
12376         (set_address_index): Use must_be_index_p predicate.
12377
12378 2013-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
12379             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
12380             Sergey Lega  <sergey.s.lega@intel.com>
12381             Anna Tikhonova  <anna.tikhonova@intel.com>
12382             Ilya Tocar  <ilya.tocar@intel.com>
12383             Andrey Turetskiy  <andrey.turetskiy@intel.com>
12384             Ilya Verbin  <ilya.verbin@intel.com>
12385             Kirill Yukhin  <kirill.yukhin@intel.com>
12386             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
12387
12388         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
12389         Use new names.
12390         (ix86_expand_vector_move_misalign): Support new unaligned load and
12391         stores and use new names.
12392         (CODE_FOR_sse2_storedqu): Rename to ...
12393         (CODE_FOR_sse2_storedquv16qi): ... this.
12394         (CODE_FOR_sse2_loaddqu): Rename to ...
12395         (CODE_FOR_sse2_loaddquv16qi): ... this.
12396         (CODE_FOR_avx_loaddqu256): Rename to ...
12397         (CODE_FOR_avx_loaddquv32qi): ... this.
12398         (CODE_FOR_avx_storedqu256): Rename to ...
12399         (CODE_FOR_avx_storedquv32qi): ... this.
12400         * config/i386/i386.md (fpint_logic): New.
12401         * config/i386/sse.md (VMOVE): Extend for AVX512.
12402         (VF): Ditto.
12403         (VF_128_256): New.
12404         (VF_512): Ditto.
12405         (VI_UNALIGNED_LOADSTORE): Ditto.
12406         (sse2_avx_avx512f): Ditto.
12407         (sse2_avx2): Extend for AVX512.
12408         (sse4_1_avx2): Ditto.
12409         (avx2_avx512f): New.
12410         (sse): Extend for AVX512.
12411         (sse2): Ditto.
12412         (sse4_1): Ditto.
12413         (avxsizesuffix): Ditto.
12414         (sseintvecmode): Ditto.
12415         (ssePSmode): Ditto.
12416         (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto.
12417         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto.
12418         (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ...
12419         (<sse2_avx_avx512f>_loaddqu<mode>): ... this.
12420         (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ...
12421         (<sse2_avx_avx512f>_storedqu<mode): ... this.
12422         (<sse>_movnt<mode>): Replace constraint "x" with "v".
12423         (STORENT_MODE): Extend for AVX512.
12424         (*absneg<mode>2): Replace constraint "x" with "v".
12425         (*mul<mode>3): Ditto.
12426         (*ieee_smin<mode>3): Ditto.
12427         (*ieee_smax<mode>3): Ditto.
12428         (avx_cmp<mode>3): Replace VF with VF_128_256.
12429         (*<sse>_maskcmp<mode>3_comm): Ditto.
12430         (<sse>_maskcmp<mode>3): Ditto.
12431         (<sse>_andnot<mode>3): Extend for AVX512.
12432         (<code><mode>3, anylogic): Replace VF with VF_128_256.
12433         (<code><mode>3, fpint_logic): New.
12434         (*<code><mode>3): Extend for AVX512.
12435         (avx512flogicsuff): New.
12436         (avx512f_<logic><mode>): Ditto.
12437         (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with
12438         VF_128_256.
12439         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto.
12440         (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto.
12441         (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto.
12442         (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto.
12443         (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto.
12444         (xop_vpermil2<mode>3): Ditto.
12445         (*avx_vpermilp<mode>): Extend for AVX512 and rename to ...
12446         (*<sse2_avx_avx512f>_vpermilp<mode>): ... this.
12447         (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ...
12448         (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this.
12449
12450 2013-09-25  Tom Tromey  <tromey@redhat.com>
12451
12452         * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
12453         (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
12454         (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
12455         (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
12456         (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
12457         (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
12458         (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
12459         (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
12460         (GRAPHITE_HTAB_H): Remove.
12461
12462 2013-09-25  Tom Tromey  <tromey@redhat.com>
12463
12464         * config/mcore/t-mcore (CROSS_FLOAT_H): Remove.
12465
12466 2013-09-25  Tom Tromey  <tromey@redhat.com>
12467
12468         * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE.
12469
12470 2013-09-25  Tom Tromey  <tromey@redhat.com>
12471
12472         * config/i386/t-i386 (i386.o): Remove.
12473         (i386-c.o): Use COMPILE and POSTCOMPILE.
12474
12475 2013-09-25  Tom Tromey  <tromey@redhat.com>
12476
12477         * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE.
12478
12479 2013-09-25  Tom Tromey  <tromey@redhat.com>
12480
12481         * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o)
12482         (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o)
12483         (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o)
12484         (gcc.o, options.o, options-save.o, version.o, gtype-desc.o)
12485         (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o)
12486         (convert.o, double-int.o, lto-compress.o, data-streamer-in.o)
12487         (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o)
12488         (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o)
12489         (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o)
12490         (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o)
12491         (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o)
12492         (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o)
12493         (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o)
12494         (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o)
12495         (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o)
12496         (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o)
12497         (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o)
12498         (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o)
12499         (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o)
12500         (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o)
12501         (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o)
12502         (tree-ssa-pre.o, tree-ssa-sccvn.o)
12503         (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o)
12504         (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o)
12505         (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o)
12506         (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o)
12507         (tree-ssa-loop-unswitch.o, tree-ssa-address.o)
12508         (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o)
12509         (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o)
12510         (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o)
12511         (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o)
12512         (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o)
12513         (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o)
12514         (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o)
12515         (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o)
12516         (graphite-clast-to-gimple.o, graphite-dependences.o)
12517         (graphite-interchange.o, graphite-poly.o)
12518         (graphite-scop-detection.o, graphite-sese-to-poly.o)
12519         (graphite-optimize-isl.o, tree-vect-loop.o)
12520         (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o)
12521         (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o)
12522         (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o)
12523         (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o)
12524         (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o)
12525         (tree-pretty-print.o, tree-diagnostic.o, fold-const.o)
12526         (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o)
12527         (opts-common.o, targhooks.o, common/common-targhooks.o, input.o)
12528         (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o)
12529         (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o)
12530         (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o)
12531         (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o)
12532         (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o)
12533         (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o)
12534         (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o)
12535         (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o)
12536         (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o)
12537         (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o)
12538         (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o)
12539         (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o)
12540         (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o)
12541         (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o)
12542         (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o)
12543         (tree-switch-conversion.o, tree-complex.o, tree-emutls.o)
12544         (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o)
12545         (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o)
12546         (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o)
12547         (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o)
12548         (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o)
12549         (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o)
12550         (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o)
12551         (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o)
12552         (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o)
12553         (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o)
12554         (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o)
12555         (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o)
12556         (lra-assigns.o, lra-coalesce.o, lra-constraints.o)
12557         (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o)
12558         (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o)
12559         (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o)
12560         (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o)
12561         (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o)
12562         (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o)
12563         (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o)
12564         (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o)
12565         (hw-doloop.o, file-find.o, context.o, $(common_out_object_file))
12566         (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o)
12567         (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o)
12568         (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o)
12569         (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o)
12570         (gcov-dump.o): Remove.
12571         (default-c.o): Use COMPILE and POSTCOMPILE.
12572         (CFLAGS-gcc.o): New variable.
12573         ($(common_out_object_file)): Use COMPILE and POSTCOMPILE.
12574
12575 2013-09-25  Tom Tromey  <tromey@redhat.com>
12576
12577         * Makefile.in (c-family/cppspec.o, c-family/c-common.o)
12578         (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o)
12579         (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o)
12580         (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o)
12581         (c-family/c-pragma.o, c-family/c-pretty-print.o)
12582         (c-family/c-semantics.o, c-family/c-ada-spec.o)
12583         (c-family/array-notation-common.o, c-family/stub-objc.o)
12584         (c-family/c-ubsan.o): Remove.
12585
12586 2013-09-25  Tom Tromey  <tromey@redhat.com>
12587
12588         * Makefile.in (C_TREE_H): Reference c/c-tree.h.
12589
12590 2013-09-25  Tom Tromey  <tromey@redhat.com>
12591
12592         * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code,
12593         to add -DENABLE_SHARED_LIBGCC.
12594         (gcc.o): Don't use subshell.
12595
12596 2013-09-25  Tom Tromey  <tromey@redhat.com>
12597
12598         * Makefile.in (OUTPUT_OPTION): Define as "-o $@".
12599         * configure.ac: Don't invoke AM_PROG_CC_C_O.
12600         (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst.
12601         * configure, config.in: Rebuild.
12602
12603 2013-09-25  Tom Tromey  <tromey@redhat.com>
12604
12605         * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base)
12606         (COMPILE, POSTCOMPILE): New variables.
12607         (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
12608         (DEPFILES): New variable.
12609         Include ".Po" files.
12610         * configure.ac: Add checks for dependency checking.
12611         * configure, aclocal.m4: Regenerate.
12612
12613 2013-09-25  Tom Tromey  <tromey@redhat.com>
12614
12615         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o.
12616         ($(ALL_HOST_OBJS)): Move order-only dependency to end of file.
12617
12618 2013-09-25  Tom Tromey  <tromey@redhat.com>
12619
12620         * Makefile.in (generated_files): Add options.h,
12621         target-hooks-def.h, insn-opinit.h,
12622         common/common-target-hooks-def.h, pass-instances.def,
12623         c-family/c-target-hooks-def.h.
12624
12625 2013-09-25  Jeff Law  <law@redhat.com>
12626
12627         * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather
12628         than foo[foo.length () - 1] to access last member in a vec.
12629         * tree-ssa-threadupdate.c (register_jump_thread): Similarly.
12630
12631 2013-09-25  Richard Biener  <rguenther@suse.de>
12632
12633         PR middle-end/58521
12634         * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
12635
12636 2013-09-25  Jan Hubicka  <jh@suse.cz>
12637
12638         * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
12639         test.
12640
12641 2013-09-25  Marek Polacek  <polacek@redhat.com>
12642
12643         PR sanitizer/58420
12644         * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
12645         when determining the type name.
12646
12647 2013-09-24  Oleg Endo  <olegendo@gcc.gnu.org>
12648
12649         * config/sh/sh.md: Fix formatting.
12650
12651 2013-09-24  Xinliang David Li  <davidxl@google.com>
12652
12653         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check
12654         max peel iterations parameter.
12655         * param.def: New parameter.
12656         * doc/invoke.texi: Document New parameter.
12657
12658 2013-09-24  Christophe Lyon  <christophe.lyon@linaro.org>
12659
12660         * gimple-pretty-print.c: Various whitespace tweaks.
12661         * tree-core.h: Likewise.
12662         * tree-pretty-print.c: Likewise.
12663         * tree-ssa-alias.c: Likewise.
12664         * tree-ssa-copy.c: Likewise.
12665         * tree-ssanames.c: Likewise.
12666         * tree-ssanames.h: Likewise.
12667         * tree-vrp.c: Likewise.
12668
12669 2013-09-24  Alan Modra  <amodra@gmail.com>
12670
12671         PR middle-end/57134
12672         PR middle-end/57586
12673         * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY
12674         for output operands that disallow regs.  Don't use EXPAND_WRITE on
12675         inout operands.
12676
12677 2013-09-24  Richard Biener  <rguenther@suse.de>
12678
12679         PR middle-end/58513
12680         * tree.c (reference_alias_ptr_type): Move ...
12681         * alias.c (reference_alias_ptr_type): ... here and implement
12682         in terms of the new reference_alias_ptr_type_1.
12683         (ref_all_alias_ptr_type_p): New helper.
12684         (get_deref_alias_set_1): Drop flag_strict_aliasing here,
12685         use ref_all_alias_ptr_type_p.
12686         (get_deref_alias_set): Add flag_strict_aliasing check here.
12687         (reference_alias_ptr_type_1): New function, split out from ...
12688         (get_alias_set): ... here.
12689         (alias_ptr_types_compatible_p): New function.
12690         * alias.h (reference_alias_ptr_type): Declare.
12691         (alias_ptr_types_compatible_p): Likewise.
12692         * tree.h (reference_alias_ptr_type): Remove.
12693         * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
12694         to compare MEM_REF alias types.
12695
12696 2013-09-24  Richard Biener  <rguenther@suse.de>
12697
12698         * tree-vrp.c (vrp_finalize): Check for SSA name presence.
12699
12700 2013-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
12701
12702         * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
12703         reload helper function arrays into a single array reg_addr.
12704         (reload_fpr_gpr): Likewise.
12705         (reload_gpr_vsx): Likewise.
12706         (reload_vsx_gpr): Likewise.
12707         (struct rs6000_reg_addr): Likewise.
12708         (reg_addr): Likewise.
12709         (rs6000_debug_reg_global): Change rs6000_vector_reload,
12710         reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
12711         (rs6000_init_hard_regno_mode_ok): Likewise.
12712         (rs6000_secondary_reload_direct_move): Likewise.
12713         (rs6000_secondary_reload): Likewise.
12714
12715         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
12716         constraints: wu, ww, and wy.  Repurpose wv constraint added during
12717         power8 changes.  Put wg constraint in alphabetical order.
12718
12719         * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
12720         for future work to add ISA 2.07 VSX single precision support.
12721         (-mvsx-scalar-double): Change default from -1 to 1, update
12722         documentation comment.
12723         (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
12724         (-mupper-regs-df): New debug switch to control whether DF values
12725         can go in the traditional Altivec registers.
12726         (-mupper-regs-sf): New debug switch to control whether SF values
12727         can go in the traditional Altivec registers.
12728
12729         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
12730         and wy constraints.
12731         (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
12732         loop variables.  Rename -mvsx-scalar-memory to -mupper-regs-df.
12733         Add new constraints, wu/ww/wy.  Repurpose wv constraint.
12734         (rs6000_debug_legitimate_address_p): Print if we are running
12735         before, during, or after reload.
12736         (rs6000_secondary_reload): Add a comment.
12737         (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
12738
12739         * config/rs6000/constraints.md (wa constraint): Sort w<x>
12740         constraints.  Update documentation string.
12741         (wd constraint): Likewise.
12742         (wf constraint): Likewise.
12743         (wg constraint): Likewise.
12744         (wn constraint): Likewise.
12745         (ws constraint): Likewise.
12746         (wt constraint): Likewise.
12747         (wx constraint): Likewise.
12748         (wz constraint): Likewise.
12749         (wu constraint): New constraint for ISA 2.07 SFmode scalar
12750         instructions.
12751         (ww constraint): Likewise.
12752         (wy constraint): Likewise.
12753         (wv constraint): Repurpose ISA 2.07 constraint that we did not use
12754         in the previous submissions.
12755         * doc/md.texi (PowerPC and IBM RS6000): Likewise.
12756
12757 2013-09-23  Richard Sandiford  <rdsandiford@googlemail.com>
12758
12759         * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
12760         (REG_BR_PROB): Say that the probability is stored in an int_list.
12761         * reg-notes.def: Update commentary to mention INT_LIST.
12762         * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
12763         (INT_LIST): New rtx.
12764         * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
12765         * rtlanal.c (int_reg_note_p): New function.
12766         (alloc_reg_note): Assert that the note does not have an int argument.
12767         (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
12768         * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
12769         * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
12770         rather than an INSN_LIST.  Handle INT_LIST.
12771         * ifcvt.c (cond_exec_process_insns): Take the probability as an int
12772         rather than an rtx.  Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
12773         (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
12774         Manipulate them as ints rather than rtxes.
12775         * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
12776         * regmove.c (copy_src_to_dest): Likewise.
12777         * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
12778
12779         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
12780         into the cases that need it.
12781         * config/arm/arm.c (arm_unwind_emit): Likewise.
12782
12783         * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
12784         * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
12785         * loop-doloop.c (add_test, doloop_modify): Likewise.
12786         * loop-unswitch.c (compare_and_jump_seq): Likewise.
12787         * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
12788         * predict.c (combine_predictions_for_insn): Likewise.
12789         * print-rtl.c (print_rtx): Handle INT_LIST.
12790         * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
12791         * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
12792         * config/arm/arm.c (emit_unlikely_jump): Likewise.
12793         * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
12794         (ix86_split_fp_branch, predict_jump): Likewise.
12795         * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
12796         * config/sh/sh.c (expand_cbranchsi4): Likewise.
12797         * config/spu/spu.c (ea_load_store_inline): Likewise.
12798
12799         * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
12800         value of a REG_BR_PROB note.
12801         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
12802         (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
12803         * emit-rtl.c (try_split): Likewise.
12804         * predict.c (br_prob_note_reliable_p): Likewise.
12805         (invert_br_probabilities, combine_predictions_for_insn): Likewise.
12806         * reorg.c (mostly_true_jump): Likewise.
12807         * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
12808         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
12809         * config/i386/i386.c (ix86_print_operand): Likewise.
12810         * config/ia64/ia64.c (ia64_print_operand): Likewise.
12811         * config/mmix/mmix.c (mmix_print_operand): Likewise.
12812         * config/rs6000/rs6000.c (output_cbranch): Likewise.
12813         * config/s390/s390.c (s390_expand_tbegin): Likewise.
12814         * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
12815         * config/sparc/sparc.c (output_cbranch): Likewise.
12816         * config/spu/spu.c (get_branch_target): Likewise.
12817         * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
12818         * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
12819
12820 2013-09-23  Jan Hubicka  <jh@suse.cz>
12821
12822         * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
12823         for ipa-devirt.
12824         * ipa-utils.h (possible_polymorphic_call_target_p): New function.
12825         * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
12826         of external calls
12827         * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
12828         (gimple_fold_call): Dump inconsistent devirtualizations; add
12829         sanity check for type based devirtualizations.
12830         * ipa-prop.c: Include ipa-utils.h
12831         (ipa_intraprocedural_devirtualization): Add sanity check.
12832         (try_make_edge_direct_virtual_call): Likewise.
12833
12834 2013-09-23  Eric Botcazou  <ebotcazou@adacore.com>
12835
12836         * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
12837         assignment statements.
12838
12839 2013-09-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
12840
12841         * gimple-pretty-print.c (dump_ssaname_info): New function.
12842         (dump_gimple_phi): Call it.
12843         (pp_gimple_stmt_1): Likewise.
12844         * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
12845         (range_info_def): Declare.
12846         * tree-pretty-print.c (pp_double_int): New function.
12847         (dump_generic_node): Call it.
12848         * tree-pretty-print.h (pp_double_int): Declare.
12849         * tree-ssa-alias.c (dump_alias_info): Check pointer type.
12850         * tree-ssanames.h (range_info_def): New structure.
12851         (value_range_type): Move definition here.
12852         (set_range_info, value_range_type, duplicate_ssa_name_range_info):
12853         Declare.
12854         * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
12855         initialization.
12856         (set_range_info): New function.
12857         (get_range_info): Likewise.
12858         (duplicate_ssa_name_range_info): Likewise.
12859         (duplicate_ssa_name_fn): Check pointer type and call
12860         duplicate_ssa_name_range_info.
12861         * tree-ssa-copy.c (fini_copy_prop): Likewise.
12862         * tree-vrp.c (value_range_type): Remove definition, now in
12863         tree-ssanames.h.
12864         (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs.
12865         * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
12866         (SSA_NAME_RANGE_INFO): New macro.
12867
12868 2013-09-23  Richard Biener  <rguenther@suse.de>
12869
12870         PR tree-optimization/58464
12871         * tree-ssa-pre.c (phi_trans_lookup): Remove.
12872         (phi_trans_add): Change to add conditionally on being not present.
12873         (phi_translate_1): Remove recursion detection here.
12874         (phi_translate): Pre-seed the cache with NULL to catch
12875         recursion here in a more generic way.
12876         (bitmap_find_leader): Adjust comment.
12877         (get_representative_for): Dump value-numbers.
12878         (create_expression_by_pieces): Likewise.
12879         (insert_into_preds_of_block): Likewise.
12880
12881 2013-09-23  Christian Bruel  <christian.bruel@st.com>
12882
12883         PR target/58475
12884         * config/sh/sh.md (movsf_ie): Allow fpul_operand.
12885         * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
12886
12887 2013-09-23  James Greenhalgh  <james.greenhalgh@arm.com>
12888
12889         Revert r202780:
12890         2013-09-20  Renlin Li  <renlin.li@arm.com>
12891
12892         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
12893         plus_constant.
12894         (aarch64_expand_epilogue): Likewise.
12895         (aarch64_legitimize_reload_address): Likewise.
12896
12897 2013-09-22  Eric Botcazou  <ebotcazou@adacore.com>
12898
12899         * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
12900         NULL_TREE before pushing them onto the vector.  Likewise for labels.
12901
12902 2013-09-21  Eric Botcazou  <ebotcazou@adacore.com>
12903
12904         * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
12905         comparison operators when -fno-trapping-math is in effect.
12906         * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
12907         comparison operators in TFmode and assert that unsupported operators
12908         cannot reach here.
12909         (ia64_print_operand): Likewise.
12910
12911 2013-09-21  Jan Hubicka  <jh@suse.cz>
12912
12913         * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
12914         (sse_typeless_stores): Enable for core
12915         (sse_load0_by_pxor): Likewise.
12916         (four_jump_limit): Disable for core.
12917         (pad_returns): Likewise.
12918         (avoid_vector_decode): Likewise.
12919         (fuse_cmp_and_branch): Enable for cores.
12920         * i386.c (x86_accumulate_outgoing_args): Disable for cores.
12921
12922 2013-09-20  John David Anglin  <danglin@gcc.gnu.org>
12923
12924         PR middle-end/56791
12925         * config/pa/pa.c (pa_option_override): Disable auto increment and
12926         decrement instructions until reload is completed.
12927
12928         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
12929         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
12930         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
12931
12932 2013-09-20  DJ Delorie  <dj@redhat.com>
12933             Nick Clifton  <nickc@redhat.com>
12934
12935         * config/rl78/rl78.c: Various whitespace and comment tweaks.
12936         (need_to_save): Save bank 0 on interrupts.
12937         (characterize_address): Strip far address wrappers.
12938         (rl78_as_legitimate_address): Likewise.
12939         (transcode_memory_rtx): Likewise.
12940         (rl78_peep_movhi_p): Disable this peephole after devirt.
12941         (rl78_propogate_register_origins): Forget all origins when a
12942         CLOBBER is seen.
12943         * config/rl78/rl78-virt.md: Various whitespace tweaks.
12944         * config/rl78/rl78-real.md: Various whitespace tweaks.  Additional
12945         peephole2's.
12946         * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
12947         * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
12948         * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
12949         relocating.
12950         * config/rl78/constraints.md: Various whitespace and paren tweaks.
12951
12952 2013-09-20  John David Anglin  <danglin@gcc.gnu.org>
12953
12954         * config/pa/pa.md: In "scc" insn patterns, change output template to
12955         handle const0_rtx in reg_or_0_operand operands.
12956
12957 2013-09-20  Martin Husemann  <martin@NetBSD.org>
12958
12959         PR target/56875
12960         * config/vax/vax.c (vax_output_int_move): Use D format specifier.
12961         * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
12962
12963 2013-09-20  Richard Biener  <rguenther@suse.de>
12964
12965         PR middle-end/58484
12966         * tree-scalar-evolution.c (struct scev_info_str): Shrink by
12967         remembering SSA name version and block index.
12968         (new_scev_info_str): Adjust.
12969         (hash_scev_info): Likewise.  Also hash the block index.
12970         (eq_scev_info): Adjust.
12971         (find_var_scev_info): Likewise.
12972         (struct instantiate_cache_entry): Remove.
12973         (struct instantiate_cache_type): Use a htab to map name, block
12974         to chrec.
12975         (instantiate_cache_type::~instantiate_cache_type): Adjust.
12976         (get_instantiated_value_entry): Likewise.
12977         (hash_idx_scev_info, eq_idx_scev_info): New functions.
12978         (instantiate_scev_name): Adjust.
12979
12980 2013-09-20  Jeff Law  <law@redhat.com>
12981
12982         * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
12983
12984 2013-09-20  Yufeng Zhang  <yufeng.zhang@arm.com>
12985
12986         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
12987         Call aarch64_simd_expand_args to update op[argc].
12988
12989 2013-09-20  Basile Starynkevitch  <basile@starynkevitch.net>
12990
12991         * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
12992         plugin argument.
12993
12994 2013-09-20  Basile Starynkevitch  <basile@starynkevitch.net>
12995
12996         * gengtype.c (file_rules): Added rule for *.cc files.
12997         (get_output_file_with_visibility): Give fatal message when no
12998         rules found.
12999
13000 2013-09-20  Renlin Li  <renlin.li@arm.com>
13001
13002         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
13003         (aarch64_expand_epilogue): Likewise.
13004         (aarch64_legitimize_reload_address): Likewise.
13005
13006 2013-09-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13007
13008         PR middle-end/57748
13009         * expr.c (expand_assignment): Remove misalignp code path.
13010
13011 2013-09-20  Marek Polacek  <polacek@redhat.com>
13012
13013         PR sanitizer/58413
13014         * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
13015         TYPE_PRECISION.  Add asserts.
13016
13017 2013-09-20  Richard Biener  <rguenther@suse.de>
13018
13019         PR tree-optimization/58453
13020         * tree-loop-distribution.c (distribute_loop): Apply the cost
13021         model for -ftree-loop-distribute-patterns, too.
13022
13023 2013-09-20  Richard Biener  <rguenther@suse.de>
13024
13025         PR middle-end/58473
13026         * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
13027         make type comparison less strict.
13028
13029 2013-09-20  Alan Modra  <amodra@gmail.com>
13030
13031         * configure: Regenerate.
13032         * aclocal.m4: Regenerate.
13033
13034 2013-09-20  Marek Polacek  <polacek@redhat.com>
13035
13036         PR other/58467
13037         * doc/extend.texi: Document that attribute used is meant to be used
13038         on variables with static storage duration.
13039
13040 2013-09-19  Jakub Jelinek  <jakub@redhat.com>
13041
13042         PR tree-optimization/58472
13043         * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
13044         simd_lane_access set inv_p = false.
13045         * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
13046         the simduid magic VAR_DECL.
13047
13048 2013-09-19  Jan Hubicka  <jh@suse.cz>
13049
13050         * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
13051
13052 2013-09-17  Jeff Law  <law@redhat.com>
13053
13054         * tree-ssa-dom.c (record_temporary_equivalences): New function
13055         split out of dom_opt_dom_walker::after_dom_children.
13056         (dom_opt_dom_walker::thread_across_edge): Move common code
13057         in here from dom_opt_dom_walker::after_dom_children.
13058         (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
13059
13060 2013-09-19  Jan Hubicka  <jh@suse.cz>
13061
13062         * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
13063         (TARGET_GENERIC): Use PROCESOR_GENERIC
13064         (enum processor_type): Unify generic32 and 64.
13065         * i386.md (cpu): Likewise.
13066         * x86-tune.def (use_leave): Enable for generic32.
13067         (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
13068         * athlon.md: Change generic64 to generic in all occurences.
13069         * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
13070         (ix86_target_macros_internal): Likewise.
13071         * driver-i386.c (host_detect_local_cpu): Likewise.
13072         * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename
13073         to ..
13074         (generic_memcpy, generic_memset, generic_cost): This one.
13075         (generic32_memcpy, generic32_memset, generic32_cost): Remove.
13076         (m_GENERIC32, m_GENERIC64): Remove.
13077         (m_GENERIC): Turn into one flag.
13078         (processor_target): Unify generic tunnings.
13079         (ix86_option_override_internal): Replace generic32/64 by generic.
13080         (ix86_issue_rate): Likewise.
13081         (ix86_adjust_cost): Likewise.
13082
13083 2013-09-19  Jan Hubicka  <jh@suse.cz>
13084
13085         * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
13086         of speculative flag.
13087
13088 2013-09-19  Jakub Jelinek  <jakub@redhat.com>
13089
13090         * omp-low.c (expand_omp_sections): Always pass len - 1 to
13091         GOMP_sections_start, even if !exit_reachable.
13092
13093 2013-09-18  Vladimir Makarov  <vmakarov@redhat.com>
13094
13095         * lra-constraints.c (need_for_all_save_p): Use macro
13096         HARD_REGNO_CALL_PART_CLOBBERED.
13097         * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
13098         set up pseudo conflict hard regs.
13099
13100 2013-09-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
13101
13102         PR target/58452
13103         * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
13104         operands.
13105
13106 2013-09-18  Vladimir Makarov  <vmakarov@redhat.com>
13107
13108         PR rtl-optimization/58438
13109         * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
13110         * lra-constraints.c (undo_optional_reloads): Keep optional reloads
13111         from previous subpasses.
13112
13113 2013-09-18  Richard Earnshaw  <rearnsha@arm.com>
13114
13115         * arm.c (arm_get_frame_offsets): Validate architecture supports
13116         LDRD/STRD before accepting the tuning preference.
13117         (arm_expand_prologue): Likewise.
13118         (arm_expand_epilogue): Likewise.
13119
13120 2013-09-18  Richard Biener  <rguenther@suse.de>
13121
13122         PR tree-optimization/58417
13123         * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
13124         have chrecs with symbols defined in the loop as operands.
13125         (chrec_fold_multiply): Likewise.
13126         * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
13127         parameters before folding binary operations.
13128         (struct instantiate_cache_entry_hasher): Remove.
13129         (struct instantiate_cache_type): Use a pointer-map.
13130         (instantiate_cache_type::instantiate_cache_type): New function.
13131         (instantiate_cache_type::get): Likewise.
13132         (instantiate_cache_type::set): Likewise.
13133         (instantiate_cache_type::~instantiate_cache_type): Adjust.
13134         (get_instantiated_value_entry): Likewise.
13135         (global_cache): New global.
13136         (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
13137         instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
13138         instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
13139         (instantiate_scev_name): Adjust.
13140         (instantiate_scev): Construct global instead of local cache.
13141         (resolve_mixers): Likewise.
13142
13143 2013-09-18  Daniel Morris  <danielm@ecoscentric.com>
13144             Paolo Carlini  <paolo.carlini@oracle.com>
13145
13146         PR c++/58458
13147         * doc/implement-cxx.texi: Fix references to the C++ standards.
13148
13149 2013-09-18  Jakub Jelinek  <jakub@redhat.com>
13150
13151         * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
13152         * tree-vect-data-refs.c (vect_analyze_data_refs): For
13153         simd_lane_access drs, update also DR_ALIGNED_TO.
13154
13155 2013-09-18  Marek Polacek  <polacek@redhat.com>
13156
13157         PR sanitizer/58411
13158         * doc/extend.texi: Document no_sanitize_undefined attribute.
13159         * builtins.c (fold_builtin_0): Don't sanitize function if it has the
13160         no_sanitize_undefined attribute.
13161
13162 2013-09-18  Nick Clifton  <nickc@redhat.com>
13163
13164         * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
13165         (ASM_DECLARE_FUNCTION_NAME): Define.
13166
13167 2013-09-17  Trevor Saunders  <tsaunders@mozilla.com>
13168
13169         * compare-elim.c (find_comparison_dom_walker): New class
13170         (find_comparisons_in_bb): Rename to
13171         find_comparison_dom_walker::before_dom_children
13172         (find_comparisons): Adjust
13173         * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
13174         adjust.
13175         (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
13176         * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
13177         (init_walk_dominator_tree): Remove declaration.
13178         (fini_walk_dominator_tree): Remove declaration.
13179         * fwprop.c (single_def_use_dom_walker): New class
13180         (single_def_use_enter_block): Convert to
13181         single_def_use_dom_walker::before_dom_children.
13182         (single_def_use_leave_block): Convert to
13183         single_def_use_dom_walker::after_dom_children.
13184         (build_single_def_use_links): Adjust.
13185         * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
13186         class.
13187         (find_candidates_in_block): Convert to
13188         find_candidates_dom_walker::before_dom_children.
13189         (execute_strength_reduction): Adjust.
13190         * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
13191         (sese_dom_walker): New class.
13192         (sese_dom_walker::sese_dom_walker): New constructor.
13193         (sese_dom_walker::~sese_dom_walker): New destructor.
13194         (build_sese_conditions_before): Convert to
13195         sese_dom_walker::before_dom_children.
13196         (build_sese_conditions_after): Convert to
13197         sese_dom_walker::after_dom_children.
13198         (build_poly_scop): Adjust
13199         * tree-into-ssa.c (rewrite_dom_walker): New class
13200         (rewrite_enter_block): Convert to
13201         rewrite_dom_walker::before_dom_children.
13202         (rewrite_leave_block): Convert to
13203         rewrite_dom_walker::after_dom_children.
13204         (rewrite_update_dom_walker): New class.
13205         (rewrite_update_enter_block): Convert to
13206         rewrite_update_dom_walker::before_dom_children.
13207         (rewrite_update_leave_block): Convert to
13208         rewrite_update_dom_walker::after_dom_children.
13209         (rewrite_blocks, rewrite_into_ssa): Adjust.
13210         (mark_def_dom_walker): New class.
13211         (mark_def_dom_walker::mark_def_dom_walker): New constructor.
13212         (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
13213         (mark_def_sites_blocks): Convert to
13214         mark_def_dom_walker::before_dom_children.
13215         (mark_def_site_blocks): Remove.
13216         * tree-ssa-dom.c (dom_opt_dom_walker): New class.
13217         (tree_ssa_dominator_optimize): Adjust.
13218         (dom_thread_across_edge): Convert to method
13219         dom_opt_dom_walker::thread_across_edge.
13220         (dom_opt_enter_block): Convert to member function
13221         dom_opt_dom_walker::before_dom_children.
13222         (dom_opt_leave_block): Convert to member function
13223         dom_opt_dom_walker::after_dom_children.
13224         * tree-ssa-dse.c (dse_dom_walker): New class.
13225         (dse_enter_block): Convert to member function
13226         dse_dom_walker::before_dom_children.
13227         (tree_ssa_dse): Adjust.
13228         * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
13229         (determine_invariantness_stmt): Convert to method
13230         invariantness_dom_walker::before_dom_children.
13231         (determine_invariantness): Remove
13232         (move_computations_dom_walker): New class.
13233         (move_computations_stmt): Convert to method
13234         move_computations_dom_walker::before_dom_children.
13235         (move_computations, tree_ssa_lim): Adjust.
13236         * tree-ssa-phiopt.c (nontrapping_dom_walker): New class.
13237         (nt_init_block): Convert to method
13238         notrappping_dom_walker::before_dom_children.
13239         (nt_fini_block): Convert to method
13240         method nontrapping_dom_walker::after_dom_children.
13241         (get_non_trapping): Adjust.
13242         * tree-ssa-pre.c (eliminate_dom_walker): New class.
13243         (eliminate_bb): Convert to method
13244         eliminate_dom_walker::before_dom_children.
13245         (eliminate_leave_block): Convert to method
13246         eliminate_dom_walker::after_dom_children.
13247         (eliminate): Adjust.
13248         * tree-ssa-strlen.c (strlen_dom_walker): New class.
13249         (strlen_enter_block): Convert to method
13250         strlen_dom_walker::before_dom_children.
13251         (strlen_leave_block): Convert to method
13252         method strlen_dom_walker::after_dom_children.
13253         (tree_ssa_strlen): Adjust.
13254         * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
13255         (tree_ssa_uncprop): Adjust.
13256         (uncprop_leave_block): Convert to method
13257         uncprop_dom_walker::after_dom_children.
13258         (uncprop_leave_block): Convert to method
13259         uncprop_dom_walker::before_dom_children.
13260
13261 2013-09-18  Bin Cheng  <bin.cheng@arm.com>
13262
13263         * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before
13264         branch in same basic block.  Check both src and dest of the move insn.
13265
13266 2013-09-17  Nick Clifton  <nickc@redhat.com>
13267
13268         * config/rl78/rl78-real.md (bf): New pattern.
13269         (bt): New pattern.
13270         * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
13271         (rl78_print_operand): Do not put a # before a %B.
13272         * config/rl78/rl78.opt: Tweak doc strings.
13273
13274 2013-09-17  DJ Delorie  <dj@redhat.com>
13275
13276         * config/rl78/constraints.md (Wcv): Allow up to $r31.
13277         * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
13278         (rl78_option_override): Likewise, if -mallregs.
13279         (is_virtual_register): Likewise.
13280         * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
13281         (REGNO_OK_FOR_BASE_P): Likewise.
13282         * config/rl78/rl78.opt (-mallregs): New.
13283
13284 2013-09-17  Nick Clifton  <nickc@redhat.com>
13285
13286         * config/rl78/rl78.c (need_to_save): Change return type to bool.
13287         For interrupt functions: save all call clobbered registers if the
13288         interrupt handler is not a leaf function.
13289         (rl78_expand_prologue): Always recompute the frame information.
13290         For interrupt functions: only select bank 0 if one of the bank 0
13291         registers is going to be psuhed.
13292
13293 2013-09-17  DJ Delorie  <dj@redhat.com>
13294
13295         * config/rl78/constraints.md: For each W* constraint, rename to C*
13296         and create a W* constraint that checks for an optional ES: prefix
13297         pattern also.
13298         * config/rl78/rl78.md (UNS_ES_ADDR): New.
13299         (es_addr): New.  Used to wrap far addresses.
13300         * config/rl78/rl78-protos.h (rl78_es_addr): New.
13301         (rl78_es_base): New.
13302         * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
13303         wrapped far addresses.
13304         (rl78_print_operand_1): Unwrap far addresses before processing.
13305         (rl78_lo16): Wrap far addresses in unspecs.
13306         (rl78_es_addr): New.
13307         (rl78_es_base): New.
13308         (insn_ok_now): Check for not-yet-wrapped far addresses.
13309         (transcode_memory_rtx): Properly re-wrap far addresses.
13310
13311 2013-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
13312
13313         * config/sparc/t-rtems: Add leon3 multilibs.
13314
13315 2013-09-17  Cong Hou  <congh@google.com>
13316
13317         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
13318         when checking the dot production pattern. The type of rhs operand
13319         of multiply is now checked correctly.
13320
13321 2013-09-17  Jeff Law  <law@redhat.com>
13322
13323         * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
13324         edge implied equivalences into successor phis.
13325         * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
13326         here from tree-ssa-threadedge.c.
13327         (mark_threaded_blocks): When threading through a joiner, if both
13328         successors of the joiner's clone reach the same block, verify the
13329         PHI arguments are equal.  If not, cancel the jump threading request.
13330         * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
13331         tree-ssa-threadupdate.c
13332         (thread_across_edge): Don't check PHI argument equality when
13333         threading through joiner block here.
13334
13335 2013-09-17  Andrew MacLeod <amacleod@redhat.com>
13336
13337         * tree-flow.h (ssa_undefined_value_p): Remove prototype.
13338         * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
13339         (warn_uninit, warn_uninitialized_vars,
13340         execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
13341         Move to tree-ssa-uninit.c.
13342         * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c.
13343         (has_undefined_value_p): New.  Pass dependant parts of
13344         ssa_undefined_value_p.
13345         (uninit_undefined_value_p): Use has_undefined_value_p.
13346         (warn_uninit, warn_uninitialized_vars,
13347         execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
13348         Move from tree-ssa.c.
13349         * tree-ssa.h: Adjust prototypes.
13350
13351 2013-09-17  Jan Hubicka  <jh@suse.cz>
13352
13353         PR middle-end/58332
13354         * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
13355         * ipa-inline.c (can_inline_edge_p): Do not downgrade
13356         FUNCTION_NOT_OPTIMIZED.
13357         * ipa-inline-analysis.c (compute_inline_parameters): Function
13358         not optimized is not inlinable unless it is alwaysinline.
13359         (inline_analyze_function): Force calls in not optimized
13360         function not inlinable.
13361
13362 2013-09-17  Jan Hubicka  <jh@suse.cz>
13363
13364         PR middle-end/58329
13365         * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
13366         to return NULL.
13367         * ipa.c (function_and_variable_visibility): Likewise.
13368         * ipa-profile.c (ipa_profile): Likewise.
13369
13370 2013-09-17  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13371
13372         PR ipa/58398
13373         * cgraph.c (cgraph_function_body_availability): Check for ifunc
13374         attribute, and don't inline the resolver in this case.
13375
13376 2013-09-17  Teresa Johnson  <tejohnson@google.com>
13377
13378         * coverage.c (get_coverage_counts): Add missing newline.
13379
13380 2013-09-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13381
13382         PR tree-optimization/58088
13383         * fold-const.c (mask_with_trailing_zeros): New function.
13384         (fold_binary_loc): Make sure we don't recurse infinitely
13385         when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
13386         Use mask_with_trailing_zeros where appropriate.
13387
13388 2013-09-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
13389
13390         * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
13391         of 'prev' var to get better distance estimation.
13392
13393 2013-09-17  Eric Botcazou  <ebotcazou@adacore.com>
13394
13395         * tree-inline.h (struct copy_body_data): Add transform_parameter.
13396         * tree-inline.c (is_parameter_of): New predicate.
13397         (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
13398         a parameter has been remapped.
13399         (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
13400         (optimize_inline_calls): Initialize transform_parameter.
13401         (copy_gimple_seq_and_replace_locals): Likewise.
13402         (tree_function_versioning): Likewise.
13403         (maybe_inline_call_in_expr): Likewise.
13404
13405 2013-09-17  Nick Clifton  <nickc@redhat.com>
13406
13407         * config/msp430/msp430-protos.h: Add prototypes for new functions.
13408         * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
13409         interrupt handlers.
13410         (is_attr_func): New function.
13411         (msp430_is_interrupt_func): New function.
13412         (is_naked_func): New function.
13413         (is_reentrant_func): New function.
13414         (is_critical_func): New function.
13415         (msp430_start_function): Add annotations for function attributes.
13416         (msp430_attr): New function.
13417         (msp430_attribute_table): New.
13418         (msp430_function_section): New function.
13419         (TARGET_ASM_FUNCTION_SECTION): Define.
13420         (msp430_builtin): New enum.
13421         (msp430_init_builtins): New function.
13422         (msp430_builtin_devl): New function.
13423         (msp430_expand_builtin): New function.
13424         (TARGET_INIT_BUILTINS): Define.
13425         (TARGET_EXPAND_BUILTINS): Define.
13426         (TARGET_BUILTIN_DECL): Define.
13427         (msp430_expand_prologue): Add support for naked, interrupt,
13428         critical and reentrant functions.
13429         (msp430_expand_epilogue): Likewise.
13430         (msp430_print_operand): Handle 'O' character.
13431         * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
13432         NO_TRAMPOLINES.
13433         * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
13434         UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
13435         (pushm): Use a 'n' rather than an 'i' constraint.
13436         (msp_return): Add generation of the interrupt return instruction.
13437         (disable_interrupts): New pattern.
13438         (enable_interrupts): New pattern.
13439         (push_intr_state): New pattern.
13440         (pop_intr_state): New pattern.
13441         (bic_SR): New pattern.
13442         (bis_SR): New pattern.
13443         * doc/extend.texi: Document MSP430 function attributes and builtin
13444         functions.
13445
13446 2013-09-17  Richard Biener  <rguenther@suse.de>
13447
13448         PR tree-optimization/58432
13449         * tree-loop-distribution.c (tree_loop_distribution): Also
13450         scan PHIs for outside loop uses and seed a partition from them.
13451
13452 2013-09-17  Bin Cheng  <bin.cheng@arm.com>
13453
13454         * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
13455         (restructure_reference): Call backtrace_base_for_ref.
13456
13457 2013-09-17  Alan Modra  <amodra@gmail.com>
13458
13459         PR target/57589
13460         * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
13461         patch.
13462
13463 2013-09-16  DJ Delorie  <dj@redhat.com>
13464
13465         * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
13466         vregs location for RL78/G10.
13467         (rl78_expand_prologue): Avoid SEL on G10.
13468         (rl78_expand_epilogue): Likewise.
13469         (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
13470         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
13471         __RL78_G10__ when appropriate.
13472         (ASM_SPEC): Pass -mg10 along to the assembler.
13473         * config/rl78/rl78.md (sel_rb): Disable for G10.
13474         * config/rl78/rl78.opt: Add -mg10 option.
13475         * config/rl78/t-rl78: Add -mg10 multilib.
13476
13477 2013-09-16  Xinliang David Li  <davidxl@google.com>
13478
13479         * tree-if-conv.c (main_tree_if_conversion): Check new flag.
13480         * omp-low.c (omp_max_vf): Ditto.
13481         (expand_omp_simd): Ditto.
13482         * tree-vectorizer.c (vectorize_loops): Ditto.
13483         (gate_vect_slp): Ditto.
13484         (gate_increase_alignment): Ditto.
13485         * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
13486         * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
13487         (gate_tree_vectorize): Name change.
13488         (tree_vectorize): Ditto.
13489         (pass_vectorize::gate): Call new function.
13490         (pass_vectorize::execute): Ditto.
13491         * opts.c: O3 default setting change.
13492         (finish_options): Check new flag.
13493         * doc/invoke.texi: Document new flags.
13494         * common.opt: New flags.
13495
13496 2013-09-16  Andreas Schwab  <schwab@linux-m68k.org>
13497
13498         * doc/tm.texi.in (Cond Exec Macros): Remove node.
13499         (Condition Code): Don't reference it.
13500         * doc/tm.texi: Regenerate.
13501
13502 2013-09-16  Vladimir Makarov  <vmakarov@redhat.com>
13503
13504         PR middle-end/58418
13505         * lra-constraints.c (undo_optional_reloads): Consider all optional
13506         reload even if it did not get a hard reg.
13507
13508 2013-09-16  Teresa Johnson  <tejohnson@google.com>
13509
13510         * dumpfile.c (dump_loc): Remove newline emission.
13511         * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
13512         emission to dump_printf_loc calls where missing.
13513         (vect_mark_for_runtime_alias_test): Ditto.
13514         (vect_analyze_data_ref_dependence): Ditto.
13515         (vect_analyze_data_ref_dependences): Ditto.
13516         (vect_slp_analyze_data_ref_dependence): Ditto.
13517         (vect_slp_analyze_data_ref_dependences): Ditto.
13518         (vect_compute_data_ref_alignment): Ditto.
13519         (vect_update_misalignment_for_peel): Ditto.
13520         (vect_verify_datarefs_alignment): Ditto.
13521         (vector_alignment_reachable_p): Ditto.
13522         (vect_get_data_access_cost): Ditto.
13523         (vect_enhance_data_refs_alignment): Ditto.
13524         (vect_find_same_alignment_drs): Ditto.
13525         (vect_analyze_data_refs_alignment): Ditto.
13526         (vect_analyze_group_access): Ditto.
13527         (vect_analyze_data_ref_access): Ditto.
13528         (vect_analyze_data_ref_accesses): Ditto.
13529         (vect_prune_runtime_alias_test_list): Ditto.
13530         (vect_analyze_data_refs): Ditto.
13531         (vect_create_addr_base_for_vector_ref): Ditto.
13532         (vect_create_data_ref_ptr): Ditto.
13533         (vect_grouped_store_supported): Ditto.
13534         (vect_grouped_load_supported): Ditto.
13535         * value-prof.c (check_counter): Ditto.
13536         (check_ic_target): Ditto.
13537         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
13538         (vect_recog_widen_mult_pattern): Ditto.
13539         (vect_recog_widen_sum_pattern): Ditto.
13540         (vect_recog_over_widening_pattern): Ditto.
13541         (vect_recog_widen_shift_pattern): Ditto.
13542         (vect_recog_rotate_pattern): Ditto.
13543         (vect_recog_vector_vector_shift_pattern): Ditto.
13544         (vect_recog_divmod_pattern): Ditto.
13545         (vect_recog_mixed_size_cond_pattern): Ditto.
13546         (vect_recog_bool_pattern): Ditto.
13547         (vect_pattern_recog_1): Ditto.
13548         (vect_pattern_recog): Ditto.
13549         * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
13550         (vect_is_simple_iv_evolution): Ditto.
13551         (vect_analyze_scalar_cycles_1): Ditto.
13552         (vect_get_loop_niters): Ditto.
13553         (vect_analyze_loop_1): Ditto.
13554         (vect_analyze_loop_form): Ditto.
13555         (vect_analyze_loop_operations): Ditto.
13556         (vect_analyze_loop_2): Ditto.
13557         (vect_analyze_loop): Ditto.
13558         (report_vect_op): Ditto.
13559         (vect_is_slp_reduction): Ditto.
13560         (vect_is_simple_reduction_1): Ditto.
13561         (vect_get_known_peeling_cost): Ditto.
13562         (vect_estimate_min_profitable_iters): Ditto.
13563         (vect_model_reduction_cost): Ditto.
13564         (vect_model_induction_cost): Ditto.
13565         (get_initial_def_for_induction): Ditto.
13566         (vect_create_epilog_for_reduction): Ditto.
13567         (vectorizable_reduction): Ditto.
13568         (vectorizable_induction): Ditto.
13569         (vectorizable_live_operation): Ditto.
13570         (vect_loop_kill_debug_uses): Ditto.
13571         (vect_transform_loop): Ditto.
13572         * tree-vect-stmts.c (vect_mark_relevant): Ditto.
13573         (vect_stmt_relevant_p): Ditto.
13574         (process_use): Ditto.
13575         (vect_mark_stmts_to_be_vectorized): Ditto.
13576         (vect_model_simple_cost): Ditto.
13577         (vect_model_promotion_demotion_cost): Ditto.
13578         (vect_model_store_cost): Ditto.
13579         (vect_get_store_cost): Ditto.
13580         (vect_model_load_cost): Ditto.
13581         (vect_get_load_cost): Ditto.
13582         (vect_init_vector_1): Ditto.
13583         (vect_get_vec_def_for_operand): Ditto.
13584         (vect_finish_stmt_generation): Ditto.
13585         (vectorizable_call): Ditto.
13586         (vectorizable_conversion): Ditto.
13587         (vectorizable_assignment): Ditto.
13588         (vectorizable_shift): Ditto.
13589         (vectorizable_operation): Ditto.
13590         (vectorizable_store): Ditto.
13591         (vectorizable_load): Ditto.
13592         (vectorizable_condition): Ditto.
13593         (vect_analyze_stmt): Ditto.
13594         (vect_transform_stmt): Ditto.
13595         (vect_is_simple_use): Ditto.
13596         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
13597         (vect_can_advance_ivs_p): Ditto.
13598         (vect_update_ivs_after_vectorizer): Ditto.
13599         (vect_do_peeling_for_loop_bound): Ditto.
13600         (vect_gen_niters_for_prolog_loop): Ditto.
13601         (vect_update_inits_of_drs): Ditto.
13602         (vect_create_cond_for_alias_checks): Ditto.
13603         * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
13604         (vect_build_slp_tree_1): Ditto.
13605         (vect_supported_load_permutation_p): Ditto.
13606         (vect_analyze_slp_instance): Ditto.
13607         (vect_analyze_slp): Ditto.
13608         (vect_make_slp_decision): Ditto.
13609         (vect_detect_hybrid_slp): Ditto.
13610         (vect_bb_vectorization_profitable_p): Ditto.
13611         (vect_slp_analyze_bb_1): Ditto.
13612         (vect_update_slp_costs_according_to_vf): Ditto.
13613         (vect_get_mask_element): Ditto.
13614         (vect_transform_slp_perm_load): Ditto.
13615         (vect_schedule_slp_instance): Ditto.
13616         (vect_schedule_slp): Ditto.
13617         (vect_slp_transform_bb): Ditto.
13618         * profile.c (read_profile_edge_counts): Ditto.
13619         (compute_branch_probabilities): Ditto.
13620         * coverage.c (get_coverage_counts): Ditto.
13621
13622 2013-09-16  Diego Novillo  <dnovillo@google.com>
13623
13624         * tree-core.h: Add missing comment lines from refactoring of tree.h.
13625
13626 2013-09-16  Jan Hubicka  <jh@suse.cz>
13627
13628         * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
13629         abstract functions; for static functions check the presence of body.
13630
13631 2013-09-16  James Greenhalgh  <james.greenhalgh@arm.com>
13632
13633         * config/aarch64/aarch64-simd-builtins.def (fma): New.
13634         * config/aarch64/aarch64-simd.md
13635         (aarch64_mla_elt<mode>): New.
13636         (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
13637         (aarch64_mls_elt<mode>): Likewise.
13638         (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
13639         (aarch64_fma4_elt<mode>): Likewise.
13640         (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
13641         (aarch64_fma4_elt_to_128v2df): Likewise.
13642         (aarch64_fma4_elt_to_64df): Likewise.
13643         (fnma<mode>4): Likewise.
13644         (aarch64_fnma4_elt<mode>): Likewise.
13645         (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
13646         (aarch64_fnma4_elt_to_128v2df): Likewise.
13647         (aarch64_fnma4_elt_to_64df): Likewise.
13648         * config/aarch64/iterators.md (VDQSF): New.
13649         * config/aarch64/arm_neon.h
13650         (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
13651         (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
13652
13653 2013-09-16  James Greenhalgh  <james.greenhalgh@arm.com>
13654
13655         * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
13656         (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
13657         (aarch64_mul3_elt_to_128df): Likewise.
13658         (aarch64_mul3_elt_to_64v2df): Likewise.
13659         * config/aarch64/iterators.md (VEL): Also handle DFmode.
13660         (VMUL): New.
13661         (VMUL_CHANGE_NLANES) Likewise.
13662         (h_con): Likewise.
13663         (f): Likewise.
13664         * config/aarch64/arm_neon.h
13665         (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
13666
13667 2013-09-16  James Greenhalgh  <james.greenhalgh@arm.com>
13668
13669         * config/aarch64/arm_neon.h
13670         (vcvtx_high_f32_f64): Fix parameters.
13671
13672 2013-09-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
13673             Uros Bizjak  <ubizjak@gmail.com>
13674
13675         * config/alpha.c: Include tree-ssanames.h.
13676
13677 2013-09-16  Richard Biener  <rguenther@suse.de>
13678
13679         * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
13680         (dot_rdg_1): Handle control_dd.
13681         (create_edge_for_control_dependence): New function.
13682         (create_rdg_edges): Add control dependences if asked for.
13683         (build_rdg): Likewise.
13684         (generate_loops_for_partition): If there are not necessary
13685         control stmts remove all their dependencies.
13686         (collect_condition_stmts, rdg_flag_loop_exits): Remove.
13687         (distribute_loop): Pass on control dependences.
13688         (tree_loop_distribution): Compute control dependences and remove
13689         restriction on number of loop nodes.
13690
13691 2013-09-16  Jakub Jelinek  <jakub@redhat.com>
13692
13693         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
13694         for internal calls.
13695
13696 2013-09-16  Richard Sandiford  <rdsandiford@googlemail.com>
13697
13698         * cse.c (try_const_anchors): Punt on CC modes.
13699
13700 2013-09-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
13701
13702         * config/vax/constraints.md (T): Add missing CONSTANT_P check.
13703
13704 2013-09-14  John David Anglin  <danglin@gcc.gnu.org>
13705
13706         PR target/58382
13707         * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
13708         calls to word_mode.
13709
13710 2013-09-14  Iain Sandoe  <iain@codesourcery.com>
13711
13712         PR target/48094
13713         * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
13714         seen.
13715         (darwin_objc1_section): Likewise.
13716         (darwin_file_end): Emit Image Info section when required.
13717
13718 2013-09-14  Jan Hubicka  <jh@suse.cz>
13719
13720         * tree-into-ssa.c (gate_into_ssa): New.
13721         (pass_data_build_ssa): Use it.
13722         * cgraph.h (expand_thunk): Update prototype.
13723         * cgraphunit.c (analyze_function): Expand thunks early.
13724         (expand_thunk): Fix DECL_CONTEXT of reust_decl;
13725         build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
13726         set lowered flag; do not add new function.
13727         (assemble_thunks_and_aliases): Update.
13728         * tree-ssa.c (gate_init_datastructures): New gate.
13729         (pass_data_init_datastructures): Use it.
13730
13731 2013-09-14  Iain Sandoe  <iain@codesourcery.com>
13732
13733         PR target/58269
13734         * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
13735         xmm register set described in the psABI.
13736
13737 2013-09-13  Evgeny Gavrin <e.gavrin@samsung.com>
13738
13739         * dwarf2out.c (should_emit_struct_debug): Add check
13740         for type_decl variable is not NULL.
13741
13742 2013-09-13  Jacek Caban  <jacek@codeweavers.com>
13743
13744         * config.gcc: Use new winnt-c.c target hooks
13745         * config/t-winnt: New file
13746         * config/winnt-c.c: New file
13747         * doc/tm.texi.in: Document new hook
13748         * doc/tm.texi: Regenerated
13749
13750 2013-09-13  Jan Hubicka  <jh@suse.cz>
13751
13752         PR middle-end/58094
13753         * ipa-inline.c (check_callers): New function.
13754         (check_caller_edge): Remove.
13755         (want_inline_function_to_all_callers_p): Also permit alises that are
13756         called dirrectly.
13757         (inline_to_all_callers): Terminate the walk when devirtualization
13758         introduce new calls.
13759
13760 2013-09-13  Jan Hubicka  <jh@suse.cz>
13761
13762         * ipa-inline-analysis.c (struct growth_data): Add node.
13763         (do_estimate_growth_1): Fix detection of recursion.
13764
13765 2013-09-13  Jakub Jelinek  <jakub@redhat.com>
13766
13767         PR tree-optimization/58392
13768         * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
13769         to avoid shadowing of outer loop variable.  If
13770         saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
13771         replace_by_duplicate_decl simduid of loops that have it set and
13772         set dest_cfun->has_simduid_loops and/or
13773         dest_cfun->has_force_vect_loops.
13774         * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
13775         instead of maybe_lookup_decl.
13776         * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
13777         Use id->blocks_to_copy instead of blocks_to_copy.  Adjust recursive
13778         call.  Copy over force_vect and copy and remap simduid.  Set
13779         cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
13780         (copy_cfg_body): Remove blocks_to_copy argument.  Use
13781         id->blocks_to_copy instead of blocks_to_copy.  Adjust copy_loops
13782         caller.  Don't set cfun->has_simduid_loops and/or
13783         cfun->has_force_vect_loops here.
13784         (copy_body): Remove blocks_to_copy argument.  Adjust copy_cfg_body
13785         caller.
13786         (expand_call_inline, tree_function_versioning): Adjust copy_body
13787         callers.
13788
13789 2013-09-13  Martin Jambor  <mjambor@suse.cz>
13790
13791         PR bootstrap/58388
13792         * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
13793         the assert if the edge was a speculative one.
13794
13795 2013-09-13  Richard Biener  <rguenther@suse.de>
13796
13797         * tree-data-ref.h (known_dependences_p): Move here ...
13798         * tree-loop-distribution.c (known_dependences_p): ... from here.
13799         (dump_rdg_component, debug_rdg_component): Remove.
13800         (dump_rdg): Adjust.
13801         (generate_loops_for_partition): Use gimple_uid instead of
13802         relying on matching stmt visit order.
13803         (rdg_build_partitions): Take starting stmt vector.
13804         (ldist_gen): Merge into ...
13805         (distribute_loop): ... this function.  Do not compute starting
13806         vertices vector.
13807         * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
13808
13809 2013-09-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13810
13811         * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
13812         Set type attribute correctly. Set predicable_short_it attribute.
13813         (cmpsi_shiftsi): Remove %? from output template.
13814
13815 2013-09-13  Richard Biener  <rguenther@suse.de>
13816
13817         * tree-loop-distribution.c (struct rdg_component,
13818         rdg_defs_used_in_other_loops_p, free_rdg_components,
13819         rdg_build_components): Remove.
13820         (stmts_from_loop): Do not record virtual PHIs.
13821         (generate_loops_for_partition): Skip virtual PHIs.
13822         (build_rdg_partition_for_component): Rename to ...
13823         (build_rdg_partition_for_vertex): ... this and adjust.
13824         (rdg_build_partitions): Take a vector of starting vertices
13825         instead of components.  Remove unnecessary leftover handling.
13826         (ldist_gen): Do not build components or record other stores.
13827         (distribute_loop): Do not distribute loops containing stmts
13828         with side-effects.
13829
13830 2013-09-13  Christian Bruel  <christian.bruel@st.com>
13831
13832         PR target/58314
13833         * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
13834
13835 2013-09-13  Kai Tietz  <ktietz@redhat.com>
13836
13837         * config.gcc: Separate cases for mingw and cygwin targets,
13838         and add 64-bit cygwin target case.
13839
13840         * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
13841         dll-export inline-functions.
13842         * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
13843
13844 2013-09-13  Jeff Law  <law@redhat.com>
13845
13846         PR middle-end/58387
13847         Revert:
13848         2013-09-06  Jeff Law  <law@redhat.com>
13849
13850         * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
13851         edge implied equivalences into successor phis.
13852
13853 2013-09-12  DJ Delorie  <dj@redhat.com>
13854
13855         * config/rl78/rl78-virt.md: Change from | to \; for asm line
13856         separators.
13857
13858 2013-09-12  Brooks Moses  <bmoses@google.com>
13859
13860         PR driver/42955
13861         * Makefile.in: Do not install driver binaries in $(target)/bin.
13862
13863 2013-09-12  DJ Delorie  <dj@redhat.com>
13864
13865         * config/rl78/rl78.opt (mrelax): New.
13866         * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
13867         * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
13868
13869         * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
13870         between SP and FP.
13871         (rl78_expand_epilogue): Likewise.
13872
13873 2013-09-12  Vladimir Makarov  <vmakarov@redhat.com>
13874
13875         PR middle-end/58335
13876         * lra-eliminations.c (remove_reg_equal_offset_note): New.
13877         (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
13878         pointer elimination with using remove_reg_equal_offset_note.
13879
13880 2013-09-12  DJ Delorie  <dj@redhat.com>
13881
13882         * config/msp430/: New port.
13883         * config.gcc (msp430): Added.
13884         * doc/invoke.texi: Document MSP430 options.
13885         * doc/install.texi: Document msp430-elf
13886         * doc/md.texi: Document msp430-elf
13887         * doc/contrib.texi: Document msp430-elf
13888
13889         * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
13890         PSImode.
13891
13892 2013-09-12  Martin Jambor  <mjambor@suse.cz>
13893
13894         PR ipa/58389
13895         * ipa-prop.c (remove_described_reference): Give up if the edge in the
13896         reference descriptor is NULL.
13897         (ipa_edge_removal_hook): If owning a reference descriptor, set its
13898         edge to NULL.
13899
13900 2013-09-12  Andrew MacLeod  <amacleod@redhat.com>
13901
13902         * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
13903         (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
13904         num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
13905         * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
13906         make_temp_ssa_name): move to tree-ssanames.h
13907         * tree-ssa-alias.h: Move prototype.
13908         * tree-ssa.h: Include tree-ssanames.h.
13909         * tree-ssanames.c (FREE_SSANAMES): Move to here.
13910         * tree-ssanames.h: New.  Move items from tree-flow*.h
13911         * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
13912
13913 2013-09-12  Richard Biener  <rguenther@suse.de>
13914
13915         PR tree-optimization/58404
13916         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
13917         propagate non-invariant addresses into dereferences wrapped
13918         in component references.
13919
13920 2013-09-12  Richard Biener  <rguenther@suse.de>
13921
13922         PR tree-optimization/58402
13923         * passes.def: Move pass_late_warn_uninitialized later.
13924
13925 2013-09-12  Andrew MacLeod  <amacleod@redhat.com>
13926
13927         * tree-ssa.h: New.  Move content from tree-flow.h and
13928         tree-flow-inline.h.
13929         * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
13930         Move prototypes belonging to tree-ssa.c.
13931         * tree-flow-inline.h (redirect_edge_var_map_def,
13932         redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
13933         tree-ssa.h.
13934         * gimple.h: Adjust prototypes.
13935         * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
13936         to...
13937         * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
13938         * tree.h: Move prototype to tree-ssa.h.
13939         * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
13940         * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
13941         * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
13942         cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
13943         cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
13944         ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
13945         gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
13946         gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
13947         graphite-blocking.c, graphite-clast-to-gimple.c,
13948         graphite-dependences.c, graphite-interchange.c,
13949         graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
13950         graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
13951         ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
13952         ipa-reference.c, ipa-split.c, ipa-utils.c,
13953         loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
13954         lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
13955         passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
13956         tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
13957         tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
13958         tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
13959         tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
13960         tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
13961         tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
13962         tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
13963         tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
13964         tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
13965         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
13966         tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
13967         value-prof.c, var-tracking.c,
13968         varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
13969
13970 2013-09-12  Richard Biener  <rguenther@suse.de>
13971
13972         PR tree-optimization/58396
13973         * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
13974         (build_rdg): Take a loop-nest parameter, fix memleaks.
13975         (distribute_loop): Compute loop-nest here and pass it to build_rdg.
13976
13977 2013-09-12  Yuri Rumyantsev  <ysrumyan@gmail.com>
13978
13979         * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
13980         for SLM.
13981
13982 2013-09-12  Cameron McInally  <cameron.mcinally@nyu.edu>
13983
13984         * doc/extend.texi: Fix errors in x86 FMA builtin naming.
13985         The FMA instruction names should have a 'v' prefix.
13986
13987 2013-09-12  Richard Biener  <rguenther@suse.de>
13988
13989         * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
13990         (dot_rdg): Use popen instead of system in optional code.
13991         (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
13992         (already_processed_vertex_p): Adjust.
13993         (has_anti_or_output_dependence, predecessor_has_mem_write,
13994         mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
13995         rdg_flag_uses): Remove.
13996         (rdg_flag_vertex): Simplify.
13997         (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
13998         remove recursion.
13999         (build_rdg_partition_for_component): Process the first vertex
14000         of a component only.
14001         (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
14002
14003 2013-09-12  Alan Modra  <amodra@gmail.com>
14004
14005         * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
14006
14007 2013-09-11  DJ Delorie  <dj@redhat.com>
14008             Nick Clifton  <nickc@redhat.com>
14009
14010         * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
14011         (rl78_stack_based_mem): New.
14012         * config/rl78/constraints.md (Iv08): New.
14013         (Iv16): New.
14014         (Iv24): New.
14015         (Is09): New.
14016         (Is17): New.
14017         (Is25): New.
14018         (ISsi): New.
14019         (IShi): New.
14020         (ISqi): New.
14021         * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
14022         (movhi): Likewise.
14023         (movsi): Change from expand to insn-and-split.
14024         (ashrsi3): Clobber AX.
14025         (lshrsi3): New.
14026         (ashlsi3): New.
14027         (cbranchsi4): New.
14028         * config/rl78/rl78.md (CC_REG): Fix.
14029         (addsi3): Allow memory and immediate operands.
14030         (addsi3_internal): Split into...
14031         (addsi3_internal_virt): ...new, and ...
14032         (addsi3_internal_real): ...new.
14033         (subsi): New.
14034         (subsi3_internal_virt): New.
14035         (subsi3_internal_real): New.
14036         (mulsi3): Add memory operand.
14037         (mulsi3_rl78): Likewise.
14038         (mulsi3_g13): Likewise.
14039         * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
14040         (cbranchqi4_real): Add more constraint options.
14041         (cbranchhi4_real): Expand pattern.
14042         (cbranchhi4_real_signed): New.
14043         (cbranchhi4_real_inverted): New.
14044         (cbranchsi4_real_lt): New.
14045         (cbranchsi4_real_ge): New.
14046         (cbranchsi4_real_signed): New.
14047         (cbranchsi4_real): New.
14048         (peephole2): New.
14049         * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
14050         constant shifts.
14051         (lshrsi3_virt): Likewise.
14052         (ashlsi3_virt): Likewise.
14053         (cbranchqi4_virt_signed): New.
14054         (cbranchhi4_virt_signed): New.
14055         (cbranchsi4_virt): New.
14056         * config/rl78/rl78.c: Whitespace fixes throughout.
14057         (move_elim_pass): New.
14058         (pass_data_rl78_move_elim): New.
14059         (pass_rl78_move_elim): New.
14060         (make_pass_rl78_move_elim): New.
14061         (rl78_devirt_info): Run devirt earlier.
14062         (rl78_move_elim_info): New.
14063         (rl78_asm_file_start): Register it.
14064         (rl78_split_movsi): New.
14065         (rl78_as_legitimate_address): Allow virtual base registers when
14066         appropriate.
14067         (rl78_addr_space_convert): Remove spurious debug stuff.
14068         (rl78_print_operand_1): Add z,s,S,r,E modifiers.
14069         (rl78_print_operand): More cases for not printing '#'.
14070         (rl78_expand_compare): Remove most of the logic.
14071         (content_memory): New.
14072         (clear_content_memory): New.
14073         (get_content_index): New.
14074         (get_content_name): New.
14075         (display_content_memory): New.
14076         (update_content): New.
14077         (record_content): New.
14078         (already_contains): New.
14079         (insn_ok_now): Re-recog insns with virtual registers.
14080         (add_postponed_content_update): New.
14081         (process_postponed_content_update): New.
14082         (gen_and_emit_move): New.
14083         (transcode_memory_rtx): Record new location content.
14084         Use gen_and_emit_move.
14085         (force_into_acc): New.
14086         (move_to_acc): Use gen_and_emit_move.
14087         (move_from_acc): Likewise.
14088         (move_acc_to_reg): Likewise.
14089         (move_to_x): Likewise.
14090         (move_to_hl): Likewise.
14091         (move_to_de): Likewise.
14092         (rl78_alloc_physical_registers_op1): Record location content.
14093         (has_constraint): New.
14094         (rl78_alloc_physical_registers_op2): Record location content.
14095         Optimize use of HL.
14096         (rl78_alloc_physical_registers_ro1): Likewise.
14097         (rl78_alloc_physical_registers_cmp): Likewise.
14098         (rl78_alloc_physical_registers_umul): Likewise.
14099         (rl78_alloc_address_registers_macax): New.
14100         (rl78_alloc_physical_registers): Initialize and set location
14101         content memory as needed.
14102         (rl78_reorg): Make sure split2 is called.
14103         (rl78_rtx_costs): New.
14104
14105 2013-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
14106
14107         * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
14108         for (not (neg ...)) and (neg (not ...)) cases.
14109
14110 2013-09-11  Richard Biener  <rguenther@suse.de>
14111
14112         PR middle-end/58377
14113         * passes.def: Split critical edges before late uninit warning passes.
14114         * tree-cfg.c (pass_split_crit_edges): Implement clone method.
14115
14116 2013-09-11  Jakub Jelinek  <jakub@redhat.com>
14117
14118         PR tree-optimization/58385
14119         * fold-const.c (build_range_check): If both low and high are NULL,
14120         use omit_one_operand_loc to preserve exp side-effects.
14121
14122 2013-09-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14123
14124         * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
14125
14126 2013-09-11  Richard Biener  <rguenther@suse.de>
14127
14128         * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
14129         dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
14130         dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
14131         create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
14132         stmts_from_loop, known_dependences_p, build_empty_rdg,
14133         build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
14134         * tree-loop-distribution.c: ... here.
14135         * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
14136         RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
14137         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
14138         struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
14139         * tree-loop-distribution.c: ... here.
14140         * tree-loop-distribution.c: Include gimple-pretty-print.h.
14141         (struct partition_s): Add loops member.
14142         (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
14143         rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
14144         build_rdg_partition_for_component, rdg_build_partitions): Adjust.
14145
14146 2013-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14147             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14148             Sergey Lega  <sergey.s.lega@intel.com>
14149             Anna Tikhonova  <anna.tikhonova@intel.com>
14150             Ilya Tocar  <ilya.tocar@intel.com>
14151             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14152             Ilya Verbin  <ilya.verbin@intel.com>
14153             Kirill Yukhin  <kirill.yukhin@intel.com>
14154             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14155
14156         * config/i386/constraints.md (k): New.
14157         (Yk): Ditto.
14158         * config/i386/i386.c (const regclass_map): Add new mask registers.
14159         (dbx_register_map): Ditto.
14160         (dbx64_register_map): Ditto.
14161         (svr4_dbx_register_map): Ditto.
14162         (ix86_conditional_register_usage): Squash mask registers if AVX512F is
14163         disabled.
14164         (ix86_preferred_reload_class): Disable constants for mask registers.
14165         (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
14166         (ix86_hard_regno_mode_ok): Support new mask registers.
14167         (x86_order_regs_for_local_alloc): Ditto.
14168         * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
14169         (FIXED_REGISTERS): Add new mask registers.
14170         (CALL_USED_REGISTERS): Ditto.
14171         (REG_ALLOC_ORDER): Ditto.
14172         (VALID_MASK_REG_MODE): New.
14173         (FIRST_MASK_REG): Ditto.
14174         (LAST_MASK_REG): Ditto.
14175         (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
14176         (MAYBE_MASK_CLASS_P): New.
14177         (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
14178         (REG_CLASS_CONTENTS): Ditto.
14179         (MASK_REGNO_P): New.
14180         (ANY_MASK_REG_P): Ditto.
14181         (HI_REGISTER_NAMES): Add new mask registers.
14182         * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
14183         MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
14184         mask registers.
14185         (attribute "type"): Add mskmov, msklog.
14186         (attribute "length_immediate"): Support them.
14187         (attribute "memory"): Ditto.
14188         (attribute "prefix_0f"): Ditto.
14189         (*movhi_internal): Support new mask registers.
14190         (*movqi_internal): Ditto.
14191         (define_split): Split out clobber pattern is a logic
14192         insn on mask registers.
14193         (*k<logic><mode>): New.
14194         (*andhi_1): Extend to support mask regs.
14195         (*andqi_1): Extend to support mask regs.
14196         (kandn<mode>): New.
14197         (define_split): Split and-not to and and not if operands
14198         are not mask regs.
14199         (*<code><mode>_1): Separate HI mode to new pattern...
14200         (*<code>hi_1): This.
14201         (*<code>qi_1): Extend to support mask regs.
14202         (kxnor<mode>): New.
14203         (kortestzhi): Ditto.
14204         (kortestchi): Ditto.
14205         (kunpckhi): Ditto.
14206         (*one_cmpl<mode>2_1): Remove HImode and handle it...
14207         (*one_cmplhi2_1): ...Here, now with mask registers support.
14208         (*one_cmplqi2_1): Support new mask registers.
14209         (HI/QImode arithmetics splitter): Don't split if mask registers
14210         are used.
14211         (HI/QImode not splitter): Ditto.
14212         * config/i386/predicated.md (mask_reg_operand): New.
14213         (general_reg_operand): Ditto.
14214
14215 2013-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14216
14217         * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
14218         * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
14219
14220 2013-09-10  Jeff Law  <law@redhat.com>
14221
14222         PR tree-optimization/58380
14223         * tree-ssa-threadupdate.c (thread_block): Recognize another case
14224         of threading through a buried loop header.
14225
14226         * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
14227         return value for single successor case.
14228
14229 2013-09-10  Jan Hubicka  <jh@suse.cz>
14230
14231         * ipa-devirt.c (ipa_devirt): Enable with LTO.
14232
14233 2013-09-10  Richard Earnshaw  <rearnsha@arm.com>
14234
14235         PR target/58361
14236         * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
14237         support conditional execution.
14238         (combine_vcvt_f64_<FCVTI32typename>): Likewise.
14239
14240 2013-09-10  Vladimir Makarov  <vmakarov@redhat.com>
14241
14242         * lra.c (lra): Clear lra_optional_reload_pseudos before every
14243         constraint pass.
14244         * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
14245         Check destination too to check move insn.
14246         (undo_optional_reloads): Add check that the original peudo did not
14247         changed its allocation and the optional reload was inherited on last
14248         inheritance pass.  Break loop after deciding to keep optional reload.
14249         (lra_undo_inheritance): Add check that inherited pseudo still in
14250         memory.
14251
14252 2013-09-10  James Greenhalgh  <james.greenhalgh@arm.com>
14253
14254         * config/aarch64/aarch64.md (generic_sched): New.
14255         * config/aarch64/aarch64-generic.md (load): Make conditional
14256         on generic_sched attribute.
14257         (nonload): Likewise.
14258
14259 2013-09-10  Jan Hubicka  <jh@suse.cz>
14260
14261         * lto-cgraph.c: Include ipa-utils.h.
14262         (compute_ltrans_boundary): Also add possible targets into the boundary.
14263
14264 2013-09-10  Jan Hubicka  <jh@suse.cz>
14265
14266         * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
14267         VAR_DECL of vtable rather than full expression.
14268
14269 2013-09-10  Jan Hubicka  <jh@suse.cz>
14270             Paolo Carlini  <paolo.carlini@oracle.com>
14271
14272         * cgraphunit.c (analyze_functions): Save input_location, set it
14273         to UNKNOWN_LOCATION and restore it at the end.
14274
14275 2013-09-10  Martin Jambor  <mjambor@suse.cz>
14276
14277         * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
14278         represented by a thunk.
14279
14280 2013-09-10  Jeff Law  <law@redhat.com>
14281
14282         PR tree-optimization/58343
14283         * tree-ssa-threadupdate.c (thread_block): Identify and disable
14284         jump threading requests through loop headers buried in the middle
14285         of a jump threading path.
14286
14287         * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
14288         in return value/type.
14289
14290 2013-09-10  Jakub Jelinek  <jakub@redhat.com>
14291
14292         PR rtl-optimization/58365
14293         * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
14294         resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
14295         it differs.
14296
14297 2013-09-10  Richard Biener  <rguenther@suse.de>
14298
14299         * tree-data-ref.h (build_rdg): Drop all parameters but loop.
14300         * tree-data-ref.c (create_rdg_vertices): Collect all data
14301         references, signal failure to the caller, use data-ref API.
14302         (build_rdg): Compute data references only once.  Maintain lifetime
14303         of data references and data dependences from within RDG.
14304         (free_rdg): Free dependence relations.
14305         * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
14306         inventing extra dependences.
14307         (distribute_loop): Update for RDG API changes.
14308
14309 2013-09-10  Kai Tietz  <ktietz@redhat.com>
14310
14311         * doc/invoke.texi (fms-extensions): Document changed
14312         behavior for ms-abi targets.
14313         * config/i386/i386.c (ix86_option_override_internal):
14314         Set default value of option -fms-extension for ms-abi targets.
14315
14316 2013-09-10  Michael Zolotukhin  <michael.v.zolotukhin@gmail.com>
14317
14318         * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
14319
14320 2013-09-10  Alan Modra  <amodra@gmail.com>
14321
14322         PR target/58330
14323         * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
14324
14325 2013-09-10  Alan Modra  <amodra@gmail.com>
14326
14327         * config/rs6000/predicates.md (add_cint_operand): New.
14328         (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
14329         * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
14330         using add_cint_operand.
14331         (largetoc_high_plus_aix): Likewise.
14332
14333 2013-09-09  Jakub Jelinek  <jakub@redhat.com>
14334
14335         PR tree-optimization/58364
14336         * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
14337         BOOLEAN_TYPE, only invert in_p and continue with arg0 if
14338         the current range can't be an unconditional true or false.
14339
14340 2013-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
14341
14342         * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
14343
14344 2013-09-09  Uros Bizjak  <ubizjak@gmail.com>
14345
14346         * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
14347
14348 2013-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
14349
14350         PR c++/43452
14351         * doc/invoke.texi (-Wdelete-incomplete): Document it.
14352
14353 2013-09-09  Ian Bolton  <ian.bolton@arm.com>
14354
14355         * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
14356         NO_REGS for immediate that can't be moved directly into FP_REGS.
14357
14358 2013-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14359
14360         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
14361         comparison with negated operand.
14362         * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
14363         RTL form.
14364
14365 2013-09-09  Richard Biener  <rguenther@suse.de>
14366
14367         PR middle-end/58326
14368         * cfgloopmanip.c (fix_bb_placements): When fixing the placement
14369         of a subloop record all its block as affecting loop-closed SSA form.
14370
14371 2013-09-09  Richard Sandiford  <rdsandiford@googlemail.com>
14372
14373         * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
14374         of an rtx/bitpos pair.
14375         (store_fixed_bit_field): Update accordingly.
14376
14377 2013-09-09  Richard Sandiford  <rdsandiford@googlemail.com>
14378
14379         * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
14380         GEN_INT.
14381         * builtins.c (expand_errno_check): Likewise.
14382         * dwarf2cfi.c (init_return_column_size): Likewise.
14383         * except.c (sjlj_mark_call_sites): Likewise.
14384         * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
14385         * lra-constraints.c (emit_inc): Likewise.
14386         * ree.c (combine_set_extension): Likewise.
14387         * regmove.c (fixup_match_2): Likewise.
14388         * reload1.c (inc_for_reload): Likewise.
14389
14390 2013-09-09  Richard Sandiford  <rdsandiford@googlemail.com>
14391
14392         * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
14393         (force_to_mode, simplify_shift_const_1, simplify_comparison):
14394         Use gen_int_mode with the mode of the associated simplify_* call.
14395         * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
14396         * expmed.c (expand_shift_1): Likewise.
14397         * function.c (instantiate_virtual_regs_in_insn): Likewise.
14398         * loop-iv.c (iv_number_of_iterations): Likewise.
14399         * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
14400         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
14401
14402 2013-09-09  Richard Sandiford  <rdsandiford@googlemail.com>
14403
14404         * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
14405         of the associated expand_* call.
14406         (asan_emit_stack_protection): Likewise.
14407         * builtins.c (round_trampoline_addr): Likewise.
14408         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
14409         * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
14410         (emit_store_flag): Likewise.
14411         * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
14412         (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
14413         Likewise.
14414         * function.c (instantiate_virtual_regs_in_insn): Likewise.
14415         * ifcvt.c (noce_try_store_flag_constants): Likewise.
14416         * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
14417         * modulo-sched.c (generate_prolog_epilog): Likewise.
14418         * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
14419         (expand_ctz, expand_ffs, expand_unop): Likewise.
14420
14421 2013-09-09  Richard Sandiford  <rdsandiford@googlemail.com>
14422
14423         * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
14424         of the associated gen_rtx_* call.
14425         * caller-save.c (init_caller_save): Likewise.
14426         * combine.c (find_split_point, make_extraction): Likewise.
14427         (make_compound_operation): Likewise.
14428         * dwarf2out.c (mem_loc_descriptor): Likewise.
14429         * explow.c (plus_constant, probe_stack_range): Likewise.
14430         * expmed.c (expand_mult_const): Likewise.
14431         * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
14432         * reload1.c (init_reload): Likewise.
14433         * valtrack.c (cleanup_auto_inc_dec): Likewise.
14434         * var-tracking.c (adjust_mems): Likewise.
14435         * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
14436         rather than gen_rtx_fmt_ee.
14437
14438 2013-09-09  Jan Hubicka  <jh@suse.cz>
14439
14440         PR middle-end/58294
14441         * value-prof.c (gimple_ic): Copy also abnormal edges.
14442
14443 2013-09-09  Richard Sandiford  <rdsandiford@googlemail.com>
14444
14445         * asan.c (asan_shadow_cst): Use gen_int_mode.
14446
14447 2013-09-08  Jan Hubicka  <jh@suse.cz>
14448
14449         * ipa-profile.c: Add toplevel comment.
14450         (ipa_propagate_frequency_1): Be more conservative when profile is read.
14451         (contains_hot_call_p): New function.
14452         (ipa_propagate_frequency): Set frequencies based on counts when
14453         profile is read.
14454         * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
14455         profile; do not tamper with profile after inlining if it is read.
14456
14457 2013-09-08  Jan Hubicka  <jh@suse.cz>
14458
14459         * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
14460         speculative edges.
14461
14462 2013-09-08  Jan Hubicka  <jh@suse.cz>
14463
14464         * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
14465         summary generation.
14466
14467 2013-09-08  Jeff Law  <law@redhat.com>
14468
14469         PR bootstrap/58340
14470         * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
14471         of 'found'.
14472
14473 2013-09-08  Andi Kleen  <ak@linux.intel.com>
14474
14475         * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
14476
14477 2013-09-08  Jan Hubicka  <jh@suse.cz>
14478
14479         * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
14480
14481 2013-09-08  Richard Sandiford  <rdsandiford@googlemail.com>
14482
14483         * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
14484         for non-debug insns.
14485         * lra.c (new_insn_reg): Take the containing insn as a parameter.
14486         Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
14487         (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
14488         accordingly.
14489
14490 2013-09-08  Jan Hubicka  <jh@suse.cz>
14491
14492         * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
14493         targets and devirtualize to BUILT_IN_UNREACHABLE.
14494         * timevar.def (TV_IPA_UNREACHABLE): New timevar.
14495         * ipa.c (walk_polymorphic_call_targets): New function.
14496         (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
14497         functions; use the new timevar.
14498         * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
14499         was removed from the program.
14500         (record_binfo): If BINFO corresponds to an anonymous namespace, we may
14501         not consider it in the walk when its vtable is dead.
14502         (possible_polymorphic_call_targets_1): Pass anonymous flag to
14503         record_binfo.
14504         (devirt_variable_node_removal_hook): New function.
14505         (possible_polymorphic_call_targets): Also register
14506         devirt_variable_node_removal_hook.
14507         (ipa_devirt): Do not do non-speculative devirtualization.
14508         (gate_ipa_devirt): One execute if devirtualizing speculatively.
14509
14510 2013-09-08  Jan Hubicka  <jh@suse.cz>
14511
14512         * cgraph.h (varpool_node_hook, varpool_node_hook_list,
14513         varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
14514         varpool_remove_variable_insertion_hook): Declare.
14515         * varpool.c (varpool_node_hook_list): New structure.
14516         (first_varpool_node_removal_hook,
14517         first_varpool_variable_insertion_hook): New variables.
14518         (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
14519         varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
14520         varpool_remove_variable_insertion_hook,
14521         varpool_call_variable_insertion_hooks): New functions.
14522         (varpool_remove_node): Use it.
14523
14524 2013-09-08  Paolo Carlini  <paolo.carlini@oracle.com>
14525
14526         PR c++/54941
14527         * diagnostic.c (diagnostic_build_prefix): When s.file is
14528         "<built-in>" don't output line and column numbers.
14529
14530 2013-09-06  Jan Hubicka  <jh@suse.cz>
14531
14532         * cgraphunit.c (expand_thunk): Get body before touching arguments.
14533         * lto-streamer-out.c: Stream thunks, too.
14534         * lto-streamer-in.c (input_function): Pop cfun here
14535         (lto_read_body): Instead of here.
14536
14537 2013-09-06  Caroline Tice  <cmtice@google.com>
14538
14539         * doc/install.texi: Add documentation for the --enable-vtable-verify
14540         and the --disable-libvtv configure options.
14541
14542 2013-09-06  Jeff Law  <law@redhat.com>
14543
14544         * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
14545         edge implied equivalences into successor phis.
14546
14547 2013-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
14548
14549         * resource.c (mark_referenced_resources): Handle COND_EXEC.
14550
14551 2013-09-06  Claudiu Zissulescu  <claziss@synopsys.com>
14552
14553         * resource.c (mark_target_live_regs): Compute resources taking
14554         into account if a call is predicated or not.
14555
14556 2013-09-06  Eric Botcazou  <ebotcazou@adacore.com>
14557
14558         * toplev.c (output_stack_usage): Be prepared for suffixes created by
14559         the compiler in the function names.
14560
14561 2013-09-06  Jan Hubicka  <jh@suse.cz>
14562
14563         PR middle-end/58094
14564         * ipa-inline.c (has_caller_p): New function.
14565         (want_inline_function_to_all_callers_p): Use it.
14566         (sum_callers, inline_to_all_callers): Break out from ...
14567         (ipa_inline): ... here.
14568
14569 2013-09-06  Jan Hubicka  <jh@suse.cz>
14570
14571         * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
14572         only when AVX is enabled.
14573
14574 2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>
14575
14576         * config/aarch64/aarch64.md
14577         (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
14578         is fpsimd_<load/store>2.
14579         (load_pair<mode>): Likewise.
14580         (store_pair<mode>): Likewise.
14581
14582 2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>
14583
14584         * config/arm/types.md (type): Add "mrs" type.
14585         * config/aarch64/aarch64.md
14586         (aarch64_load_tp_hard): Make type "mrs".
14587         * config/arm/arm.md
14588         (load_tp_hard): Make type "mrs".
14589         * config/arm/cortex-a15.md: Update with new attributes.
14590         * config/arm/cortex-a5.md: Update with new attributes.
14591         * config/arm/cortex-a53.md: Update with new attributes.
14592         * config/arm/cortex-a7.md: Update with new attributes.
14593         * config/arm/cortex-a8.md: Update with new attributes.
14594         * config/arm/cortex-a9.md: Update with new attributes.
14595         * config/arm/cortex-m4.md: Update with new attributes.
14596         * config/arm/cortex-r4.md: Update with new attributes.
14597         * config/arm/fa526.md: Update with new attributes.
14598         * config/arm/fa606te.md: Update with new attributes.
14599         * config/arm/fa626te.md: Update with new attributes.
14600         * config/arm/fa726te.md: Update with new attributes.
14601
14602 2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>
14603
14604         * config/aarch64/aarch64.md
14605         (*movti_aarch64): Use "multiple" for type where v8type is "move2".
14606         (*movtf_aarch64): Likewise.
14607         * config/arm/arm.md
14608         (thumb1_movdi_insn): Use "multiple" for type where more than one
14609         instruction is used for a move.
14610         (*arm32_movhf): Likewise.
14611         (*thumb_movdf_insn): Likewise.
14612
14613 2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>
14614
14615         * config/arm/types.md (type): Rename fcpys to fmov.
14616         * config/arm/vfp.md
14617         (*arm_movsi_vfp): Rename type fcpys as fmov.
14618         (*thumb2_movsi_vfp): Likewise
14619         (*movhf_vfp_neon): Likewise
14620         (*movhf_vfp): Likewise
14621         (*movsf_vfp): Likewise
14622         (*thumb2_movsf_vfp): Likewise
14623         (*movsfcc_vfp): Likewise
14624         (*thumb2_movsfcc_vfp): Likewise
14625         * config/aarch64/aarch64-simd.md
14626         (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
14627         * config/aarch64/aarch64.md
14628         (*movsi_aarch64): Replace type mov_reg with fmovs.
14629         (*movdi_aarch64): Likewise
14630         (*movsf_aarch64): Likewise
14631         (*movdf_aarch64): Likewise
14632         * config/arm/arm.c
14633         (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
14634         * config/arm/iwmmxt.md
14635         (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
14636         * config/arm/arm1020e.md: Update with new attributes.
14637         * config/arm/cortex-a15-neon.md: Update with new attributes.
14638         * config/arm/cortex-a5.md: Update with new attributes.
14639         * config/arm/cortex-a53.md: Update with new attributes.
14640         * config/arm/cortex-a7.md: Update with new attributes.
14641         * config/arm/cortex-a8-neon.md: Update with new attributes.
14642         * config/arm/cortex-a9.md: Update with new attributes.
14643         * config/arm/cortex-m4-fpu.md: Update with new attributes.
14644         * config/arm/cortex-r4f.md: Update with new attributes.
14645         * config/arm/marvell-pj4.md: Update with new attributes.
14646         * config/arm/vfp11.md: Update with new attributes.
14647
14648 2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>
14649
14650         * config/aarch64/aarch64.md
14651         (*madd<mode>): Fix type attribute.
14652         (*maddsi_uxtw): Likewise.
14653         (*msub<mode>): Likewise.
14654         (*msubsi_uxtw): Likewise.
14655         (<su_optab>maddsidi4): Likewise.
14656         (<su_optab>msubsidi4): Likewise.
14657
14658 2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>
14659
14660         * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
14661         * config/arm/arm.md (core_cycles): Remove fdiv.
14662         * config/arm/vfp.md:
14663         (*sqrtsf2_vfp): Update for attribute changes.
14664         (*sqrtdf2_vfp): Likewise.
14665         * config/aarch64/aarch64.md:
14666         (sqrt<mode>2): Update for attribute changes.
14667         * config/arm/arm1020e.md: Update with new attributes.
14668         * config/arm/cortex-a15-neon.md: Update with new attributes.
14669         * config/arm/cortex-a5.md: Update with new attributes.
14670         * config/arm/cortex-a53.md: Update with new attributes.
14671         * config/arm/cortex-a7.md: Update with new attributes.
14672         * config/arm/cortex-a8-neon.md: Update with new attributes.
14673         * config/arm/cortex-a9.md: Update with new attributes.
14674         * config/arm/cortex-m4-fpu.md: Update with new attributes.
14675         * config/arm/cortex-r4f.md: Update with new attributes.
14676         * config/arm/marvell-pj4.md: Update with new attributes.
14677         * config/arm/vfp11.md: Update with new attributes.
14678
14679 2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>
14680
14681         * config/arm/types.md
14682         (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
14683         * config/aarch64/aarch64.md
14684         (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
14685         new attributes.
14686         (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
14687         (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
14688         (float<GPI:mode><GPF:mode>2): Likewise.
14689         * config/arm/vfp.md
14690         (*truncsisf2_vfp): Update with new attributes.
14691         (*truncsidf2_vfp): Likewise.
14692         (fixuns_truncsfsi2): Likewise.
14693         (fixuns_truncdfsi2): Likewise.
14694         (*floatsisf2_vfp): Likewise.
14695         (*floatsidf2_vfp): Likewise.
14696         (floatunssisf2): Likewise.
14697         (floatunssidf2): Likewise.
14698         (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
14699         (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
14700         * config/arm/arm1020e.md: Update with new attributes.
14701         * config/arm/cortex-a15-neon.md: Update with new attributes.
14702         * config/arm/cortex-a5.md: Update with new attributes.
14703         * config/arm/cortex-a53.md: Update with new attributes.
14704         * config/arm/cortex-a7.md: Update with new attributes.
14705         * config/arm/cortex-a8-neon.md: Update with new attributes.
14706         * config/arm/cortex-a9.md: Update with new attributes.
14707         * config/arm/cortex-m4-fpu.md: Update with new attributes.
14708         * config/arm/cortex-r4f.md: Update with new attributes.
14709         * config/arm/marvell-pj4.md: Update with new attributes.
14710         * config/arm/vfp11.md: Update with new attributes.
14711
14712 2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>
14713
14714         * config/aarch64/arm_neon.h
14715         (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
14716         (vqtbx<1,2,3,4><q>_s8): Likewise.
14717
14718 2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>
14719
14720         * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
14721         * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
14722         (add<mode>3): Add type attribute.
14723         (add<mode>3): Likewise.
14724         (usadd<mode>3): Likewise.
14725         (ssadd<mode>3): Likewise.
14726         (sub<mode>3): Likewise.
14727         (sub<mode>3): Likewise.
14728         (ussub<mode>3): Likewise.
14729         (sssub<mode>3): Likewise.
14730         (ssmulsa3): Likewise.
14731         (usmulusa3): Likewise.
14732         (arm_usatsihi): Likewise.
14733         * config/arm/vfp.md
14734         (*movdi_vfp): Add types for all instructions.
14735         (*movdi_vfp_cortexa8): Likewise.
14736         (*movhf_vfp_neon): Likewise.
14737         (*movhf_vfp): Likewise.
14738         (*movdf_vfp): Likewise.
14739         (*thumb2_movdf_vfp): Likewise.
14740         (*thumb2_movdfcc_vfp): Likewise.
14741         * config/arm/arm.md: Add type attribute to all insn patterns.
14742         (*thumb1_adddi3): Add type attribute.
14743         (*arm_adddi3): Likewise.
14744         (*adddi_sesidi_di): Likewise.
14745         (*adddi_zesidi_di): Likewise.
14746         (*thumb1_addsi3): Likewise.
14747         (addsi3_compare0): Likewise.
14748         (*addsi3_compare0_scratch): Likewise.
14749         (*compare_negsi_si): Likewise.
14750         (cmpsi2_addneg): Likewise.
14751         (*addsi3_carryin_<optab>): Likewise.
14752         (*addsi3_carryin_alt2_<optab>): Likewise.
14753         (*addsi3_carryin_clobercc_<optab>): Likewise.
14754         (*subsi3_carryin): Likewise.
14755         (*subsi3_carryin_const): Likewise.
14756         (*subsi3_carryin_compare): Likewise.
14757         (*subsi3_carryin_compare_const): Likewise.
14758         (*arm_subdi3): Likewise.
14759         (*thumb_subdi3): Likewise.
14760         (*subdi_di_zesidi): Likewise.
14761         (*subdi_di_sesidi): Likewise.
14762         (*subdi_zesidi_di): Likewise.
14763         (*subdi_sesidi_di): Likewise.
14764         (*subdi_zesidi_ze): Likewise.
14765         (thumb1_subsi3_insn): Likewise.
14766         (*arm_subsi3_insn): Likewise.
14767         (*anddi3_insn): Likewise.
14768         (*anddi_zesidi_di): Likewise.
14769         (*anddi_sesdi_di): Likewise.
14770         (*ne_zeroextracts): Likewise.
14771         (*ne_zeroextracts): Likewise.
14772         (*ite_ne_zeroextr): Likewise.
14773         (*ite_ne_zeroextr): Likewise.
14774         (*anddi_notdi_di): Likewise.
14775         (*anddi_notzesidi): Likewise.
14776         (*anddi_notsesidi): Likewise.
14777         (andsi_notsi_si): Likewise.
14778         (thumb1_bicsi3): Likewise.
14779         (*iordi3_insn): Likewise.
14780         (*iordi_zesidi_di): Likewise.
14781         (*iordi_sesidi_di): Likewise.
14782         (*thumb1_iorsi3_insn): Likewise.
14783         (*xordi3_insn): Likewise.
14784         (*xordi_zesidi_di): Likewise.
14785         (*xordi_sesidi_di): Likewise.
14786         (*arm_xorsi3): Likewise.
14787         (*andsi_iorsi3_no): Likewise.
14788         (*smax_0): Likewise.
14789         (*smax_m1): Likewise.
14790         (*arm_smax_insn): Likewise.
14791         (*smin_0): Likewise.
14792         (*arm_smin_insn): Likewise.
14793         (*arm_umaxsi3): Likewise.
14794         (*arm_uminsi3): Likewise.
14795         (*minmax_arithsi): Likewise.
14796         (*minmax_arithsi_): Likewise.
14797         (*satsi_<SAT:code>): Likewise.
14798         (arm_ashldi3_1bit): Likewise.
14799         (arm_ashrdi3_1bit): Likewise.
14800         (arm_lshrdi3_1bit): Likewise.
14801         (*arm_negdi2): Likewise.
14802         (*thumb1_negdi2): Likewise.
14803         (*arm_negsi2): Likewise.
14804         (*thumb1_negsi2): Likewise.
14805         (*negdi_extendsid): Likewise.
14806         (*negdi_zero_extend): Likewise.
14807         (*arm_abssi2): Likewise.
14808         (*thumb1_abssi2): Likewise.
14809         (*arm_neg_abssi2): Likewise.
14810         (*thumb1_neg_abss): Likewise.
14811         (one_cmpldi2): Likewise.
14812         (extend<mode>di2): Likewise.
14813         (*compareqi_eq0): Likewise.
14814         (*arm_extendhisi2addsi): Likewise.
14815         (*arm_movdi): Likewise.
14816         (*thumb1_movdi_insn): Likewise.
14817         (*arm_movt): Likewise.
14818         (*thumb1_movsi_insn): Likewise.
14819         (pic_add_dot_plus_four): Likewise.
14820         (pic_add_dot_plus_eight): Likewise.
14821         (tls_load_dot_plus_eight): Likewise.
14822         (*thumb1_movhi_insn): Likewise.
14823         (*thumb1_movsf_insn): Likewise.
14824         (*movdf_soft_insn): Likewise.
14825         (*thumb_movdf_insn): Likewise.
14826         (cbranchsi4_insn): Likewise.
14827         (cbranchsi4_scratch): Likewise.
14828         (*negated_cbranchsi4): Likewise.
14829         (*tbit_cbranch): Likewise.
14830         (*tlobits_cbranch): Likewise.
14831         (*tstsi3_cbranch): Likewise.
14832         (*cbranchne_decr1): Likewise.
14833         (*addsi3_cbranch): Likewise.
14834         (*addsi3_cbranch_scratch): Likewise.
14835         (*arm_cmpdi_insn): Likewise.
14836         (*arm_cmpdi_unsig): Likewise.
14837         (*arm_cmpdi_zero): Likewise.
14838         (*thumb_cmpdi_zero): Likewise.
14839         (*deleted_compare): Likewise.
14840         (*mov_scc): Likewise.
14841         (*mov_negscc): Likewise.
14842         (*mov_notscc): Likewise.
14843         (*cstoresi_eq0_thumb1_insn): Likewise.
14844         (cstoresi_nltu_thumb1): Likewise.
14845         (cstoresi_ltu_thu): Likewise.
14846         (thumb1_addsi3_addgeu): Likewise.
14847         (*arm_jump): Likewise.
14848         (*thumb_jump): Likewise.
14849         (*check_arch2): Likewise.
14850         (arm_casesi_internal): Likewise.
14851         (thumb1_casesi_dispatch): Likewise.
14852         (*arm_indirect_jump): Likewise.
14853         (*thumb1_indirect_jump): Likewise.
14854         (nop): Likewise.
14855         (*and_scc): Likewise.
14856         (*ior_scc): Likewise.
14857         (*compare_scc): Likewise.
14858         (*cond_move): Likewise.
14859         (*cond_arith): Likewise.
14860         (*cond_sub): Likewise.
14861         (*cmp_ite0): Likewise.
14862         (*cmp_ite1): Likewise.
14863         (*cmp_and): Likewise.
14864         (*cmp_ior): Likewise.
14865         (*ior_scc_scc): Likewise.
14866         (*ior_scc_scc_cmp): Likewise.
14867         (*and_scc_scc): Likewise.
14868         (*and_scc_scc_cmp): Likewise.
14869         (*and_scc_scc_nod): Likewise.
14870         (*negscc): Likewise.
14871         (movcond_addsi): Likewise.
14872         (movcond): Likewise.
14873         (*ifcompare_plus_move): Likewise.
14874         (*if_plus_move): Likewise.
14875         (*ifcompare_move_plus): Likewise.
14876         (*if_move_plus): Likewise.
14877         (*ifcompare_arith_arith): Likewise.
14878         (*if_arith_arith): Likewise.
14879         (*ifcompare_arith_move): Likewise.
14880         (*if_arith_move): Likewise.
14881         (*ifcompare_move_arith): Likewise.
14882         (*if_move_arith): Likewise.
14883         (*ifcompare_move_not): Likewise.
14884         (*if_move_not): Likewise.
14885         (*ifcompare_not_move): Likewise.
14886         (*if_not_move): Likewise.
14887         (*ifcompare_shift_move): Likewise.
14888         (*if_shift_move): Likewise.
14889         (*ifcompare_move_shift): Likewise.
14890         (*if_move_shift): Likewise.
14891         (*ifcompare_shift_shift): Likewise.
14892         (*ifcompare_not_arith): Likewise.
14893         (*ifcompare_arith_not): Likewise.
14894         (*if_arith_not): Likewise.
14895         (*ifcompare_neg_move): Likewise.
14896         (*if_neg_move): Likewise.
14897         (*ifcompare_move_neg): Likewise.
14898         (*if_move_neg): Likewise.
14899         (prologue_thumb1_interwork): Likewise.
14900         (*cond_move_not): Likewise.
14901         (*sign_extract_onebit): Likewise.
14902         (*not_signextract_onebit): Likewise.
14903         (stack_tie): Likewise.
14904         (align_4): Likewise.
14905         (align_8): Likewise.
14906         (consttable_end): Likewise.
14907         (consttable_1): Likewise.
14908         (consttable_2): Likewise.
14909         (consttable_4): Likewise.
14910         (consttable_8): Likewise.
14911         (consttable_16): Likewise.
14912         (*thumb1_tablejump): Likewise.
14913         (prefetch): Likewise.
14914         (force_register_use): Likewise.
14915         (thumb_eh_return): Likewise.
14916         (load_tp_hard): Likewise.
14917         (load_tp_soft): Likewise.
14918         (tlscall): Likewise.
14919         (*arm_movtas_ze): Likewise.
14920         (*arm_rev): Likewise.
14921         (*arm_revsh): Likewise.
14922         (*arm_rev16): Likewise.
14923         * config/arm/thumb2.md
14924         (*thumb2_smaxsi3): Likewise.
14925         (*thumb2_sminsi3): Likewise.
14926         (*thumb32_umaxsi3): Likewise.
14927         (*thumb2_uminsi3): Likewise.
14928         (*thumb2_negdi2): Likewise.
14929         (*thumb2_abssi2): Likewise.
14930         (*thumb2_neg_abss): Likewise.
14931         (*thumb2_movsi_insn): Likewise.
14932         (tls_load_dot_plus_four): Likewise.
14933         (*thumb2_movhi_insn): Likewise.
14934         (*thumb2_mov_scc): Likewise.
14935         (*thumb2_mov_negs): Likewise.
14936         (*thumb2_mov_negs): Likewise.
14937         (*thumb2_mov_nots): Likewise.
14938         (*thumb2_mov_nots): Likewise.
14939         (*thumb2_movsicc_): Likewise.
14940         (*thumb2_movsfcc_soft_insn): Likewise.
14941         (*thumb2_indirect_jump): Likewise.
14942         (*thumb2_and_scc): Likewise.
14943         (*thumb2_ior_scc): Likewise.
14944         (*thumb2_ior_scc_strict_it): Likewise.
14945         (*thumb2_cond_move): Likewise.
14946         (*thumb2_cond_arith): Likewise.
14947         (*thumb2_cond_ari): Likewise.
14948         (*thumb2_cond_sub): Likewise.
14949         (*thumb2_negscc): Likewise.
14950         (*thumb2_movcond): Likewise.
14951         (thumb2_casesi_internal): Likewise.
14952         (thumb2_casesi_internal_pic): Likewise.
14953         (*thumb2_alusi3_short): Likewise.
14954         (*thumb2_mov<mode>_shortim): Likewise.
14955         (*thumb2_addsi_short): Likewise.
14956         (*thumb2_subsi_short): Likewise.
14957         (thumb2_addsi3_compare0): Likewise.
14958         (*thumb2_cbz): Likewise.
14959         (*thumb2_cbnz): Likewise.
14960         (*thumb2_one_cmplsi2_short): Likewise.
14961         (*thumb2_negsi2_short): Likewise.
14962         (*orsi_notsi_si): Likewise.
14963         * config/arm/arm1020e.md: Update with new attributes.
14964         * config/arm/arm1026ejs.md: Update with new attributes.
14965         * config/arm/arm1136jfs.md: Update with new attributes.
14966         * config/arm/arm926ejs.md: Update with new attributes.
14967         * config/arm/cortex-a15.md: Update with new attributes.
14968         * config/arm/cortex-a5.md: Update with new attributes.
14969         * config/arm/cortex-a53.md: Update with new attributes.
14970         * config/arm/cortex-a7.md: Update with new attributes.
14971         * config/arm/cortex-a8.md: Update with new attributes.
14972         * config/arm/cortex-a9.md: Update with new attributes.
14973         * config/arm/cortex-m4.md: Update with new attributes.
14974         * config/arm/cortex-r4.md: Update with new attributes.
14975         * config/arm/fa526.md: Update with new attributes.
14976         * config/arm/fa606te.md: Update with new attributes.
14977         * config/arm/fa626te.md: Update with new attributes.
14978         * config/arm/fa726te.md: Update with new attributes.
14979
14980 2013-09-06  James Greenhalgh  <james.greenhalgh@arm.com>
14981
14982         * config/aarch64/aarch64-simd.md
14983         (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
14984         <vwx> iterator to ensure correct register choice.
14985         (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
14986         (aarch64_sqdmull_n<mode>): Likewise.
14987         (aarch64_sqdmull2_n<mode>_internal): Likewise.
14988         * config/aarch64/arm_neon.h
14989         (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
14990         (vml<as><q>_n_<su>16): Likewise.
14991         (vml<as>l_high_lane<q>_<su>16): Likewise.
14992         (vml<as>l_high_n_<su>16): Likewise.
14993         (vml<as>l_lane<q>_<su>16): Likewise.
14994         (vml<as>l_n_<su>16): Likewise.
14995         (vmul<q>_lane<q>_<su>16): Likewise.
14996         (vmul<q>_n_<su>16): Likewise.
14997         (vmull_lane<q>_<su>16): Likewise.
14998         (vmull_n_<su>16): Likewise.
14999         (vmull_high_lane<q>_<su>16): Likewise.
15000         (vmull_high_n_<su>16): Likewise.
15001         (vqrdmulh<q>_n_s16): Likewise.
15002
15003 2013-09-06  Tejas Belagod  <tejas.belagod@arm.com>
15004
15005         * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
15006         have the correct lane parameter.
15007
15008 2013-09-06  Richard Biener <rguenther@suse.de>
15009
15010         * cfganal.c (control_dependences::~control_dependences):
15011         Properly free all of the vector.
15012
15013 2013-09-06  Kirill Yukhin  <kirill.yukhin@intel.com>
15014
15015         PR target/58269
15016         * config/i386/i386.c (ix86_conditional_register_usage):
15017         Proper initialize extended SSE registers.
15018
15019 2013-09-06  Jan Hubicka  <jh@suse.cz>
15020
15021         PR tree-optimization/58311
15022         * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
15023
15024 2013-09-06  Jan Hubicka  <jh@suse.cz>
15025
15026         * Makefile.in (tree-sra.o): Update dependencies.
15027         * tree-sra.c: Include ipa-utils.h
15028         (scan_function): Use recursive_call_p.
15029         (has_caller_p): New function.
15030         (cgraph_for_node_and_aliases): Count also callers of aliases.
15031
15032 2013-09-06  Jan Hubicka  <jh@suse.cz>
15033
15034         PR middle-end/58094
15035         * cgraph.h (symtab_semantically_equivalent_p): Declare.
15036         * tree-tailcall.c: Include ipa-utils.h.
15037         (find_tail_calls): Use it.
15038         * ipa-pure-const.c (check_call): Likewise.
15039         * ipa-utils.c (recursive_call_p): New function.
15040         * ipa-utils.h (recursive_call_p): Dclare.
15041         * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
15042         (symtab_semantically_equivalent_p): New function.
15043         * Makefile.in (tree-tailcall.o): Update dependencies.
15044
15045 2013-09-06  Eric Botcazou  <ebotcazou@adacore.com>
15046
15047         * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
15048         non-inlinable part.
15049
15050 2013-09-06  Richard Biener  <rguenther@suse.de>
15051
15052         * lto-streamer.h (lto_global_var_decls): Remove.
15053         * Makefile.in (OBJS): Remove lto-symtab.o.
15054         (lto-symtab.o): Remove.
15055         (GTFILES): Remove lto-symtab.c
15056         * lto-symtab.c: Move to lto/
15057
15058 2013-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15059
15060         * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
15061         (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
15062         (UNSPEC_FPINT_RINT): New constant definitions.
15063         (FPINT, fpint_name, fpint_roundingmode): New integer iterator
15064         definition with 2 attributes.
15065         ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
15066         ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
15067         definitions.
15068
15069 2013-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15070
15071         * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
15072         ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
15073         Set the mnemonic attribute to "bcr_flush".  Set the "z196prop"
15074         attribute to "z196_alone".
15075         * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
15076         "zEC12_simple".
15077
15078 2013-09-06  Richard Biener  <rguenther@suse.de>
15079
15080         * basic-block.h (class control_dependences): New.
15081         * tree-ssa-dce.c (control_dependence_map): Remove.
15082         (cd): New global.
15083         (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
15084         (set_control_dependence_map_bit, clear_control_dependence_bitmap,
15085         find_pdom, find_control_dependence, find_all_control_dependences):
15086         Move to cfganal.c.
15087         (mark_control_dependent_edges_necessary,
15088         find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
15089         tree_dce_done, perform_tree_ssa_dce): Adjust.
15090         * cfganal.c (set_control_dependence_map_bit,
15091         clear_control_dependence_bitmap, find_pdom, find_control_dependence,
15092         find_all_control_dependences): Move from tree-ssa-dce.c and
15093         implement as methods of control_dependences class.
15094         (control_dependences::control_dependences): New.
15095         (control_dependences::~control_dependences): Likewise.
15096         (control_dependences::get_edges_dependent_on): Likewise.
15097         (control_dependences::get_edge): Likewise.
15098
15099 2013-09-04  Jan Hubicka  <jh@suse.cz>
15100
15101         * tree.c (types_same_for_odr): Drop overactive check.
15102         * ipa-devirt.c (hash_type_name): Likewise.
15103
15104 2013-09-04  Jan Hubicka  <jh@suse.cz>
15105
15106         * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
15107         (analyze_functions): ... here.
15108
15109 2013-09-04  Jan Hubicka  <jh@suse.cz>
15110
15111         PR middle-end/58201
15112         * cgraphunit.c (analyze_functions): Clear AUX fields
15113         after processing; initialize assembler name has.
15114
15115 2013-09-05  Jeff Law  <law@redhat.com>
15116
15117         * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
15118         from thread_around_empty_block.  Record threading path into PATH.
15119         Recurse if threading through the initial block is successful.
15120         (thread_across_edge): Corresponding changes to slightly simplify.
15121
15122 2013-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
15123
15124         * config/aarch64/aarch64.md
15125         (type): Remove frecpe, frecps, frecpx.
15126         (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
15127         fix to be a TARGET_SIMD instruction.
15128         (aarch64_frecps): Remove.
15129         * config/aarch64/aarch64-simd.md
15130         (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
15131         (aarch64_frecps<mode>): Handle all float/vector of float modes.
15132
15133 2013-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
15134             Sofiane Naci  <sofiane.naci@arm.com>
15135
15136         * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
15137         into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
15138         Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
15139         "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
15140         "logic_reg", "logics_reg", "rev".  Expand "arlo_shift" into
15141         "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
15142         "logics_shift_imm".  Expand "arlo_shift_reg" into "alu_shift_reg",
15143         "alus_shift_reg", "logic_shift_reg", "logics_shift_reg".  Expand "clz"
15144         into "clz, "rbit".  Rename "shift" to "shift_imm".
15145         * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
15146         changes.  Update for attribute changes all occurrences of arlo_* and
15147         shift* types.
15148         * config/arm/arm-fixed.md: Update for attribute changes
15149         all occurrences of arlo_* types.
15150         * config/arm/thumb2.md: Update for attribute changes all occurrences
15151         of arlo_* types.
15152         * config/arm/arm.c (xscale_sched_adjust_cost):  (rtx insn, rtx
15153         (cortexa7_older_only): Likewise.
15154         (cortexa7_younger):  Likewise.
15155         * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
15156         (1020alu_shift_op): Likewise.
15157         (1020alu_shift_reg_op): Likewise.
15158         * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
15159         (alu_shift_op): Likewise.
15160         (alu_shift_reg_op): Likewise.
15161         * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
15162         (11_alu_shift_op): Likewise.
15163         (11_alu_shift_reg_op): Likewise.
15164         * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
15165         (9_alu_shift_reg_op): Likewise.
15166         * config/arm/cortex-a15.md (cortex_a15_alu): Update for
15167         attribute changes.
15168         (cortex_a15_alu_shift): Likewise.
15169         (cortex_a15_alu_shift_reg): Likewise.
15170         * config/arm/cortex-a5.md (cortex_a5_alu): Update for
15171         attribute changes.
15172         (cortex_a5_alu_shift): Likewise.
15173         * config/arm/cortex-a53.md (cortex_a53_alu): Update for
15174         attribute changes.
15175         (cortex_a53_alu_shift): Likewise.
15176         * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
15177         attribute changes.
15178         (cortex_a7_alu_reg): Likewise.
15179         (cortex_a7_alu_shift): Likewise.
15180         * config/arm/cortex-a8.md (cortex_a8_alu): Update for
15181         attribute changes.
15182         (cortex_a8_alu_shift): Likewise.
15183         (cortex_a8_alu_shift_reg): Likewise.
15184         * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
15185         (cortex_a9_dp_shift): Likewise.
15186         * config/arm/cortex-m4.md (cortex_m4_alu): Update for
15187         attribute changes.
15188         * config/arm/cortex-r4.md
15189         (cortex_r4_alu): Update for attribute changes.
15190         (cortex_r4_mov): Likewise.
15191         (cortex_r4_alu_shift_reg): Likewise.
15192         * config/arm/fa526.md (526_alu_op): Update for attribute changes.
15193         (526_alu_shift_op): Likewise.
15194         * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
15195         * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
15196         (626te_alu_shift_op): Likewise.
15197         * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
15198         (726te_alu_shift_op): Likewise.
15199         (726te_alu_shift_reg_op): Likewise.
15200         * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
15201         (mp626_alu_shift_op): Likewise.
15202         * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
15203         (pj4_alu_conds): Likewise.
15204         (pj4_shift): Likewise.
15205         (pj4_shift_conds): Likewise.
15206         (pj4_alu_shift): Likewise.
15207         (pj4_alu_shift_conds): Likewise.
15208         * config/aarch64/aarch64.md: Update for attribute change
15209         all occurrences of arlo_* and shift* types.
15210
15211 2013-09-05  Mike Stump  <mikestump@comcast.net>
15212
15213         * tree.h: Move documentation for tree_function_decl to tree-core.h
15214         with the declaration.
15215
15216 2013-09-05  Peter Bergner  <bergner@vnet.ibm.com>
15217
15218         PR target/58139
15219         * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
15220         looking for widest mode.
15221
15222 2013-09-05  Eric Botcazou  <ebotcazou@adacore.com>
15223
15224         * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
15225
15226 2013-09-05  Richard Biener  <rguenther@suse.de>
15227
15228         PR tree-optimization/58137
15229         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
15230         Do not create vectors of pointers.
15231         * tree-vect-loop.c (get_initial_def_for_induction): Use proper
15232         types for the components of the vector initializer.
15233         * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
15234         allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
15235
15236 2013-09-05  Martin Jambor  <mjambor@suse.cz>
15237
15238         * ipa-prop.c (remove_described_reference): Accept missing references,
15239         return false if that hppens, otherwise return true.
15240         (cgraph_node_for_jfunc): New function.
15241         (try_decrement_rdesc_refcount): Likewise.
15242         (try_make_edge_direct_simple_call): Use them.
15243         (ipa_edge_removal_hook): Remove references from rdescs.
15244         (ipa_edge_duplication_hook): Clone rdescs and their references
15245         when the new edge has the same caller as the old one.
15246         * cgraph.c (cgraph_resolve_speculation): Remove speculative
15247         reference before removing any edges.
15248
15249 2013-09-05  Richard Earnshaw  <rearnsha@arm.com>
15250
15251         * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
15252         initial store.
15253         * thumb2.md (thumb2_storewb_parisi): New pattern.
15254
15255 2013-09-05  Yufeng Zhang  <yufeng.zhang@arm.com>
15256
15257         * config/aarch64/aarch64-option-extensions.def: Add
15258         AARCH64_OPT_EXTENSION of 'crc'.
15259         * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
15260         (AARCH64_ISA_CRC): Ditto.
15261         * doc/invoke.texi (-march and -mcpu feature modifiers): Add
15262         description of the CRC extension.
15263
15264 2013-09-05  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15265
15266         * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
15267         * config/rs6000/linux.h: Ditto.
15268         * alpha/linux.h: Ditto.
15269         * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
15270         no_c99_libc_has_function.
15271         * config/c6x/uclinux-elf.h: Ditto.
15272         * config/lm32/uclinux-elf.h: Ditto.
15273         * config/m68k/uclinux.h: Ditto.
15274         * config/moxie/uclinux.h: Ditto.
15275         * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
15276         (crisv32-*-linux*, cris-*-linux*): Ditto.
15277         * config/bfin/bfin.c: Include "tm_p.h".
15278
15279 2013-09-05  Richard Biener  <rguenther@suse.de>
15280
15281         * tree-vect-loop.c (vect_analyze_loop_operations): Properly
15282         check for a definition without a basic-block.
15283
15284 2013-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
15285             Sofiane Naci <sofiane.naci@arm.com>
15286
15287         * config/aarch64/aarch64.md
15288         (*movti_aarch64): Rename r_2_f and f_2_r.
15289         (*movsf_aarch64): Likewise.
15290         (*movdf_aarch64): Likewise.
15291         (*movtf_aarch64): Likewise.
15292         (aarch64_movdi_<mode>low): Likewise.
15293         (aarch64_movdi_<mode>high): Likewise.
15294         (aarch64_mov<mode>high_di): Likewise.
15295         (aarch64_mov<mode>low_di): Likewise.
15296         (aarch64_movtilow_tilow): Likewise.
15297         * config/arm/arm.md (attribute "neon_type"): Delete.  Move attribute
15298         values to config/arm/types.md
15299         (attribute "conds"): Update for attribute change.
15300         (anddi3_insn): Likewise.
15301         (iordi3_insn): Likewise.
15302         (xordi3_insn): Likewise.
15303         (one_cmpldi2): Likewise.
15304         * config/arm/types.md (type): Add Neon types.
15305         * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
15306         use "type" attribute.
15307         (movmisalign<mode>_neon_store): Likewise.
15308         (movmisalign<mode>_neon_load): Likewise.
15309         (vec_set<mode>_internal): Likewise.
15310         (vec_setv2di_internal): Likewise.
15311         (vec_extract<mode>): Likewise.
15312         (vec_extractv2di): Likewise.
15313         (add<mode>3_neon): Likewise.
15314         (adddi3_neon): Likewise.
15315         (sub<mode>3_neon): Likewise.
15316         (subdi3_neon): Likewise.
15317         (mul<mode>3_neon): Likewise.
15318         (mul<mode>3add<mode>_neon): Likewise.
15319         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
15320         (fma<VCVTF:mode>4)): Likewise.
15321         (fma<VCVTF:mode>4_intrinsic): Likewise.
15322         (fmsub<VCVTF:mode>4)): Likewise.
15323         (fmsub<VCVTF:mode>4_intrinsic): Likewise.
15324         (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
15325         (ior<mode>3): Likewise.
15326         (and<mode>3): Likewise.
15327         (anddi3_neon): Likewise.
15328         (orn<mode>3_neon): Likewise.
15329         (orndi3_neon): Likewise.
15330         (bic<mode>3_neon): Likewise.
15331         (bicdi3_neon): Likewise.
15332         (xor<mode>3): Likewise.
15333         (one_cmpl<mode>2): Likewise.
15334         (abs<mode>2): Likewise.
15335         (neg<mode>2): Likewise.
15336         (umin<mode>3_neon): Likewise.
15337         (umax<mode>3_neon): Likewise.
15338         (smin<mode>3_neon): Likewise.
15339         (smax<mode>3_neon): Likewise.
15340         (vashl<mode>3): Likewise.
15341         (vashr<mode>3_imm): Likewise.
15342         (vlshr<mode>3_imm): Likewise.
15343         (ashl<mode>3_signed): Likewise.
15344         (ashl<mode>3_unsigned): Likewise.
15345         (neon_load_count): Likewise.
15346         (ashldi3_neon_noclobber): Likewise.
15347         (signed_shift_di3_neon): Likewise.
15348         (unsigned_shift_di3_neon): Likewise.
15349         (ashrdi3_neon_imm_noclobber): Likewise.
15350         (lshrdi3_neon_imm_noclobber): Likewise.
15351         (widen_ssum<mode>3): Likewise.
15352         (widen_usum<mode>3): Likewise.
15353         (quad_halves_<code>v4si): Likewise.
15354         (quad_halves_<code>v4sf): Likewise.
15355         (quad_halves_<code>v8hi): Likewise.
15356         (quad_halves_<code>v16qi): Likewise.
15357         (reduc_splus_v2di): Likewise.
15358         (neon_vpadd_internal<mode>): Likewise.
15359         (neon_vpsmin<mode>): Likewise.
15360         (neon_vpsmax<mode>): Likewise.
15361         (neon_vpumin<mode>): Likewise.
15362         (neon_vpumax<mode>): Likewise.
15363         (ss_add<mode>_neon): Likewise.
15364         (us_add<mode>_neon): Likewise.
15365         (ss_sub<mode>_neon): Likewise.
15366         (us_sub<mode>_neon): Likewise.
15367         (neon_vadd<mode>_unspec): Likewise.
15368         (neon_vaddl<mode>): Likewise.
15369         (neon_vaddw<mode>): Likewise.
15370         (neon_vhadd<mode>): Likewise.
15371         (neon_vqadd<mode>): Likewise.
15372         (neon_vaddhn<mode>): Likewise.
15373         (neon_vmul<mode>): Likewise.
15374         (neon_vmla<mode>): Likewise.
15375         (neon_vmlal<mode>): Likewise.
15376         (neon_vmls<mode>): Likewise.
15377         (neon_vmlsl<mode>): Likewise.
15378         (neon_vqdmulh<mode>): Likewise.
15379         (neon_vqdmlal<mode>): Likewise.
15380         (neon_vqdmlsl<mode>): Likewise.
15381         (neon_vmull<mode>): Likewise.
15382         (neon_vqdmull<mode>): Likewise.
15383         (neon_vsub<mode>_unspec): Likewise.
15384         (neon_vsubl<mode>): Likewise.
15385         (neon_vsubw<mode>): Likewise.
15386         (neon_vqsub<mode>): Likewise.
15387         (neon_vhsub<mode>): Likewise.
15388         (neon_vsubhn<mode>): Likewise.
15389         (neon_vceq<mode>): Likewise.
15390         (neon_vcge<mode>): Likewise.
15391         (neon_vcgeu<mode>): Likewise.
15392         (neon_vcgt<mode>): Likewise.
15393         (neon_vcgtu<mode>): Likewise.
15394         (neon_vcle<mode>): Likewise.
15395         (neon_vclt<mode>): Likewise.
15396         (neon_vcage<mode>): Likewise.
15397         (neon_vcagt<mode>): Likewise.
15398         (neon_vtst<mode>): Likewise.
15399         (neon_vabd<mode>): Likewise.
15400         (neon_vabdl<mode>): Likewise.
15401         (neon_vaba<mode>): Likewise.
15402         (neon_vabal<mode>): Likewise.
15403         (neon_vmax<mode>): Likewise.
15404         (neon_vmin<mode>): Likewise.
15405         (neon_vpaddl<mode>): Likewise.
15406         (neon_vpadal<mode>): Likewise.
15407         (neon_vpmax<mode>): Likewise.
15408         (neon_vpmin<mode>): Likewise.
15409         (neon_vrecps<mode>): Likewise.
15410         (neon_vrsqrts<mode>): Likewise.
15411         (neon_vqabs<mode>): Likewise.
15412         (neon_vqneg<mode>): Likewise.
15413         (neon_vcls<mode>): Likewise.
15414         (clz<mode>2): Likewise.
15415         (popcount<mode>2): Likewise.
15416         (neon_vrecpe): Likewise.
15417         (neon_vrsqrte): Likewise.
15418         (neon_vget_lane<mode>_sext_internal): Likewise.
15419         (neon_vget_lane<mode>_zext_internal): Likewise.
15420         (neon_vdup_n<mode>): Likewise.
15421         (neon_vdup_nv2di): Likewise.
15422         (neon_vdpu_lane<mode>_internal): Likewise.
15423         (neon_vswp<mode>): Likewise.
15424         (float<mode><V_cvtto>2): Likewise.
15425         (floatuns<mode><V_cvtto>2): Likewise.
15426         (fix_trunc<mode><V_cvtto>)2): Likewise
15427         (fixuns_trunc<mode><V_cvtto)2): Likewise.
15428         (neon_vcvt<mode>): Likewise.
15429         (neon_vcvtv4sfv4hf): Likewise.
15430         (neon_vcvtv4hfv4sf): Likewise.
15431         (neon_vcvt_n<mode>): Likewise.
15432         (neon_vmovn<mode>): Likewise.
15433         (neon_vqmovn<mode>): Likewise.
15434         (neon_vqmovun<mode>): Likewise.
15435         (neon_vmovl<mode>): Likewise.
15436         (neon_vmul_lane<mode>): Likewise.
15437         (neon_vmull_lane<mode>): Likewise.
15438         (neon_vqdmull_lane<mode>): Likewise.
15439         (neon_vqdmulh_lane<mode>): Likewise.
15440         (neon_vmla_lane<mode>): Likewise.
15441         (neon_vmlal_lane<mode>): Likewise.
15442         (neon_vqdmlal_lane<mode>): Likewise.
15443         (neon_vmls_lane<mode>): Likewise.
15444         (neon_vmlsl_lane<mode>): Likewise.
15445         (neon_vqdmlsl_lane<mode>): Likewise.
15446         (neon_vext<mode>): Likewise.
15447         (neon_vrev64<mode>): Likewise.
15448         (neon_vrev32<mode>): Likewise.
15449         (neon_vrev16<mode>): Likewise.
15450         (neon_vbsl<mode>_internal): Likewise.
15451         (neon_vshl<mode>): Likewise.
15452         (neon_vqshl<mode>): Likewise.
15453         (neon_vshr_n<mode>): Likewise.
15454         (neon_vshrn_n<mode>): Likewise.
15455         (neon_vqshrn_n<mode>): Likewise.
15456         (neon_vqshrun_n<mode>): Likewise.
15457         (neon_vshl_n<mode>): Likewise.
15458         (neon_vqshl_n<mode>): Likewise.
15459         (neon_vqshlu_n<mode>): Likewise.
15460         (neon_vshll_n<mode>): Likewise.
15461         (neon_vsra_n<mode>): Likewise.
15462         (neon_vsri_n<mode>): Likewise.
15463         (neon_vsli_n<mode>): Likewise.
15464         (neon_vtbl1v8qi): Likewise.
15465         (neon_vtbl2v8qi): Likewise.
15466         (neon_vtbl3v8qi): Likewise.
15467         (neon_vtbl4v8qi): Likewise.
15468         (neon_vtbx1v8qi): Likewise.
15469         (neon_vtbx2v8qi): Likewise.
15470         (neon_vtbx3v8qi): Likewise.
15471         (neon_vtbx4v8qi): Likewise.
15472         (neon_vtrn<mode>_internal): Likewise.
15473         (neon_vzip<mode>_internal): Likewise.
15474         (neon_vuzp<mode>_internal): Likewise.
15475         (neon_vld1<mode>): Likewise.
15476         (neon_vld1_lane<mode>): Likewise.
15477         (neon_vld1_dup<mode>): Likewise.
15478         (neon_vld1_dupv2di): Likewise.
15479         (neon_vst1<mode>): Likewise.
15480         (neon_vst1_lane<mode>): Likewise.
15481         (neon_vld2<mode>): Likewise.
15482         (neon_vld2_lane<mode>): Likewise.
15483         (neon_vld2_dup<mode>): Likewise.
15484         (neon_vst2<mode>): Likewise.
15485         (neon_vst2_lane<mode>): Likewise.
15486         (neon_vld3<mode>): Likewise.
15487         (neon_vld3qa<mode>): Likewise.
15488         (neon_vld3qb<mode>): Likewise.
15489         (neon_vld3_lane<mode>): Likewise.
15490         (neon_vld3_dup<mode>): Likewise.
15491         (neon_vst3<mode>): Likewise.
15492         (neon_vst3qa<mode>): Likewise.
15493         (neon_vst3qb<mode>): Likewise.
15494         (neon_vst3_lane<mode>): Likewise.
15495         (neon_vld4<mode>): Likewise.
15496         (neon_vld4qa<mode>): Likewise.
15497         (neon_vld4qb<mode>): Likewise.
15498         (neon_vld4_lane<mode>): Likewise.
15499         (neon_vld4_dup<mode>): Likewise.
15500         (neon_vst4<mode>): Likewise.
15501         (neon_vst4qa<mode>): Likewise.
15502         (neon_vst4qb<mode>): Likewise.
15503         (neon_vst4_lane<mode>): Likewise.
15504         (neon_vec_unpack<US>_lo_<mode>): Likewise.
15505         (neon_vec_unpack<US>_hi_<mode>): Likewise.
15506         (neon_vec_<US>mult_lo_<mode>): Likewise.
15507         (neon_vec_<US>mult_hi_<mode>): Likewise.
15508         (neon_vec_<US>shiftl_<mode>): Likewise.
15509         (neon_unpack<US>_<mode>): Likewise.
15510         (neon_vec_<US>mult_<mode>): Likewise.
15511         (vec_pack_trunc_<mode>): Likewise.
15512         (neon_vec_pack_trunk_<mode>): Likewise.
15513         (neon_vabd<mode>_2): Likewise.
15514         (neon_vabd<mode>_3): Likewise.
15515         * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
15516         (thumb2_movsi_vfp): Likewise.
15517         (movdi_vfp): Likewise.
15518         (movdi_vfp_cortexa8): Likewise.
15519         (movhf_vfp_neon): Likewise.
15520         (movhf_vfp): Likewiwse.
15521         (movsf_vfp): Likewiwse.
15522         (thumb2_movsf_vfp): Likewiwse.
15523         (movdf_vfp): Likewise.
15524         (thumb2_movdf_vfp): Likewise.
15525         (movsfcc_vfp): Likewise.
15526         (thumb2_movsfcc_vfp): Likewise.
15527         (movdfcc_vfp): Likewise.
15528         (thumb2_movdfcc_vfp): Likewise.
15529         * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
15530         * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
15531         (v10_v2c): Likewise.
15532         * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
15533         attribute change.
15534         (cortex_a15_neon_int_2): Likewise.
15535         (cortex_a15_neon_int_3): Likewise.
15536         (cortex_a15_neon_int_4): Likewise.
15537         (cortex_a15_neon_int_5): Likewise.
15538         (cortex_a15_neon_vqneg_vqabs): Likewise.
15539         (cortex_a15_neon_vmov): Likewise.
15540         (cortex_a15_neon_vaba): Likewise.
15541         (cortex_a15_neon_vaba_qqq): Likewise.
15542         (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
15543         (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
15544         (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
15545         scalar_64_32_long_scalar): Likewise.
15546         (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
15547         (cortex_a15_neon_mla_qqq_8_16): Likewise.
15548         (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
15549         lotype_qdd_64_32_long): Likewise.
15550         (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
15551         (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
15552         (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
15553         (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
15554         (cortex_a15_neon_shift_1): Likewise.
15555         (cortex_a15_neon_shift_2): Likewise.
15556         (cortex_a15_neon_shift_3): Likewise.
15557         (cortex_a15_neon_vshl_ddd): Likewise.
15558         (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
15559         (cortex_a15_neon_vsra_vrsra): Likewise.
15560         (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
15561         (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
15562         (cortex_a15_neon_fp_vmul_ddd): Likewise.
15563         (cortex_a15_neon_fp_vmul_qqd): Likewise.
15564         (cortex_a15_neon_fp_vmla_ddd): Likewise.
15565         (cortex_a15_neon_fp_vmla_qqq): Likewise.
15566         (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
15567         (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
15568         (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
15569         (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
15570         (cortex_a15_neon_bp_simple): Likewise.
15571         (cortex_a15_neon_bp_2cycle): Likewise.
15572         (cortex_a15_neon_bp_3cycle): Likewise.
15573         (cortex_a15_neon_vld1_1_2_regs): Likewise.
15574         (cortex_a15_neon_vld1_3_4_regs): Likewise.
15575         (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
15576         (cortex_a15_neon_vld2_4_regs): Likewise.
15577         (cortex_a15_neon_vld3_vld4): Likewise.
15578         (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
15579         (cortex_a15_neon_vst1_3_4_regs): Likewise.
15580         (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
15581         (cortex_a15_neon_vst3_vst4): Likewise.
15582         (cortex_a15_neon_vld1_vld2_lane): Likewise.
15583         (cortex_a15_neon_vld3_vld4_lane" 10
15584         (cortex_a15_neon_vst1_vst2_lane): Likewise.
15585         (cortex_a15_neon_vst3_vst4_lane): Likewise.
15586         (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
15587         (cortex_a15_neon_ldm_2): Likewise.0
15588         (cortex_a15_neon_stm_2): Likewise.
15589         (cortex_a15_neon_mcr): Likewise.
15590         (cortex_a15_neon_mcr_2_mcrr): Likewise.
15591         (cortex_a15_neon_mrc): Likewise.
15592         (cortex_a15_neon_mrrc): Likewise.
15593         * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
15594         change.
15595         (cortex_a15_alu_shift): Likewise.
15596         (cortex_a15_alu_shift_reg): Likewise.
15597         (cortex_a15_mult32): Likewise.
15598         (cortex_a15_mult64): Likewise.
15599         (cortex_a15_block): Likewise.
15600         (cortex_a15_branch): Likewise.
15601         (cortex_a15_load1): Likewise.
15602         (cortex_a15_load3): Likewise.
15603         (cortex_a15_store1): Likewise.
15604         (cortex_a15_store3): Likewise.
15605         (cortex_a15_call): Likewise.
15606         * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
15607         (cortex_a5_f2r): Likewise.
15608         * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
15609         change.
15610         (cortex_a53_f2r): Likewise.
15611         * config/arm/cortex-a7.md
15612         (cortex_a7_branch): Update for attribute change.
15613         (cortex_a7_call): Likewise.
15614         (cortex_a7_alu_imm): Likewise.
15615         (cortex_a7_alu_reg): Likewise.
15616         (cortex_a7_alu_shift): Likewise.
15617         (cortex_a7_mul): Likewise.
15618         (cortex_a7_load1): Likewise.
15619         (cortex_a7_store1): Likewise.
15620         (cortex_a7_load2): Likewise.
15621         (cortex_a7_store2): Likewise.
15622         (cortex_a7_load3): Likewise.
15623         (cortex_a7_store3): Likewise.
15624         (cortex_a7_load4): Likewise.
15625         (cortex_a7_store4): Likewise.
15626         (cortex_a7_fpalu): Likewise.
15627         (cortex_a7_fconst): Likewise.
15628         (cortex_a7_fpmuls): Likewise.
15629         (cortex_a7_neon_mul): Likewise.
15630         (cortex_a7_fpmacs): Likewise.
15631         (cortex_a7_neon_mla: Likewise.
15632         (cortex_a7_fpmuld: Likewise.
15633         (cortex_a7_fpmacd: Likewise.
15634         (cortex_a7_fpfmad: Likewise.
15635         (cortex_a7_fdivs: Likewise.
15636         (cortex_a7_fdivd: Likewise.
15637         (cortex_a7_r2f: Likewise.
15638         (cortex_a7_f2r: Likewise.
15639         (cortex_a7_f_flags: Likewise.
15640         (cortex_a7_f_loads: Likewise.
15641         (cortex_a7_f_loadd: Likewise.
15642         (cortex_a7_f_stores: Likewise.
15643         (cortex_a7_f_stored: Likewise.
15644         (cortex_a7_neon): Likewise.
15645         * config/arm/cortex-a8-neon.md
15646         (cortex_a8_neon_mrc): Update for attribute change.
15647         (cortex_a8_neon_mrrc): Likewise.
15648         (cortex_a8_neon_int_1): Likewise.
15649         (cortex_a8_neon_int_2): Likewise.
15650         (cortex_a8_neon_int_3): Likewise.
15651         (cortex_a8_neon_int_4): Likewise.
15652         (cortex_a8_neon_int_5): Likewise.
15653         (cortex_a8_neon_vqneg_vqabs): Likewise.
15654         (cortex_a8_neon_vmov): Likewise.
15655         (cortex_a8_neon_vaba): Likewise.
15656         (cortex_a8_neon_vaba_qqq): Likewise.
15657         (cortex_a8_neon_vsma): Likewise.
15658         (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
15659         (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
15660         (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
15661         long_scalar): Likewise.
15662         (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
15663         (cortex_a8_neon_mla_qqq_8_16): Likewise.
15664         (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
15665         long_scalar_qdd_64_32_long): Likewise.
15666         (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
15667         (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
15668         (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
15669         (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
15670         (cortex_a8_neon_shift_1): Likewise.
15671         (cortex_a8_neon_shift_2): Likewise.
15672         (cortex_a8_neon_shift_3): Likewise.
15673         (cortex_a8_neon_vshl_ddd): Likewise.
15674         (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
15675         (cortex_a8_neon_vsra_vrsra): Likewise.
15676         (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
15677         (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
15678         (cortex_a8_neon_fp_vsum): Likewise.
15679         (cortex_a8_neon_fp_vmul_ddd): Likewise.
15680         (cortex_a8_neon_fp_vmul_qqd): Likewise.
15681         (cortex_a8_neon_fp_vmla_ddd): Likewise.
15682         (cortex_a8_neon_fp_vmla_qqq): Likewise.
15683         (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
15684         (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
15685         (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
15686         (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
15687         (cortex_a8_neon_bp_simple): Likewise.
15688         (cortex_a8_neon_bp_2cycle): Likewise.
15689         (cortex_a8_neon_bp_3cycle): Likewise.
15690         (cortex_a8_neon_ldr): Likewise.
15691         (cortex_a8_neon_str): Likewise.
15692         (cortex_a8_neon_vld1_1_2_regs): Likewise.
15693         (cortex_a8_neon_vld1_3_4_regs): Likewise.
15694         (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
15695         (cortex_a8_neon_vld2_4_regs): Likewise.
15696         (cortex_a8_neon_vld3_vld4): Likewise.
15697         (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
15698         (cortex_a8_neon_vst1_3_4_regs): Likewise.
15699         (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
15700         (cortex_a8_neon_vst3_vst4): Likewise.
15701         (cortex_a8_neon_vld1_vld2_lane): Likewise.
15702         (cortex_a8_neon_vld3_vld4_lane): Likewise.
15703         (cortex_a8_neon_vst1_vst2_lane): Likewise.
15704         (cortex_a8_neon_vst3_vst4_lane): Likewise.
15705         (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
15706         (cortex_a8_neon_mcr): Likewise.
15707         (cortex_a8_neon_mcr_2_mcrr): Likewise.
15708         * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
15709         * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
15710         change.
15711         (ca9_neon_mrrc): Likewise.
15712         (cortex_a9_neon_int_1): Likewise.
15713         (cortex_a9_neon_int_2): Likewise.
15714         (cortex_a9_neon_int_3): Likewise.
15715         (cortex_a9_neon_int_4): Likewise.
15716         (cortex_a9_neon_int_5): Likewise.
15717         (cortex_a9_neon_vqneg_vqabs): Likewise.
15718         (cortex_a9_neon_vmov): Likewise.
15719         (cortex_a9_neon_vaba): Likewise.
15720         (cortex_a9_neon_vaba_qqq): Likewise.
15721         (cortex_a9_neon_vsma): Likewise.
15722         (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
15723         (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
15724         (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
15725         long_scalar): Likewise.
15726         (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
15727         (cortex_a9_neon_mla_qqq_8_16): Likewise.
15728         (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
15729         long_scalar_qdd_64_32_long): Likewise.
15730         (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
15731         (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
15732         (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
15733         (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
15734         (cortex_a9_neon_shift_1): Likewise.
15735         (cortex_a9_neon_shift_2): Likewise.
15736         (cortex_a9_neon_shift_3): Likewise.
15737         (cortex_a9_neon_vshl_ddd): Likewise.
15738         (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
15739         (cortex_a9_neon_vsra_vrsra): Likewise.
15740         (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
15741         (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
15742         (cortex_a9_neon_fp_vsum): Likewise.
15743         (cortex_a9_neon_fp_vmul_ddd): Likewise.
15744         (cortex_a9_neon_fp_vmul_qqd): Likewise.
15745         (cortex_a9_neon_fp_vmla_ddd): Likewise.
15746         (cortex_a9_neon_fp_vmla_qqq): Likewise.
15747         (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
15748         (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
15749         (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
15750         (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
15751         (cortex_a9_neon_bp_simple): Likewise.
15752         (cortex_a9_neon_bp_2cycle): Likewise.
15753         (cortex_a9_neon_bp_3cycle): Likewise.
15754         (cortex_a9_neon_ldr): Likewise.
15755         (cortex_a9_neon_str): Likewise.
15756         (cortex_a9_neon_vld1_1_2_regs): Likewise.
15757         (cortex_a9_neon_vld1_3_4_regs): Likewise.
15758         (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
15759         (cortex_a9_neon_vld2_4_regs): Likewise.
15760         (cortex_a9_neon_vld3_vld4): Likewise.
15761         (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
15762         (cortex_a9_neon_vst1_3_4_regs): Likewise.
15763         (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
15764         (cortex_a9_neon_vst3_vst4): Likewise.
15765         (cortex_a9_neon_vld1_vld2_lane): Likewise.
15766         (cortex_a9_neon_vld3_vld4_lane): Likewise.
15767         (cortex_a9_neon_vst1_vst2_lane): Likewise.
15768         (cortex_a9_neon_vst3_vst4_lane): Likewise.
15769         (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
15770         (cortex_a9_neon_mcr): Likewise.
15771         (cortex_a9_neon_mcr_2_mcrr): Likewise.
15772         * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
15773         (cortex_a9_fps): Likewise.
15774         * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
15775         change.
15776         (cortex_m4_fmuls): Likewise.
15777         * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
15778         change.
15779         (cortex_r4_mrc): Likewise.
15780         * config/arm/iterators.md: Update comment referring to neon_type.
15781         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
15782         (iwmmxt_movsi_insn): Likewise.
15783         * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
15784         attribute change.
15785         (pj4_core_to_vfp): Likewise.
15786         * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
15787         attribute change.
15788         * config/arm/vfp11.md (vfp_fload): Update for attribute change.
15789         (vfp_fstore): Likewise.
15790         * doc/md.texi: Change references to neon_type to refer to type.
15791
15792 2013-09-04  Dodji Seketeli  <dodji@redhat.com>
15793
15794         * tree.h (DECL_BUILT_IN): Fix typo in comment.
15795
15796 2013-09-04  David Edelsohn  <dje.gcc@gmail.com>
15797
15798         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
15799         lglobl if not weak.
15800
15801 2013-09-04  Easwaran Raman  <eraman@google.com>
15802
15803         PR middle-end/57370
15804         * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
15805         (build_and_add_sum): Use it.
15806         (appears_later_in_bb): Simplify code.
15807
15808 2013-09-04  Teresa Johnson  <tejohnson@google.com>
15809
15810         * dumpfile.c (dump_finish): Don't close stderr/stdout.
15811
15812 2013-09-04  James Greenhalgh  <james.greenhalgh@arm.com>
15813
15814         * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
15815
15816 2013-09-04  Jan Hubicka  <jh@suse.cz>
15817
15818         * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
15819         * ipa-devirt.c: Include diganostic.h
15820         (odr_type_d): Add types and types_set.
15821         (hash_type_name): Work for types with vtables during LTO.
15822         (odr_hasher::remove): Fix comment; destroy types_set.
15823         (add_type_duplicate): New function,
15824         (get_odr_type): Use it.
15825         (dump_type_inheritance_graph): Dump type duplicates.
15826         * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
15827         graph.
15828         * tree.c (types_same_for_odr): Give exact answers on types with
15829         virtual tables.
15830
15831 2013-09-04  Dodji Seketeli  <dodji@redhat.com>
15832
15833         * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
15834         explaining their differences.
15835
15836 2013-09-04  Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
15837
15838         * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
15839
15840 2013-09-03  Jeff Law  <law@redhat.com>
15841
15842         * tree-ssa-threadedge.c (thread_across_edge): Record entire path
15843         when not threading through a joiner block.  Pass joiner/no joiner
15844         state to register_jump_thread.
15845         * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
15846         state from argument rather than implying on path length.
15847         Dump the entire jump thread path into debugging dump.
15848         * tree-flow.h (register_jump_thread): Update prototype.
15849
15850 2013-08-29  Xinliang David Li  <davidxl@google.com>
15851
15852         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
15853         Remove a trivial gcc_assert.
15854
15855 2013-08-29  Xinliang David Li  <davidxl@google.com>
15856
15857         * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
15858         * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
15859         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
15860         Delay base decl alignment adjustment.
15861         * tree-vectorizer.c (vect_destroy_datarefs): New function.
15862         * tree-vectorizer.h: New data structure.
15863         (set_dr_misalignment): New function.
15864         (dr_misalignment): Ditto.
15865         * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
15866         (vectorizable_load): Ditto.
15867         (ensure_base_align): New function.
15868         (vectorize_loops): Add dbg_cnt support.
15869         (execute_vect_slp): Ditto.
15870         * dbgcnt.def: New debug counter.
15871         * Makefile: New dependency.
15872
15873 2013-09-03  Meador Inge  <meadori@codesourcery.com>
15874
15875         Revert:
15876
15877         2013-08-30  Meador Inge  <meadori@codesourcery.com>
15878
15879         * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
15880
15881 2013-09-03  David Edelsohn  <dje.gcc@gmail.com>
15882
15883         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
15884         function descriptor.
15885
15886 2013-09-03  Richard Biener  <rguenther@suse.de>
15887
15888         * tree-affine.c (add_elt_to_tree): Fix association issue,
15889         avoid useless converts and make sure to always return a
15890         properly typed result.
15891
15892 2013-09-03  Richard Biener  <rguenther@suse.de>
15893
15894         PR middle-end/57656
15895         * fold-const.c (negate_expr_p): Fix division case.
15896         (negate_expr): Likewise.
15897
15898 2013-09-03  Richard Biener  <rguenther@suse.de>
15899
15900         PR lto/58285
15901         * tree-streamer-out.c: Include tm.h.
15902         * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
15903
15904 2013-09-03  Jan Hubicka  <jh@suse.cz>
15905
15906         * tree-profile.c (tree_profiling): Cleanup CFG when done.
15907
15908 2013-09-03  Alan Modra  <amodra@gmail.com>
15909
15910         * config.gcc (powerpc*-*-linux*): Add support for little-endian
15911         multilibs to big-endian target and vice versa.
15912         * config/rs6000/t-linux64: Use := assignment on all vars.
15913         (MULTILIB_EXTRA_OPTS): Remove fPIC.
15914         (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
15915         * config/rs6000/t-linux64le: New file.
15916         * config/rs6000/t-linux64bele: New file.
15917         * config/rs6000/t-linux64lebe: New file.
15918
15919 2013-09-02  Jan Hubicka  <jh@suse.cz>
15920
15921         * ipa-inline-transform.c (inline_transform): Do not
15922         optimize_inline_calls when not optimizing.
15923
15924 2013-09-02  Jan Hubicka  <jh@suse.cz>
15925
15926         * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
15927         duplicated nodes for assembler names.
15928         * symtab.c (symtab_unregister_node): Do not attempt to unlink
15929         hard registers from assembler name hash.
15930
15931 2013-09-02  Jan Hubicka  <jh@suse.cz>
15932
15933         * ipa-split.c (execute_split_functions): Split externally visible
15934         functions called once.
15935
15936 2013-09-02  Martin Jambor  <mjambor@suse.cz>
15937
15938         PR ipa/58106
15939         * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
15940         linked list.  When finding the correct duplicate, also consider also
15941         the caller in additon to its inlined_to node.
15942
15943 2013-09-02  James Greenhalgh  <james.greenhalgh@arm.com>
15944
15945         * config/aarch64/aarch64-simd-builtins.def
15946         (dup_lane_scalar): Remove.
15947         * config/aarch64/aarch64-simd.md
15948         (aarch64_simd_dup): Add 'w->w' alternative.
15949         (aarch64_dup_lane<mode>): Allow for VALL.
15950         (aarch64_dup_lane_scalar<mode>): Remove.
15951         (aarch64_dup_lane_<vswap_width_name><mode>): New.
15952         (aarch64_get_lane_signed<mode>): Add w->w altenative.
15953         (aarch64_get_lane_unsigned<mode>): Likewise.
15954         (aarch64_get_lane<mode>): Likewise.
15955         * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
15956         (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
15957         * config/aarch64/iterators.md (VSWAP_WIDTH): New.
15958         (VCON): Change container of V2SF.
15959         (vswap_width_name): Likewise.
15960         * config/aarch64/arm_neon.h
15961         (__aarch64_vdup_lane_any): New.
15962         (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
15963         (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
15964         (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
15965
15966 2013-09-02  Eric Botcazou  <ebotcazou@adacore.com>
15967
15968         PR middle-end/56382
15969         * expr.c (emit_move_complex): Do not move complex FP values as parts if
15970         the source or the destination is a single hard register.
15971
15972 2013-09-02  Richard Biener  <rguenther@suse.de>
15973
15974         PR middle-end/57511
15975         * tree-scalar-evolution.c (instantiate_scev_name): Allow
15976         non-linear SCEVs.
15977
15978 2013-09-02  Richard Biener  <rguenther@suse.de>
15979
15980         * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
15981         arithmetic to sizetype.
15982
15983 2013-09-02  Bin Cheng  <bin.cheng@arm.com>
15984
15985         * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
15986         Find auto-increment use both before and after candidate.
15987
15988 2013-09-02  Marek Polacek  <polacek@redhat.com>
15989
15990         * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
15991
15992 2013-09-01  Jan Hubicka  <jh@suse.cz>
15993
15994         * Makefile.in: Add ipa-profile.o
15995         (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
15996         * cgraph.c (struct cgraph_propagate_frequency_data,
15997         cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
15998         ipa-profile.c; replace cgraph_ by ipa_ prefix.
15999         * cgraph.h (cgraph_propagate_frequency): Remove.
16000         * ipa-inline-analysis.c: Include ipa-utils.h;
16001         drop duplicated cfgloop.h.
16002         (inline_update_callee_summaries): Update.
16003         * ipa-profile.c: New file.
16004         * ipa-utils.h (ipa_propagate_frequency): Declare.
16005         * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
16006         data-streamer.h, value-prof.h.
16007         (symtab_remove_unreachable_nodes): Update profile.
16008         (struct histogram_entry, histogram, histogram_pool, histogram_hash,
16009         account_time_size, cmp_counts, dump_histogram,
16010         ipa_profile_generate_summary, ipa_profile_write_summary,
16011         ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
16012         pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
16013         Move to ipa-profile.c.
16014
16015 2013-09-01  John David Anglin  <danglin@gcc.gnu.org>
16016
16017         * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
16018
16019 2013-09-01  Jan Hubicka  <jh@suse.cz>
16020
16021         * common.opt (fdevirtualize-speculatively): New function.
16022         * invoke.texi (fdevirtualize-speculatively): Document.
16023         * ipa-devirt.c: Include ipa-inline.h
16024         (likely_target_p): New function.
16025         (ipa_devirt): New function.
16026         (gate_ipa_devirt): New function.
16027         (pass_data_ipa_devirt): New static var.
16028         (pass_ipa_devirt): Likewise.
16029         (make_pass_ipa_devirt): New function.
16030         * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
16031         (common_handle_option): Disable devirtualization when
16032         value range profiling is available.
16033         * passes.def (pass_ipa_devirt): Add.
16034         * timever.def (TV_IPA_DEVIRT): New timevar.
16035         * tree-pass.h (make_pass_ipa_devirt):
16036
16037 2013-09-01  Iain Sandoe  <iain@codesourcery.com>
16038
16039         * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
16040         include sanitize(undefined).
16041
16042 2013-08-31  Diego Novillo  <dnovillo@google.com>
16043
16044         * Makefile.in (TREE_CORE_H): Define.
16045         (TREE_H): Use.
16046         (GTFILES): Add tree-core.h.
16047         * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
16048         size the array.
16049         * tree-core.h: New file.
16050         Move all data structures, enum, typedefs, global
16051         declarations and constants from ...
16052         * tree.h: ... here.
16053
16054 2013-08-31  Jan Hubicka  <jh@suse.cz>
16055
16056         * bulitins.c (expand_builtin): Do not early exit for gcov
16057         instrumented functions.
16058
16059 2013-08-31  Marek Polacek  <polacek@redhat.com>
16060
16061         * ubsan.c: Include tm_p.h.
16062
16063 2013-08-31  Jan Hubicka  <jh@suse.cz>
16064
16065         * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
16066         warning.
16067
16068         * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
16069         * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
16070         * tree-cfg.c (verify_gimple_label): ... here.
16071         * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
16072         (ipa_merge_profiles): New function.
16073         * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
16074         (lto_input_function_body): Likewise.
16075         * ipa-utils.h (ipa_merge_profiles): Declare.
16076         * lto-streamer.h (lto_input_function_body): Update prototype.
16077         (emit_label_in_global_context_p): Remove.
16078         * lto-symtab.c: Include ipa-utils.h
16079         (lto_cgraph_replace_node): Use ipa_merge_profiles.
16080
16081 2013-08-31  Jan Hubicka  <jh@suse.cz>
16082
16083         * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
16084
16085 2013-08-31  Jan Hubicka  <jh@suse.cz>
16086
16087         * basic-block.h (apply_scale): Make scale parmeter gcov_type.
16088
16089 2013-08-31  Uros Bizjak  <ubizjak@gmail.com>
16090
16091         * config/alpha/alpha.c (alpha_emit_conditional_move): Update
16092         "cmp" RTX before signed_comparison_operator check to account
16093         for "code" changes.
16094
16095 2013-08-30  Jan Hubicka  <jh@suse.cz>
16096
16097         * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
16098         (detect_type_change_1): Rename to ...
16099         (detect_type_change): ... this one; early return on non-polymorphic
16100         types.
16101         (detect_type_change_ssa): Add comp_type parameter; update
16102         use of detect_type_change.
16103         (compute_complex_assign_jump_func): Add param_type parameter;
16104         update use of detect_type_change_ssa.
16105         (compute_complex_ancestor_jump_func): Likewise.
16106         (ipa_get_callee_param_type): New function.
16107         (ipa_compute_jump_functions_for_edge): Compute parameter type;
16108         update calls to the jump function computation functions.
16109
16110 2013-08-30  Teresa Johnson  <tejohnson@google.com>
16111             Steven Bosscher  <steven@gcc.gnu.org>
16112
16113         * cfgrtl.c (fixup_new_cold_bb): New routine.
16114         (commit_edge_insertions): Invoke fixup_partitions.
16115         (find_partition_fixes): New routine.
16116         (fixup_partitions): Ditto.
16117         (verify_hot_cold_block_grouping): Update comments.
16118         (rtl_verify_edges): Invoke find_partition_fixes.
16119         (rtl_verify_bb_pointers): Update comments.
16120         (rtl_verify_bb_layout): Ditto.
16121         * basic-block.h (probably_never_executed_edge_p): Declare.
16122         (fixup_partitions): Ditto.
16123         * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
16124         * bb-reorder.c (sanitize_hot_paths): New function.
16125         (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
16126         sanitize_hot_paths.
16127         * predict.c (probably_never_executed_edge_p): New routine.
16128         * cfg.c (check_bb_profile): Add partition insanity warnings.
16129
16130 2013-08-30  Meador Inge  <meadori@codesourcery.com>
16131
16132         * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
16133
16134 2013-08-30  Marek Polacek  <polacek@redhat.com>
16135
16136         * Makefile.in (ubsan.o): Add.
16137         (c-family/c-ubsan.o): Add.
16138         (builtins.o): Add ubsan.h dependency.
16139         * ubsan.h: New file.
16140         * ubsan.c: New file.
16141         * common.opt: Add -fsanitize=undefined option.
16142         (flag_sanitize): Add variable.
16143         (fsanitize=): Add option.  Add Driver.
16144         (fsanitize=thread): Remove option.
16145         (fsanitize=address): Likewise.
16146         (static-libubsan): New option.
16147         * doc/invoke.texi: Document the new flag and -static-libubsan.
16148         * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
16149         (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
16150         * builtin-attrs.def (ATTR_COLD): Define.
16151         (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
16152         * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
16153         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
16154         * flag-types.h (sanitize_code): New enum.
16155         * opts.c (common_handle_option): Parse command line arguments
16156         of -fsanitize=.  Add -fsanitize=unreachable option.
16157         * varasm.c (get_variable_section): Adjust.
16158         (assemble_noswitch_variable): Likewise.
16159         (assemble_variable): Likewise.
16160         (output_constant_def_contents): Likewise.
16161         (categorize_decl_for_section): Likewise.
16162         (place_block_symbol): Likewise.
16163         (output_object_block): Likewise.
16164         * builtins.def: Likewise.
16165         * toplev.c (compile_file): Likewise.
16166         (process_options): Likewise.
16167         * cppbuiltin.c: Likewise.
16168         * tsan.c (tsan_pass): Likewise.
16169         (tsan_gate): Likewise.
16170         (tsan_gate_O0): Likewise.
16171         * cfgexpand.c (partition_stack_vars): Likewise.
16172         (expand_stack_vars): Likewise.
16173         (defer_stack_allocation): Likewise.
16174         (expand_used_vars): Likewise.
16175         * cfgcleanup.c (old_insns_match_p): Likewise.
16176         * asan.c (asan_finish_file): Likewise.
16177         (asan_instrument): Likewise.
16178         (gate_asan): Likewise.
16179         (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
16180         (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
16181         (asan_global_struct): Use pointer_sized_int_node instead
16182         calling build_nonstandard_integer_type.
16183         (initialize_sanitizer_builtins): Likewise.
16184         (asan_finish_file): Likewise.
16185         * gcc.c: Document %{%:function(args):X}.
16186         (static_spec_functions): Add sanitize.
16187         (handle_spec_function): Add retval_nonnull argument and if non-NULL,
16188         store funcval != NULL there.
16189         (do_spec_1): Adjust handle_spec_function caller.
16190         (handle_braces): Allow %:function(args) as condition.
16191         (sanitize_spec_function): New function.
16192         (ADD_STATIC_LIBUBSAN_LIBS): Define.
16193         (LIBUBSAN_SPEC): Likewise.
16194         (LIBUBSAN_EARLY_SPEC): Likewise.
16195         (SANITIZER_SPEC): Handle libubsan.
16196         (SANITIZER_EARLY_SPEC): Likewise.
16197         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
16198         instead of fsanitize=address.
16199         * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
16200         instead of fsanitize=address*.
16201         * builtins.c: Include ubsan.h.
16202         (fold_builtin_0): Instrument __builtin_unreachable.
16203         * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
16204         instead of flag_asan.
16205         * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
16206         (pointer_sized_int_node): Define.
16207         * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
16208
16209 2013-08-30  Mike Stump  <mikestump@comcast.net>
16210
16211         * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
16212         with RE patterns.
16213
16214 2013-08-29  Jan Hubicka  <jh@suse.cz>
16215
16216         * cgraph.c (cgraph_function_body_availability): Handle weakref
16217         correctly.
16218         * passes.def: Remove pass_fixup_cfg.
16219         * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
16220         track when we need to remove functions.
16221         (gate_ipa_inline): Execute inlining always; add comment why.
16222         (pass_data_ipa_inline): Remove TODO_remove_functions.
16223         * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
16224         do not produce summaries.
16225         * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
16226         (symtab_nonoverwritable_alias): Assert we are not called on weakref.
16227         * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
16228         constant pool and vtable.
16229
16230 2013-08-30  Tejas Belagod  <tejas.belagod@arm.com>
16231
16232         * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
16233         New arm_neon.h's internal macros to specify 64-bit constants.
16234         Avoid using stdint.h's macros.
16235
16236 2013-08-30  Joern Rennecke  <joern.rennecke@embecosm.com>
16237
16238         * recog.c (verify_changes): Verify that changes[i].old is non-zero
16239         before applying REG_P.
16240
16241 2013-08-30  Jakub Jelinek  <jakub@redhat.com>
16242
16243         PR tree-optimization/58277
16244         * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
16245         after seeing too many stmts with vdef in between dombb and current
16246         bb, invalidate everything.
16247
16248 2013-08-30  Richard Biener  <rguenther@suse.de>
16249
16250         * fold-const.c (fold_single_bit_test): Fix overflow test.
16251
16252 2013-08-30  Eric Botcazou  <ebotcazou@adacore.com>
16253
16254         * function.c (assign_parm_setup_reg): For a parameter passed by pointer
16255         and which can live in a register, always retrieve the value on entry.
16256         * var-tracking.c (add_stores): Treat the copy on entry for a parameter
16257         passed by invisible reference specially.
16258         (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
16259         (vt_add_function_parameter): Correctly deal with a parameter passed by
16260         invisible reference.
16261
16262 2013-08-30  Jan Hubicka  <jh@suse.cz>
16263
16264         * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
16265
16266 2013-08-30  Richard Biener  <rguenther@suse.de>
16267
16268         PR tree-optimization/58228
16269         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
16270         allow invariant loads in nested loop vectorization.
16271
16272 2013-08-30  Richard Biener  <rguenther@suse.de>
16273
16274         PR tree-optimization/58223
16275         * tree-loop-distribution.c (has_anti_dependence): Rename to ...
16276         (has_anti_or_output_dependence): ... this and adjust to also
16277         look for output dependences.
16278         (mark_nodes_having_upstream_mem_writes): Adjust.
16279         (rdg_flag_uses): Likewise.
16280
16281 2013-08-30  Richard Biener  <rguenther@suse.de>
16282
16283         PR tree-optimization/58010
16284         * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
16285         assert that we have a loop-closed PHI.
16286
16287 2013-08-29  Jan Hubicka  <jh@suse.cz>
16288
16289         * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
16290         * cgraph.c (cgraph_release_function_body): Free decl_in_state.
16291         * lto-section-in.c (lto_free_function_in_decl_state): New function.
16292         (lto_free_function_in_decl_state_for_node): New function.
16293
16294 2013-08-29  Xinliang David Li  <davidxl@google.com>
16295
16296         * loop-unroll.c (report_unroll_peel): Minor message change.
16297         * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
16298         Emit alignment peeling message with default -fopt-info.
16299         (vect_loop_versioning): Emit loop version info message.
16300         * tree-vectorizer.c (vectorize_loops): Minor message change.
16301         (execute_vect_slp): Ditto.
16302
16303 2013-08-29  Eric Botcazou  <ebotcazou@adacore.com>
16304
16305         * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
16306         of the clone from the DECL_NAME of the original function.
16307
16308 2013-08-29  Oleg Endo  <olegendo@gcc.gnu.org>
16309
16310         * passes.c (register_pass): Add overload.
16311         * tree-pass.h (register_pass): Forward declare it.  Add comment.
16312
16313 2013-08-29  Jan Hubicka  <jh@suse.cz>
16314
16315         * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
16316         DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
16317         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
16318         DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
16319         (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
16320         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
16321         Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
16322         (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
16323
16324 2013-08-29  Teresa Johnson  <tejohnson@google.com>
16325
16326         * dumpfile.c (dump_loc): Output column number.
16327         * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
16328         * doc/invoke.texi: Document optall -fopt-info flag.
16329         * profile.c (read_profile_edge_counts): Use new dump framework.
16330         (compute_branch_probabilities): Ditto.
16331         * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
16332         when pass not in any opt group.
16333         * pass_manager.h (pass_manager::get_pass_profile): New method.
16334         * value-prof.c (check_counter): Use new dump framework.
16335         (check_ic_target): Ditto.
16336         * coverage.c (get_coverage_counts): Ditto.
16337         (coverage_init): Setup new dump framework.
16338
16339 2013-08-29  Richard Biener  <rguenther@suse.de>
16340
16341         PR tree-optimization/58246
16342         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
16343         handle the dominance check inside a basic-block.
16344
16345 2013-08-29  Richard Biener  <rguenther@suse.de>
16346
16347         PR middle-end/57287
16348         * tree-ssa-copy.c (may_propagate_copy): Allow propagating
16349         of default defs that appear in abnormal PHI nodes.
16350
16351 2013-08-29  Richard Biener  <rguenther@suse.de>
16352
16353         PR tree-optimization/57685
16354         * tree-vrp.c (register_edge_assert_for_1): Recurse only for
16355         single-use operands to avoid exponential complexity.
16356
16357 2013-08-28  Dehao Chen  <dehao@google.com>
16358
16359         * ipa-inline.c (edge_badness): Fix integer underflow.
16360
16361 2013-08-28  Uros Bizjak  <ubizjak@gmail.com>
16362
16363         * gtm-builtins.def (_ITM_free): Declare leaf.
16364
16365 2013-08-28  Jakub Jelinek  <jakub@redhat.com>
16366
16367         PR target/58067
16368         * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
16369         (*tls_local_dynamic_base_64_largepic): Likewise.
16370         (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
16371         Remove predicate from call operand.
16372         * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
16373         return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
16374
16375 2013-08-28  Jeff Law  <law@redhat.com>
16376
16377         * tree-ssa-threadedge.c (thread_around_empty_block): Remove
16378         checks for the number of predecessors and successors allowed.
16379         * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
16380         which require copying a joiner block if there is a request which
16381         is a subpath that requires no joiner block copying.
16382
16383 2013-08-28  Jan Hubicka  <jh@suse.cz>
16384
16385         * lto-streamer-out.c (DFS_write_tree_body): Drop
16386         BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
16387         (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
16388         BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
16389         * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
16390         Do not read DECL_ERROR_ISSUED.
16391         (unpack_ts_decl_with_vis_value_fields): Do not read
16392         DECL_DEFER_OUTPUT.
16393         (lto_input_ts_binfo_tree_pointers): Do not read
16394         BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
16395         * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
16396         write DECL_ERROR_ISSUED..
16397         (pack_ts_decl_with_vis_value_fields): Do not write
16398         DECL_DEFER_OUTPUT.
16399         (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
16400         BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
16401         * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
16402         * tree.h (tree_decl_common): Update comment.
16403         (DECL_ERROR_ISSUED): Remove.
16404
16405 2013-08-28  Jakub Jelinek  <jakub@redhat.com>
16406
16407         PR middle-end/58257
16408         * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
16409
16410 2013-08-28  Jan Hubicka  <jh@suse.cz>
16411
16412         * builtins.def (free): Declare leaf.
16413
16414 2013-08-27  David Malcolm  <dmalcolm@redhat.com>
16415
16416         * gdbhooks.py: New.
16417         * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
16418         * configure: Regenerate.
16419
16420 2013-08-27  Martin Jambor  <mjambor@suse.cz>
16421
16422         * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
16423         (ipa_ancestor_jf_data): Likewise.
16424         (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
16425         (ipa_get_jf_pass_through_type_preserved): New function.
16426         (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
16427         (ipa_get_jf_ancestor_type_preserved): New function.
16428         * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
16429         (ipa_get_jf_ancestor_result): Likewise.
16430         (propagate_vals_accross_pass_through): Use
16431         ipa_get_jf_pass_through_result to do all the value mappings.
16432         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
16433         type_preserved flag.
16434         (ipa_set_jf_cst_copy): New function.
16435         (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
16436         (ipa_set_jf_arith_pass_through): Likewise.
16437         (ipa_set_ancestor_jf): Likewise.
16438         (compute_complex_assign_jump_func): Set type_preserved instead of
16439         punting.
16440         (ipa_compute_jump_functions_for_edge): Likewise.
16441         (combine_known_type_and_ancestor_jfs): Honor type_preserved.
16442         (update_jump_functions_after_inlining): Update type_preserved.
16443         Explicitely create jump functions when combining one with pass_through.
16444         (ipa_write_jump_function): Stream the type_preserved flags.
16445         (ipa_read_jump_function): Likewise.
16446
16447 2013-08-27  Jakub Jelinek  <jakub@redhat.com>
16448             Aldy Hernandez  <aldyh@redhat.com>
16449
16450         * Makefile.in (omp-low.o): Depend on $(TARGET_H).
16451         * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
16452         * function.h (struct function): Add has_force_vect_loops and
16453         has_simduid_loops.
16454         * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
16455         * gimple.c (gimple_build_omp_critical): Add KIND argument and
16456         handle it.
16457         * gimple.def: Update CLAUSES comments.
16458         * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
16459         (gimple_build_omp_for): Add argument to prototype.
16460         (gimple_omp_for_kind): New.
16461         (gimple_omp_for_set_kind): New.
16462         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
16463         GOVD_DATA_SHARE_CLASS.
16464         (enum omp_region_type): Add ORT_SIMD.
16465         (gimple_add_tmp_var): Handle ORT_SIMD.
16466         (gimplify_var_or_parm_decl): Same.
16467         (is_gimple_stmt): Same.
16468         (omp_firstprivatize_variable): Same.
16469         (omp_add_variable): Only use splay_tree_insert if lookup failed.
16470         (omp_notice_variable): Handle ORT_SIMD.
16471         (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
16472         (omp_check_private): Handle ORT_SIMD.
16473         (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
16474         OMP_CLAUSE_SAFELEN.
16475         (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
16476         Handle OMP_CLAUSE_LASTPRIVATE.
16477         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
16478         OMP_CLAUSE_SAFELEN.
16479         (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
16480         (gimplify_expr): Handle OMP_SIMD.
16481         * internal-fn.c (expand_GOMP_SIMD_LANE): New.
16482         (expand_GOMP_SIMD_VF): New.
16483         (expand_GOMP_SIMD_LAST_LANE): New.
16484         * internal-fn.def (GOMP_SIMD_LANE): New.
16485         (GOMP_SIMD_VF): New.
16486         (GOMP_SIMD_LAST_LANE): New.
16487         * omp-low.c: Include target.h.
16488         (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
16489         OMP_CLAUSE_SAFELEN.
16490         (check_omp_nesting_restrictions): Same.
16491         (omp_max_vf): New.
16492         (lower_rec_simd_input_clauses): New.
16493         (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
16494         OMP_CLAUSE_LINEAR.
16495         (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
16496         GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
16497         (expand_omp_build_assign): New.
16498         (expand_omp_for_init_counts): New.
16499         (expand_omp_for_init_vars): New.
16500         (extract_omp_for_update_vars): New.
16501         (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
16502         and rewrite accordingly.
16503         (expand_omp_simd): New.
16504         (expand_omp_for): Use expand_omp_simd.
16505         (lower_omp_for_lastprivate): Unshare vinit when appropriate.
16506         (lower_omp_for): Do not lower the body.
16507         * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
16508         in their own loops.
16509         * tree-flow.h (find_omp_clause): Remove prototype.
16510         * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
16511         forcing vectorization of the loop, or if flag_tree_vectorize.
16512         (gate_tree_if_conversion): Similarly.
16513         * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
16514         gimple_build_omp_for.
16515         (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
16516         * tree-parloops (create_parallel_loop): Pass kind argument to
16517         gimple_build_omp_for.
16518         * tree-pretty-print.c (dump_omp_clause): Add cases for
16519         OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
16520         OMP_CLAUSE__SIMDUID_.
16521         (dump_generic_node): Handle OMP_SIMD.
16522         * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
16523         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
16524         unroll OMP_SIMD loops here.
16525         * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
16526         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
16527         loop->safelen.
16528         (vect_analyze_data_refs): Handle simd loops.
16529         * tree-vect-loop.c (vectorizable_live_operation): Handle
16530         IFN_GOMP_SIMD*.
16531         * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
16532         (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
16533         (vectorizable_load): Same.
16534         * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
16535         (struct simduid_to_vf): New.
16536         (simduid_to_vf::hash): New.
16537         (simduid_to-vf::equal): New.
16538         (struct simd_array_to_simduid): New.
16539         (simd_array_to_simduid::hash): New.
16540         (simd_array_to_simduid::equal): New.
16541         (adjust_simduid_builtins): New.
16542         (struct note_simd_array_uses_struct): New.
16543         (note_simd_array_uses_cb): New.
16544         (note_simd_array_uses): New.
16545         (vectorize_loops): Handle simd hints and adjust simd builtins
16546         accordingly.
16547         * tree-vectorizer.h (struct _stmt_vec_info): Add
16548         simd_lane_access_p field.
16549         (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
16550         * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
16551         OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
16552         (omp_clause_code_name): Same.
16553         (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
16554         OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
16555         * tree.def (OMP_SIMD): New entry.
16556         * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
16557         OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
16558         (OMP_CLAUSE_DECL): Adjust range for new clauses.
16559         (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
16560         (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
16561         (OMP_CLAUSE_LINEAR_STEP): New.
16562         (OMP_CLAUSE_SAFELEN_EXPR): New.
16563         (OMP_CLAUSE__SIMDUID__DECL): New.
16564         (find_omp_clause): New prototype.
16565
16566 2013-08-27  H.J. Lu  <hongjiu.lu@intel.com>
16567
16568         * config/i386/driver-i386.c (host_detect_local_cpu): Update
16569         Haswell processor detection.
16570
16571 2013-08-27  Christian Widmer  <shadow@umbrox.de>
16572
16573         PR target/57927
16574         * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
16575         of Ivy Bridge and Haswell processors.  Assume core-avx2 for unknown
16576         AVX2 capable processors.
16577
16578 2013-08-27  Tejas Belagod  <tejas.belagod@arm.com>
16579
16580         * config/aarch64/arm_neon.h: Replace all inline asm implementations
16581         of vget_low_* with implementations in terms of other intrinsics.
16582
16583 2013-08-27  Marc Glisse  <marc.glisse@inria.fr>
16584
16585         PR middle-end/57219
16586         * doc/extend.texi (__builtin_isinf_sign): Restrict the return
16587         values to -1, 0 and 1.
16588
16589 2013-08-27  Vidya Praveen  <vidyapraveen@arm.com>
16590
16591         * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
16592         UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
16593         (<optab><mode>3_insn): Remove.
16594         (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
16595         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
16596         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
16597         (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
16598         (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
16599         (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
16600         (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
16601         (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
16602         (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
16603         (ror<mode>3_insn): Likewise.
16604         * config/aarch64/predicates.md (aarch64_simd_register): New.
16605
16606 2013-08-27  Richard Biener  <rguenther@suse.de>
16607
16608         PR tree-optimization/57521
16609         * tree-if-conv.c (if_convertible_bb_p): Verify that at least
16610         one edge is non-critical.
16611         (find_phi_replacement_condition): Make sure to use a non-critical
16612         edge.  Cleanup and remove old bug workarounds.
16613         (bb_postdominates_preds): Remove.
16614         (if_convertible_loop_p_1): Do not compute post-dominators.
16615         (combine_blocks): Do not free post-dominators.
16616         (main_tree_if_conversion): Likewise.
16617         (pass_data_if_conversion): Add TODO_verify_ssa.
16618
16619 2013-08-27  DJ Delorie  <dj@redhat.com>
16620
16621         * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
16622
16623 2013-08-27  Yufeng Zhang  <yufeng.zhang@arm.com>
16624
16625         * function.c (assign_parm_find_data_types): Set passed_mode and
16626         nominal_mode to the TYPE_MODE of nominal_type for the built
16627         pointer type in case of the struct-pass-by-reference.
16628
16629 2013-08-26  Joern Rennecke  <joern.rennecke@embecosm.com>
16630
16631         * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
16632         (UINT16_TYPE): Change default to "unsigned int".
16633
16634         * config/avr/avr.opt (mfract-convert-truncate): New option.
16635         * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
16636         is set, round negative fractional integers according to n1169
16637         when converting to integer types.
16638
16639 2013-08-26  Jan Hubicka  <jh@suse.cz>
16640
16641         * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
16642         methods can not be called indirectly when their address is not taken.
16643
16644 2013-08-26  Jan Hubicka  <jh@suse.cz>
16645
16646         * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
16647         ctor_for_folding.
16648
16649 2013-08-26  Jan Hubicka  <jh@suse.cz>
16650
16651         * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
16652         can be unshared.
16653
16654 2013-08-26  Joern Rennecke  <joern.rennecke@embecosm.com>
16655
16656         * reload.c (find_valid_class): Allow classes that do not include
16657         FIRST_PSEUDO_REGISTER - 1.
16658
16659 2013-08-26  Jan Hubicka  <jh@suse.cz>
16660
16661         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
16662         fix edge count/frequency when speculation failed; fix type check
16663         for the direct call.
16664
16665 2013-08-26  Jan Hubicka  <jh@suse.cz>
16666
16667         * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
16668
16669 2013-08-26  Jan Hubicka  <jh@suse.cz>
16670
16671         * ipa-inline-transform.c (inline_transform): Be ready for basic block
16672         to be changed by edge redirection.
16673
16674 2013-08-26  Jan Hubicka  <jh@suse.cz>
16675
16676         * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
16677         formating; add sanity check.
16678         (cgraph_resolve_speculation): Add FIXME about scaling profiles.
16679         (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
16680         * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
16681         (resolve_noninline_speculation): Update callee keys, too.
16682
16683 2013-08-26  Jan Hubicka  <jh@suse.cz>
16684
16685         * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
16686         (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
16687
16688 2013-08-26  Joern Rennecke  <joern.rennecke@embecosm.com>
16689
16690         * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
16691         into proper place.
16692
16693 2013-08-26  Uros Bizjak  <ubizjak@gmail.com>
16694
16695         * config/i386/i386.c (ix86_debug_options): Remove prototype.
16696         (x86_64_elf_select_section): Ditto.
16697         (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
16698         arguments.
16699         (ix86_pass_by_reference): Ditto.
16700         (output_set_got): Ditto.
16701         (ix86_unary_operator_ok): Ditto.
16702         (ix86_expand_builtin): Ditto.
16703
16704 2013-08-23  Jan Hubicka  <jh@suse.cz>
16705
16706         * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
16707
16708 2013-08-23  Jan Hubicka  <jh@suse.cz>
16709
16710         * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
16711         (tree_decl_with_vis): Add FINAL field.
16712
16713 2013-08-23  Jeff Law  <law@redhat.com>
16714
16715         * tree-ssa-pre.c (do_regular_insertion): Include the expression in
16716         the debugging dump when the expression is fully redundant.
16717
16718 2013-08-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
16719
16720         * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
16721         * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
16722         * pretty-print.c (pp_formatted_text_data): Likewise.
16723         (pp_write_text_to_stream): Likewise.
16724         (pp_write_text_as_dot_label_to_stream): Likewise.
16725         (pp_append_r): Likewise.
16726         (pp_format): Likewise.
16727         (pp_flush): Likewise.
16728         (pp_clear_output_area): Likewise.
16729         (pp_append_text): Likewise.
16730         (pp_formatted_text): Likewise.
16731         (pp_remaining_character_count_for_line): Likewise.
16732         (pp_newline): Likewise.
16733         (pp_character): Likewise.
16734         (output_buffer::~output_buffer): Define.
16735         (pretty_printer::~pretty_printer): Destruct output buffer.
16736         * pretty-print.h (output_buffer::~output_buffer): Declare.
16737         (pretty_printer::~pretty_printer): Declare virtual.
16738
16739 2013-08-24  Marc Glisse  <marc.glisse@inria.fr>
16740
16741         PR other/57324
16742         * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
16743         HOST_WIDE_INT_M1U): New macros.
16744         * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
16745         fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
16746         unsigned -1 for lshift.
16747         * cse.c (cse_insn): Likewise.
16748         * double-int.c (rshift_double, lshift_double): Likewise.
16749         * builtins.c (fold_builtin_bitop): Likewise.
16750         * combine.c (force_to_mode): Likewise.
16751         * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
16752         * simplify-rtx.c (simplify_const_unary_operation,
16753         simplify_const_binary_operation): Likewise.
16754         * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
16755         check_va_list_escapes): Likewise.
16756         * rtlanal.c (nonzero_bits1): Likewise.
16757         * expmed.c (expand_smod_pow2): Likewise.
16758         * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
16759
16760 2013-08-23  Jan Hubicka  <jh@suse.cz>
16761
16762         * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
16763         as having address taken.
16764
16765 2013-08-23  Jan Hubicka  <jh@suse.cz>
16766
16767         * ipa-utils.h (method_class_type): Declare.
16768         * ipa-devirt.c (method_class_type): Export.
16769
16770         * cgraphunit.c (analyze_functions): Do basic devirtualization;
16771         do not walk base classes of anonymous types.
16772
16773 2013-08-23  Kaz Kojima  <kkojima@gcc.gnu.org>
16774
16775         PR rtl-optimization/58220
16776         PR regression/58221
16777         * final.c (reemit_insn_block_notes): Use NEXT_INSN to
16778         handle SEQUENCE insns properly.
16779
16780 2013-08-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
16781
16782         * pretty-print.h (pp_newline_and_flush): Declare.  Remove macro
16783         definition.
16784         (pp_newline_and_indent): Likewise.
16785         (pp_separate_with): Likewise.
16786         * pretty-print.c (pp_newline_and_flush): Define.
16787         (pp_newline_and_indent): Likewise.
16788         (pp_separate_with): Likewise.
16789
16790 2013-08-23  Jakub Jelinek  <jakub@redhat.com>
16791
16792         PR target/58218
16793         * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
16794         * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
16795
16796 2013-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
16797
16798         * config/i386/predicates.md (ext_sse_reg_operand): New.
16799         * config/i386/i386.md (*movti_internal): Use
16800         predicate to determine if EVEX is needed.
16801         (*movsi_internal): Ditto.
16802         (*movdf_internal): Ditto.
16803         (*movsf_internal): Ditto.
16804         * config/i386/mmx.md (*mov<mode>_internal): Ditto.
16805
16806 2013-08-23  Jakub Jelinek  <jakub@redhat.com>
16807
16808         PR tree-optimization/58209
16809         * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
16810         (find_tail_calls): Give up for pointer result types if m is non-NULL.
16811         (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
16812         emit POINTER_PLUS_EXPR.
16813         (create_tailcall_accumulator): For pointer result type accumulate in
16814         sizetype type.
16815
16816 2013-08-22  Paolo Carlini  <paolo.carlini@oracle.com>
16817
16818         * configure.ac: Add backslashes missing from the last change.
16819         * configure: Regenerate.
16820
16821 2013-08-22  Jan Hubicka  <jh@susue.cz>
16822
16823         * ipa.c (function_and_variable_visibility): First remember function
16824         was global and then make it local.
16825
16826 2013-08-22  Julian Brown  <julian@codesourcery.com>
16827
16828         * configure.ac: Add aarch64 to list of arches which use "nop" in
16829         debug_line test.
16830         * configure: Regenerate.
16831
16832 2013-08-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16833
16834         * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
16835         gnu_libc_has_function.
16836         * config/s390/tpf.h: Likewise.
16837
16838 2013-08-22  Jan Hubicka  <jh@susue.cz>
16839
16840         * timevar.c (validate_phases): Add cast.
16841
16842 2013-08-22  Jan Hubicka  <jh@susue.cz>
16843
16844         * timevar.c (validate_phases): Use size_t for memory.
16845         * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
16846
16847 2013-08-22  Gabriel Dos Reis  <gdr@integrable-solutions.net>
16848
16849         * pretty-print.h (output_buffer::output_buffer): Declare.
16850         (pretty_printer::pretty_printer): Likewise.
16851         (pp_construct): Remove.
16852         * pretty-print.c (output_buffer::output_buffer): Define.
16853         (pretty_printer::pretty_printer): Rename from pp_construct.  Simplify.
16854         * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
16855         (print_gimple_expr): Likewise.
16856         (print_gimple_seq): Likewise.
16857         (gimple_dump_bb): Likewise.
16858         * sched-vis.c (dump_value_slim): Likewise.
16859         (dump_insn_slim): Likewise.
16860         (dump_rtl_slim): Likewise.
16861         (str_pattern_slim): Likewise.
16862         * tree-mudflap.c (mf_varname_tree): Likewise.
16863         * graph.c (print_graph_cfg): Likewise.
16864         (start_graph_dump): Likewise.
16865         * tree-pretty-print.c (maybe_init_pretty_print): Likewise.  Use
16866         placement-new.
16867         * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
16868         pretty printer initialization.
16869         * coretypes.h (diagnostic_context): Remove superflous type alias
16870         declaration.
16871         (pretty_printer): Likewise.  Declare directly as a class.
16872         (pretty_print_info): Remove declaration as class.
16873         * asan.c (asan_emit_stack_protection): Remove call to pp_construct
16874         and pp_clear_output_area.
16875         (asan_add_global): Likewise.
16876
16877 2013-08-22  Jan Hubicka  <jh@suse.cz>
16878
16879         * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
16880         * ipa-utils.h (update_type_inheritance_graph): Declare.
16881         (possible_polymorphic_call_target_p): Declare.
16882         (possible_polymorphic_call_target_p): New.
16883         * ipa-devirt.c: Update toplevel comments.
16884         (cached_polymorphic_call_targets): Move up.
16885         (odr_type_d): Move ID down.
16886         (polymorphic_type_binfo_p): Update comment.
16887         (odr_hasher::remove): Likewise;
16888         (get_odr_type): Set anonymous_namespace.
16889         (dump_odr_type): Dump it.
16890         (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
16891         (maybe_record_node): Record node in cached_polymorphic_call_targets.
16892         (record_binfo): Add comment.
16893         (free_polymorphic_call_targets_hash): Do not ICE when cache is not
16894         built.
16895         (devirt_node_removal_hook): Do not iCE when cache is freed.
16896         (possible_polymorphic_call_target_p): New predicate.
16897         (update_type_inheritance_graph): New function.
16898
16899 2013-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16900             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16901             Sergey Lega  <sergey.s.lega@intel.com>
16902             Anna Tikhonova  <anna.tikhonova@intel.com>
16903             Ilya Tocar  <ilya.tocar@intel.com>
16904             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16905             Ilya Verbin  <ilya.verbin@intel.com>
16906             Kirill Yukhin  <kirill.yukhin@intel.com>
16907             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16908
16909         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
16910         (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
16911         (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
16912         (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
16913         (OPTION_MASK_ISA_AVX2_UNSET): Update.
16914         (OPTION_MASK_ISA_AVX512F_UNSET): New.
16915         (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
16916         (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
16917         (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
16918         (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
16919         OPT_mavx512pf, OPT_mavx512er cases.
16920         * config/i386/constraints.md (v): New constraint.
16921         (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
16922         * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
16923         (bit_AVX512CD): New.
16924         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
16925         AVX512F, AVX512ER, AVX512PF, AVX512CD features.
16926         * config/i386/i386-c.c (ix86_target_macros_internal):
16927         Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
16928         __AVX512PF__.
16929         * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
16930         (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
16931         * config/i386/i386.c (regclass_map, dbx_register_map)
16932         (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
16933         (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
16934         (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
16935         -mavx512pf options.
16936         (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
16937         PTA_AVX512PF, PTA_AVX512CD.  Handle -mavx512f, -mavx512er, -mavx512cd,
16938         -mavx512pf options.  Fix formatting.
16939         (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
16940         targets.  Squash EVEX_SSE_REGS if AVX512F is disabled.
16941         (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
16942         -mavx512cd, -mavx512pf options.
16943         (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
16944         (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
16945         (ix86_preferred_output_reload_class): Replace SSE_REGS with
16946         ALL_SSE_REGS.
16947         (ix86_hard_regno_mode_ok): Support 512-bit registers.
16948         (ix86_set_reg_reg_cost): Ditto.
16949         (x86_order_regs_for_local_alloc): Ditto.
16950         (MAX_VECT_LEN): Extend to 64-byte.
16951         (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
16952         * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
16953         (TARGET_AVX512ER, TARGET_AVX512CD): New.
16954         (BIGGEST_ALIGNMENT): Extend to 512-bits.
16955         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
16956         (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
16957         (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
16958         (SSE_REG_MODE_P): Support new modes.
16959         (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
16960         (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
16961         (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
16962         (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
16963         (REG_CLASS_CONTENTS): Add new registers.
16964         (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
16965         (EXT_REX_SSE_REGNO_P): New.
16966         (HI_REGISTER_NAMES): Add new registers.
16967         * config/i386/i386.md: Define constants for new registers.
16968         (mode): Add new 512-bit modes.
16969         (prefix): Support evex prefix.
16970         (isa): Support avx512f, noavx512f, fma_avx512f.
16971         (ssemodesuffix): Add new 512-bit modes.
16972         (movxi): New.
16973         (*movxi_internal_avx512f): Ditto.
16974         (*movdi_internal): Replace constraint "x" with the new constraint "v".
16975         Support MODE_XI.
16976         (*movsi_internal): Likewise.
16977         (*movdf_internal): Likewise.
16978         (*movsf_internal): Likewise.
16979         (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
16980         (<code><mode>3): Likewise.
16981         * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
16982         New.
16983         * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
16984         with the new constraint "v".
16985         * config/i386/sse.md (*mov<mode>_internal): Support new registers and
16986         modes.
16987         (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
16988         with the new constraint "v".
16989         (<sse2>_loaddqu<avxsizesuffix>): Likewise.
16990         (<sse2>_storedqu<avxsizesuffix>): Likewise.
16991         (*<plusminus_insn><mode>3): Likewise.
16992         (<sse>_vm<plusminus_insn><mode>3): Likewise.
16993         (*mul<mode>3): Likewise.
16994         (<sse>_vmmul<mode>3): Likewise.
16995         (<sse>_div<mode>3): Likewise.
16996         (<sse>_vmdiv<mode>3): Likewise.
16997         (<sse>_sqrt<mode>2): Likewise.
16998         (<sse>_vmsqrt<mode>2): Likewise.
16999         (*<code><mode>3_finite): Likewise.
17000         (*<code><mode>3) <smaxmin>: Likewise.
17001         (<sse>_vm<code><mode>3): Likewise.
17002         (*<code><mode>3) <any_logic>: Likewise.
17003         (*fma_fmadd_<mode>): Likewise.
17004         (*fma_fmsub_<mode>): Likewise.
17005         (*fma_fnmadd_<mode>): Likewise.
17006         (*fma_fnmsub_<mode>): Likewise.
17007         (*fma_fmaddsub_<mode>): Likewise.
17008         (*fma_fmsubadd_<mode>): Likewise.
17009         (*fmai_fmadd_<mode>): Likewise.
17010         (*fmai_fmsub_<mode>): Likewise.
17011         (*fmai_fnmadd_<mode>): Likewise.
17012         (*fmai_fnmsub_<mode>): Likewise.
17013         (sse_cvtsi2ss): Likewise.
17014         (sse_cvtsi2ssq): Likewise.
17015         (sse_cvtss2si): Likewise.
17016         (sse_cvtss2si_2): Likewise.
17017         (sse_cvtss2siq): Likewise.
17018         (sse_cvtss2siq_2): Likewise.
17019         (sse_cvttss2si): Likewise.
17020         (sse_cvtss2siq_2): Likewise.
17021         (float<sseintvecmodelower><mode>2): Likewise.
17022         (sse2_cvtsd2si_2): Likewise.
17023         (sse2_cvtsd2siq_2): Likewise.
17024         (*<plusminus_insn><mode>3): Likewise.
17025         (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
17026         (*<sse4_1_avx2>_mul<mode>3): Likewise.
17027         (ashr<mode>3): Likewise.
17028         (<shift_insn><mode>3): Likewise.
17029         (avx2_<code><mode>3): Likewise.
17030         (*avx2_<code><mode>3): Likewise.
17031         (*andnot<mode>3): Likewise.
17032         (*<code><mode>3) <any_logic>: Likewise.
17033         (abs<mode>2): Likewise.
17034         (avx2_permvar<mode>): Likewise.
17035         (avx2_perm<mode>_1): Likewise.
17036         (*avx_vpermilp<mode>): Likewise.
17037         (avx_vpermilvar<mode>3): Likewise.
17038         (avx2_ashrv<mode>): Likewise.
17039         (avx2_<shift_insn>v<mode>): Likewise.
17040         * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
17041         -mavx512cd.
17042         * doc/rtl.texi: Document XImode.
17043
17044 2013-08-21  Jeff Law  <law@redhat.com>
17045
17046         * tree-flow.h (register_jump_thread): Pass vector of edges
17047         instead of each important edge.
17048         * tree-ssa-threadedge.c (thread_across_edge): Build the jump
17049         thread path into a vector and pass that to register_jump_thread.
17050         * tree-ssa-threadupdate.c (register_jump_thread): Conver the
17051         passed in edge vector to the current 3-edge form.
17052
17053         Revert:
17054         2013-08-20  Alexey Makhalov  <makhaloff@gmail.com>
17055
17056         * dce.c (fini_dce): Call df_analyze again just in case
17057         delete_unmarked_insns removed anything.
17058
17059 2013-08-21  Joern Rennecke  <joern.rennecke@embecosm.com>
17060
17061         * reload.h (struct reg_equivs): Rename to ..
17062         (struct reg_equivs_s): .. this.
17063
17064 2013-08-20  Martin Liska  <marxin.liska@gmail.com>
17065
17066         * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
17067
17068 2013-08-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17069
17070         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
17071
17072 2013-08-21  Jeff Law  <law@redhat.com>
17073
17074         * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
17075         simplify assignments too.  If the RHS collapses to a singleton
17076         range, then return the value for the range.
17077
17078 2013-08-21  Kirill Yukhin  <kirill.yukhin@intel.com>
17079
17080         * config/i386/sse.md (V16): Rename to...
17081         (VMOVE): this.
17082         (mov<mode>): Update iterator name.
17083         (*mov<mode>_internal): Ditto.
17084         (push<mode>1): Ditto.
17085         (movmisalign<mode>): Ditto.
17086
17087 2013-08-20  Jan Hubicka  <jh@suse.cz>
17088
17089         PR bootstrap/58186
17090         * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
17091         entry for direct edges.
17092         (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
17093
17094 2013-08-20  David Malcolm  <dmalcolm@redhat.com>
17095
17096         Revert my last two changes, r201865 and r201864:
17097
17098         Revert r201865:
17099         2013-08-20  David Malcolm  <dmalcolm@redhat.com>
17100
17101         Make opt_pass and gcc::pass_manager be GC-managed, so that pass
17102         instances can own GC refs.
17103
17104         * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
17105         * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
17106         (gcc::context::gt_pch_nx): Likewise.
17107         (gcc::context::gt_pch_nx):  Likewise.
17108         * ggc.h (gt_ggc_mx <T>): New.
17109         (gt_pch_nx_with_op <T>): New.
17110         (gt_pch_nx <T>): New.
17111         * passes.c (opt_pass::gt_ggc_mx): New.
17112         (opt_pass::gt_pch_nx): New.
17113         (opt_pass::gt_pch_nx_with_op): New.
17114         (pass_manager::gt_ggc_mx): New.
17115         (pass_manager::gt_pch_nx): New.
17116         (pass_manager::gt_pch_nx_with_op): New.
17117         (pass_manager::operator new): Use
17118         ggc_internal_cleared_alloc_stat rather than xcalloc.
17119         * pass_manager.h (class pass_manager): Add GTY((user)) marking.
17120         (pass_manager::gt_ggc_mx): New.
17121         (pass_manager::gt_pch_nx): New.
17122         (pass_manager::gt_pch_nx_with_op): New.
17123         * tree-pass.h (class opt_pass): Add GTY((user)) marking.
17124         (opt_pass::operator new): New.
17125         (opt_pass::gt_ggc_mx): New.
17126         (opt_pass::gt_pch_nx): New.
17127         (opt_pass::gt_pch_nx_with_op): New.
17128
17129         Revert r201864:
17130         2013-08-20  David Malcolm  <dmalcolm@redhat.com>
17131
17132         * Makefile.in (GTFILES): Add context.h.
17133         * context.c (gcc::context::operator new): New.
17134         (gcc::context::gt_ggc_mx): New.
17135         (gcc::context::gt_pch_nx): New.
17136         (gcc::context::gt_pch_nx): New.
17137         * context.h (gcc::context): Add GTY((user)) marking.
17138         (gcc::context::operator new): New.
17139         (gcc::context::gt_ggc_mx): New.
17140         (gcc::context::gt_pch_nx): New.
17141         (gcc::context::gt_pch_nx): New.
17142         (g): Add GTY marking.
17143         (gt_ggc_mx (gcc::context *)): New.
17144         (gt_pch_nx (gcc::context *)): New.
17145         (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
17146         void *cookie)): New.
17147         * gengtype.c (open_base_files) <ifiles>: Add context.h.
17148
17149 2013-08-20  Alexey Makhalov  <makhaloff@gmail.com>
17150
17151         * dce.c (fini_dce): Call df_analyze again just in case
17152         delete_unmarked_insns removed anything.
17153
17154 2013-08-20  Teresa Johnson  <tejohnson@google.com>
17155
17156         PR rtl-optimizations/57451
17157         * final.c (reemit_insn_block_notes): Prevent lexical blocks
17158         from crossing split section boundaries.
17159
17160 2013-08-20  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
17161
17162         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
17163         * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
17164         with MULTLIB_DEFAULTS.
17165
17166 2013-08-20  Nick Clifton  <nickc@redhat.com>
17167
17168         * target.def (narrow_volatile_bitfield): Note that the default
17169         value is false, not !TARGET_STRICT_ALIGN.
17170         * doc/tm.texi: Regenerate.
17171
17172 2013-08-20  Pavel Chupin  <pavel.v.chupin@intel.com>
17173
17174         Fix LIB_SPEC for systems without libpthread.
17175
17176         * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
17177         * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
17178         for Android.
17179         * config/i386/linux-common.h: Likewise.
17180         * config/mips/linux-common.h: Likewise.
17181
17182 2013-08-20  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
17183
17184         * tree-ssa-ccp.c (get_default_value): Remove redundant condition
17185         checks.
17186
17187 2013-08-20  David Malcolm  <dmalcolm@redhat.com>
17188
17189         Make opt_pass and gcc::pass_manager be GC-managed, so that pass
17190         instances can own GC refs.
17191
17192         * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
17193         * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
17194         (gcc::context::gt_pch_nx): Likewise.
17195         (gcc::context::gt_pch_nx):  Likewise.
17196         * ggc.h (gt_ggc_mx <T>): New.
17197         (gt_pch_nx_with_op <T>): New.
17198         (gt_pch_nx <T>): New.
17199         * passes.c (opt_pass::gt_ggc_mx): New.
17200         (opt_pass::gt_pch_nx): New.
17201         (opt_pass::gt_pch_nx_with_op): New.
17202         (pass_manager::gt_ggc_mx): New.
17203         (pass_manager::gt_pch_nx): New.
17204         (pass_manager::gt_pch_nx_with_op): New.
17205         (pass_manager::operator new): Use
17206         ggc_internal_cleared_alloc_stat rather than xcalloc.
17207         * pass_manager.h (class pass_manager): Add GTY((user)) marking.
17208         (pass_manager::gt_ggc_mx): New.
17209         (pass_manager::gt_pch_nx): New.
17210         (pass_manager::gt_pch_nx_with_op): New.
17211         * tree-pass.h (class opt_pass): Add GTY((user)) marking.
17212         (opt_pass::operator new): New.
17213         (opt_pass::gt_ggc_mx): New.
17214         (opt_pass::gt_pch_nx): New.
17215         (opt_pass::gt_pch_nx_with_op): New.
17216
17217 2013-08-20  David Malcolm  <dmalcolm@redhat.com>
17218
17219         * Makefile.in (GTFILES): Add context.h.
17220         * context.c (gcc::context::operator new): New.
17221         (gcc::context::gt_ggc_mx): New.
17222         (gcc::context::gt_pch_nx): New.
17223         (gcc::context::gt_pch_nx): New.
17224         * context.h (gcc::context): Add GTY((user)) marking.
17225         (gcc::context::operator new): New.
17226         (gcc::context::gt_ggc_mx): New.
17227         (gcc::context::gt_pch_nx): New.
17228         (gcc::context::gt_pch_nx): New.
17229         (g): Add GTY marking.
17230         (gt_ggc_mx (gcc::context *)): New.
17231         (gt_pch_nx (gcc::context *)): New.
17232         (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
17233         void *cookie)): New.
17234         * gengtype.c (open_base_files) <ifiles>: Add context.h.
17235
17236 2013-08-20  Alan Modra  <amodra@gmail.com>
17237
17238         PR target/57865
17239         * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
17240         (rs6000_emit_epilogue): Likewise.
17241
17242 2013-08-19  Dehao Chen  <dehao@google.com>
17243
17244         * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
17245
17246 2013-08-19  Peter Bergner  <bergner@vnet.ibm.com>
17247             Jakub Jelinek  <jakub@redhat.com>
17248
17249         * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
17250         (BUILT_IN_FABSD64): Likewise.
17251         (BUILT_IN_FABSD128): Likewise.
17252         * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
17253         (fold_builtin_1): Likewise.
17254         * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
17255         destination and source operands.
17256         (*abstd2_fpr): Likewise.
17257         (*nabstd2_fpr): Likewise.
17258
17259 2013-08-19  Richard Sandiford  <rdsandiford@googlemail.com>
17260
17261         * config/mips/mips.c (mips_adjust_insn_length): Add checks for
17262         JUMP_P and INSN_P.
17263
17264 2013-08-19  Aldy Hernandez  <aldyh@redhat.com>
17265
17266         * doc/invoke.texi (-fcilkplus): Clarify that implementation is
17267         incomplete.
17268
17269 2013-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17270
17271         * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
17272         * builtins.c (default_libc_has_function): New.
17273         (gnu_libc_has_function): Ditto.
17274         (no_c99_libc_has_function): Ditto.
17275         (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
17276         instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
17277         (fold_builtin_sincos): Likewise.
17278         (fold_builtin_cexp): Likewise.
17279         * builtins.def (DEF_C94_BUILTIN): Likewise.
17280         (DEF_C99_BUILTIN): Likewise.
17281         (DEF_C99_C90RES_BUILTIN): Likewise.
17282         (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
17283         definitions to using this define.
17284         * config/darwin-protos.h (darwin_libc_has_function): New.
17285         * config/darwin.c (darwin_libc_has_function): Ditto.
17286         * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
17287         TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
17288         * config/darwin.h: Ditto.
17289         * config/elfos.h: Ditto.
17290         * config/freebsd.h: Ditto.
17291         * config/i386/cygming.h: Ditto.
17292         * config/i386/djgpp.h: Ditto.
17293         * config/i386/i386-interix.h: Ditto.
17294         * config/microblaze/microblaze.h: Ditto.
17295         * config/mmix/mmix.h: Ditto.
17296         * config/gnu-user.h: Ditto.
17297         * config/ia64/hpux.h: Ditto.
17298         * config/pa/pa-hpux.h: Ditto.
17299         * config/pdp11/pdp11.h: Ditto.
17300         * config/picochip/picochip.h: Ditto.
17301         * config/linux.h: Ditto.
17302         * config/netbsd.h: Ditto.
17303         * config/openbsd.h: Ditto.
17304         * config/rs6000/aix43.h: Ditto.
17305         * config/rs6000/aix51.h: Ditto.
17306         * config/rs6000/aix52.h: Ditto.
17307         * config/rs6000/aix53.h: Ditto.
17308         * config/rs6000/aix61.h: Ditto.
17309         * config/rs6000/darwin.h: Ditto.
17310         * config/rs6000/linux.h: Ditto.
17311         * config/rs6000/linux64.h: Ditto.
17312         * config/s390/tpf.h: Ditto.
17313         * config/sol2-10.h: Ditto.
17314         * config/sol2.h: Ditto.
17315         * config/vms/vms.h: Ditto.
17316         * config/vxworks.h: Ditto.
17317         * config/linux-android.c (linux_android_libc_has_function):
17318         New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
17319         * config/linux-protos.h (linux_android_libc_has_function):
17320         New declaration.
17321         * config/i386/i386.c (ix86_libc_has_function): New.
17322         * config/i386/i386-protos.h
17323         (ix86_libc_has_function): New declaration.
17324         * config/i386/i386.md
17325         ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
17326         ("isinf<mode>2): Likewise.
17327         * convert.c (convert_to_integer): Using new target hook
17328         TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
17329         TARGET_C99_FUNCTIONS.
17330         * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
17331         * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
17332         * coretypes.h (function_class): New enum for different
17333         classes of functions.
17334         * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
17335         * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
17336         (TARGET_HAS_SINCOS): Likewise.
17337         (TARGET_LIBC_HAS_FUNCTION): New.
17338         * doc/tm.texi: Regenerated.
17339         * targhooks.h (default_libc_has_function): New declaration.
17340         (no_c99_libc_has_function): Ditto.
17341         (gnu_libc_has_function): Ditto.
17342         * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
17343         and TARGET_HAS_SINCOS.
17344
17345 2013-08-18  Jan Hubicka  <jh@suse.cz>
17346
17347         * Makeifle-in (ipa-devirt.o): New.
17348         (GTFILES): Add ipa-utils.h and ipa-devirt.c
17349         * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
17350         (analyze_functions): Look into possible targets of polymorphic call.
17351         * dumpfile.c (dump_files): Add type-inheritance dump.
17352         * dumpfile.h (TDI_inheritance): New.
17353         * ipa-devirt.c: New file.
17354         * ipa-utils.h (odr_type_d): Forward declare.
17355         (odr_type): New type.
17356         (build_type_inheritance_graph): Declare.
17357         (possible_polymorphic_call_targets): Declare and introduce inline
17358         variant when only edge is pased.
17359         (dump_possible_polymorphic_call_targets): Likewise.
17360         * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
17361         * tree.c (type_in_anonymous_namespace_p): Break out from ...
17362         (types_same_for_odr): ... here.
17363         * tree.h (type_in_anonymous_namespace_p): Declare.
17364
17365 2013-08-18  Jakub Jelinek  <jakub@redhat.com>
17366
17367         PR tree-optimization/58006
17368         * tree-parloops.c (take_address_of): Don't ICE if get_name
17369         returns NULL.
17370         (eliminate_local_variables_stmt): Remove clobber stmts.
17371
17372 2013-08-18  Eric Botcazou  <ebotcazou@adacore.com>
17373
17374         * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
17375         error message is issued for an alias to undefined symbol.
17376
17377 2013-08-18  Jan Hubicka  <jh@suse.cz>
17378
17379         * cgraph.c (cgraph_create_indirect_edge): Discover
17380         polymorphic calls and record basic info into indirect_info.
17381         * gimple-fold.c (gimple_fold_call): When doing BINFO based
17382         devirtualization, ignore objc function calls.
17383         * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
17384         call with no parm index info.
17385         * ipa-prop.c (ipa_analyze_call_uses): Likewise.
17386         * tree.c (virtual_method_call_p): New function.
17387         * tree.h (virtual_method_call_p): Declare.
17388
17389 2013-08-16  Jan Hubicka  <jh@suse.cz>
17390
17391         PR middle-end/58179
17392         * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
17393
17394 2013-08-16  David Edelsohn  <dje.gcc@gmail.com>
17395
17396         * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
17397         attribute.
17398
17399 2013-08-16  David Malcolm  <dmalcolm@redhat.com>
17400
17401         * gengtype.c (type_for_name): Add special-case support for
17402         locating types within the "gcc::" namespace.
17403         (open_base_files): Emit a "using namespace gcc" directive.
17404
17405 2013-08-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
17406
17407         PR target/58160
17408         * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
17409         memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
17410
17411         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
17412         array instead of each individual operand as a separate argument.
17413         (emit_fusion_gpr_load): Likewise.
17414         (expand_fusion_gpr_load): Add new function declaration.
17415
17416         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
17417         signature to have the operands passed as an array, instead of as
17418         separate arguments.  Allow ZERO_EXTEND to be in the memory
17419         address, and also SIGN_EXTEND if -mpower8-fusion-sign.  Do not
17420         depend on the register live/dead flags when peepholes are run.
17421         (expand_fusion_gpr_load): New function to be called from the
17422         peephole2 pass, to change the register that addis sets to be the
17423         target register.
17424         (emit_fusion_gpr_load): Change the calling signature to have the
17425         operands passed as an array, instead of as separate arguments.
17426         Allow ZERO_EXTEND to be in the memory address, and also
17427         SIGN_EXTEND if -mpower8-fusion-sign.
17428
17429         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
17430         unspec enumeration.
17431         (power8 fusion peephole/peephole2): Rework the fusion peepholes to
17432         adjust the register addis loads up in the peephole2 pass.  Do not
17433         depend on the register live/dead state when the peephole pass is done.
17434
17435 2013-08-16  David Malcolm  <dmalcolm@redhat.com>
17436
17437         * gengtype.c (create_user_defined_type): Ensure that the kind
17438         is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
17439         declaration is seen before the GTY((user)) marking.
17440
17441 2013-08-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17442
17443         PR target/58105
17444         * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
17445
17446 2013-08-16  Jan Hubicka  <jh@suse.cz>
17447
17448         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
17449         arugment expected_type.
17450         (gimple_fold_call): Use it.
17451         * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
17452         * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
17453         * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
17454         (try_make_edge_direct_virtual_call): Likewise.
17455         * tree.c (obj_type_ref_class): New.
17456         * tree.h (obj_type_ref_class): Use it.
17457
17458 2013-08-16  Gabriel Dos Reis  <gdr@integrable-solutions.net>
17459
17460         * sched-vis.c (rtl_slim_pp_initialized): Remove.
17461         (rtl_slim_pp): Likewise.
17462         (init_rtl_slim_pretty_print): Likewise.
17463         (dump_value_slim):  Don't call it.  Use local pretty printer.
17464         (dump_insn_slim): Likewise.
17465         (dump_rtl_slim): Likewise.
17466         (str_pattern_slim): Likewise.
17467         * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
17468         Simplify.
17469
17470 2013-08-16  Jakub Jelinek  <jakub@redhat.com>
17471
17472         PR tree-optimization/58164
17473         * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
17474         walk gimple_goto_dest of GIMPLE_GOTO.
17475
17476         PR tree-optimization/58165
17477         * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
17478         bi_call must be the last stmt in a bb, don't split_block, instead
17479         use fallthru edge from it and give up if there is none.
17480         Release conds vector when returning early.
17481
17482 2013-08-14  Xinliang David Li  <davidxl@google.com>
17483
17484         * config/i386/i386.c (ix86_option_override_internal):
17485         Remove unused variable and field.
17486
17487 2013-08-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17488
17489         PR target/57949
17490         * doc/invoke.texi: Add documentation of mcompat-align-parm option.
17491         * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
17492         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
17493         and Linux, correct BLKmode alignment when 128-bit alignment is
17494         required and compatibility flag is not set.
17495         (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
17496         for zero-size arguments when compatibility flag is not set.
17497
17498 2013-08-14  Jakub Jelinek  <jakub@redhat.com>
17499
17500         PR tree-optimization/58145
17501         * tree-sra.c (build_ref_for_offset): If prev_base has
17502         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
17503
17504 2013-08-14  Xinliang David Li  <davidxl@google.com>
17505
17506         * config/i386/i386.c (ix86_option_override_internal):
17507         Fix uninitialized variable error.
17508
17509 2013-08-14  Xinliang David Li  <davidxl@google.com>
17510
17511         * config/i386/i386.opt: Define two new options.
17512         * config/i386/x86-tune.def: Add arch selector field in macros.
17513         * config/i386/i386.h: Adjust macro definition.
17514         * config/i386/i386.c (ix86_option_override_internal):
17515         Refactor the code.
17516         (parse_mtune_ctrl_str): New function.
17517         (set_ix86_tune_features): New function.
17518         (ix86_function_specific_restore): Call the new helper function.
17519
17520 2013-08-14  Andrey Belevantsev  <abel@ispras.ru>
17521
17522         PR rtl-optimization/57662
17523         * sel-sched.c (code_motion_process_successors): When the current insn
17524         is removed after the recursive traversal, break from the loop.
17525         Add comments and debug printouts.
17526
17527 2013-08-14  Jakub Jelinek  <jakub@redhat.com>
17528             Alexandre Oliva  <aoliva@redhat.com>
17529
17530         PR target/58067
17531         * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
17532         and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
17533         there also UNSPEC_PLTOFF.
17534
17535 2013-08-14  Marek Polacek  <polacek@redhat.com>
17536
17537         * ipa-inline-analysis.c (add_clause): Avoid shifting integer
17538         NUM_CONDITIONS bit positions.
17539
17540 2013-08-13  Cary Coutant  <ccoutant@google.com>
17541
17542         * dwarf2out.c (CHECKSUM_BLOCK): New macro.
17543         (attr_checksum): Hash vector contents instead of pointer.
17544         (attr_checksum_ordered): Likewise.
17545
17546 2013-08-13  Uros Bizjak  <ubizjak@gmail.com>
17547
17548         * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
17549         when Pmode != word_mode.  Add length_address attribute.
17550         (sse3_monitor_<mode>): Merge from sse3_monitor and
17551         sse3_monitor64_<mode> insn patterns.  Emit addr32 prefix when
17552         Pmode != word_mode.  Update insn length attribute.
17553         * config/i386/i386.c (ix86_option_override_internal): Update
17554         ix86_gen_monitor selection for merged sse3_monitor insn.
17555
17556 2013-08-13  Julian Brown  <julian@codesourcery.com>
17557
17558         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
17559         perform invalid legitimization on greater-than-word-size modes for
17560         TARGET_E500_DOUBLE.
17561
17562 2013-08-13  Vladimir Makarov  <vmakarov@redhat.com>
17563
17564         * ira.c (setup_class_translate_array): Use aclass instead of cl
17565         for classes not fully covered by allocno classes.
17566
17567 2013-08-13  Jakub Jelinek  <jakub@redhat.com>
17568
17569         PR tree-optimization/57661
17570         * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
17571         * tree-inline.c (tree_function_versioning): Initialize it.
17572         (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
17573         if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
17574         that is not being copied.
17575
17576         PR sanitizer/56417
17577         * asan.c (instrument_strlen_call): Fix typo in comment.
17578         Use char * type even for the lhs of POINTER_PLUS_EXPR.
17579
17580 2013-08-13  Steve Ellcey  <sellcey@mips.com>
17581
17582         * config/mips/mips.md (prefetch): Use lw instead of ld on
17583         loongson in 32bit mode.
17584
17585 2013-08-13  Nick Clifton  <nickc@redhat.com>
17586
17587         * config.gcc: (avr-linux): Allow for tmake_file not being empty.
17588
17589 2013-08-13  Jan Hubicka  <jh@suse.cz>
17590
17591         * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
17592         introduced edge; fix typo in sanity check.
17593         (cgraph_resolve_speculation): Export; improve diagnostic.
17594         (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
17595         speculation at type mismatch.
17596         * cgraph.h (cgraph_turn_edge_to_speculative): Update.
17597         (cgraph_resolve_speculation): Declare.
17598         (symtab_can_be_discarded): New function.
17599         * value-prof.c (gimple_ic_transform): Remove actual transform code.
17600         * ipa-inline-transform.c (speculation_removed): New global var.
17601         (clone_inlined_nodes): See if speculation can be removed.
17602         (inline_call): If speculations was removed, we growths may not match.
17603         * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
17604         (speculation_useful_p): New function.
17605         (resolve_noninline_speculation): New function.
17606         (inline_small_functions): Resolve useless speculations.
17607         * ipa-inline.h (speculation_useful_p): Declare
17608         * ipa.c (can_replace_by_local_alias): Simplify.
17609         (ipa_profile): Produce speculative calls in non-lto, too;
17610         add simple cost model; produce local aliases.
17611
17612 2013-08-13  David Malcolm  <dmalcolm@redhat.com>
17613
17614         * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
17615         PASS_MANAGER_H.
17616
17617 2013-08-12  Paolo Carlini  <paolo.carlini@oracle.com>
17618
17619         * config/i386/i386.c (ix86_function_versions): Use error + inform.
17620
17621 2013-08-12  Uros Bizjak  <ubizjak@gmail.com>
17622
17623         * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
17624         iterator instead of X87MODEF.
17625
17626 2013-08-12  Perez Read  <netfirewall@gmail.com>
17627
17628         PR target/58132
17629         * config/i386/i386.md (*movabs<mode>_1):  Add <ptrsize> PTR before
17630         operand 0 for intel asm alternative.
17631         (*movabs<mode>_2): Ditto for operand 1.
17632
17633 2013-08-12  James Greenhalgh  <james.greenhalgh@arm.com>
17634
17635         * config/aarch64/arm_none.h
17636         (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
17637
17638 2013-08-12  Nick Clifton  <nickc@redhat.com>
17639
17640         * config.gcc (m32r-linux): Allow for tmake_file not being empty.
17641
17642 2013-08-12  Yuri Rumyantsev  <ysrumyan@gmail.com>
17643
17644         * config/i386/i386.md (floatunssi<mode>2 expand): Add new
17645         expand for QI/HImode operand to produce more effictive code for
17646         unsigned char(short) --> float(double) conversion.
17647
17648 2013-08-12  Alexander Monakov  <amonakov@ispras.ru>
17649
17650         * doc/invoke.texi: Mention that -ftls-model does not force the final
17651         model.
17652
17653 2013-08-12  Marek Polacek  <polacek@redhat.com>
17654             Marc Glisse  <marc.glisse@inria.fr>
17655
17656         PR tree-optimization/57980
17657         * tree-tailcall.c (process_assignment): Call build_minus_one_cst
17658         when creating -1 constant.
17659
17660 2013-08-10  Jan Hubicka  <jh@suse.cz>
17661
17662         Workaround binutils PR14342.
17663         * tree-profile.c (init_ic_make_global_vars): Add LTO path.
17664         (gimple_init_edge_profiler): Likewise.
17665         (gimple_gen_ic_func_profiler): Likewise.
17666
17667 2013-08-09  Jan Hubicka  <jh@suse.cz>
17668
17669         * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
17670
17671 2013-08-09  Xinliang David Li  <davidxl@google.com>
17672
17673         * config/i386/stringop.def: New file.
17674         * config/i386/stringop.opt: New file.
17675         * config/i386/i386-opts.h: Include stringopt.def.
17676         * config/i386/i386.opt: Include stringopt.opt.
17677         * config/i386/i386.c (ix86_option_override_internal):
17678         Override default size based stringop inline strategies with options.
17679         * config/i386/i386.c (ix86_parse_stringop_strategy_string):
17680         New function.
17681
17682 2013-08-09  Jan Hubicka  <jh@suse.cz>
17683
17684         * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
17685
17686 2013-08-09  Jan Hubicka  <jh@suse.cz>
17687
17688         * cgraph.c (cgraph_resolve_speculation): Cut frequency to
17689         CGRAPH_FREQ_MAX.
17690         (dump_cgraph_node): Dump profile-id.
17691         * cgraph.h (cgraph_indirect_call_info): Add common_target_id
17692         and common_target_probability.
17693         * lto-cgraph.c (lto_output_edge): Stream common targets.
17694         (lto_output_node): Stream profile ids.
17695         (input_node): Stream profile ids.
17696         (input_edge): Stream common targets.
17697         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
17698         * ipa.c: Include value-prof.h
17699         (ipa_profile_generate_summary): Turn indirect call statement histograms
17700         into common targets.
17701         (ipa_profile): Turn common targets into speculative edges.
17702
17703 2013-08-09  Jan Hubicka  <jh@suse.cz>
17704
17705         * cgraph.h (cgraph_node): Add profile_id.
17706         * value-prof.c (cgraph_node_map): Turn into pointer_map.
17707         (init_node_map): Rewrite to handle hashes increas of incremental IDs.
17708         (del_node_map): Update.
17709         (find_func_by_funcdef_no): Replace by ...
17710         (find_func_by_profile_id): ... this one.
17711         (gimple_ic_transform): Do not remove useful histograms when
17712         speculation is not done; dump info when indirect call removal
17713         can happen at LTO.
17714         * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
17715         * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
17716         (__gcov_indirect_call_profiler_v2): .. this one.
17717         * profile.h (init_node_map): Update.
17718         * coverage.c (coverage_compute_profile_id): New function.
17719         * coverage.h (coverage_compute_profile_id): Declare.
17720         * tree-profile.c (init_ic_make_global_vars): Make
17721         __gcov_indirect_call_callee and  __gcov_indirect_call_counters global.
17722         (gimple_init_edge_profiler): Update prototype of
17723         __gcov_indirect_call_profiler.
17724         (gimple_gen_ic_func_profiler): Simplify.
17725         (tree_profiling): Use init_node_map
17726
17727 2013-08-09  Jan Hubicka  <jh@suse.cz>
17728
17729         * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
17730         non-speculative refs.
17731         * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
17732         (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
17733         (cgraph_set_call_stmt): Likewise.
17734         (cgraph_create_edge_1): Fix release checking compilatoin;
17735         clear lto_stmt_uid.
17736         (cgraph_free_edge): Free indirect info.
17737         (cgraph_turn_edge_to_speculative): New function.
17738         (cgraph_speculative_call_info): New function.
17739         (cgraph_make_edge_direct): Return direct edge; handle speculation.
17740         (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
17741         (dump_cgraph_node): Dump speculation.
17742         (verify_edge_count_and_frequency): Accept speculative edges.
17743         (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
17744         (verify_cgraph_node): Handle speculation.
17745         * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
17746         (cgraph_set_call_stmt): Update prototype.
17747         (cgraph_make_edge_direct): Update prototype.
17748         (cgraph_speculative_call_info): Declare.
17749         * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
17750         to change; update call of ipa_find_references.
17751         * ipa-ref.c (ipa_record_reference): Fix return value; clear
17752         lto_stmt_uid and speculative flags.
17753         (ipa_dump_references): Dump speculation.
17754         (ipa_clone_references): Clone speculative flag.
17755         (ipa_clone_referring): Likewise.
17756         (ipa_clone_ref): New function.
17757         (ipa_find_reference): Look into lto_stmt_uids
17758         (ipa_clear_stmts_in_references): Do not clear speculative calls.
17759         * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
17760         (ipa_find_reference): Update declaration.
17761         (ipa_clone_ref): Declare.
17762         * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
17763         stream speculative flag.
17764         (lto_output_ref): Stream statements uids and speculation.
17765         (input_ref): Likewise.
17766         (input_edge): Stream speuclation.
17767         * cgraphclones.c (cgraph_clone_edge): Clone speculation.
17768         (cgraph_set_call_stmt_including_clones): Handle speculation.
17769         * ipa-inline.c (heap_edge_removal_hook): New function.
17770         (inline_small_functions): Register it.
17771         * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
17772         also initialize refs.
17773         * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
17774         edge to change.
17775         (try_make_edge_direct_simple_call): Likewise.
17776         (try_make_edge_direct_simple_call): Likewise.
17777         (update_indirect_edges_after_inlining): Likewise.
17778         (remove_described_reference): Look proper lto_stmt_uid.
17779         (propagate_controlled_uses): Likewise.
17780         (propagate_controlled_uses): Liekwise.
17781         * tree-inline.c (copy_bb): Copy speculative edges.
17782         (redirect_all_calls): New function.
17783         (copy_cfg_body): Do redirection after loop info is updated.
17784         (delete_unreachable_blocks_update_callgraph): Updadte speculation.
17785
17786 2013-08-09  Jan Hubicka  <jh@suse.cz>
17787
17788         * lto-streamer-out.c (output_function): Renumber PHIs.
17789         * lto-streamer-in.c (input_function): Likewise.
17790
17791 2013-08-09  James Greenhalgh  <james.greenhalgh@arm.com>
17792
17793         * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
17794         (get_lane_unsigned): Likewise.
17795         (dup_lane_scalar): Likewise.
17796         (get_lane): enable for VALL.
17797         * config/aarch64/aarch64-simd.md
17798         (aarch64_dup_lane_scalar<mode>): Remove.
17799         (aarch64_get_lane_signed<mode>): Likewise.
17800         (aarch64_get_lane_unsigned<mode>): Likewise.
17801         (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
17802         (aarch64_get_lane_zero_extendsi<mode>): Likewise.
17803         (aarch64_get_lane<mode>): Enable for all vector modes.
17804         (aarch64_get_lanedi): Remove misleading constraints.
17805         * config/aarch64/arm_neon.h
17806         (__aarch64_vget_lane_any): Define.
17807         (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
17808         (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
17809         (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
17810         * config/aarch64/iterators.md (VDQQH): New.
17811         (VDQQHS): Likewise.
17812         (vwcore): Likewise.
17813
17814 2013-08-09  Eric Botcazou  <ebotcazou@adacore.com>
17815
17816         * configure.ac: Add GAS check for LEON instructions on SPARC.
17817         * configure: Regenerate.
17818         * config.in: Likewise.
17819         * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
17820         sparc*-*-* block.
17821         * config/sparc/sparc.opt (LEON, LEON3): New masks.
17822         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
17823         for LEON or LEON3.
17824         (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
17825         (AS_LEON_FLAG): New macro.
17826         * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
17827         and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
17828         Deal with LEON and LEON3 for the memory model.
17829         * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
17830         (atomic_compare_and_swap<mode>_1): Likewise.
17831         (*atomic_compare_and_swap<mode>_1): Likewise.
17832
17833 2013-08-09  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
17834
17835         * config/arm/neon.md (vcond): Fix floating-point vector
17836         comparisons against 0.
17837
17838 2013-08-08  Vladimir Makarov  <vmakarov@redhat.com>
17839
17840         * lra-constraints.c (emit_spill_move): Remove assert.
17841         (process_alt_operands): Add more debugging
17842         output.  Increase reject for spilling into memory.  Decrease
17843         reject for reloading scratch.
17844         (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
17845
17846 2013-08-08  Steve Ellcey  <sellcey@mips.com>
17847
17848         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
17849         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
17850         micromips incompatible.  Add nan2008.
17851         (MULTILIB_DIRNAMES): Add nan2008.
17852         (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
17853         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
17854         and micromips incompatible.  Add nan2008.
17855         (MULTILIB_DIRNAMES): Add nan2008.
17856         (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
17857
17858 2013-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
17859
17860         PR rtl-optimization/58079
17861         * combine.c (combine_simplify_rtx): Avoid using SUBST if
17862         simplify_comparison has widened a comparison with an integer.
17863
17864 2013-08-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17865
17866         * config/arm/neon.md (movmisalign<mode>): Disable when we
17867         don't allow unaligned accesses.
17868         (*movmisalign<mode>_neon_store): Likewise.
17869         (*movmisalign<mode>_neon_load): Likewise.
17870         (*movmisalign<mode>_neon_store): Likewise.
17871         (*movmisalign<mode>_neon_load): Likewise.
17872
17873 2013-08-08  Jan Hubicka  <jh@suse.cz>
17874
17875         * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
17876         (make_pass_rebuild_cgraph_edges): Also clear references.
17877         * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
17878         * ipa-inline-transform.c (inline_transform): Remove all references
17879         after inlining.
17880         * cgraphunit.c (expand_function): Remove all references after
17881         expansion.
17882         * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
17883         (ipa_find_reference): Rewrite to iterator.
17884         (remove_stmt_references): Likewise.
17885         (ipa_clear_stmts_in_references): New function.
17886         * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
17887         * cgraphclones.c (cgraph_materialize_all_clones): Remove or
17888         clear references.
17889         * ipa-split.c (split_function): Remove references in split function.
17890
17891 2013-08-08  Richard Earnshaw  <rearnsha@arm.com>
17892
17893         PR target/57431
17894         * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
17895         (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
17896
17897 2013-08-08  Richard Earnshaw  <rearnsha@arm.com>
17898
17899         PR target/56979
17900         * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
17901         suggested mode for the assignment isn't compatible with the
17902         registers required.
17903
17904 2013-08-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17905
17906         PR target/58065
17907         * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
17908
17909 2013-08-07  Xinliang David Li  <davidxl@google.com>
17910
17911         * config/i386/i386.opt: New option -mtune-ctrl=.
17912         * config/i386/x86-tune.def: New file.
17913         * config/i386/i386.h: include x86-tune.def.
17914         * config/i386/i386.c (ix86_option_override_internal):
17915         Parsing -mtune-ctrl= option and set tune features.
17916
17917 2013-08-07  Oleg Endo  <olegendo@gcc.gnu.org>
17918
17919         PR other/12081
17920         * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
17921         (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
17922         to gen_2arg_fn_t.
17923
17924 2013-08-07  Eric Botcazou  <ebotcazou@adacore.com>
17925
17926         * rtl.h (update_alignments): Declare.
17927         * final.c (grow_label_align): New function extracted from...
17928         (shorten_branches): ...here.  Call it.
17929         (update_alignments): New function.
17930         * reorg.c (sibling_labels): New variable.
17931         (get_label_before): Add SIBLING parameter.  If it is non-zero, push
17932         the new label along with it onto the sibling_labels vector.
17933         (fill_simple_delay_slots): Adjust call to get_label_before.
17934         (fill_slots_from_thread): Likewise.
17935         (relax_delay_slots): Likewise.
17936         (make_return_insns): Likewise.
17937         (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
17938
17939 2013-08-07  Eric Botcazou  <ebotcazou@adacore.com>
17940
17941         * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
17942         document its semantics.
17943         (diagnostic_report_diagnostic): Adjust accordingly.
17944
17945 2013-08-07  David Malcolm  <dmalcolm@redhat.com>
17946
17947         * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
17948         (sparc_option_override): ...and port to new C++ pass API.
17949         * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
17950
17951 2013-08-07  Peter Bergner  <bergner@vnet.ibm.com>
17952
17953         * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
17954
17955 2013-08-06  Caroline Tice  <cmtice@google.com>
17956
17957         * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
17958         (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
17959         * tree-pass.h: Add pass_vtable_verify.
17960         * varasm.c (assemble_variable): Add code to properly set the comdat
17961         section and name for the .vtable_map_vars section.
17962         (assemble_vtyv_preinit_initializer): New function.
17963         (default_sectin_type_flags):  Make sure .vtable_map_vars section has
17964         LINK_ONCE flag.
17965         * output.h: Add function decl for assemble_vtv_preinit_initializer.
17966         * vtable-verify.c: New file.
17967         * vtable-verify.h: New file.
17968         * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
17969         initialiation levels.
17970         * timevar.def (TV_VTABLE_VERIFICATION): New definition.
17971         * passes.def: Insert pass_vtable_verify.
17972         * aclocal.m4: Reorder includes.
17973         * doc/invoke.texi:  Document the -fvtable-verify=, -fvtv-debug, and
17974         -fvtv-counts options.
17975         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
17976         as appropriate, if -fvtable-verify=... is used.
17977         (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
17978         -fvtable-verify=... is used.
17979         * Makefile.in (OBJS):  Add vtable-verify.o to list.
17980         (vtable-verify.o): Add new build rule.
17981         (GTFILES): Add vtable-verify.c to list.
17982         * common.opt (fvtable-verify=): New flag.
17983         (vtv_priority): Values for fvtable-verify= flag.
17984         (fvtv-counts): New flag.
17985         (fvtv-debug): New flag.
17986         * tree.h (save_vtable_map_decl): New extern function decl.
17987
17988 2013-08-07  David Malcolm  <dmalcolm@redhat.com>
17989
17990         * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
17991         (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
17992         (pass_data_rl78_devirt): ...new pass_data instance and...
17993         (make_pass_rl78_devirt): ...new function.
17994         (rl78_asm_file_start): Port pass registration to new C++ API.
17995
17996 2013-08-07  David Malcolm  <dmalcolm@redhat.com>
17997
17998         * coretypes.h (rtl_opt_pass): Add.
17999         (gcc::context): Add.
18000         * config/epiphany/epiphany.c (pass_mode_switch_use): New.
18001         (epiphany_init): Port to new C++ pass API.
18002         (epiphany_optimize_mode_switching): Likewise.
18003         * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
18004         (pass_manager::get_pass_mode_switching): New.
18005         (pass_manager::get_pass_peephole2): New.
18006         * mode-switching.c (pass_mode_switching): Add clone method.
18007         * recog.c (pass_peephole2): Add clone method.
18008         (pass_split_all_insns): Add clone method.
18009
18010 2013-08-06  David Malcolm  <dmalcolm@redhat.com>
18011
18012         * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
18013         (mips_option_override): ...here, porting to new C++ API for passes.
18014
18015 2013-08-06  Jan Hubicka  <jh@suse.cz>
18016
18017         * cgraph.c (cgraph_get_body): New function based on lto.c
18018         implementation.
18019         * cgraph.h (cgraph_get_body): Declare.
18020         * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
18021         LTO paths.
18022         * cgraphunit.c (expand_function): Get body prior expanding.
18023         * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
18024         * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
18025         really need.
18026         * passes.c (do_per_function_toporder): Get body.
18027         * tree-inline.c (expand_call_inline): Get body prior inlining it.
18028         * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
18029
18030 2013-08-06  Martin Jambor  <mjambor@suse.cz>
18031
18032         PR fortran/57987
18033         * cgraphunit.c (cgraph_finalize_function): Assert that nested function
18034         is not re-finalized.  Rename second parameter to no_collect.
18035
18036 2013-08-06  Martin Jambor  <mjambor@suse.cz>
18037
18038         PR middle-end/58041
18039         * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
18040         MEM_REF has proper alignment information.
18041
18042 2013-08-05  Oleg Endo  <olegendo@gcc.gnu.org>
18043
18044         PR other/12081
18045         * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
18046         class insn_gen_fn.
18047         * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
18048         rtx (*) (rtx, ...) with insn_gen_fn.
18049         * genoutput.c (output_insn_data): Cast gen_? function pointers to
18050         insn_gen_fn::stored_funcptr.  Add initializer braces.
18051
18052 2013-08-05  David Malcolm  <dmalcolm@redhat.com>
18053
18054         Rewrite how instances of passes are cloned to remove assumptions
18055         about their sizes (thus allowing pass subclasses to have
18056         additional data fields, albeit non-GC-managed ones at this point).
18057
18058         * passes.c (make_pass_instance): Now that passes have clone
18059         methods, rewrite this function to eliminate XNEW and memcpy
18060         calls that used hardcoded sizes.  Since this function no longer
18061         creates pass instances, rename it to...
18062         (add_pass_instance): ...this.  Document the old way that passes were
18063         numbered and flagged, and rework this function to continue using it.
18064         (next_pass_1): Add an initial_pass argument for use by
18065         add_pass_instance.
18066         (position_pass): When adding multiple instances of a pass, use
18067         the pass's clone method, rather than relying on the XNEW/memcpy
18068         within the former make_pass_instance (now add_pass_instance).
18069         (pass_manager::pass_manager): When invoking next_pass_1, also supply
18070         the initial instance of the current pass within the pass manager.
18071
18072 2013-08-05  David Malcolm  <dmalcolm@redhat.com>
18073
18074         This is the automated part of the conversion of passes from C
18075         structs to C++ classes.
18076
18077         Patch autogenerated by refactor_passes.py from
18078         https://github.com/davidmalcolm/gcc-refactoring-scripts
18079         revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
18080
18081         * asan.c (pass_asan): Convert from a global struct to a subclass of
18082         gimple_opt_pass along with...
18083         (pass_data_asan): ...new pass_data instance and...
18084         (make_pass_asan): ...new function.
18085         (pass_asan_O0): Convert from a global struct to a subclass of
18086         gimple_opt_pass along with...
18087         (pass_data_asan_O0): ...new pass_data instance and...
18088         (make_pass_asan_O0): ...new function.
18089         * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
18090         subclass of rtl_opt_pass along with...
18091         (pass_data_inc_dec): ...new pass_data instance and...
18092         (make_pass_inc_dec): ...new function.
18093         * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
18094         a subclass of rtl_opt_pass along with...
18095         (pass_data_reorder_blocks): ...new pass_data instance and...
18096         (make_pass_reorder_blocks): ...new function.
18097         (pass_duplicate_computed_gotos): Convert from a global struct to a
18098         subclass of rtl_opt_pass along with...
18099         (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
18100         (make_pass_duplicate_computed_gotos): ...new function.
18101         (pass_partition_blocks): Convert from a global struct to a subclass of
18102         rtl_opt_pass along with...
18103         (pass_data_partition_blocks): ...new pass_data instance and...
18104         (make_pass_partition_blocks): ...new function.
18105         * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
18106         struct to a subclass of rtl_opt_pass along with...
18107         (pass_data_branch_target_load_optimize1): ...new pass_data instance
18108         and...
18109         (make_pass_branch_target_load_optimize1): ...new function.
18110         (pass_branch_target_load_optimize2): Convert from a global struct to a
18111         subclass of rtl_opt_pass along with...
18112         (pass_data_branch_target_load_optimize2): ...new pass_data instance
18113         and...
18114         (make_pass_branch_target_load_optimize2): ...new function.
18115         * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
18116         of rtl_opt_pass along with...
18117         (pass_data_jump): ...new pass_data instance and...
18118         (make_pass_jump): ...new function.
18119         (pass_jump2): Convert from a global struct to a subclass of
18120         rtl_opt_pass along with...
18121         (pass_data_jump2): ...new pass_data instance and...
18122         (make_pass_jump2): ...new function.
18123         * cfgexpand.c (pass_expand): Convert from a global struct to a
18124         subclass of rtl_opt_pass along with...
18125         (pass_data_expand): ...new pass_data instance and...
18126         (make_pass_expand): ...new function.
18127         * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
18128         of rtl_opt_pass along with...
18129         (pass_data_free_cfg): ...new pass_data instance and...
18130         (make_pass_free_cfg): ...new function.
18131         (pass_into_cfg_layout_mode): Convert from a global struct to a
18132         subclass of rtl_opt_pass along with...
18133         (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
18134         (make_pass_into_cfg_layout_mode): ...new function.
18135         (pass_outof_cfg_layout_mode): Convert from a global struct to a
18136         subclass of rtl_opt_pass along with...
18137         (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
18138         (make_pass_outof_cfg_layout_mode): ...new function.
18139         * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
18140         struct to a subclass of gimple_opt_pass along with...
18141         (pass_data_build_cgraph_edges): ...new pass_data instance and...
18142         (make_pass_build_cgraph_edges): ...new function.
18143         (pass_rebuild_cgraph_edges): Convert from a global struct to a
18144         subclass of gimple_opt_pass along with...
18145         (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
18146         (make_pass_rebuild_cgraph_edges): ...new function.
18147         (pass_remove_cgraph_callee_edges): Convert from a global struct to a
18148         subclass of gimple_opt_pass along with...
18149         (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
18150         and...
18151         (make_pass_remove_cgraph_callee_edges): ...new function.
18152         * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
18153         struct to a subclass of rtl_opt_pass along with...
18154         (pass_data_stack_adjustments): ...new pass_data instance and...
18155         (make_pass_stack_adjustments): ...new function.
18156         * combine.c (pass_combine): Convert from a global struct to a subclass
18157         of rtl_opt_pass along with...
18158         (pass_data_combine): ...new pass_data instance and...
18159         (make_pass_combine): ...new function.
18160         * compare-elim.c (pass_compare_elim_after_reload): Convert from a
18161         global struct to a subclass of rtl_opt_pass along with...
18162         (pass_data_compare_elim_after_reload): ...new pass_data instance
18163         and...
18164         (make_pass_compare_elim_after_reload): ...new function.
18165         * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
18166         of rtl_opt_pass along with...
18167         (pass_data_rtl_cprop): ...new pass_data instance and...
18168         (make_pass_rtl_cprop): ...new function.
18169         * cse.c (pass_cse): Convert from a global struct to a subclass of
18170         rtl_opt_pass along with...
18171         (pass_data_cse): ...new pass_data instance and...
18172         (make_pass_cse): ...new function.
18173         (pass_cse2): Convert from a global struct to a subclass of
18174         rtl_opt_pass along with...
18175         (pass_data_cse2): ...new pass_data instance and...
18176         (make_pass_cse2): ...new function.
18177         (pass_cse_after_global_opts): Convert from a global struct to a
18178         subclass of rtl_opt_pass along with...
18179         (pass_data_cse_after_global_opts): ...new pass_data instance and...
18180         (make_pass_cse_after_global_opts): ...new function.
18181         * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
18182         of rtl_opt_pass along with...
18183         (pass_data_ud_rtl_dce): ...new pass_data instance and...
18184         (make_pass_ud_rtl_dce): ...new function.
18185         (pass_fast_rtl_dce): Convert from a global struct to a subclass of
18186         rtl_opt_pass along with...
18187         (pass_data_fast_rtl_dce): ...new pass_data instance and...
18188         (make_pass_fast_rtl_dce): ...new function.
18189         * df-core.c (pass_df_initialize_opt): Convert from a global struct to
18190         a subclass of rtl_opt_pass along with...
18191         (pass_data_df_initialize_opt): ...new pass_data instance and...
18192         (make_pass_df_initialize_opt): ...new function.
18193         (pass_df_initialize_no_opt): Convert from a global struct to a
18194         subclass of rtl_opt_pass along with...
18195         (pass_data_df_initialize_no_opt): ...new pass_data instance and...
18196         (make_pass_df_initialize_no_opt): ...new function.
18197         (pass_df_finish): Convert from a global struct to a subclass of
18198         rtl_opt_pass along with...
18199         (pass_data_df_finish): ...new pass_data instance and...
18200         (make_pass_df_finish): ...new function.
18201         * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
18202         rtl_opt_pass along with...
18203         (pass_data_rtl_dse1): ...new pass_data instance and...
18204         (make_pass_rtl_dse1): ...new function.
18205         (pass_rtl_dse2): Convert from a global struct to a subclass of
18206         rtl_opt_pass along with...
18207         (pass_data_rtl_dse2): ...new pass_data instance and...
18208         (make_pass_rtl_dse2): ...new function.
18209         * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
18210         subclass of rtl_opt_pass along with...
18211         (pass_data_dwarf2_frame): ...new pass_data instance and...
18212         (make_pass_dwarf2_frame): ...new function.
18213         * except.c (pass_set_nothrow_function_flags): Convert from a global
18214         struct to a subclass of rtl_opt_pass along with...
18215         (pass_data_set_nothrow_function_flags): ...new pass_data instance
18216         and...
18217         (make_pass_set_nothrow_function_flags): ...new function.
18218         (pass_convert_to_eh_region_ranges): Convert from a global struct to a
18219         subclass of rtl_opt_pass along with...
18220         (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
18221         and...
18222         (make_pass_convert_to_eh_region_ranges): ...new function.
18223         * final.c (pass_compute_alignments): Convert from a global struct to a
18224         subclass of rtl_opt_pass along with...
18225         (pass_data_compute_alignments): ...new pass_data instance and...
18226         (make_pass_compute_alignments): ...new function.
18227         (pass_final): Convert from a global struct to a subclass of
18228         rtl_opt_pass along with...
18229         (pass_data_final): ...new pass_data instance and...
18230         (make_pass_final): ...new function.
18231         (pass_shorten_branches): Convert from a global struct to a subclass of
18232         rtl_opt_pass along with...
18233         (pass_data_shorten_branches): ...new pass_data instance and...
18234         (make_pass_shorten_branches): ...new function.
18235         (pass_clean_state): Convert from a global struct to a subclass of
18236         rtl_opt_pass along with...
18237         (pass_data_clean_state): ...new pass_data instance and...
18238         (make_pass_clean_state): ...new function.
18239         * function.c (pass_instantiate_virtual_regs): Convert from a global
18240         struct to a subclass of rtl_opt_pass along with...
18241         (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
18242         (make_pass_instantiate_virtual_regs): ...new function.
18243         (pass_leaf_regs): Convert from a global struct to a subclass of
18244         rtl_opt_pass along with...
18245         (pass_data_leaf_regs): ...new pass_data instance and...
18246         (make_pass_leaf_regs): ...new function.
18247         (pass_thread_prologue_and_epilogue): Convert from a global struct to a
18248         subclass of rtl_opt_pass along with...
18249         (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
18250         and...
18251         (make_pass_thread_prologue_and_epilogue): ...new function.
18252         (pass_match_asm_constraints): Convert from a global struct to a
18253         subclass of rtl_opt_pass along with...
18254         (pass_data_match_asm_constraints): ...new pass_data instance and...
18255         (make_pass_match_asm_constraints): ...new function.
18256         * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
18257         subclass of rtl_opt_pass along with...
18258         (pass_data_rtl_fwprop): ...new pass_data instance and...
18259         (make_pass_rtl_fwprop): ...new function.
18260         (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
18261         rtl_opt_pass along with...
18262         (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
18263         (make_pass_rtl_fwprop_addr): ...new function.
18264         * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
18265         rtl_opt_pass along with...
18266         (pass_data_rtl_pre): ...new pass_data instance and...
18267         (make_pass_rtl_pre): ...new function.
18268         (pass_rtl_hoist): Convert from a global struct to a subclass of
18269         rtl_opt_pass along with...
18270         (pass_data_rtl_hoist): ...new pass_data instance and...
18271         (make_pass_rtl_hoist): ...new function.
18272         * gimple-low.c (pass_lower_cf): Convert from a global struct to a
18273         subclass of gimple_opt_pass along with...
18274         (pass_data_lower_cf): ...new pass_data instance and...
18275         (make_pass_lower_cf): ...new function.
18276         * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
18277         from a global struct to a subclass of gimple_opt_pass along with...
18278         (pass_data_strength_reduction): ...new pass_data instance and...
18279         (make_pass_strength_reduction): ...new function.
18280         * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
18281         of rtl_opt_pass along with...
18282         (pass_data_rtl_ifcvt): ...new pass_data instance and...
18283         (make_pass_rtl_ifcvt): ...new function.
18284         (pass_if_after_combine): Convert from a global struct to a subclass of
18285         rtl_opt_pass along with...
18286         (pass_data_if_after_combine): ...new pass_data instance and...
18287         (make_pass_if_after_combine): ...new function.
18288         (pass_if_after_reload): Convert from a global struct to a subclass of
18289         rtl_opt_pass along with...
18290         (pass_data_if_after_reload): ...new pass_data instance and...
18291         (make_pass_if_after_reload): ...new function.
18292         * init-regs.c (pass_initialize_regs): Convert from a global struct to
18293         a subclass of rtl_opt_pass along with...
18294         (pass_data_initialize_regs): ...new pass_data instance and...
18295         (make_pass_initialize_regs): ...new function.
18296         * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
18297         of ipa_opt_pass_d along with...
18298         (pass_data_ipa_cp): ...new pass_data instance and...
18299         (make_pass_ipa_cp): ...new function.
18300         * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
18301         global struct to a subclass of gimple_opt_pass along with...
18302         (pass_data_inline_parameters): ...new pass_data instance and...
18303         (make_pass_inline_parameters): ...new function.
18304         * ipa-inline.c (pass_early_inline): Convert from a global struct to a
18305         subclass of gimple_opt_pass along with...
18306         (pass_data_early_inline): ...new pass_data instance and...
18307         (make_pass_early_inline): ...new function.
18308         (pass_ipa_inline): Convert from a global struct to a subclass of
18309         ipa_opt_pass_d along with...
18310         (pass_data_ipa_inline): ...new pass_data instance and...
18311         (make_pass_ipa_inline): ...new function.
18312         * ipa-pure-const.c (pass_local_pure_const): Convert from a global
18313         struct to a subclass of gimple_opt_pass along with...
18314         (pass_data_local_pure_const): ...new pass_data instance and...
18315         (make_pass_local_pure_const): ...new function.
18316         (pass_ipa_pure_const): Convert from a global struct to a subclass of
18317         ipa_opt_pass_d along with...
18318         (pass_data_ipa_pure_const): ...new pass_data instance and...
18319         (make_pass_ipa_pure_const): ...new function.
18320         * ipa-reference.c (pass_ipa_reference): Convert from a global struct
18321         to a subclass of ipa_opt_pass_d along with...
18322         (pass_data_ipa_reference): ...new pass_data instance and...
18323         (make_pass_ipa_reference): ...new function.
18324         * ipa-split.c (pass_split_functions): Convert from a global struct to
18325         a subclass of gimple_opt_pass along with...
18326         (pass_data_split_functions): ...new pass_data instance and...
18327         (make_pass_split_functions): ...new function.
18328         (pass_feedback_split_functions): Convert from a global struct to a
18329         subclass of gimple_opt_pass along with...
18330         (pass_data_feedback_split_functions): ...new pass_data instance and...
18331         (make_pass_feedback_split_functions): ...new function.
18332         * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
18333         global struct to a subclass of simple_ipa_opt_pass along with...
18334         (pass_data_ipa_function_and_variable_visibility): ...new pass_data
18335         instance and...
18336         (make_pass_ipa_function_and_variable_visibility): ...new function.
18337         (pass_ipa_free_inline_summary): Convert from a global struct to a
18338         subclass of simple_ipa_opt_pass along with...
18339         (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
18340         (make_pass_ipa_free_inline_summary): ...new function.
18341         (pass_ipa_whole_program_visibility): Convert from a global struct to a
18342         subclass of ipa_opt_pass_d along with...
18343         (pass_data_ipa_whole_program_visibility): ...new pass_data instance
18344         and...
18345         (make_pass_ipa_whole_program_visibility): ...new function.
18346         (pass_ipa_profile): Convert from a global struct to a subclass of
18347         ipa_opt_pass_d along with...
18348         (pass_data_ipa_profile): ...new pass_data instance and...
18349         (make_pass_ipa_profile): ...new function.
18350         (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
18351         ipa_opt_pass_d along with...
18352         (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
18353         (make_pass_ipa_cdtor_merge): ...new function.
18354         * ira.c (pass_ira): Convert from a global struct to a subclass of
18355         rtl_opt_pass along with...
18356         (pass_data_ira): ...new pass_data instance and...
18357         (make_pass_ira): ...new function.
18358         (pass_reload): Convert from a global struct to a subclass of
18359         rtl_opt_pass along with...
18360         (pass_data_reload): ...new pass_data instance and...
18361         (make_pass_reload): ...new function.
18362         * jump.c (pass_cleanup_barriers): Convert from a global struct to a
18363         subclass of rtl_opt_pass along with...
18364         (pass_data_cleanup_barriers): ...new pass_data instance and...
18365         (make_pass_cleanup_barriers): ...new function.
18366         * loop-init.c (pass_loop2): Convert from a global struct to a subclass
18367         of rtl_opt_pass along with...
18368         (pass_data_loop2): ...new pass_data instance and...
18369         (make_pass_loop2): ...new function.
18370         (pass_rtl_loop_init): Convert from a global struct to a subclass of
18371         rtl_opt_pass along with...
18372         (pass_data_rtl_loop_init): ...new pass_data instance and...
18373         (make_pass_rtl_loop_init): ...new function.
18374         (pass_rtl_loop_done): Convert from a global struct to a subclass of
18375         rtl_opt_pass along with...
18376         (pass_data_rtl_loop_done): ...new pass_data instance and...
18377         (make_pass_rtl_loop_done): ...new function.
18378         (pass_rtl_move_loop_invariants): Convert from a global struct to a
18379         subclass of rtl_opt_pass along with...
18380         (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
18381         (make_pass_rtl_move_loop_invariants): ...new function.
18382         (pass_rtl_unswitch): Convert from a global struct to a subclass of
18383         rtl_opt_pass along with...
18384         (pass_data_rtl_unswitch): ...new pass_data instance and...
18385         (make_pass_rtl_unswitch): ...new function.
18386         (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
18387         subclass of rtl_opt_pass along with...
18388         (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
18389         and...
18390         (make_pass_rtl_unroll_and_peel_loops): ...new function.
18391         (pass_rtl_doloop): Convert from a global struct to a subclass of
18392         rtl_opt_pass along with...
18393         (pass_data_rtl_doloop): ...new pass_data instance and...
18394         (make_pass_rtl_doloop): ...new function.
18395         * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
18396         a subclass of rtl_opt_pass along with...
18397         (pass_data_lower_subreg): ...new pass_data instance and...
18398         (make_pass_lower_subreg): ...new function.
18399         (pass_lower_subreg2): Convert from a global struct to a subclass of
18400         rtl_opt_pass along with...
18401         (pass_data_lower_subreg2): ...new pass_data instance and...
18402         (make_pass_lower_subreg2): ...new function.
18403         * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
18404         struct to a subclass of ipa_opt_pass_d along with...
18405         (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
18406         (make_pass_ipa_lto_gimple_out): ...new function.
18407         (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
18408         of ipa_opt_pass_d along with...
18409         (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
18410         (make_pass_ipa_lto_finish_out): ...new function.
18411         * mode-switching.c (pass_mode_switching): Convert from a global struct
18412         to a subclass of rtl_opt_pass along with...
18413         (pass_data_mode_switching): ...new pass_data instance and...
18414         (make_pass_mode_switching): ...new function.
18415         * modulo-sched.c (pass_sms): Convert from a global struct to a
18416         subclass of rtl_opt_pass along with...
18417         (pass_data_sms): ...new pass_data instance and...
18418         (make_pass_sms): ...new function.
18419         * omp-low.c (pass_expand_omp): Convert from a global struct to a
18420         subclass of gimple_opt_pass along with...
18421         (pass_data_expand_omp): ...new pass_data instance and...
18422         (make_pass_expand_omp): ...new function.
18423         (pass_lower_omp): Convert from a global struct to a subclass of
18424         gimple_opt_pass along with...
18425         (pass_data_lower_omp): ...new pass_data instance and...
18426         (make_pass_lower_omp): ...new function.
18427         (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
18428         of gimple_opt_pass along with...
18429         (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
18430         (make_pass_diagnose_omp_blocks): ...new function.
18431         * passes.c (pass_early_local_passes): Convert from a global struct to
18432         a subclass of simple_ipa_opt_pass along with...
18433         (pass_data_early_local_passes): ...new pass_data instance and...
18434         (make_pass_early_local_passes): ...new function.
18435         (pass_all_early_optimizations): Convert from a global struct to a
18436         subclass of gimple_opt_pass along with...
18437         (pass_data_all_early_optimizations): ...new pass_data instance and...
18438         (make_pass_all_early_optimizations): ...new function.
18439         (pass_all_optimizations): Convert from a global struct to a subclass
18440         of gimple_opt_pass along with...
18441         (pass_data_all_optimizations): ...new pass_data instance and...
18442         (make_pass_all_optimizations): ...new function.
18443         (pass_all_optimizations_g): Convert from a global struct to a subclass
18444         of gimple_opt_pass along with...
18445         (pass_data_all_optimizations_g): ...new pass_data instance and...
18446         (make_pass_all_optimizations_g): ...new function.
18447         (pass_rest_of_compilation): Convert from a global struct to a subclass
18448         of rtl_opt_pass along with...
18449         (pass_data_rest_of_compilation): ...new pass_data instance and...
18450         (make_pass_rest_of_compilation): ...new function.
18451         (pass_postreload): Convert from a global struct to a subclass of
18452         rtl_opt_pass along with...
18453         (pass_data_postreload): ...new pass_data instance and...
18454         (make_pass_postreload): ...new function.
18455         * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
18456         subclass of rtl_opt_pass along with...
18457         (pass_data_gcse2): ...new pass_data instance and...
18458         (make_pass_gcse2): ...new function.
18459         * postreload.c (pass_postreload_cse): Convert from a global struct to
18460         a subclass of rtl_opt_pass along with...
18461         (pass_data_postreload_cse): ...new pass_data instance and...
18462         (make_pass_postreload_cse): ...new function.
18463         * predict.c (pass_profile): Convert from a global struct to a subclass
18464         of gimple_opt_pass along with...
18465         (pass_data_profile): ...new pass_data instance and...
18466         (make_pass_profile): ...new function.
18467         (pass_strip_predict_hints): Convert from a global struct to a subclass
18468         of gimple_opt_pass along with...
18469         (pass_data_strip_predict_hints): ...new pass_data instance and...
18470         (make_pass_strip_predict_hints): ...new function.
18471         * recog.c (pass_peephole2): Convert from a global struct to a subclass
18472         of rtl_opt_pass along with...
18473         (pass_data_peephole2): ...new pass_data instance and...
18474         (make_pass_peephole2): ...new function.
18475         (pass_split_all_insns): Convert from a global struct to a subclass of
18476         rtl_opt_pass along with...
18477         (pass_data_split_all_insns): ...new pass_data instance and...
18478         (make_pass_split_all_insns): ...new function.
18479         (pass_split_after_reload): Convert from a global struct to a subclass
18480         of rtl_opt_pass along with...
18481         (pass_data_split_after_reload): ...new pass_data instance and...
18482         (make_pass_split_after_reload): ...new function.
18483         (pass_split_before_regstack): Convert from a global struct to a
18484         subclass of rtl_opt_pass along with...
18485         (pass_data_split_before_regstack): ...new pass_data instance and...
18486         (make_pass_split_before_regstack): ...new function.
18487         (pass_split_before_sched2): Convert from a global struct to a subclass
18488         of rtl_opt_pass along with...
18489         (pass_data_split_before_sched2): ...new pass_data instance and...
18490         (make_pass_split_before_sched2): ...new function.
18491         (pass_split_for_shorten_branches): Convert from a global struct to a
18492         subclass of rtl_opt_pass along with...
18493         (pass_data_split_for_shorten_branches): ...new pass_data instance
18494         and...
18495         (make_pass_split_for_shorten_branches): ...new function.
18496         * ree.c (pass_ree): Convert from a global struct to a subclass of
18497         rtl_opt_pass along with...
18498         (pass_data_ree): ...new pass_data instance and...
18499         (make_pass_ree): ...new function.
18500         * reg-stack.c (pass_stack_regs): Convert from a global struct to a
18501         subclass of rtl_opt_pass along with...
18502         (pass_data_stack_regs): ...new pass_data instance and...
18503         (make_pass_stack_regs): ...new function.
18504         (pass_stack_regs_run): Convert from a global struct to a subclass of
18505         rtl_opt_pass along with...
18506         (pass_data_stack_regs_run): ...new pass_data instance and...
18507         (make_pass_stack_regs_run): ...new function.
18508         * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
18509         subclass of rtl_opt_pass along with...
18510         (pass_data_cprop_hardreg): ...new pass_data instance and...
18511         (make_pass_cprop_hardreg): ...new function.
18512         * reginfo.c (pass_reginfo_init): Convert from a global struct to a
18513         subclass of rtl_opt_pass along with...
18514         (pass_data_reginfo_init): ...new pass_data instance and...
18515         (make_pass_reginfo_init): ...new function.
18516         * regmove.c (pass_regmove): Convert from a global struct to a subclass
18517         of rtl_opt_pass along with...
18518         (pass_data_regmove): ...new pass_data instance and...
18519         (make_pass_regmove): ...new function.
18520         * regrename.c (pass_regrename): Convert from a global struct to a
18521         subclass of rtl_opt_pass along with...
18522         (pass_data_regrename): ...new pass_data instance and...
18523         (make_pass_regrename): ...new function.
18524         * reorg.c (pass_delay_slots): Convert from a global struct to a
18525         subclass of rtl_opt_pass along with...
18526         (pass_data_delay_slots): ...new pass_data instance and...
18527         (make_pass_delay_slots): ...new function.
18528         (pass_machine_reorg): Convert from a global struct to a subclass of
18529         rtl_opt_pass along with...
18530         (pass_data_machine_reorg): ...new pass_data instance and...
18531         (make_pass_machine_reorg): ...new function.
18532         * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
18533         of rtl_opt_pass along with...
18534         (pass_data_sched): ...new pass_data instance and...
18535         (make_pass_sched): ...new function.
18536         (pass_sched2): Convert from a global struct to a subclass of
18537         rtl_opt_pass along with...
18538         (pass_data_sched2): ...new pass_data instance and...
18539         (make_pass_sched2): ...new function.
18540         * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
18541         to a subclass of rtl_opt_pass along with...
18542         (pass_data_stack_ptr_mod): ...new pass_data instance and...
18543         (make_pass_stack_ptr_mod): ...new function.
18544         * store-motion.c (pass_rtl_store_motion): Convert from a global struct
18545         to a subclass of rtl_opt_pass along with...
18546         (pass_data_rtl_store_motion): ...new pass_data instance and...
18547         (make_pass_rtl_store_motion): ...new function.
18548         * tracer.c (pass_tracer): Convert from a global struct to a subclass
18549         of gimple_opt_pass along with...
18550         (pass_data_tracer): ...new pass_data instance and...
18551         (make_pass_tracer): ...new function.
18552         * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
18553         to a subclass of gimple_opt_pass along with...
18554         (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
18555         (make_pass_diagnose_tm_blocks): ...new function.
18556         (pass_lower_tm): Convert from a global struct to a subclass of
18557         gimple_opt_pass along with...
18558         (pass_data_lower_tm): ...new pass_data instance and...
18559         (make_pass_lower_tm): ...new function.
18560         (pass_tm_init): Convert from a global struct to a subclass of
18561         gimple_opt_pass along with...
18562         (pass_data_tm_init): ...new pass_data instance and...
18563         (make_pass_tm_init): ...new function.
18564         (pass_tm_mark): Convert from a global struct to a subclass of
18565         gimple_opt_pass along with...
18566         (pass_data_tm_mark): ...new pass_data instance and...
18567         (make_pass_tm_mark): ...new function.
18568         (pass_tm_edges): Convert from a global struct to a subclass of
18569         gimple_opt_pass along with...
18570         (pass_data_tm_edges): ...new pass_data instance and...
18571         (make_pass_tm_edges): ...new function.
18572         (pass_tm_memopt): Convert from a global struct to a subclass of
18573         gimple_opt_pass along with...
18574         (pass_data_tm_memopt): ...new pass_data instance and...
18575         (make_pass_tm_memopt): ...new function.
18576         (pass_ipa_tm): Convert from a global struct to a subclass of
18577         simple_ipa_opt_pass along with...
18578         (pass_data_ipa_tm): ...new pass_data instance and...
18579         (make_pass_ipa_tm): ...new function.
18580         * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
18581         subclass of gimple_opt_pass along with...
18582         (pass_data_call_cdce): ...new pass_data instance and...
18583         (make_pass_call_cdce): ...new function.
18584         * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
18585         subclass of gimple_opt_pass along with...
18586         (pass_data_build_cfg): ...new pass_data instance and...
18587         (make_pass_build_cfg): ...new function.
18588         (pass_split_crit_edges): Convert from a global struct to a subclass of
18589         gimple_opt_pass along with...
18590         (pass_data_split_crit_edges): ...new pass_data instance and...
18591         (make_pass_split_crit_edges): ...new function.
18592         (pass_warn_function_return): Convert from a global struct to a
18593         subclass of gimple_opt_pass along with...
18594         (pass_data_warn_function_return): ...new pass_data instance and...
18595         (make_pass_warn_function_return): ...new function.
18596         (pass_warn_function_noreturn): Convert from a global struct to a
18597         subclass of gimple_opt_pass along with...
18598         (pass_data_warn_function_noreturn): ...new pass_data instance and...
18599         (make_pass_warn_function_noreturn): ...new function.
18600         (pass_warn_unused_result): Convert from a global struct to a subclass
18601         of gimple_opt_pass along with...
18602         (pass_data_warn_unused_result): ...new pass_data instance and...
18603         (make_pass_warn_unused_result): ...new function.
18604         * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
18605         a subclass of gimple_opt_pass along with...
18606         (pass_data_merge_phi): ...new pass_data instance and...
18607         (make_pass_merge_phi): ...new function.
18608         * tree-complex.c (pass_lower_complex): Convert from a global struct to
18609         a subclass of gimple_opt_pass along with...
18610         (pass_data_lower_complex): ...new pass_data instance and...
18611         (make_pass_lower_complex): ...new function.
18612         (pass_lower_complex_O0): Convert from a global struct to a subclass of
18613         gimple_opt_pass along with...
18614         (pass_data_lower_complex_O0): ...new pass_data instance and...
18615         (make_pass_lower_complex_O0): ...new function.
18616         * tree-eh.c (pass_lower_eh): Convert from a global struct to a
18617         subclass of gimple_opt_pass along with...
18618         (pass_data_lower_eh): ...new pass_data instance and...
18619         (make_pass_lower_eh): ...new function.
18620         (pass_refactor_eh): Convert from a global struct to a subclass of
18621         gimple_opt_pass along with...
18622         (pass_data_refactor_eh): ...new pass_data instance and...
18623         (make_pass_refactor_eh): ...new function.
18624         (pass_lower_resx): Convert from a global struct to a subclass of
18625         gimple_opt_pass along with...
18626         (pass_data_lower_resx): ...new pass_data instance and...
18627         (make_pass_lower_resx): ...new function.
18628         (pass_lower_eh_dispatch): Convert from a global struct to a subclass
18629         of gimple_opt_pass along with...
18630         (pass_data_lower_eh_dispatch): ...new pass_data instance and...
18631         (make_pass_lower_eh_dispatch): ...new function.
18632         (pass_cleanup_eh): Convert from a global struct to a subclass of
18633         gimple_opt_pass along with...
18634         (pass_data_cleanup_eh): ...new pass_data instance and...
18635         (make_pass_cleanup_eh): ...new function.
18636         * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
18637         to a subclass of simple_ipa_opt_pass along with...
18638         (pass_data_ipa_lower_emutls): ...new pass_data instance and...
18639         (make_pass_ipa_lower_emutls): ...new function.
18640         * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
18641         a subclass of gimple_opt_pass along with...
18642         (pass_data_if_conversion): ...new pass_data instance and...
18643         (make_pass_if_conversion): ...new function.
18644         * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
18645         subclass of gimple_opt_pass along with...
18646         (pass_data_build_ssa): ...new pass_data instance and...
18647         (make_pass_build_ssa): ...new function.
18648         * tree-loop-distribution.c (pass_loop_distribution): Convert from a
18649         global struct to a subclass of gimple_opt_pass along with...
18650         (pass_data_loop_distribution): ...new pass_data instance and...
18651         (make_pass_loop_distribution): ...new function.
18652         * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
18653         subclass of gimple_opt_pass along with...
18654         (pass_data_mudflap_1): ...new pass_data instance and...
18655         (make_pass_mudflap_1): ...new function.
18656         (pass_mudflap_2): Convert from a global struct to a subclass of
18657         gimple_opt_pass along with...
18658         (pass_data_mudflap_2): ...new pass_data instance and...
18659         (make_pass_mudflap_2): ...new function.
18660         * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
18661         subclass of gimple_opt_pass along with...
18662         (pass_data_mudflap_1): ...new pass_data instance and...
18663         (make_pass_mudflap_1): ...new function.
18664         (pass_mudflap_2): Convert from a global struct to a subclass of
18665         gimple_opt_pass along with...
18666         (pass_data_mudflap_2): ...new pass_data instance and...
18667         (make_pass_mudflap_2): ...new function.
18668         * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
18669         gimple_opt_pass along with...
18670         (pass_data_nrv): ...new pass_data instance and...
18671         (make_pass_nrv): ...new function.
18672         (pass_return_slot): Convert from a global struct to a subclass of
18673         gimple_opt_pass along with...
18674         (pass_data_return_slot): ...new pass_data instance and...
18675         (make_pass_return_slot): ...new function.
18676         * tree-object-size.c (pass_object_sizes): Convert from a global struct
18677         to a subclass of gimple_opt_pass along with...
18678         (pass_data_object_sizes): ...new pass_data instance and...
18679         (make_pass_object_sizes): ...new function.
18680         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
18681         global struct to a subclass of gimple_opt_pass along with...
18682         (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
18683         and...
18684         (make_pass_cleanup_cfg_post_optimizing): ...new function.
18685         (pass_fixup_cfg): Convert from a global struct to a subclass of
18686         gimple_opt_pass along with...
18687         (pass_data_fixup_cfg): ...new pass_data instance and...
18688         (make_pass_fixup_cfg): ...new function.
18689         * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
18690         (make_pass_mudflap_1): ...new function.
18691         (pass_mudflap_2): Replace declaration with that of...
18692         (make_pass_mudflap_2): ...new function.
18693         (pass_asan): Replace declaration with that of...
18694         (make_pass_asan): ...new function.
18695         (pass_asan_O0): Replace declaration with that of...
18696         (make_pass_asan_O0): ...new function.
18697         (pass_tsan): Replace declaration with that of...
18698         (make_pass_tsan): ...new function.
18699         (pass_tsan_O0): Replace declaration with that of...
18700         (make_pass_tsan_O0): ...new function.
18701         (pass_lower_cf): Replace declaration with that of...
18702         (make_pass_lower_cf): ...new function.
18703         (pass_refactor_eh): Replace declaration with that of...
18704         (make_pass_refactor_eh): ...new function.
18705         (pass_lower_eh): Replace declaration with that of...
18706         (make_pass_lower_eh): ...new function.
18707         (pass_lower_eh_dispatch): Replace declaration with that of...
18708         (make_pass_lower_eh_dispatch): ...new function.
18709         (pass_lower_resx): Replace declaration with that of...
18710         (make_pass_lower_resx): ...new function.
18711         (pass_build_cfg): Replace declaration with that of...
18712         (make_pass_build_cfg): ...new function.
18713         (pass_early_tree_profile): Replace declaration with that of...
18714         (make_pass_early_tree_profile): ...new function.
18715         (pass_cleanup_eh): Replace declaration with that of...
18716         (make_pass_cleanup_eh): ...new function.
18717         (pass_sra): Replace declaration with that of...
18718         (make_pass_sra): ...new function.
18719         (pass_sra_early): Replace declaration with that of...
18720         (make_pass_sra_early): ...new function.
18721         (pass_early_ipa_sra): Replace declaration with that of...
18722         (make_pass_early_ipa_sra): ...new function.
18723         (pass_tail_recursion): Replace declaration with that of...
18724         (make_pass_tail_recursion): ...new function.
18725         (pass_tail_calls): Replace declaration with that of...
18726         (make_pass_tail_calls): ...new function.
18727         (pass_tree_loop): Replace declaration with that of...
18728         (make_pass_tree_loop): ...new function.
18729         (pass_tree_loop_init): Replace declaration with that of...
18730         (make_pass_tree_loop_init): ...new function.
18731         (pass_lim): Replace declaration with that of...
18732         (make_pass_lim): ...new function.
18733         (pass_tree_unswitch): Replace declaration with that of...
18734         (make_pass_tree_unswitch): ...new function.
18735         (pass_predcom): Replace declaration with that of...
18736         (make_pass_predcom): ...new function.
18737         (pass_iv_canon): Replace declaration with that of...
18738         (make_pass_iv_canon): ...new function.
18739         (pass_scev_cprop): Replace declaration with that of...
18740         (make_pass_scev_cprop): ...new function.
18741         (pass_empty_loop): Replace declaration with that of...
18742         (make_pass_empty_loop): ...new function.
18743         (pass_record_bounds): Replace declaration with that of...
18744         (make_pass_record_bounds): ...new function.
18745         (pass_graphite): Replace declaration with that of...
18746         (make_pass_graphite): ...new function.
18747         (pass_graphite_transforms): Replace declaration with that of...
18748         (make_pass_graphite_transforms): ...new function.
18749         (pass_if_conversion): Replace declaration with that of...
18750         (make_pass_if_conversion): ...new function.
18751         (pass_loop_distribution): Replace declaration with that of...
18752         (make_pass_loop_distribution): ...new function.
18753         (pass_vectorize): Replace declaration with that of...
18754         (make_pass_vectorize): ...new function.
18755         (pass_slp_vectorize): Replace declaration with that of...
18756         (make_pass_slp_vectorize): ...new function.
18757         (pass_complete_unroll): Replace declaration with that of...
18758         (make_pass_complete_unroll): ...new function.
18759         (pass_complete_unrolli): Replace declaration with that of...
18760         (make_pass_complete_unrolli): ...new function.
18761         (pass_parallelize_loops): Replace declaration with that of...
18762         (make_pass_parallelize_loops): ...new function.
18763         (pass_loop_prefetch): Replace declaration with that of...
18764         (make_pass_loop_prefetch): ...new function.
18765         (pass_iv_optimize): Replace declaration with that of...
18766         (make_pass_iv_optimize): ...new function.
18767         (pass_tree_loop_done): Replace declaration with that of...
18768         (make_pass_tree_loop_done): ...new function.
18769         (pass_ch): Replace declaration with that of...
18770         (make_pass_ch): ...new function.
18771         (pass_ccp): Replace declaration with that of...
18772         (make_pass_ccp): ...new function.
18773         (pass_phi_only_cprop): Replace declaration with that of...
18774         (make_pass_phi_only_cprop): ...new function.
18775         (pass_build_ssa): Replace declaration with that of...
18776         (make_pass_build_ssa): ...new function.
18777         (pass_build_alias): Replace declaration with that of...
18778         (make_pass_build_alias): ...new function.
18779         (pass_build_ealias): Replace declaration with that of...
18780         (make_pass_build_ealias): ...new function.
18781         (pass_dominator): Replace declaration with that of...
18782         (make_pass_dominator): ...new function.
18783         (pass_dce): Replace declaration with that of...
18784         (make_pass_dce): ...new function.
18785         (pass_dce_loop): Replace declaration with that of...
18786         (make_pass_dce_loop): ...new function.
18787         (pass_cd_dce): Replace declaration with that of...
18788         (make_pass_cd_dce): ...new function.
18789         (pass_call_cdce): Replace declaration with that of...
18790         (make_pass_call_cdce): ...new function.
18791         (pass_merge_phi): Replace declaration with that of...
18792         (make_pass_merge_phi): ...new function.
18793         (pass_split_crit_edges): Replace declaration with that of...
18794         (make_pass_split_crit_edges): ...new function.
18795         (pass_pre): Replace declaration with that of...
18796         (make_pass_pre): ...new function.
18797         (pass_profile): Replace declaration with that of...
18798         (make_pass_profile): ...new function.
18799         (pass_strip_predict_hints): Replace declaration with that of...
18800         (make_pass_strip_predict_hints): ...new function.
18801         (pass_lower_complex_O0): Replace declaration with that of...
18802         (make_pass_lower_complex_O0): ...new function.
18803         (pass_lower_complex): Replace declaration with that of...
18804         (make_pass_lower_complex): ...new function.
18805         (pass_lower_vector): Replace declaration with that of...
18806         (make_pass_lower_vector): ...new function.
18807         (pass_lower_vector_ssa): Replace declaration with that of...
18808         (make_pass_lower_vector_ssa): ...new function.
18809         (pass_lower_omp): Replace declaration with that of...
18810         (make_pass_lower_omp): ...new function.
18811         (pass_diagnose_omp_blocks): Replace declaration with that of...
18812         (make_pass_diagnose_omp_blocks): ...new function.
18813         (pass_expand_omp): Replace declaration with that of...
18814         (make_pass_expand_omp): ...new function.
18815         (pass_expand_omp_ssa): Replace declaration with that of...
18816         (make_pass_expand_omp_ssa): ...new function.
18817         (pass_object_sizes): Replace declaration with that of...
18818         (make_pass_object_sizes): ...new function.
18819         (pass_strlen): Replace declaration with that of...
18820         (make_pass_strlen): ...new function.
18821         (pass_fold_builtins): Replace declaration with that of...
18822         (make_pass_fold_builtins): ...new function.
18823         (pass_stdarg): Replace declaration with that of...
18824         (make_pass_stdarg): ...new function.
18825         (pass_early_warn_uninitialized): Replace declaration with that of...
18826         (make_pass_early_warn_uninitialized): ...new function.
18827         (pass_late_warn_uninitialized): Replace declaration with that of...
18828         (make_pass_late_warn_uninitialized): ...new function.
18829         (pass_cse_reciprocals): Replace declaration with that of...
18830         (make_pass_cse_reciprocals): ...new function.
18831         (pass_cse_sincos): Replace declaration with that of...
18832         (make_pass_cse_sincos): ...new function.
18833         (pass_optimize_bswap): Replace declaration with that of...
18834         (make_pass_optimize_bswap): ...new function.
18835         (pass_optimize_widening_mul): Replace declaration with that of...
18836         (make_pass_optimize_widening_mul): ...new function.
18837         (pass_warn_function_return): Replace declaration with that of...
18838         (make_pass_warn_function_return): ...new function.
18839         (pass_warn_function_noreturn): Replace declaration with that of...
18840         (make_pass_warn_function_noreturn): ...new function.
18841         (pass_cselim): Replace declaration with that of...
18842         (make_pass_cselim): ...new function.
18843         (pass_phiopt): Replace declaration with that of...
18844         (make_pass_phiopt): ...new function.
18845         (pass_forwprop): Replace declaration with that of...
18846         (make_pass_forwprop): ...new function.
18847         (pass_phiprop): Replace declaration with that of...
18848         (make_pass_phiprop): ...new function.
18849         (pass_tree_ifcombine): Replace declaration with that of...
18850         (make_pass_tree_ifcombine): ...new function.
18851         (pass_dse): Replace declaration with that of...
18852         (make_pass_dse): ...new function.
18853         (pass_nrv): Replace declaration with that of...
18854         (make_pass_nrv): ...new function.
18855         (pass_rename_ssa_copies): Replace declaration with that of...
18856         (make_pass_rename_ssa_copies): ...new function.
18857         (pass_sink_code): Replace declaration with that of...
18858         (make_pass_sink_code): ...new function.
18859         (pass_fre): Replace declaration with that of...
18860         (make_pass_fre): ...new function.
18861         (pass_check_data_deps): Replace declaration with that of...
18862         (make_pass_check_data_deps): ...new function.
18863         (pass_copy_prop): Replace declaration with that of...
18864         (make_pass_copy_prop): ...new function.
18865         (pass_vrp): Replace declaration with that of...
18866         (make_pass_vrp): ...new function.
18867         (pass_uncprop): Replace declaration with that of...
18868         (make_pass_uncprop): ...new function.
18869         (pass_return_slot): Replace declaration with that of...
18870         (make_pass_return_slot): ...new function.
18871         (pass_reassoc): Replace declaration with that of...
18872         (make_pass_reassoc): ...new function.
18873         (pass_rebuild_cgraph_edges): Replace declaration with that of...
18874         (make_pass_rebuild_cgraph_edges): ...new function.
18875         (pass_remove_cgraph_callee_edges): Replace declaration with that of...
18876         (make_pass_remove_cgraph_callee_edges): ...new function.
18877         (pass_build_cgraph_edges): Replace declaration with that of...
18878         (make_pass_build_cgraph_edges): ...new function.
18879         (pass_local_pure_const): Replace declaration with that of...
18880         (make_pass_local_pure_const): ...new function.
18881         (pass_tracer): Replace declaration with that of...
18882         (make_pass_tracer): ...new function.
18883         (pass_warn_unused_result): Replace declaration with that of...
18884         (make_pass_warn_unused_result): ...new function.
18885         (pass_diagnose_tm_blocks): Replace declaration with that of...
18886         (make_pass_diagnose_tm_blocks): ...new function.
18887         (pass_lower_tm): Replace declaration with that of...
18888         (make_pass_lower_tm): ...new function.
18889         (pass_tm_init): Replace declaration with that of...
18890         (make_pass_tm_init): ...new function.
18891         (pass_tm_mark): Replace declaration with that of...
18892         (make_pass_tm_mark): ...new function.
18893         (pass_tm_memopt): Replace declaration with that of...
18894         (make_pass_tm_memopt): ...new function.
18895         (pass_tm_edges): Replace declaration with that of...
18896         (make_pass_tm_edges): ...new function.
18897         (pass_split_functions): Replace declaration with that of...
18898         (make_pass_split_functions): ...new function.
18899         (pass_feedback_split_functions): Replace declaration with that of...
18900         (make_pass_feedback_split_functions): ...new function.
18901         (pass_strength_reduction): Replace declaration with that of...
18902         (make_pass_strength_reduction): ...new function.
18903         (pass_ipa_lower_emutls): Replace declaration with that of...
18904         (make_pass_ipa_lower_emutls): ...new function.
18905         (pass_ipa_function_and_variable_visibility): Replace declaration with
18906         that of...
18907         (make_pass_ipa_function_and_variable_visibility): ...new function.
18908         (pass_ipa_tree_profile): Replace declaration with that of...
18909         (make_pass_ipa_tree_profile): ...new function.
18910         (pass_early_local_passes): Replace declaration with that of...
18911         (make_pass_early_local_passes): ...new function.
18912         (pass_ipa_whole_program_visibility): Replace declaration with that
18913         of...
18914         (make_pass_ipa_whole_program_visibility): ...new function.
18915         (pass_ipa_lto_gimple_out): Replace declaration with that of...
18916         (make_pass_ipa_lto_gimple_out): ...new function.
18917         (pass_ipa_increase_alignment): Replace declaration with that of...
18918         (make_pass_ipa_increase_alignment): ...new function.
18919         (pass_ipa_inline): Replace declaration with that of...
18920         (make_pass_ipa_inline): ...new function.
18921         (pass_ipa_free_lang_data): Replace declaration with that of...
18922         (make_pass_ipa_free_lang_data): ...new function.
18923         (pass_ipa_free_inline_summary): Replace declaration with that of...
18924         (make_pass_ipa_free_inline_summary): ...new function.
18925         (pass_ipa_cp): Replace declaration with that of...
18926         (make_pass_ipa_cp): ...new function.
18927         (pass_ipa_reference): Replace declaration with that of...
18928         (make_pass_ipa_reference): ...new function.
18929         (pass_ipa_pure_const): Replace declaration with that of...
18930         (make_pass_ipa_pure_const): ...new function.
18931         (pass_ipa_pta): Replace declaration with that of...
18932         (make_pass_ipa_pta): ...new function.
18933         (pass_ipa_lto_finish_out): Replace declaration with that of...
18934         (make_pass_ipa_lto_finish_out): ...new function.
18935         (pass_ipa_tm): Replace declaration with that of...
18936         (make_pass_ipa_tm): ...new function.
18937         (pass_ipa_profile): Replace declaration with that of...
18938         (make_pass_ipa_profile): ...new function.
18939         (pass_ipa_cdtor_merge): Replace declaration with that of...
18940         (make_pass_ipa_cdtor_merge): ...new function.
18941         (pass_cleanup_cfg_post_optimizing): Replace declaration with that
18942         of...
18943         (make_pass_cleanup_cfg_post_optimizing): ...new function.
18944         (pass_init_datastructures): Replace declaration with that of...
18945         (make_pass_init_datastructures): ...new function.
18946         (pass_fixup_cfg): Replace declaration with that of...
18947         (make_pass_fixup_cfg): ...new function.
18948         (pass_expand): Replace declaration with that of...
18949         (make_pass_expand): ...new function.
18950         (pass_instantiate_virtual_regs): Replace declaration with that of...
18951         (make_pass_instantiate_virtual_regs): ...new function.
18952         (pass_rtl_fwprop): Replace declaration with that of...
18953         (make_pass_rtl_fwprop): ...new function.
18954         (pass_rtl_fwprop_addr): Replace declaration with that of...
18955         (make_pass_rtl_fwprop_addr): ...new function.
18956         (pass_jump): Replace declaration with that of...
18957         (make_pass_jump): ...new function.
18958         (pass_jump2): Replace declaration with that of...
18959         (make_pass_jump2): ...new function.
18960         (pass_lower_subreg): Replace declaration with that of...
18961         (make_pass_lower_subreg): ...new function.
18962         (pass_cse): Replace declaration with that of...
18963         (make_pass_cse): ...new function.
18964         (pass_fast_rtl_dce): Replace declaration with that of...
18965         (make_pass_fast_rtl_dce): ...new function.
18966         (pass_ud_rtl_dce): Replace declaration with that of...
18967         (make_pass_ud_rtl_dce): ...new function.
18968         (pass_rtl_dce): Replace declaration with that of...
18969         (make_pass_rtl_dce): ...new function.
18970         (pass_rtl_dse1): Replace declaration with that of...
18971         (make_pass_rtl_dse1): ...new function.
18972         (pass_rtl_dse2): Replace declaration with that of...
18973         (make_pass_rtl_dse2): ...new function.
18974         (pass_rtl_dse3): Replace declaration with that of...
18975         (make_pass_rtl_dse3): ...new function.
18976         (pass_rtl_cprop): Replace declaration with that of...
18977         (make_pass_rtl_cprop): ...new function.
18978         (pass_rtl_pre): Replace declaration with that of...
18979         (make_pass_rtl_pre): ...new function.
18980         (pass_rtl_hoist): Replace declaration with that of...
18981         (make_pass_rtl_hoist): ...new function.
18982         (pass_rtl_store_motion): Replace declaration with that of...
18983         (make_pass_rtl_store_motion): ...new function.
18984         (pass_cse_after_global_opts): Replace declaration with that of...
18985         (make_pass_cse_after_global_opts): ...new function.
18986         (pass_rtl_ifcvt): Replace declaration with that of...
18987         (make_pass_rtl_ifcvt): ...new function.
18988         (pass_into_cfg_layout_mode): Replace declaration with that of...
18989         (make_pass_into_cfg_layout_mode): ...new function.
18990         (pass_outof_cfg_layout_mode): Replace declaration with that of...
18991         (make_pass_outof_cfg_layout_mode): ...new function.
18992         (pass_loop2): Replace declaration with that of...
18993         (make_pass_loop2): ...new function.
18994         (pass_rtl_loop_init): Replace declaration with that of...
18995         (make_pass_rtl_loop_init): ...new function.
18996         (pass_rtl_move_loop_invariants): Replace declaration with that of...
18997         (make_pass_rtl_move_loop_invariants): ...new function.
18998         (pass_rtl_unswitch): Replace declaration with that of...
18999         (make_pass_rtl_unswitch): ...new function.
19000         (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
19001         (make_pass_rtl_unroll_and_peel_loops): ...new function.
19002         (pass_rtl_doloop): Replace declaration with that of...
19003         (make_pass_rtl_doloop): ...new function.
19004         (pass_rtl_loop_done): Replace declaration with that of...
19005         (make_pass_rtl_loop_done): ...new function.
19006         (pass_web): Replace declaration with that of...
19007         (make_pass_web): ...new function.
19008         (pass_cse2): Replace declaration with that of...
19009         (make_pass_cse2): ...new function.
19010         (pass_df_initialize_opt): Replace declaration with that of...
19011         (make_pass_df_initialize_opt): ...new function.
19012         (pass_df_initialize_no_opt): Replace declaration with that of...
19013         (make_pass_df_initialize_no_opt): ...new function.
19014         (pass_reginfo_init): Replace declaration with that of...
19015         (make_pass_reginfo_init): ...new function.
19016         (pass_inc_dec): Replace declaration with that of...
19017         (make_pass_inc_dec): ...new function.
19018         (pass_stack_ptr_mod): Replace declaration with that of...
19019         (make_pass_stack_ptr_mod): ...new function.
19020         (pass_initialize_regs): Replace declaration with that of...
19021         (make_pass_initialize_regs): ...new function.
19022         (pass_combine): Replace declaration with that of...
19023         (make_pass_combine): ...new function.
19024         (pass_if_after_combine): Replace declaration with that of...
19025         (make_pass_if_after_combine): ...new function.
19026         (pass_ree): Replace declaration with that of...
19027         (make_pass_ree): ...new function.
19028         (pass_partition_blocks): Replace declaration with that of...
19029         (make_pass_partition_blocks): ...new function.
19030         (pass_match_asm_constraints): Replace declaration with that of...
19031         (make_pass_match_asm_constraints): ...new function.
19032         (pass_regmove): Replace declaration with that of...
19033         (make_pass_regmove): ...new function.
19034         (pass_split_all_insns): Replace declaration with that of...
19035         (make_pass_split_all_insns): ...new function.
19036         (pass_fast_rtl_byte_dce): Replace declaration with that of...
19037         (make_pass_fast_rtl_byte_dce): ...new function.
19038         (pass_lower_subreg2): Replace declaration with that of...
19039         (make_pass_lower_subreg2): ...new function.
19040         (pass_mode_switching): Replace declaration with that of...
19041         (make_pass_mode_switching): ...new function.
19042         (pass_sms): Replace declaration with that of...
19043         (make_pass_sms): ...new function.
19044         (pass_sched): Replace declaration with that of...
19045         (make_pass_sched): ...new function.
19046         (pass_ira): Replace declaration with that of...
19047         (make_pass_ira): ...new function.
19048         (pass_reload): Replace declaration with that of...
19049         (make_pass_reload): ...new function.
19050         (pass_clean_state): Replace declaration with that of...
19051         (make_pass_clean_state): ...new function.
19052         (pass_branch_prob): Replace declaration with that of...
19053         (make_pass_branch_prob): ...new function.
19054         (pass_value_profile_transformations): Replace declaration with that
19055         of...
19056         (make_pass_value_profile_transformations): ...new function.
19057         (pass_postreload_cse): Replace declaration with that of...
19058         (make_pass_postreload_cse): ...new function.
19059         (pass_gcse2): Replace declaration with that of...
19060         (make_pass_gcse2): ...new function.
19061         (pass_split_after_reload): Replace declaration with that of...
19062         (make_pass_split_after_reload): ...new function.
19063         (pass_branch_target_load_optimize1): Replace declaration with that
19064         of...
19065         (make_pass_branch_target_load_optimize1): ...new function.
19066         (pass_thread_prologue_and_epilogue): Replace declaration with that
19067         of...
19068         (make_pass_thread_prologue_and_epilogue): ...new function.
19069         (pass_stack_adjustments): Replace declaration with that of...
19070         (make_pass_stack_adjustments): ...new function.
19071         (pass_peephole2): Replace declaration with that of...
19072         (make_pass_peephole2): ...new function.
19073         (pass_if_after_reload): Replace declaration with that of...
19074         (make_pass_if_after_reload): ...new function.
19075         (pass_regrename): Replace declaration with that of...
19076         (make_pass_regrename): ...new function.
19077         (pass_cprop_hardreg): Replace declaration with that of...
19078         (make_pass_cprop_hardreg): ...new function.
19079         (pass_reorder_blocks): Replace declaration with that of...
19080         (make_pass_reorder_blocks): ...new function.
19081         (pass_branch_target_load_optimize2): Replace declaration with that
19082         of...
19083         (make_pass_branch_target_load_optimize2): ...new function.
19084         (pass_leaf_regs): Replace declaration with that of...
19085         (make_pass_leaf_regs): ...new function.
19086         (pass_split_before_sched2): Replace declaration with that of...
19087         (make_pass_split_before_sched2): ...new function.
19088         (pass_compare_elim_after_reload): Replace declaration with that of...
19089         (make_pass_compare_elim_after_reload): ...new function.
19090         (pass_sched2): Replace declaration with that of...
19091         (make_pass_sched2): ...new function.
19092         (pass_stack_regs): Replace declaration with that of...
19093         (make_pass_stack_regs): ...new function.
19094         (pass_stack_regs_run): Replace declaration with that of...
19095         (make_pass_stack_regs_run): ...new function.
19096         (pass_df_finish): Replace declaration with that of...
19097         (make_pass_df_finish): ...new function.
19098         (pass_compute_alignments): Replace declaration with that of...
19099         (make_pass_compute_alignments): ...new function.
19100         (pass_duplicate_computed_gotos): Replace declaration with that of...
19101         (make_pass_duplicate_computed_gotos): ...new function.
19102         (pass_variable_tracking): Replace declaration with that of...
19103         (make_pass_variable_tracking): ...new function.
19104         (pass_free_cfg): Replace declaration with that of...
19105         (make_pass_free_cfg): ...new function.
19106         (pass_machine_reorg): Replace declaration with that of...
19107         (make_pass_machine_reorg): ...new function.
19108         (pass_cleanup_barriers): Replace declaration with that of...
19109         (make_pass_cleanup_barriers): ...new function.
19110         (pass_delay_slots): Replace declaration with that of...
19111         (make_pass_delay_slots): ...new function.
19112         (pass_split_for_shorten_branches): Replace declaration with that of...
19113         (make_pass_split_for_shorten_branches): ...new function.
19114         (pass_split_before_regstack): Replace declaration with that of...
19115         (make_pass_split_before_regstack): ...new function.
19116         (pass_convert_to_eh_region_ranges): Replace declaration with that
19117         of...
19118         (make_pass_convert_to_eh_region_ranges): ...new function.
19119         (pass_shorten_branches): Replace declaration with that of...
19120         (make_pass_shorten_branches): ...new function.
19121         (pass_set_nothrow_function_flags): Replace declaration with that of...
19122         (make_pass_set_nothrow_function_flags): ...new function.
19123         (pass_dwarf2_frame): Replace declaration with that of...
19124         (make_pass_dwarf2_frame): ...new function.
19125         (pass_final): Replace declaration with that of...
19126         (make_pass_final): ...new function.
19127         (pass_rtl_seqabstr): Replace declaration with that of...
19128         (make_pass_rtl_seqabstr): ...new function.
19129         (pass_release_ssa_names): Replace declaration with that of...
19130         (make_pass_release_ssa_names): ...new function.
19131         (pass_early_inline): Replace declaration with that of...
19132         (make_pass_early_inline): ...new function.
19133         (pass_inline_parameters): Replace declaration with that of...
19134         (make_pass_inline_parameters): ...new function.
19135         (pass_update_address_taken): Replace declaration with that of...
19136         (make_pass_update_address_taken): ...new function.
19137         (pass_convert_switch): Replace declaration with that of...
19138         (make_pass_convert_switch): ...new function.
19139         * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
19140         to a subclass of simple_ipa_opt_pass along with...
19141         (pass_data_ipa_tree_profile): ...new pass_data instance and...
19142         (make_pass_ipa_tree_profile): ...new function.
19143         * tree-sra.c (pass_sra_early): Convert from a global struct to a
19144         subclass of gimple_opt_pass along with...
19145         (pass_data_sra_early): ...new pass_data instance and...
19146         (make_pass_sra_early): ...new function.
19147         (pass_sra): Convert from a global struct to a subclass of
19148         gimple_opt_pass along with...
19149         (pass_data_sra): ...new pass_data instance and...
19150         (make_pass_sra): ...new function.
19151         (pass_early_ipa_sra): Convert from a global struct to a subclass of
19152         gimple_opt_pass along with...
19153         (pass_data_early_ipa_sra): ...new pass_data instance and...
19154         (make_pass_early_ipa_sra): ...new function.
19155         * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
19156         subclass of gimple_opt_pass along with...
19157         (pass_data_ccp): ...new pass_data instance and...
19158         (make_pass_ccp): ...new function.
19159         (pass_fold_builtins): Convert from a global struct to a subclass of
19160         gimple_opt_pass along with...
19161         (pass_data_fold_builtins): ...new pass_data instance and...
19162         (make_pass_fold_builtins): ...new function.
19163         * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
19164         subclass of gimple_opt_pass along with...
19165         (pass_data_copy_prop): ...new pass_data instance and...
19166         (make_pass_copy_prop): ...new function.
19167         * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
19168         global struct to a subclass of gimple_opt_pass along with...
19169         (pass_data_rename_ssa_copies): ...new pass_data instance and...
19170         (make_pass_rename_ssa_copies): ...new function.
19171         * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
19172         subclass of gimple_opt_pass along with...
19173         (pass_data_dce): ...new pass_data instance and...
19174         (make_pass_dce): ...new function.
19175         (pass_dce_loop): Convert from a global struct to a subclass of
19176         gimple_opt_pass along with...
19177         (pass_data_dce_loop): ...new pass_data instance and...
19178         (make_pass_dce_loop): ...new function.
19179         (pass_cd_dce): Convert from a global struct to a subclass of
19180         gimple_opt_pass along with...
19181         (pass_data_cd_dce): ...new pass_data instance and...
19182         (make_pass_cd_dce): ...new function.
19183         * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
19184         subclass of gimple_opt_pass along with...
19185         (pass_data_dominator): ...new pass_data instance and...
19186         (make_pass_dominator): ...new function.
19187         (pass_phi_only_cprop): Convert from a global struct to a subclass of
19188         gimple_opt_pass along with...
19189         (pass_data_phi_only_cprop): ...new pass_data instance and...
19190         (make_pass_phi_only_cprop): ...new function.
19191         * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
19192         subclass of gimple_opt_pass along with...
19193         (pass_data_dse): ...new pass_data instance and...
19194         (make_pass_dse): ...new function.
19195         * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
19196         a subclass of gimple_opt_pass along with...
19197         (pass_data_forwprop): ...new pass_data instance and...
19198         (make_pass_forwprop): ...new function.
19199         * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
19200         struct to a subclass of gimple_opt_pass along with...
19201         (pass_data_tree_ifcombine): ...new pass_data instance and...
19202         (make_pass_tree_ifcombine): ...new function.
19203         * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
19204         subclass of gimple_opt_pass along with...
19205         (pass_data_ch): ...new pass_data instance and...
19206         (make_pass_ch): ...new function.
19207         * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
19208         subclass of gimple_opt_pass along with...
19209         (pass_data_tree_loop): ...new pass_data instance and...
19210         (make_pass_tree_loop): ...new function.
19211         (pass_tree_loop_init): Convert from a global struct to a subclass of
19212         gimple_opt_pass along with...
19213         (pass_data_tree_loop_init): ...new pass_data instance and...
19214         (make_pass_tree_loop_init): ...new function.
19215         (pass_lim): Convert from a global struct to a subclass of
19216         gimple_opt_pass along with...
19217         (pass_data_lim): ...new pass_data instance and...
19218         (make_pass_lim): ...new function.
19219         (pass_tree_unswitch): Convert from a global struct to a subclass of
19220         gimple_opt_pass along with...
19221         (pass_data_tree_unswitch): ...new pass_data instance and...
19222         (make_pass_tree_unswitch): ...new function.
19223         (pass_predcom): Convert from a global struct to a subclass of
19224         gimple_opt_pass along with...
19225         (pass_data_predcom): ...new pass_data instance and...
19226         (make_pass_predcom): ...new function.
19227         (pass_vectorize): Convert from a global struct to a subclass of
19228         gimple_opt_pass along with...
19229         (pass_data_vectorize): ...new pass_data instance and...
19230         (make_pass_vectorize): ...new function.
19231         (pass_graphite): Convert from a global struct to a subclass of
19232         gimple_opt_pass along with...
19233         (pass_data_graphite): ...new pass_data instance and...
19234         (make_pass_graphite): ...new function.
19235         (pass_graphite_transforms): Convert from a global struct to a subclass
19236         of gimple_opt_pass along with...
19237         (pass_data_graphite_transforms): ...new pass_data instance and...
19238         (make_pass_graphite_transforms): ...new function.
19239         (pass_check_data_deps): Convert from a global struct to a subclass of
19240         gimple_opt_pass along with...
19241         (pass_data_check_data_deps): ...new pass_data instance and...
19242         (make_pass_check_data_deps): ...new function.
19243         (pass_iv_canon): Convert from a global struct to a subclass of
19244         gimple_opt_pass along with...
19245         (pass_data_iv_canon): ...new pass_data instance and...
19246         (make_pass_iv_canon): ...new function.
19247         (pass_scev_cprop): Convert from a global struct to a subclass of
19248         gimple_opt_pass along with...
19249         (pass_data_scev_cprop): ...new pass_data instance and...
19250         (make_pass_scev_cprop): ...new function.
19251         (pass_record_bounds): Convert from a global struct to a subclass of
19252         gimple_opt_pass along with...
19253         (pass_data_record_bounds): ...new pass_data instance and...
19254         (make_pass_record_bounds): ...new function.
19255         (pass_complete_unroll): Convert from a global struct to a subclass of
19256         gimple_opt_pass along with...
19257         (pass_data_complete_unroll): ...new pass_data instance and...
19258         (make_pass_complete_unroll): ...new function.
19259         (pass_complete_unrolli): Convert from a global struct to a subclass of
19260         gimple_opt_pass along with...
19261         (pass_data_complete_unrolli): ...new pass_data instance and...
19262         (make_pass_complete_unrolli): ...new function.
19263         (pass_parallelize_loops): Convert from a global struct to a subclass
19264         of gimple_opt_pass along with...
19265         (pass_data_parallelize_loops): ...new pass_data instance and...
19266         (make_pass_parallelize_loops): ...new function.
19267         (pass_loop_prefetch): Convert from a global struct to a subclass of
19268         gimple_opt_pass along with...
19269         (pass_data_loop_prefetch): ...new pass_data instance and...
19270         (make_pass_loop_prefetch): ...new function.
19271         (pass_iv_optimize): Convert from a global struct to a subclass of
19272         gimple_opt_pass along with...
19273         (pass_data_iv_optimize): ...new pass_data instance and...
19274         (make_pass_iv_optimize): ...new function.
19275         (pass_tree_loop_done): Convert from a global struct to a subclass of
19276         gimple_opt_pass along with...
19277         (pass_data_tree_loop_done): ...new pass_data instance and...
19278         (make_pass_tree_loop_done): ...new function.
19279         * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
19280         struct to a subclass of gimple_opt_pass along with...
19281         (pass_data_cse_reciprocals): ...new pass_data instance and...
19282         (make_pass_cse_reciprocals): ...new function.
19283         (pass_cse_sincos): Convert from a global struct to a subclass of
19284         gimple_opt_pass along with...
19285         (pass_data_cse_sincos): ...new pass_data instance and...
19286         (make_pass_cse_sincos): ...new function.
19287         (pass_optimize_bswap): Convert from a global struct to a subclass of
19288         gimple_opt_pass along with...
19289         (pass_data_optimize_bswap): ...new pass_data instance and...
19290         (make_pass_optimize_bswap): ...new function.
19291         (pass_optimize_widening_mul): Convert from a global struct to a
19292         subclass of gimple_opt_pass along with...
19293         (pass_data_optimize_widening_mul): ...new pass_data instance and...
19294         (make_pass_optimize_widening_mul): ...new function.
19295         * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
19296         subclass of gimple_opt_pass along with...
19297         (pass_data_phiopt): ...new pass_data instance and...
19298         (make_pass_phiopt): ...new function.
19299         (pass_cselim): Convert from a global struct to a subclass of
19300         gimple_opt_pass along with...
19301         (pass_data_cselim): ...new pass_data instance and...
19302         (make_pass_cselim): ...new function.
19303         * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
19304         subclass of gimple_opt_pass along with...
19305         (pass_data_phiprop): ...new pass_data instance and...
19306         (make_pass_phiprop): ...new function.
19307         * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
19308         subclass of gimple_opt_pass along with...
19309         (pass_data_pre): ...new pass_data instance and...
19310         (make_pass_pre): ...new function.
19311         (pass_fre): Convert from a global struct to a subclass of
19312         gimple_opt_pass along with...
19313         (pass_data_fre): ...new pass_data instance and...
19314         (make_pass_fre): ...new function.
19315         * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
19316         subclass of gimple_opt_pass along with...
19317         (pass_data_reassoc): ...new pass_data instance and...
19318         (make_pass_reassoc): ...new function.
19319         * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
19320         subclass of gimple_opt_pass along with...
19321         (pass_data_sink_code): ...new pass_data instance and...
19322         (make_pass_sink_code): ...new function.
19323         * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
19324         subclass of gimple_opt_pass along with...
19325         (pass_data_strlen): ...new pass_data instance and...
19326         (make_pass_strlen): ...new function.
19327         * tree-ssa-structalias.c (pass_build_alias): Convert from a global
19328         struct to a subclass of gimple_opt_pass along with...
19329         (pass_data_build_alias): ...new pass_data instance and...
19330         (make_pass_build_alias): ...new function.
19331         (pass_build_ealias): Convert from a global struct to a subclass of
19332         gimple_opt_pass along with...
19333         (pass_data_build_ealias): ...new pass_data instance and...
19334         (make_pass_build_ealias): ...new function.
19335         (pass_ipa_pta): Convert from a global struct to a subclass of
19336         simple_ipa_opt_pass along with...
19337         (pass_data_ipa_pta): ...new pass_data instance and...
19338         (make_pass_ipa_pta): ...new function.
19339         * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
19340         subclass of gimple_opt_pass along with...
19341         (pass_data_uncprop): ...new pass_data instance and...
19342         (make_pass_uncprop): ...new function.
19343         * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
19344         global struct to a subclass of gimple_opt_pass along with...
19345         (pass_data_late_warn_uninitialized): ...new pass_data instance and...
19346         (make_pass_late_warn_uninitialized): ...new function.
19347         * tree-ssa.c (pass_init_datastructures): Convert from a global struct
19348         to a subclass of gimple_opt_pass along with...
19349         (pass_data_init_datastructures): ...new pass_data instance and...
19350         (make_pass_init_datastructures): ...new function.
19351         (pass_early_warn_uninitialized): Convert from a global struct to a
19352         subclass of gimple_opt_pass along with...
19353         (pass_data_early_warn_uninitialized): ...new pass_data instance and...
19354         (make_pass_early_warn_uninitialized): ...new function.
19355         (pass_update_address_taken): Convert from a global struct to a
19356         subclass of gimple_opt_pass along with...
19357         (pass_data_update_address_taken): ...new pass_data instance and...
19358         (make_pass_update_address_taken): ...new function.
19359         * tree-ssanames.c (pass_release_ssa_names): Convert from a global
19360         struct to a subclass of gimple_opt_pass along with...
19361         (pass_data_release_ssa_names): ...new pass_data instance and...
19362         (make_pass_release_ssa_names): ...new function.
19363         * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
19364         subclass of gimple_opt_pass along with...
19365         (pass_data_stdarg): ...new pass_data instance and...
19366         (make_pass_stdarg): ...new function.
19367         * tree-switch-conversion.c (pass_convert_switch): Convert from a
19368         global struct to a subclass of gimple_opt_pass along with...
19369         (pass_data_convert_switch): ...new pass_data instance and...
19370         (make_pass_convert_switch): ...new function.
19371         * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
19372         to a subclass of gimple_opt_pass along with...
19373         (pass_data_tail_recursion): ...new pass_data instance and...
19374         (make_pass_tail_recursion): ...new function.
19375         (pass_tail_calls): Convert from a global struct to a subclass of
19376         gimple_opt_pass along with...
19377         (pass_data_tail_calls): ...new pass_data instance and...
19378         (make_pass_tail_calls): ...new function.
19379         * tree-vect-generic.c (pass_lower_vector): Convert from a global
19380         struct to a subclass of gimple_opt_pass along with...
19381         (pass_data_lower_vector): ...new pass_data instance and...
19382         (make_pass_lower_vector): ...new function.
19383         (pass_lower_vector_ssa): Convert from a global struct to a subclass of
19384         gimple_opt_pass along with...
19385         (pass_data_lower_vector_ssa): ...new pass_data instance and...
19386         (make_pass_lower_vector_ssa): ...new function.
19387         * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
19388         to a subclass of gimple_opt_pass along with...
19389         (pass_data_slp_vectorize): ...new pass_data instance and...
19390         (make_pass_slp_vectorize): ...new function.
19391         (pass_ipa_increase_alignment): Convert from a global struct to a
19392         subclass of simple_ipa_opt_pass along with...
19393         (pass_data_ipa_increase_alignment): ...new pass_data instance and...
19394         (make_pass_ipa_increase_alignment): ...new function.
19395         * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
19396         gimple_opt_pass along with...
19397         (pass_data_vrp): ...new pass_data instance and...
19398         (make_pass_vrp): ...new function.
19399         * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
19400         subclass of simple_ipa_opt_pass along with...
19401         (pass_data_ipa_free_lang_data): ...new pass_data instance and...
19402         (make_pass_ipa_free_lang_data): ...new function.
19403         * tsan.c (pass_tsan): Convert from a global struct to a subclass of
19404         gimple_opt_pass along with...
19405         (pass_data_tsan): ...new pass_data instance and...
19406         (make_pass_tsan): ...new function.
19407         (pass_tsan_O0): Convert from a global struct to a subclass of
19408         gimple_opt_pass along with...
19409         (pass_data_tsan_O0): ...new pass_data instance and...
19410         (make_pass_tsan_O0): ...new function.
19411         * var-tracking.c (pass_variable_tracking): Convert from a global
19412         struct to a subclass of rtl_opt_pass along with...
19413         (pass_data_variable_tracking): ...new pass_data instance and...
19414         (make_pass_variable_tracking): ...new function.
19415         * web.c (pass_web): Convert from a global struct to a subclass of
19416         rtl_opt_pass along with...
19417         (pass_data_web): ...new pass_data instance and...
19418         (make_pass_web): ...new function.
19419         * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
19420         declaration with that of...
19421         (make_pass_mode_switch_use): ...new function.
19422         (pass_resolve_sw_modes): Replace declaration with that of...
19423         (make_pass_resolve_sw_modes): ...new function.
19424         * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
19425         from a global struct to a subclass of rtl_opt_pass along with...
19426         (pass_data_mode_switch_use): ...new pass_data instance and...
19427         (make_pass_mode_switch_use): ...new function.
19428         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
19429         from a global struct to a subclass of rtl_opt_pass along with...
19430         (pass_data_resolve_sw_modes): ...new pass_data instance and...
19431         (make_pass_resolve_sw_modes): ...new function.
19432         * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
19433         struct to a subclass of rtl_opt_pass along with...
19434         (pass_data_insert_vzeroupper): ...new pass_data instance and...
19435         (make_pass_insert_vzeroupper): ...new function.
19436         * config/sparc/sparc.c (pass_work_around_errata): Convert from a
19437         global struct to a subclass of rtl_opt_pass along with...
19438         (pass_data_work_around_errata): ...new pass_data instance and...
19439         (make_pass_work_around_errata): ...new function.
19440         * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
19441         struct to a subclass of rtl_opt_pass along with...
19442         (pass_data_mips_machine_reorg2): ...new pass_data instance and...
19443         (make_pass_mips_machine_reorg2): ...new function.
19444
19445 2013-08-05  David Malcolm  <dmalcolm@redhat.com>
19446
19447         * passes.c (pass_manager::operator new): New.
19448
19449 2013-08-05  David Malcolm  <dmalcolm@redhat.com>
19450
19451         Handwritten part of conversion of passes to C++ classes.
19452
19453         * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
19454         (toplev.o): Add dep on PASS_MANAGER_H.
19455         * cgraphunit.c (cgraph_process_new_functions): Rework invocation
19456         of early local pases to reflect this moving from a global to a
19457         member of gcc::pass_manager.
19458         (cgraph_add_new_function): Likewise.
19459         * lto-cgraph.c (lto_output_node): Update for conversion of
19460         struct ipa_opt_pass_d to a C++ subclass of opt_pass.
19461         * passes.c (opt_pass::clone): New.
19462         (opt_pass::gate): New.
19463         (opt_pass::execute): New.
19464         (opt_pass::opt_pass): New.
19465         (pass_manager::execute_early_local_passes): New.
19466         (pass_manager::execute_pass_mode_switching): new.
19467         (finish_optimization_passes): Convert to...
19468         (pass_manager::finish_optimization_passes): ...this.
19469         (finish_optimization_passes): Update for conversion of passes to
19470         C++ classes.
19471         (register_dump_files_1): Use has_gate since we cannot portably
19472         check a vtable entry against NULL.
19473         (dump_one_pass): Likewise.
19474         (ipa_write_summaries_2): Likewise.
19475         (ipa_write_optimization_summaries_1): Likewise.
19476         (ipa_read_summaries_1): Likewise.
19477         (ipa_read_optimization_summaries_1): Likewise.
19478         (execute_ipa_stmt_fixups): Likewise.
19479         (pass_manager::pass_manager): Rewrite pass-creation, invoking
19480         pass-creation functions rather than wiring up globals, and
19481         storing the results in fields of pass_manager generated using
19482         pass-instances.def.
19483         (pass_manager::dump_profile_report): Update for conversion of
19484         passes to C++ classes.
19485         (pass_manager::execute_ipa_summary_passes): Likewise.
19486         (execute_one_ipa_transform_pass): Likewise.
19487         (execute_one_pass): Use has_gate and has_execute since we cannot
19488         portably check a vtable entry against NULL.
19489         * pass_manager.h (pass_manager::finish_optimization_passes): New.
19490         (pass_manager): Use pass-instances.def to add fields for the
19491         various pass instances.
19492         * toplev.c (finalize): Update for move of
19493         finish_optimization_passes to a method of gcc::pass_manager.
19494         * toplev.h (finish_optimization_passes): Move to method of class
19495         pass_manager.
19496         * tree-pass.h (struct pass_data): New.
19497         (opt_pass): Convert to C++ class, make it a subclass of pass_data.
19498         (opt_pass::gate): Convert to virtual function.
19499         (opt_pass::~opt_pass): New.
19500         (opt_pass::clone): New.
19501         (opt_pass::execute): Convert to virtual function.
19502         (opt_pass::opt_pass): New.
19503         (opt_pass::ctxt_): new.
19504         (gimple_opt_pass): Convert to subclass of opt_pass.
19505         (gimple_opt_pass::gimple_opt_pass): New.
19506         (rtl_opt_pass): Convert to subclass of opt_pass.
19507         (rtl_opt_pass::rtl_opt_pass): New.
19508         (ipa_opt_pass_d): Convert to subclass of opt_pass.
19509         (ipa_opt_pass_d::ipa_opt_pass_d): New.
19510         (simple_ipa_opt_pass): Convert to subclass of opt_pass.
19511         (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
19512         * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
19513         invocation of pass_mode_switching to reflect this moving from a
19514         global to a member of gcc::pass_manager.
19515         (ix86_option_override): Rework how pass_insert_vzeroupper is
19516         added to the pass_manager to reflect autogenerated changes.
19517         * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
19518
19519 2013-08-05  Richard Earnshaw  <rearnsha@arm.com>
19520
19521         PR rtl-optimization/57708
19522         * recog.c (peep2_find_free_register): Validate all regs in a
19523         multi-reg mode.
19524
19525 2013-08-05  Jan Hubicka  <jh@suse.cz>
19526
19527         PR lto/57602
19528         * cgraph.c (verify_cgraph_node): Accept local flags from other
19529         partitions.
19530         * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
19531         (function_and_variable_visibility): Likewise.
19532         * trans-mem.c (ipa_tm_create_version): TM versions are not local.
19533
19534 2013-08-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
19535
19536         * graph.c (init_graph_slim_pretty_print): Remove.
19537         (print_graph_cfg): Do not call it.  Use local pretty printer.
19538         (start_graph_dump): Likewise.
19539
19540 2013-08-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
19541
19542         * gimple-pretty-print.c (buffer): Remove.
19543         (initialized): Likewise.
19544         (maybe_init_pretty_print): Likewise.
19545         (print_gimple_stmt): Do not call it.  Use non-static local
19546         pretty_printer variable.
19547         (print_gimple_expr): Likewise.
19548         (print_gimple_seq): Likewise.
19549         (gimple_dump_bb): Likewise.
19550
19551 2013-08-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
19552
19553         * asan.c (asan_pp): Remove.
19554         (asan_pp_initialized): Likewise.
19555         (asan_pp_initialize): Likewise.
19556         (asan_pp_string): Take a pretty_printer parameter.  Adjust callers.
19557         (asan_emit_stack_protection): Tidy.  Use local pretty printer.
19558         (asan_add_global): Likewise.
19559
19560 2013-08-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
19561
19562         * pretty-print.h (pp_base): Remove.  Adjust dependent macros.
19563         * diagnostic.h (diagnostic_flush_buffer): Adjust.
19564         * pretty-print.c (pp_formatted_text_data): Likewise.
19565         (pp_indent): Rename from pp_base_indent.
19566         (pp_format): Rename from pp_base_format.
19567         (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
19568         (pp_format_verbatim): Rename from pp_base_format_verbatim.
19569         (pp_flush): Rename from pp_base_flush.
19570         (pp_set_line_maximum_length): Rename from
19571         pp_base_set_line_maximum_length.
19572         (pp_clear_output_area): Rename from pp_base_clear_output_area.
19573         (pp_set_prefix): Rename from pp_base_set_prefix.
19574         (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
19575         (pp_emit_prefix): Rename from pp_base_emit_prefix.
19576         (pp_append_text): Rename from pp_base_append_text.
19577         (pp_formatted_text): Rename from pp_base_formatted_text.
19578         (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
19579         (pp_remaining_character_count_for_line): Rename from
19580         pp_base_remaining_character_count_for_line.
19581         (pp_newline): Rename from pp_base_newline.
19582         (pp_character): Rename from pp_base_character.
19583         (pp_string): Rename from pp_base_string.
19584         (pp_maybe_space): Rename from pp_base_maybe_space.
19585         * asan.c (asan_pp_string): Adjust.
19586         (asan_emit_stack_protection): Likewise.
19587         (asan_add_global): Likewise.
19588         * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
19589         * tree-mudflap.c (mf_varname_tree): Likewise.
19590         * tree-pretty-print.c (pp_tree_identifier): Rename from
19591         pp_base_tree_identifier.
19592         * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
19593         Declare as function.
19594
19595 2013-08-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
19596
19597         * pretty-print.h (pp_bar_bar): New.
19598         (pp_ampersand_ampersand): Likewise.
19599         (pp_less_equal): Likewise.
19600         (pp_greater_equal): Likewise.
19601         * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
19602         printer functions instead of pp_string or operators and punctuators.
19603         (dump_gimple_call): Likewise.
19604         (dump_gimple_omp_for): Likewise.
19605         (dump_gimple_transaction): Likewise.
19606         (dump_gimple_phi): Likewise.
19607         (pp_gimple_stmt_1): Likewise.
19608         * sched-vis.c (print_insn): Likewise.
19609         * tree-mudflap.c (mf_varname_tree): Likewise.
19610         * tree-pretty-print.c (dump_block_node): Likewise.
19611         (dump_generic_node): Likewise.
19612
19613 2013-08-02  Jan Hubicka  <jh@suse.cz>
19614
19615         * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
19616         boundaries.
19617         * lto-streamer-out.c (tree_is_indexable): Results decls and
19618         parm decls are not indexable.
19619         (DFS_write_tree_body): Do not follow args and results.
19620         (hash_tree): Likewise.
19621         (output_functions): Rearrange so struct function is needed
19622         only when real body is output; be able to also ouptut abstract
19623         functions; output DECL_ARGUMENTS and DECL_RESULT.
19624         (lto_output): When not in WPA, ale store abstract functions.
19625         (write_symbol): Do not care about RESULT_DECL.
19626         (output_symbol_p): Handle correctly sbtract decls.
19627         * lto-streamer-in.c (input_function): Rearrange so struct
19628         function can be NULL at entry; allow streaming of
19629         functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
19630         * ipa.c (symtab_remove_unreachable_nodes): Silence confused
19631         sanity check during LTO.
19632         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
19633         RESULT_DECl and DECL_ARGUMENTS.
19634         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
19635         Likewise.
19636
19637 2013-08-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
19638
19639         * pretty-print.h (pp_underscore): New.
19640         (pp_comma): Tidy.
19641         * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
19642         printer functions instead of pp_character.
19643         (dump_binary_rhs): Likewise.
19644         (dump_ternary_rhs): Likewise.
19645         (dump_gimple_call_args): Likewise.
19646         (pp_points_to_solution): Likewise.
19647         (dump_gimple_call): Likewise.
19648         (dump_gimple_switch): Likewise.
19649         (dump_gimple_cond): Likewise.
19650         (dump_gimple_bind): Likewise.
19651         (dump_gimple_try): Likewise.
19652         (dump_gimple_omp_for): Likewise.
19653         (dump_gimple_omp_continue): Likewise.
19654         (dump_gimple_omp_single): Likewise.
19655         (dump_gimple_omp_sections): Likewise.
19656         (dump_gimple_omp_block): Likewise.
19657         (dump_gimple_omp_critical): Likewise.
19658         (dump_gimple_transaction): Likewise.
19659         (dump_gimple_asm): Likewise.
19660         (dump_gimple_phi): Likewise.
19661         (dump_gimple_omp_parallel): Likewise.
19662         (dump_gimple_omp_task): Likewise.
19663         (dump_gimple_omp_atomic_load): Likewise.
19664         (dump_gimple_omp_atomic_store): Likewise.
19665         (dump_gimple_mem_ops): Likewise.
19666         (pp_gimple_stmt_1): Likewise.
19667         (pp_cfg_jump): Likewise.
19668         (dump_implicit_edges): Likewise.
19669         (gimple_dump_bb_for_graph): Likewise.
19670         * graph.c (draw_cfg_node): Likewise.
19671         * langhooks.c (lhd_print_error_function): Likewise.
19672         * sched-vis.c (print_exp): Likewise.
19673         (print_value): Likewise.
19674         (print_pattern): Likewise.
19675         (print_insn): Likewise.
19676         (rtl_dump_bb_for_graph): Likewise.
19677         * tree-pretty-print.c (dump_function_declaration): Likewise.
19678         (dump_array_domain): Likewise.
19679         (dump_omp_clause): Likewise.
19680         (dump_location): Likewise.
19681         (dump_generic_node): Likewise.
19682         (print_struct_decl): Likewise.
19683         * diagnostic.c (diagnostic_show_locus): Use pp_space.
19684
19685 2013-08-03  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
19686
19687         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
19688         candidate table when replacing a candidate statement.
19689         (replace_rhs_if_not_dup): Likewise.
19690         (replace_one_candidate): Likewise.
19691
19692 2013-08-02  Jan Hubicka  <jh@suse.cz>
19693             Martin Liska  <marxin.liska@gmail.com>
19694
19695         * cgraphunit.c (add_new_function): Fix logic when adding from
19696         late IPA pass.
19697         (assemble_thunk): Rename to ...
19698         (expand_thunk); .. this one; export; get it working with
19699         general functions; make produced gimple valid.
19700         * cgraph.h (expand_thunk): Declare.
19701
19702 2013-08-02  Jan Hubicka  <jh@suse.cz>
19703
19704         * ipa-cp.c (gather_context_independent_values): Use
19705         ipa_get_param_move_cost.
19706         (get_replacement_map): Remove PARAM; move parameter folding
19707         into tree-inline.c
19708         (create_specialized_node): Update.
19709         * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
19710         assert that we have gimple body; update move_cost.
19711         (count_formal_params): Assert that we have gimple body.
19712         (ipa_dump_param): New function.
19713         (ipa_alloc_node_params): Break out from ...
19714         (ipa_initialize_node_params): ... here.
19715         (ipa_get_vector_of_formal_parms): ICE when used in WPA.
19716         (ipa_write_node_info): Stream move costs.
19717         (ipa_read_node_info): Read move costs.
19718         (ipa_update_after_lto_read): Do not recompute node params.
19719         * ipa-prop.h (ipa_param_descriptor): Add move_cost.
19720         (ipa_get_param): Check we are not in WPA.
19721         (ipa_get_param_move_cost): New.
19722         * tree-inline.c (tree_function_versioning): Fold replacement as needed.
19723         * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
19724         parm numbers to be present.
19725
19726 2013-08-02  Vladimir Makarov  <vmakarov@redhat.com>
19727
19728         PR rtl-optimization/58048
19729         * lra-constraints.c (process_alt_operands): Don't check asm
19730         operand on register.
19731
19732 2013-08-02  Eric Botcazou  <ebotcazou@adacore.com>
19733
19734         * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
19735         the implied StoreLoad barrier for atomic operations if before.
19736
19737 2013-08-02  Jan Hubicka  <jh@suse.cz>
19738             Martin Liska  <marxin.liska@gmail.com>
19739
19740         * cgraph.c (cgraph_function_body_availability): Do not check
19741         cgraph flags.
19742         * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
19743         symtab_node_availability): Declare.
19744         * ipa.c (can_replace_by_local_alias): New.
19745         (function_and_variable_visibility): Use it.
19746         * symtab.c (symtab_for_node_and_aliases,
19747         symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
19748
19749 2013-08-02  Vladimir Makarov  <vmakarov@redhat.com>
19750
19751         PR rtl-optimization/57963
19752         * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
19753         (lra_constraints): Use them.
19754
19755 2013-08-02  Sofiane Naci  <sofiane.naci@arm.com>
19756
19757         * config/arm/types.md (define_attr "type"): Add "load_acq"
19758         and "store_rel".
19759         * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
19760         changes.
19761         (cortex_a53_store1): Likewise.
19762
19763 2013-08-01  Jan Hubicka  <jh@suse.cz>
19764
19765         * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
19766         partitions are not needed.
19767
19768 2013-08-01  Uros Bizjak  <ubizjak@gmail.com>
19769
19770         * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
19771         * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
19772         MAYBE_NON_Q_CLASS_P where appropriate.
19773
19774 2013-08-01  Jan Hubicka  <jh@suse.cz>
19775
19776         * cgraph.h (release_function_body): Declare.
19777         * tree.c (free_lang_data_in_decl): Free, parameters and return values
19778         of unused delcarations.
19779
19780 2013-08-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19781
19782         * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
19783         RTL form when subtracting a constant.
19784
19785 2013-08-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19786
19787         * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
19788         Generate canonical plus rtx with negated immediate instead of minus
19789         where appropriate.
19790         * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
19791
19792 2013-08-01  Jan Hubicka  <jh@suse.cz>
19793
19794         * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
19795         (cgraph_release_function_body): Likewise.
19796         (cgraph_can_remove_if_no_direct_calls_p): Likewise.
19797         * cgraph.h (cgrpah_node): Rename abstract_and_needed
19798         to used_as_abstract_origin.
19799         * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
19800         symbols used as abstract origins.
19801         * cgraphunit.c (analyze_functions): Update.
19802         * ipa.c (symtab_remove_unreachable_nodes): Recompute
19803         used_as_abstract_origin.
19804         * tree-inline.c (tree_function_versioning): Update
19805         used_as_abstract_origin; be ready for DECL_RESULT and
19806         DECL_ARGUMENTS to be NULL.
19807
19808         * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
19809         for abstract functions.
19810         * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
19811         real symbols.
19812
19813 2013-08-01  Jan Hubicka  <jh@suse.cz>
19814
19815         * profile.c (compute_value_histograms): Fix thinko.
19816
19817 2013-08-01  Sofiane Naci  <sofiane.naci@arm.com>
19818
19819         * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs.  Add
19820         aarch-common-protos.h to extra_headers.
19821         (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
19822         * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
19823         * config/aarch64/t-aarch64 (aarch-common.o): Define.
19824
19825 2013-08-01  Sofiane Naci  <sofiane.naci@arm.com>
19826
19827         * config/aarch64/aarch64.md (define_attr "type"): Delete.
19828         Include "../arm/types.md".  Define "type" attribute for all patterns.
19829         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
19830         attribute changes.
19831
19832 2013-07-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
19833
19834         * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
19835         to support power8 load fusion.
19836         (fusion_gpr_mem_load): Likewise.
19837
19838         * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
19839
19840         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
19841         declarations for power8 load fusion.
19842         (emit_fusion_gpr_load): Likewise.
19843
19844         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
19845         tuning for power8, turn on fusion mode by default.  Turn on sign
19846         extending fusion mode if normal fusion mode is on, and we are at
19847         -O2 or -O3.
19848         (fusion_gpr_load_p): New function, return true if we can fuse an
19849         addis instruction with a dependent load to a GPR.
19850         (emit_fusion_gpr_load): Emit the instructions for power8 load
19851         fusion to GPRs.
19852
19853         * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
19854         (VSX load fusion peepholes): New peepholes to fuse together an
19855         addi instruction with a VSX load instruction.
19856
19857         * config/rs6000/rs6000.md (GPR load fusion peepholes): New
19858         peepholes to fuse an addis instruction with a load to a GPR base
19859         register.  If we are supporting sign extending fusions, convert
19860         sign extending loads to zero extending loads and add an explicit
19861         sign extension.
19862
19863 2013-07-31  Sofiane Naci  <sofiane.naci@arm.com>
19864
19865         * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs.  Add
19866         aarch-common-protos.h to extra_headers.
19867         (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
19868         * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
19869         (arm_early_store_addr_dep): Likewise.
19870         (arm_no_early_alu_shift_dep): Likewise.
19871         (arm_no_early_alu_shift_value_dep): Likewise.
19872         (arm_no_early_mul_dep): Likewise.
19873         (arm_no_early_store_addr_dep): Likewise.
19874         (arm_mac_accumulator_is_mul_result): Likewise.
19875         (arm_mac_accumulator_is_result): Likewise.
19876         * config/arm/aarch-common.c: ... here.  New file.
19877         * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
19878         here to ...
19879         (arm_early_store_addr_dep): Likewise.
19880         (arm_no_early_alu_shift_dep): Likewise.
19881         (arm_no_early_alu_shift_value_dep): Likewise.
19882         (arm_no_early_mul_dep): Likewise.
19883         (arm_no_early_store_addr_dep): Likewise.
19884         (arm_mac_accumulator_is_mul_result): Likewise.
19885         (arm_mac_accumulator_is_result): Likewise.
19886         * config/arm/aarch-common-protos.h: ... here.  New file.
19887         * config/arm/t-arm (aarch-common.o): Define.
19888
19889 2013-07-31  Sofiane Naci  <sofiane.naci@arm.com>
19890
19891         * config/arm/arm.md: Include new file "types.md".
19892         (define_attr "type"): Move from here to ...
19893         (define_attr "mul32"): Likewise.
19894         (define_attr "mul64"): Likewise.
19895         * config/arm/types.md: ... here.  New file.
19896
19897 2013-07-31  Sebastian Huber  <sebastian.huber@embedded-brains.de>
19898
19899         * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
19900         * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
19901
19902 2013-07-31  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
19903
19904         * gen-pass-instances.awk: Fix offset of substr().
19905
19906 2013-07-31  David Malcolm  <dmalcolm@redhat.com>
19907
19908         * Makefile.in (pass-instances.def): New.
19909         (passes.o): Replace dependency on passes.def with one on
19910         pass-instances.def
19911
19912         * gen-pass-instances.awk: New.
19913
19914         * passes.c (pass_manager::pass_manager): Use pass-instances.def
19915         rather than passes.def, updating local definition of NEXT_PASS
19916         macro to add an extra NUM parameter (currently unused).
19917
19918 2013-07-30  David Malcolm  <dmalcolm@redhat.com>
19919
19920         * Makefile.in (PASS_MANAGER_H): New.
19921         (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
19922         (passes.o): Likewise.
19923         (statistics.o): Likewise.
19924         (cgraphunit.o): Likewise.
19925         (context.o): Depend on PASS_MANAGER_H.
19926
19927         * pass_manager.h: New.
19928
19929         * cgraphunit.c (cgraph_add_new_function): Update for moves
19930         of globals to fields of pass_manager.
19931         (analyze_function): Likewise.
19932         (expand_function): Likewise.
19933         (ipa_passes): Likewise.
19934         (compile): Likewise.
19935
19936         * context.c (context::context): New.
19937         * context.h  (context::context): New.
19938         (context::get_passes): New.
19939         (context::passes_): New.
19940
19941         * lto-cgraph.c (input_node): Update for moves of globals to
19942         fields of pass_manager.
19943
19944         * passes.c (all_passes): Remove, in favor of a field of the
19945         same name within the new class pass_manager.
19946         (all_small_ipa_passes): Likewise.
19947         (all_lowering_passes): Likewise.
19948         (all_regular_ipa_passes): Likewise.
19949         (all_late_ipa_passes): Likewise.
19950         (all_lto_gen_passes): Likewise.
19951         (passes_by_id): Likewise.
19952         (passes_by_id_size): Likewise.
19953         (gcc_pass_lists): Remove, in favor of "pass_lists" field within
19954         the new class pass_manager.
19955         (set_pass_for_id): Convert to...
19956         (pass_manager::set_pass_for_id): ...method.
19957         (get_pass_for_id): Convert to...
19958         (pass_manager::get_pass_for_id): ...method.
19959         (register_one_dump_file): Move body of implementation into...
19960         (pass_manager::register_one_dump_file): ...here.
19961         (register_dump_files_1): Convert to...
19962         (pass_manager::register_dump_files_1): ...method.
19963         (register_dump_files): Convert to...
19964         (pass_manager::register_dump_files): ...method.
19965         (create_pass_tab): Update for moves of globals to fields of
19966         pass_manager.
19967         (dump_passes): Move body of implementation into...
19968         (pass_manager::dump_passes): ...here.
19969         (register_pass): Move body of implementation into...
19970         (pass_manager::register_pass): ...here.
19971         (init_optimization_passes): Convert into...
19972         (pass_manager::pass_manager): ...constructor for new
19973         pass_manager class, and initialize the pass_lists array.
19974         (check_profile_consistency): Update for moves of globals to
19975         fields of pass_manager.
19976         (dump_profile_report): Move body of implementation into...
19977         (pass_manager::dump_profile_report): ...here.
19978         (ipa_write_summaries_1): Update for moves of pass lists from
19979         being globals to fields of pass_manager.
19980         (ipa_write_optimization_summaries): Likewise.
19981         (ipa_read_summaries):  Likewise.
19982         (ipa_read_optimization_summaries): Likewise.
19983         (execute_all_ipa_stmt_fixups): Likewise.
19984
19985         * statistics.c (statistics_fini): Update for moves of globals to
19986         fields of pass_manager.
19987
19988         * toplev.c (general_init): Replace call to
19989         init_optimization_passes with construction of the pass_manager
19990         instance.
19991
19992         * tree-pass.h (all_passes): Remove, in favor of a field of the
19993         same name within the new class pass_manager.
19994         (all_small_ipa_passes): Likewise.
19995         (all_lowering_passes): Likewise.
19996         (all_regular_ipa_passes): Likewise.
19997         (all_lto_gen_passes): Likewise.
19998         (all_late_ipa_passes): Likewise.
19999         (passes_by_id): Likewise.
20000         (passes_by_id_size): Likewise.
20001         (gcc_pass_lists): Remove, in favor of "pass_lists" field within
20002         the new class pass_manager.
20003         (get_pass_for_id): Remove.
20004
20005 2013-07-30  Richard Earnshaw  <rearnsha@arm.com>
20006
20007         * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
20008         configs.
20009
20010 2013-07-30  Richard Earnshaw  <rearnsha@arm.com>
20011
20012         * arm.md (mulhi3): New expand pattern.
20013
20014 2013-07-30  Jan Hubicka  <jh@suse.cz>
20015             Martin Liska  <marxin.liska@gmail.com>
20016
20017         * profile.c (compute_value_histograms): Do not ICE when
20018         there is mismatch only on some counters.
20019
20020 2013-07-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
20021
20022         PR rtl-optimization/57637
20023         * function.c (move_insn_for_shrink_wrap): Also check the
20024         GEN set of the LIVE problem for the liveness analysis
20025         if it exists, otherwise give up.
20026
20027 2013-07-29  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
20028
20029         PR tree-optimization/57993
20030         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
20031         replaced statement in the candidate table.
20032         (phi_add_costs): Return infinite cost when the hidden basis does
20033         not dominate all phis on which the candidate is dependent.
20034         (replace_one_candidate): Record replaced statement in the
20035         candidate table.
20036
20037 2013-07-29  Joern Rennecke  <joern.rennecke@embecosm.com>
20038
20039         * config/epiphany/epiphany.md (*isub_i+2): New peephole.
20040         (ashlv2si3): New expander.
20041         (*ashlv2si3_i): New define_insn_and_split.
20042         * predicates.md (float_operation): Allow patterns with three
20043         basic sub-patterns.
20044
20045         PR rtl-optimization/58021
20046         * mode-switching.c (create_pre_exit): Always split off preceding
20047         insns if we are not at the basic block head.
20048
20049 2013-07-29  Maciej W. Rozycki  <macro@codesourcery.com>
20050
20051         * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
20052         (UCLIBC_DYNAMIC_LINKER): New macro.
20053         * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
20054         `-mnan=2008'.
20055         (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
20056         (UCLIBC_DYNAMIC_LINKER32): Undefine macro first.  Handle
20057         `-mnan=2008'.
20058         (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
20059         (UCLIBC_DYNAMIC_LINKERN32): Likewise.
20060         * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
20061         for SF and DF modes.  Use ieee_quad_format for TF mode.
20062         * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
20063         * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
20064         (mips_option_override): Handle `-mnan=legacy'.
20065         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
20066         `-mabs=2008' and `-mnan=2008'.
20067         (OPTION_DEFAULT_SPECS): Add "nan" default.
20068         (ASM_SPEC): Handle `-mnan='.
20069         [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
20070         * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
20071         comment accordingly.
20072         (neg<mode>2): Likewise.
20073         * config/mips/mips.opt (mabs, mnan): New options.
20074         * doc/install.texi (Configuration): Document `--with-nan=' option.
20075         * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
20076         `-mnan=' options.
20077         (MIPS Options): Document them.
20078         * config.gcc <mips*-*-*>: Handle `--with-nan='.
20079         * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
20080         * configure: Regenerate.
20081         * config.in: Regenerate.
20082
20083 2013-07-29  Uros Bizjak  <ubizjak@gmail.com>
20084
20085         * config/i386/i386.md (float post-reload splitters): Do not check
20086         for subregs of SSE registers.
20087
20088 2013-07-29  Uros Bizjak  <ubizjak@gmail.com>
20089             H.J. Lu  <hongjiu.lu@intel.com>
20090
20091         PR target/57954
20092         PR target/57988
20093         * config/i386/i386.md (post-reload splitter
20094         to avoid partial SSE reg dependency stalls): New pattern.
20095
20096 2013-07-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
20097
20098         * config/s390/s390.md ("movcc"): Swap load and store instructions.
20099
20100 2013-07-27  Joern Rennecke  <joern.rennecke@embecosm.com>
20101
20102         * config/epiphany/epiphany.c (epiphany_compute_frame_size):
20103         Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
20104
20105 2013-07-26  Cary Coutant  <ccoutant@google.com>
20106
20107         * dwarf2out.c (die_checksum_ordered): Don't include template
20108         instantiations in signature.
20109         (is_template_parameter): New function.
20110         (is_template_instantiation): New function.
20111         (generate_skeleton_bottom_up): Don't include template instantiations
20112         in type unit DIE.
20113         (generate_skeleton): Likewise.
20114         (break_out_comdat_types): Move recursive call to break out nested
20115         types earlier.
20116         (prune_unused_types_mark_generic_parms_dies): Call
20117         is_template_parameter.
20118
20119 2013-07-26  Ian Bolton  <ian.bolton@arm.com>
20120
20121         * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
20122         uses vector registers.
20123         * config/aarch64/iterators.md: Add attributes rtn and vas.
20124
20125 2013-07-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20126             Richard Earnshaw  <richard.earnshaw@arm.com>
20127
20128         * combine.c (simplify_comparison): Re-canonicalize operands
20129         where appropriate.
20130         * config/arm/arm.md (movcond_addsi): New splitter.
20131
20132 2013-07-25  Sterling Augustine  <saugustine@google.com>
20133
20134         * dwarf2out.c (size_of_pubnames): Move code to...
20135         (include_pubname_in_output): ...here.  New.
20136         (want_pubnames): Rearrange.
20137         (output_pubnames): Call include_pubname_in_output.  Move assertion.
20138
20139 2013-07-25  Cameron McInally  <cameron.mcinally@nyu.edu>
20140
20141         * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
20142
20143 2013-07-25  Cameron McInally  <cameron.mcinally@nyu.edu>
20144
20145         PR target/38836
20146         * doc/extend.texi: Remove obsolete builtins. Fix
20147         typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
20148
20149 2013-07-25  Jan Hubicka  <jh@suse.cz>
20150
20151         * cgraph.c (release_function_body): Break out from ...
20152         (cgraph_release_function_body): ... this one; also release DECL_RESULT
20153         and DECL_ARGUMENTS.
20154         * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
20155         old_tree in the map.
20156         (create_specialized_node): Update.
20157         * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
20158         into index.
20159         * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
20160         DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
20161         * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
20162         * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
20163         DECL_RESULT.
20164
20165 2013-07-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20166
20167         * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
20168         addsi3_carryin_alt2_<optab>): Correct output template.
20169
20170 2013-07-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20171
20172         * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
20173         Adjust for arm_restrict_it.
20174         Remove trailing whitespace.
20175
20176 2013-07-25 Â Mark Kettenis Â <kettenis@openbsd.org>
20177
20178         * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
20179         libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
20180
20181         * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
20182
20183 2013-07-25  Vladimir Makarov  <vmakarov@redhat.com>
20184
20185         PR rtl-optimization/57960
20186         * lra-constraints.c (process_alt_operands): Use the right mode
20187         when checking strict_low.
20188
20189 2013-07-25  Jan Hubicka  <jh@suse.cz>
20190
20191         * lto-symtab.c (lto_cgraph_replace_node): Release function body.
20192         * cgraph.c (cgraph_remove_node): Do not release function body
20193         when in cgraph streaming.
20194         * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
20195         in other partitions are not considered reachable; fix handling of
20196         clones.
20197
20198 2013-07-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20199
20200         * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
20201
20202 2013-07-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20203
20204         PR target/19599
20205         PR target/57731
20206         PR target/57837
20207         * config/arm/arm.md ("*sibcall_insn): Replace use of
20208         Ss with US. Adjust output for v5 and v4t.
20209         (*sibcall_value_insn): Likewise and loosen predicate on operand0.
20210
20211         * config/arm/constraints.md ("Ss"): Rename to US.
20212
20213 2013-07-25  Terry Guo  <terry.guo@arm.com>
20214
20215         * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
20216         shift_add/shift_sub0/shift_sub1 RTXs.
20217
20218 2013-07-24  Bill Schmidt  <wschmidt@linux.ibm.com>
20219             Anton Blanchard  <anton@au1.ibm.com>
20220
20221         * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
20222         (altivec_vpks<VI_char>ss): Likewise.
20223         (altivec_vpks<VI_char>us): Likewise.
20224         (altivec_vpku<VI_char>us): Likewise.
20225         (altivec_vpku<VI_char>um): Likewise.
20226
20227 2013-07-24  David Malcolm  <dmalcolm@redhat.com>
20228
20229         Introduce context class.
20230
20231         * Makefile.in (CONTEXT_H): New.
20232         (OBJS): Add context.o.
20233         (toplev.o): Add CONTEXT_H to dependencies.
20234         (context.o): New.
20235
20236         * toplev.c (general_init): Create the singleton gcc::context instance.
20237
20238         * context.c: New.
20239
20240         * context.h: New.
20241
20242 2013-07-24  Joern Rennecke  <joern.rennecke@embecosm.com>
20243
20244         PR rtl-optimization/57968
20245         * mode-switching.c (create_pre_exit): Allow instructions that
20246         don't set a return register to need a non-exit mode.
20247
20248 2013-07-24  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
20249             Anton Blanchard  <anton@au1.ibm.com>
20250
20251         * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
20252         operands to vperm for little endian.
20253         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
20254         of lvsl to create the control mask for a vperm for little endian.
20255
20256 2013-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20257             Anton Blanchard  <anton@au1.ibm.com>
20258
20259         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
20260         two operands for little-endian.
20261
20262 2013-07-23  Steve Ellcey  <sellcey@mips.com>
20263
20264         * config/mips/mips.c (mips_case_values_threshold): New.
20265         (TARGET_CASE_VALUES_THRESHOLD): Define.
20266
20267 2013-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20268             Anton Blanchard  <anton@au1.ibm.com>
20269
20270         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
20271         selection of field for vector splat in little endian mode.
20272
20273 2013-07-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
20274
20275         * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
20276         expanders to rs6000.md.
20277         (ior<mode>3): Likewise.
20278         (and<mode>3): Likewise.
20279         (one_cmpl<mode>2): Likewise.
20280         (nor<mode>3): Likewise.
20281         (andc<mode>3): Likewise.
20282         (eqv<mode>3): Likewise.
20283         (nand<mode>3): Likewise.
20284         (orc<mode>3): Likewise.
20285
20286         * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
20287         declaration.
20288
20289         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
20290         to split multi-word logical operations.
20291         (rs6000_split_logical_di): Likewise.
20292         (rs6000_split_logical): Likewise.
20293
20294         * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
20295         (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
20296         and allow TImode operations in 32-bit.
20297         (vsx_and<mode>3_64bit): Likewise.
20298         (vsx_ior<mode>3_32bit): Likewise.
20299         (vsx_ior<mode>3_64bit): Likewise.
20300         (vsx_xor<mode>3_32bit): Likewise.
20301         (vsx_xor<mode>3_64bit): Likewise.
20302         (vsx_one_cmpl<mode>2_32bit): Likewise.
20303         (vsx_one_cmpl<mode>2_64bit): Likewise.
20304         (vsx_nor<mode>3_32bit): Likewise.
20305         (vsx_nor<mode>3_64bit): Likewise.
20306         (vsx_andc<mode>3_32bit): Likewise.
20307         (vsx_andc<mode>3_64bit): Likewise.
20308         (vsx_eqv<mode>3_32bit): Likewise.
20309         (vsx_eqv<mode>3_64bit): Likewise.
20310         (vsx_nand<mode>3_32bit): Likewise.
20311         (vsx_nand<mode>3_64bit): Likewise.
20312         (vsx_orc<mode>3_32bit): Likewise.
20313         (vsx_orc<mode>3_64bit): Likewise.
20314
20315         * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
20316         logical types in GPRs.
20317
20318         * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
20319         logical insns to rs6000.md, and allow TImode operations in
20320         32-bit.
20321         (altivec_ior<mode>3): Likewise.
20322         (altivec_xor<mode>3): Likewise.
20323         (altivec_one_cmpl<mode>2): Likewise.
20324         (altivec_nor<mode>3): Likewise.
20325         (altivec_andc<mode>3): Likewise.
20326
20327         * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
20328         attributes for moving the 128-bit logical operations into
20329         rs6000.md.
20330         (BOOL_REGS_OUTPUT): Likewise.
20331         (BOOL_REGS_OP1): Likewise.
20332         (BOOL_REGS_OP2): Likewise.
20333         (BOOL_REGS_UNARY): Likewise.
20334         (BOOL_REGS_AND_CR0): Likewise.
20335         (one_cmpl<mode>2): Add support for DI logical operations on
20336         32-bit, splitting the operations to 32-bit.
20337         (anddi3): Likewise.
20338         (iordi3): Likewise.
20339         (xordi3): Likewise.
20340         (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
20341         changes to combine the 32/64-bit code, allow logical operations on
20342         TI mode in 32-bit, and to use similar match_operator patterns like
20343         scalar mode uses.  Combine the Altivec and VSX code for logical
20344         operations, and move it here.
20345         (ior<mode>3, 128-bit types): Likewise.
20346         (xor<mode>3, 128-bit types): Likewise.
20347         (one_cmpl<mode>3, 128-bit types): Likewise.
20348         (nor<mode>3, 128-bit types): Likewise.
20349         (andc<mode>3, 128-bit types): Likewise.
20350         (eqv<mode>3, 128-bit types): Likewise.
20351         (nand<mode>3, 128-bit types): Likewise.
20352         (orc<mode>3, 128-bit types): Likewise.
20353         (and<mode>3_internal): Likewise.
20354         (bool<mode>3_internal): Likewise.
20355         (boolc<mode>3_internal1): Likewise.
20356         (boolc<mode>3_internal2): Likewise.
20357         (boolcc<mode>3_internal1): Likewise.
20358         (boolcc<mode>3_internal2): Likewise.
20359         (eqv<mode>3_internal1): Likewise.
20360         (eqv<mode>3_internal2): Likewise.
20361         (one_cmpl1<mode>3_internal): Likewise.
20362
20363 2013-07-23  David Holsgrove  <david.holsgrove@xilinx.com>
20364
20365         * config/microblaze/microblaze.c (microblaze_expand_prologue):
20366         Rename flag_stack_usage to flag_stack_usage_info.
20367
20368 2013-07-23  David Holsgrove  <david.holsgrove@xilinx.com>
20369
20370         * config/microblaze/sync.md: New file.
20371         * config/microblaze/microblaze.md: Include sync.md
20372         * config/microblaze/microblaze.c: Add print_operand 'y'.
20373         * config/microblaze/constraints.md: Add memory_contraint
20374         'Q' which is a single register.
20375
20376 2013-07-23  Eric Botcazou  <ebotcazou@adacore.com>
20377
20378         * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
20379
20380 2013-07-22  Po-Chun Chang  <pchang9@cs.wisc.edu>
20381
20382         * reload.c (find_reloads): Exit loop once we find this operand
20383         cannot be reloaded somehow for this alternative.
20384
20385         * reload.c (find_reloads): Exit loop once we find a hard register.
20386
20387         * rtlanal.c (computed_jump_p): Exit loop once we find label
20388         reference is used.
20389
20390         * i386.c (ix86_pad_returns): Exit loop after setting replace.
20391
20392         * cfgloopmanip.c (remove_path): Exit loop after setting
20393         irred_invalidated.
20394
20395         * gensupport.c (subst_dup): Avoid loop if code is not
20396         MATCH_DUP nor MATCH_OP_DUP.
20397
20398 2013-07-23  Nicklas Bo Jensen  <nbjensen@gmail.com>
20399
20400         * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
20401
20402 2013-07-23  Yufeng Zhang  <yufeng.zhang@arm.com>
20403
20404         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
20405         true for SP_REGNUM if mode == ptr_mode.
20406         * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
20407         with value R0_REGNUM + 31.
20408
20409 2013-07-23  Yufeng Zhang  <yufeng.zhang@arm.com>
20410
20411         * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
20412         pad pointer-typed argument downward.
20413
20414 2013-07-23  Yufeng Zhang  <yufeng.zhang@arm.com>
20415
20416         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
20417         and __ILP32__ when the ILP32 model is in use.
20418
20419 2013-07-23  Yufeng Zhang  <yufeng.zhang@arm.com>
20420
20421         * config/aarch64/aarch64.c (POINTER_BYTES): New define.
20422         (aarch64_load_symref_appropriately): In the case of
20423         SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
20424         to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
20425         (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
20426         change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
20427         if 'mode' doesn't equal to 'ptr_mode'.
20428         (aarch64_output_mi_thunk): Add an assertion on the alignment of
20429         'vcall_offset'; change to call aarch64_emit_move differently depending
20430         on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
20431         to calculate the upper bound of 'vcall_offset'.
20432         (aarch64_cannot_force_const_mem): Change to also return true if
20433         mode != ptr_mode.
20434         (aarch64_legitimize_reload_address): In the case of large
20435         displacements, add new local variable 'xmode' and an assertion
20436         based on it; change to use 'xmode' to generate the new rtx and
20437         reload.
20438         (aarch64_asm_trampoline_template): Change to generate the template
20439         differently depending on TARGET_ILP32 or not; change to use
20440         'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
20441         (aarch64_trampoline_size): Removed.
20442         (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
20443         and replace immediate literals with it.  Change to use 'ptr_mode'
20444         instead of 'DImode' and call convert_memory_address if the mode
20445         of 'fnaddr' doesn't equal to 'ptr_mode'.
20446         (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
20447         to output symbol.
20448         (aarch64_elf_asm_destructor): Likewise.
20449         * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
20450         on TARGET_ILP32 instead of aarch64_trampoline_size.
20451         * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
20452         of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
20453         (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
20454         (loadwb_pair<GPI:mode>_<P:mode>): ... this.  Replace PTR with P.
20455         (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
20456         (storewb_pair<GPI:mode>_<P:mode>): ... this.
20457         (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
20458         depending on the value of 'mode'.
20459         (add_losym_<mode>): New.
20460         (ldr_got_small_<mode>): New, based on ldr_got_small.
20461         (ldr_got_small): Remove.
20462         (ldr_got_small_sidi): New.
20463         * config/aarch64/iterators.md (P): New.
20464         (PTR): Change to 'ptr_mode' in the condition.
20465
20466 2013-07-23  Yufeng Zhang  <yufeng.zhang@arm.com>
20467
20468         * config.gcc (aarch64*-*-*): Support --with-abi.
20469         (aarch64*-*-elf): Support --with-multilib-list.
20470         (aarch64*-*-linux*): Likewise.
20471         (supported_defaults): Add abi to aarch64*-*-*.
20472         * configure.ac: Mention AArch64 for --with-multilib-list.
20473         * configure: Re-generated.
20474         * config/aarch64/biarchilp32.h: New file.
20475         * config/aarch64/biarchlp64.h: New file.
20476         * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
20477         (ABI_SPEC): Ditto.
20478         (MULTILIB_DEFAULTS): Ditto.
20479         (DRIVER_SELF_SPECS): Ditto.
20480         (ASM_SPEC): Update to also substitute -mabi.
20481         * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
20482         file whose name depends on -mabi= and -mbig-endian.
20483         * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
20484         TARGET_ILP32.
20485         (POINTER_SIZE): New define.
20486         (POINTERS_EXTEND_UNSIGNED): Ditto.
20487         (enum aarch64_abi_type): New enumeration tag.
20488         (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
20489         (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
20490         (TARGET_ILP32): New define.
20491         * config/aarch64/aarch64.opt (mabi): New.
20492         (aarch64_abi): New.
20493         (ilp32, lp64): New values for -mabi.
20494         * config/aarch64/t-aarch64 (comma): New define.
20495         (MULTILIB_OPTIONS): Ditto.
20496         (MULTILIB_DIRNAMES): Ditto.
20497         * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
20498         * doc/invoke.texi: Document -mabi for AArch64.
20499
20500 2013-07-23  Georg-Johann Lay  <avr@gjlay.de>
20501
20502         * config/avr/avr.md: Explain asm print modifier 'r' for REG.
20503
20504 2013-07-22  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
20505             Anton Blanchard  <anton@au1.ibm.com>
20506
20507         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
20508         endianness when selecting field to splat.
20509
20510 2013-07-22  Eric Christopher  <echristo@gmail.com>
20511
20512         * dwarf2out.c (die_odr_checksum): New function to use
20513         CHECKSUM_ macros and ULEB128 for DIE tag.
20514         (generate_type_signature): Use.
20515
20516 2013-07-22  Eric Botcazou  <ebotcazou@adacore.com>
20517
20518         * config.gcc (sparc*-*-*): Accept leon3 processor.
20519         (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
20520         * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
20521         * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
20522         * config/sparc/sparc.opt (enum processor_type): Add leon3.
20523         (mfix-ut699): Adjust comment.
20524         * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
20525         (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
20526         (CPP_CPU_SPEC): Likewise.
20527         (ASM_CPU_SPEC): Likewise.
20528         * config/sparc/sparc.c (leon3_cost): New constant.
20529         (sparc_option_override): Add leon3 support.
20530         (mem_ref): New function.
20531         (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
20532         (sparc_do_work_around_errata): Look into the instruction in the delay
20533         slot and adjust accordingly.  Add fix for the data cache nullify issues
20534         of the UT699.  Change insertion position for the NOP.
20535         * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
20536         (leon3_load): New reservation.
20537         (leon_store): Bump latency to 2.
20538         (grfpu): New automaton.
20539         (grfpu_alu): New unit.
20540         (grfpu_ds): Likewise.
20541         (leon_fp_alu): Adjust.
20542         (leon_fp_mult): Delete.
20543         (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
20544         (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
20545         * config/sparc/sparc.md (cpu): Add leon3.
20546         * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
20547         (swapsi): Likewise.
20548         (atomic_test_and_set): Likewise.
20549         (ldstub): Likewise.
20550
20551 2013-07-22  Jürgen Urban  <JuergenUrban@gmx.de>
20552
20553         * config.gcc (mips*-*-*): Add --with-fpu support.  Make single the
20554         default for R5900 targets.
20555         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
20556         (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
20557         * config/mips/mips.c (mips_option_override): Report an error for
20558         -march=r5900 -mhard-float -mdouble-float.  Use spu_single_format
20559         for -march=r5900 -mhard-float.
20560
20561 2013-07-22  Po-Chun Chang  <pchang9@cs.wisc.edu>
20562
20563         * df-problems.c (can_move_insns_across): Exit loop once we
20564         find a non-fixed, non-global register.
20565
20566         * ipa-pure-const.c (propagate_nothrow): Exit loop after
20567         setting can_throw.
20568
20569         * omega.c (omega_eliminate_red): Break after setting red_found.
20570         (omega_problem_has_red_equations): Similarly after setting found.
20571         (omega_query_variable): Similarly after setting coupled.
20572
20573 2013-07-22  Marek Polacek  <polacek@redhat.com>
20574
20575         * gimplify.c: Don't include gimple.h twice.
20576
20577 2013-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20578
20579         * config/arm/constraints.md (Pd): Allow TARGET_THUMB
20580         instead of TARGET_THUMB1.
20581         (Pz): New constraint.
20582         * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
20583         encodings.
20584         (compare_negsi_si): Likewise.
20585         (compare_addsi2_op0): Likewise.
20586         (compare_addsi2_op1): Likewise.
20587         (addsi3_carryin_<optab>): Likewise.
20588         (addsi3_carryin_alt2_<optab>): Likewise.
20589         (addsi3_carryin_shift_<optab>): Disable cond_exec variant
20590         for arm_restrict_it.
20591         (subsi3_carryin): Likewise.
20592         (arm_subsi3_insn): Add alternatives for 16-bit encoding.
20593         (minmax_arithsi): Disable for arm_restrict_it.
20594         (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
20595         (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
20596         (satsi_<SAT:code>_shift): Likewise.
20597         (arm_shiftsi3): Add alternative for 16-bit encoding.
20598         (arm32_movhf): Disable for arm_restrict_it.
20599         (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
20600         (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
20601
20602 2013-07-22  Sofiane Naci  <sofiane.naci@arm.com>
20603
20604         * config/arm/arm.md (attribute "insn"): Delete.
20605         (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
20606         "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
20607         (not_shiftsi): Update for attribute change.
20608         (not_shiftsi_compare0): Likewise.
20609         (not_shiftsi_compare0_scratch): Likewise.
20610         (arm_one_cmplsi2): Likewise.
20611         (thumb1_one_cmplsi2): Likewise.
20612         (notsi_compare0): Likewise.
20613         (notsi_compare0_scratch): Likewise.
20614         (thumb1_movdi_insn): Likewise.
20615         (arm_movsi_insn): Likewise.
20616         (movhi_insn_arch4): Likewise.
20617         (movhi_bytes): Likewise.
20618         (arm_movqi_insn): Likewise.
20619         (thumb1_movqi_insn): Likewise.
20620         (arm32_movhf): Likewise.
20621         (thumb1_movhf): Likewise.
20622         (arm_movsf_soft_insn): Likewise.
20623         (thumb1_movsf_insn): Likewise.
20624         (thumb_movdf_insn): Likewise.
20625         (movsicc_insn): Likewise.
20626         (movsfcc_soft_insn): Likewise.
20627         (and_scc): Likewise.
20628         (cond_move): Likewise.
20629         (if_move_not): Likewise.
20630         (if_not_move): Likewise.
20631         (if_shift_move): Likewise.
20632         (if_move_shift): Likewise.
20633         (if_shift_shift): Likewise.
20634         (if_not_arith): Likewise.
20635         (if_arith_not): Likewise.
20636         (cond_move_not): Likewise.
20637         * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
20638         (neon_mov<mode>): Likewise.
20639         * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
20640         (thumb2_movsi_vfp): Likewise.
20641         (movsf_vfp): Likewise.
20642         (thumb2_movsf_vfp): Likewise.
20643         * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
20644         change.
20645         (cortexa7_older_only): Likewise.
20646         (cortexa7_younger): Likewise.
20647         * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
20648         (1020alu_shift_op): Likewise.
20649         (1020alu_shift_reg_op): Likewise.
20650         * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
20651         (alu_shift_op): Likewise.
20652         (alu_shift_reg_op): Likewise.
20653         * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
20654         (11_alu_shift_op): Likewise.
20655         (11_alu_shift_reg_op): Likewise.
20656         * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
20657         (9_alu_shift_reg_op): Likewise.
20658         * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
20659         change.
20660         (cortex_a15_alu_shift): Likewise.
20661         (cortex_a15_alu_shift_reg): Likewise.
20662         * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
20663         (cortex_a5_alu_shift): Likewise.
20664         * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
20665         change.
20666         (cortex_a53_alu_shift): Likewise.
20667         * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
20668         change.
20669         (cortex_a7_alu_reg): Likewise.
20670         (cortex_a7_alu_shift): Likewise.
20671         * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
20672         (cortex_a8_alu_shift): Likewise.
20673         (cortex_a8_alu_shift_reg): Likewise.
20674         (cortex_a8_mov): Likewise.
20675         * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
20676         (cortex_a9_dp_shift): Likewise.
20677         * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
20678         * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
20679         (cortex_r4_mov): Likewise.
20680         (cortex_r4_alu_shift): Likewise.
20681         (cortex_r4_alu_shift_reg): Likewise.
20682         * config/arm/fa526.md (526_alu_op): Update for attribute change.
20683         (526_alu_shift_op): Likewise.
20684         * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
20685         * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
20686         (626te_alu_shift_op): Likewise.
20687         * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
20688         (726te_alu_op): Likewise.
20689         (726te_alu_shift_op): Likewise.
20690         (726te_alu_shift_reg_op): Likewise.
20691         * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
20692         (mp626_alu_shift_op): Likewise.
20693         * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
20694         (pj4_alu_e1_conds): Likewise.
20695         (pj4_alu): Likewise.
20696         (pj4_alu_conds): Likewise.
20697         (pj4_shift): Likewise.
20698         (pj4_shift_conds): Likewise.
20699         (pj4_alu_shift): Likewise.
20700         (pj4_alu_shift_conds): Likewise.
20701
20702 2013-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20703
20704         * config/arm/predicates.md (shiftable_operator_strict_it):
20705         New predicate.
20706         * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
20707         Disable cond_exec version for arm_restrict_it.
20708         (thumb2_smaxsi3): Convert to generate cond_exec.
20709         (thumb2_sminsi3): Likewise.
20710         (thumb32_umaxsi3): Likewise.
20711         (thumb2_uminsi3): Likewise.
20712         (thumb2_abssi2): Adjust constraints for arm_restrict_it.
20713         (thumb2_neg_abssi2): Likewise.
20714         (thumb2_mov_scc): Add alternative for 16-bit encoding.
20715         (thumb2_movsicc_insn): Adjust alternatives.
20716         (thumb2_mov_negscc): Disable for arm_restrict_it.
20717         (thumb2_mov_negscc_strict_it): New pattern.
20718         (thumb2_mov_notscc_strict_it): New pattern.
20719         (thumb2_mov_notscc): Disable for arm_restrict_it.
20720         (thumb2_ior_scc): Likewise.
20721         (thumb2_ior_scc_strict_it): New pattern.
20722         (thumb2_cond_move): Adjust for arm_restrict_it.
20723         (thumb2_cond_arith): Disable for arm_restrict_it.
20724         (thumb2_cond_arith_strict_it): New pattern.
20725         (thumb2_cond_sub): Adjust for arm_restrict_it.
20726         (thumb2_movcond): Likewise.
20727         (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
20728         (thumb2_zero_extendhisi2_v6): Likewise.
20729         (thumb2_zero_extendqisi2_v6): Likewise.
20730         (orsi_notsi_si): Likewise.
20731         (orsi_not_shiftsi_si): Likewise.
20732
20733 2013-07-22  Georg-Johann Lay  <avr@gjlay.de>
20734
20735         * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
20736         instruction sequence is 1 byte shorter.
20737
20738 2013-07-22  Uros Bizjak  <ubizjak@gmail.com>
20739
20740         * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
20741         it is not needed after split.
20742
20743 2013-07-20  Iain Sandoe  <iain@codesourcery.com>
20744
20745         PR target/51784
20746         * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
20747         second label for nonlocal goto receivers. Don't output pic base labels
20748         unless we're producing PIC; mark that action unreachable().
20749         (ix86_save_reg): If the function contains a nonlocal label, save the
20750         PIC base reg.
20751         * config/darwin-protos.h (machopic_should_output_picbase_label): New.
20752         * config/darwin.c (emitted_pic_label_num): New GTY.
20753         (update_pic_label_number_if_needed): New.
20754         (machopic_output_function_base_name): Adjust for nonlocal receiver
20755         case.
20756         (machopic_should_output_picbase_label): New.
20757         * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
20758         (nonlocal_goto_receiver): New insn and split.
20759
20760 2013-07-20  James Greenhalgh  <james.greenhalgh@arm.com>
20761
20762         * config/aarch64/aarch64-builtins.c
20763         (aarch64_fold_builtin): Fold abs in all modes.
20764         * config/aarch64/aarch64-simd-builtins.def
20765         (abs): Enable for all modes.
20766         * config/aarch64/arm_neon.h
20767         (vabs<q>_s<8,16,32,64): Rewrite using builtins.
20768         (vabs_f64): Add missing intrinsic.
20769
20770 2013-07-19  Ian Bolton  <ian.bolton@arm.com>
20771
20772         * config/aarch64/arm_neon.h (vabs_s64): New function
20773
20774 2013-07-19  Georg-Johann Lay  <avr@gjlay.de>
20775
20776         PR target/57516
20777         * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
20778         * config/avr/avr.md (adjust_len): Add `round'.
20779         * config/avr/avr-protos.h (avr_out_round): New prototype.
20780         (avr_out_plus): Add `out_label' argument.
20781         * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
20782         (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
20783         Handle the case where `insn' is just a pattern.
20784         (avr_out_bitop): Handle the case where `insn' is just a pattern.
20785         (avr_out_round): New function.
20786         (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
20787
20788 2013-07-18  David Holsgrove  <david.holsgrove@xilinx.com>
20789
20790         * config/microblaze/microblaze.c (microblaze_expand_prologue):
20791         Add check for flag_stack_usage to handle -fstack-usage support
20792
20793 2013-07-18  Pat Haugen  <pthaugen@us.ibm.com>
20794
20795         * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
20796         interaction for new Power8 flags and VSX.
20797
20798 2013-07-18  Sriraman Tallam  <tmsriram@google.com>
20799
20800         PR middle-end/57698
20801         * tree-inline.c (expand_call_inline): Emit errors during
20802         early_inlining only if optimization is not turned on.
20803
20804 2013-07-18  David Malcolm  <dmalcolm@redhat.com>
20805
20806         * passes.def: New.
20807
20808         * passes.c (init_optimization_passes): Move the construction of
20809         the pass hierarchy into a new passes.def file.
20810
20811         * Makefile.in (passes.o): Add dependency on passes.def.
20812
20813 2013-07-18  David Malcolm  <dmalcolm@redhat.com>
20814
20815         * passes.c (init_optimization_passes): Introduce macros for
20816         constructing the tree of passes (INSERT_PASSES_AFTER,
20817         PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
20818         TERMINATE_PASS_LIST).
20819
20820 2013-07-18  Vladimir Makarov  <vmakarov@redhat.com>
20821             Wei Mi  <wmi@google.com>
20822
20823         PR rtl-optimization/57878
20824         * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
20825         top.
20826         (reload_pseudo_compare_func): Check nregs first for reload
20827         pseudos.
20828
20829 2013-07-18  David Malcolm  <dmalcolm@redhat.com>
20830
20831         * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
20832
20833 2013-07-18  Po-Chun Chang  <pchang9@cs.wisc.edu>
20834
20835         * read-rtl.c (validate_const_int): Once an invalid character is
20836         seen, quit the loop.
20837
20838         * gengtype.c (write_roots): Similarly once we find the "deletable"
20839         or "if_marked" option.
20840
20841 2013-07-18  Sofiane Naci  <sofiane.naci@arm.com>
20842
20843         * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
20844         "xtab" and "sat".  Move value "clz" from here to ...
20845         (attriubte "type"): ... here.
20846         (satsi_<SAT:code>): Delete "insn" attribute.
20847         (satsi_<SAT:code>_shift): Likewise.
20848         (arm_zero_extendqisi2addsi): Likewise.
20849         (arm_extendqisi2addsi): Likewise.
20850         (clzsi2): Update for attribute changes.
20851         (rbitsi2): Likewise.
20852         * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
20853         attribute.
20854         (arm_usatsihi): Likewise.
20855         * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
20856
20857 2013-07-18  Sofiane Naci  <sofiane.naci@arm.com>
20858
20859         * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
20860         "arlo_imm".  Rename "alu_reg" to "arlo_reg".  Rename "simple_alu_shift"
20861         to "extend".  Split "alu_shift" into "shift" and "arlo_shift".  Split
20862         "alu_shift_reg" into "shift_reg" and "arlo_shift_reg".  List types
20863         in alphabetical order.
20864         (attribute "core_cycles"): Update for attribute changes.
20865         (arm_addsi3): Likewise.
20866         (addsi3_compare0): Likewise.
20867         (addsi3_compare0_scratch): Likewise.
20868         (addsi3_compare_op1): Likewise.
20869         (addsi3_compare_op2): Likewise.
20870         (compare_addsi2_op0): Likewise.
20871         (compare_addsi2_op1): Likewise.
20872         (addsi3_carryin_shift_<optab>): Likewise.
20873         (subsi3_carryin_shift): Likewise.
20874         (rsbsi3_carryin_shift): Likewise.
20875         (arm_subsi3_insn): Likewise.
20876         (subsi3_compare0): Likewise.
20877         (subsi3_compare): Likewise.
20878         (arm_andsi3_insn): Likewise.
20879         (thumb1_andsi3_insn): Likewise.
20880         (andsi3_compare0): Likewise.
20881         (andsi3_compare0_scratch): Likewise.
20882         (zeroextractsi_compare0_scratch
20883         (andsi_not_shiftsi_si): Likewise.
20884         (iorsi3_insn): Likewise.
20885         (iorsi3_compare0): Likewise.
20886         (iorsi3_compare0_scratch): Likewise.
20887         (arm_xorsi3): Likewise.
20888         (thumb1_xorsi3_insn): Likewise.
20889         (xorsi3_compare0): Likewise.
20890         (xorsi3_compare0_scratch): Likewise.
20891         (satsi_<SAT:code>_shift): Likewise.
20892         (rrx): Likewise.
20893         (arm_shiftsi3): Likewise.
20894         (shiftsi3_compare0): Likewise.
20895         (not_shiftsi): Likewise.
20896         (not_shiftsi_compare0): Likewise.
20897         (not_shiftsi_compare0_scratch): Likewise.
20898         (arm_one_cmplsi2): Likewise.
20899         (thumb_one_complsi2): Likewise.
20900         (notsi_compare0): Likewise.
20901         (notsi_compare0_scratch): Likewise.
20902         (thumb1_zero_extendhisi2): Likewise.
20903         (arm_zero_extendhisi2): Likewise.
20904         (arm_zero_extendhisi2_v6): Likewise.
20905         (arm_zero_extendhisi2addsi): Likewise.
20906         (thumb1_zero_extendqisi2): Likewise.
20907         (thumb1_zero_extendqisi2_v6): Likewise.
20908         (arm_zero_extendqisi2): Likewise.
20909         (arm_zero_extendqisi2_v6): Likewise.
20910         (arm_zero_extendqisi2addsi): Likewise.
20911         (thumb1_extendhisi2): Likewise.
20912         (arm_extendhisi2): Likewise.
20913         (arm_extendhisi2_v6): Likewise.
20914         (arm_extendqisi): Likewise.
20915         (arm_extendqisi_v6): Likewise.
20916         (arm_extendqisi2addsi): Likewise.
20917         (thumb1_extendqisi2): Likewise.
20918         (thumb1_movdi_insn): Likewise.
20919         (arm_movsi_insn): Likewise.
20920         (movsi_compare0): Likewise.
20921         (movhi_insn_arch4): Likewise.
20922         (movhi_bytes): Likewise.
20923         (arm_movqi_insn): Likewise.
20924         (thumb1_movqi_insn): Likewise.
20925         (arm32_movhf): Likewise.
20926         (thumb1_movhf): Likewise.
20927         (arm_movsf_soft_insn): Likewise.
20928         (thumb1_movsf_insn): Likewise.
20929         (movdf_soft_insn): Likewise.
20930         (thumb_movdf_insn): Likewise.
20931         (arm_cmpsi_insn): Likewise.
20932         (cmpsi_shiftsi): Likewise.
20933         (cmpsi_shiftsi_swp): Likewise.
20934         (arm_cmpsi_negshiftsi_si): Likewise.
20935         (movsicc_insn): Likewise.
20936         (movsfcc_soft_insn): Likewise.
20937         (arith_shiftsi): Likewise.
20938         (arith_shiftsi_compare0
20939         (arith_shiftsi_compare0_scratch
20940         (sub_shiftsi): Likewise.
20941         (sub_shiftsi_compare0
20942         (sub_shiftsi_compare0_scratch
20943         (and_scc): Likewise.
20944         (cond_move): Likewise.
20945         (if_plus_move): Likewise.
20946         (if_move_plus): Likewise.
20947         (if_move_not): Likewise.
20948         (if_not_move): Likewise.
20949         (if_shift_move): Likewise.
20950         (if_move_shift): Likewise.
20951         (if_shift_shift): Likewise.
20952         (if_not_arith): Likewise.
20953         (if_arith_not): Likewise.
20954         (cond_move_not): Likewise.
20955         (thumb1_ashlsi3): Set type attribute.
20956         (thumb1_ashrsi3): Likewise.
20957         (thumb1_lshrsi3): Likewise.
20958         (thumb1_rotrsi3): Likewise.
20959         (shiftsi3_compare0_scratch): Likewise.
20960         * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
20961         (neon_mov<mode>): Likewise.
20962         * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
20963         attribute changes.
20964         (thumb2_movsi_insn): Likewise.
20965         (thumb2_cmpsi_neg_shiftsi): Likewise.
20966         (thumb2_extendqisi_v6): Likewise.
20967         (thumb2_zero_extendhisi2_v6): Likewise.
20968         (thumb2_zero_extendqisi2_v6): Likewise.
20969         (thumb2_shiftsi3_short): Likewise.
20970         (thumb2_addsi3_compare0_scratch): Likewise.
20971         (orsi_not_shiftsi_si): Likewise.
20972         * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
20973         * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
20974         changes.
20975         * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
20976         (1020alu_shift_op): Likewise.
20977         (1020alu_shift_reg_op): Likewise.
20978         * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
20979         (alu_shift_op): Likewise.
20980         (alu_shift_reg_op): Likewise.
20981         * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
20982         (11_alu_shift_op): Likewise.
20983         (11_alu_shift_reg_op): Likewise.
20984         * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
20985         (9_alu_shift_reg_op): Likewise.
20986         * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
20987         changes.
20988         (cortex_a15_alu_shift): Likewise.
20989         (cortex_a15_alu_shift_reg): Likewise.
20990         * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
20991         changes.
20992         (cortex_a5_alu_shift): Likewise.
20993         * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
20994         changes.
20995         (cortex_a53_alu_shift): Likewise.
20996         * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
20997         changes.
20998         (cortex_a7_alu_reg): Likewise.
20999         (cortex_a7_alu_shift): Likewise.
21000         * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
21001         changes.
21002         (cortex_a8_alu_shift): Likewise.
21003         (cortex_a8_alu_shift_reg): Likewise.
21004         (cortex_a8_mov): Likewise.
21005         * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
21006         (cortex_a9_dp_shift): Likewise.
21007         * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
21008         changes.
21009         * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
21010         changes.
21011         (cortex_r4_mov): Likewise.
21012         (cortex_r4_alu_shift): Likewise.
21013         (cortex_r4_alu_shift_reg): Likewise.
21014         * config/arm/fa526.md (526_alu_op): Update for attribute changes.
21015         (526_alu_shift_op): Likewise.
21016         * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
21017         * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
21018         (626te_alu_shift_op): Likewise.
21019         * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
21020         (726te_alu_op): Likewise.
21021         (726te_alu_shift_op): Likewise.
21022         (726te_alu_shift_reg_op): Likewise.
21023         * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
21024         (mp626_alu_shift_op): Likewise.
21025         * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
21026         (pj4_alu_e1_conds): Likewise.
21027         (pj4_alu): Likewise.
21028         (pj4_alu_conds): Likewise.
21029         (pj4_shift): Likewise.
21030         (pj4_shift_conds): Likewise.
21031         (pj4_alu_shift): Likewise.
21032         (pj4_alu_shift_conds): Likewise.
21033         * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
21034         changes.
21035         (cortexa7_older_only): Likewise.
21036         (cortexa7_younger): Likewise.
21037
21038 2013-07-18  David Malcolm  <dmalcolm@redhat.com>
21039
21040         * ipa-pure-const.c (generate_summary): Rename to...
21041         (pure_const_generate_summary): ... this.
21042
21043 2013-07-17  Iain Sandoe  <iain@codesourcery.com>
21044
21045         * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
21046
21047 2013-07-17  Yvan Roux  <yvan.roux@linaro.org>
21048
21049         PR target/57909
21050         * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
21051         usage in HI mode.
21052
21053 2013-07-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21054
21055         * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
21056         enabled without -march=zEC12.
21057         * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
21058         flags to be set.
21059
21060 2013-07-16  Maciej W. Rozycki  <macro@codesourcery.com>
21061
21062         * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
21063         (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
21064         (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
21065         terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
21066         (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
21067         * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
21068         ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
21069         ISA_HAS_FP4.
21070         <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
21071         and ISA_HAS_NMADD3_NMSUB3.
21072         * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
21073         (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
21074         (nmsub4<mode>, nmsub3<mode>): Likewise.
21075         (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
21076
21077 2013-07-16  Maciej W. Rozycki  <macro@codesourcery.com>
21078
21079         * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
21080         TARGET_MIPS5400 checking.
21081
21082 2013-07-16  Jakub Jelinek  <jakub@redhat.com>
21083             Peter Bergner  <bergner@vnet.ibm.com>
21084
21085         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
21086         registers in the comment.
21087         (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
21088         (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
21089         rather than FIRST_PSEUDO_REGISTERS.
21090
21091 2013-07-16  Peter Bergner  <bergner@vnet.ibm.com>
21092
21093         * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
21094         enable extra ISA flags with TARGET_HTM.
21095
21096 2013-07-16  Maciej W. Rozycki  <macro@codesourcery.com>
21097
21098         * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
21099         Fix comment typos.
21100
21101 2013-07-15  Cong Hou  <congh@google.com>
21102
21103         * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
21104         in compare function for sorting.
21105
21106 2013-07-15  Peter Bergner  <bergner@vnet.ibm.com>
21107
21108         * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
21109         * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
21110         * config/rs6000/rs6000.opt: Add -mhtm option.
21111         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
21112         (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
21113         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
21114         __HTM__ if the HTM instructions are available.
21115         * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
21116         htm_spr_reg_operand): New define_predicates.
21117         * config/rs6000/rs6000.md (define_attr "type"): Add htm.
21118         (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
21119         Include htm.md.
21120         * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
21121         BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
21122         HTM builtin functions.
21123         * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
21124         (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
21125         (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
21126         (rs6000_builtin_mask_calculate): Likewise.
21127         (rs6000_option_override_internal): Likewise.
21128         (bdesc_htm): Add new HTM builtin support.
21129         (htm_spr_num): New function.
21130         (htm_spr_regno): Likewise.
21131         (rs6000_htm_spr_icode): Likewise.
21132         (htm_expand_builtin): Likewise.
21133         (htm_init_builtins): Likewise.
21134         (rs6000_expand_builtin): Add support for HTM builtin functions.
21135         (rs6000_init_builtins): Likewise.
21136         (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
21137         option.
21138         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
21139         (TARGET_HTM, MASK_HTM): Define macros.
21140         (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
21141         (FIXED_REGISTERS): Likewise.
21142         (CALL_USED_REGISTERS): Likewise.
21143         (CALL_REALLY_USED_REGISTERS): Likewise.
21144         (REG_ALLOC_ORDER): Likewise.
21145         (enum reg_class): Likewise.
21146         (REG_CLASS_NAMES): Likewise.
21147         (REG_CLASS_CONTENTS): Likewise.
21148         (REGISTER_NAMES): Likewise.
21149         (ADDITIONAL_REGISTER_NAMES): Likewise.
21150         (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
21151         RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
21152         (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
21153         * config/rs6000/htm.md: New file.
21154         * config/rs6000/htmintrin.h: New file.
21155         * config/rs6000/htmxlintrin.h: New file.
21156
21157 2013-07-15  Marcus Shawcroft  <marcus.shawcroft@arm.com>
21158
21159         * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
21160         Define SYMBOL_TINY_GOT, update comment.
21161         * config/aarch64/aarch64.c
21162         (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
21163         (aarch64_expand_mov_immediate): Likewise.
21164         (aarch64_print_operand): Likewise.
21165         (aarch64_classify_symbol): Likewise.
21166         * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
21167         (ldr_got_tiny): Define.
21168
21169 2013-07-13  Tobias Grosser  <tobias@grosser.es>
21170
21171         PR tree-optimization/54094
21172         * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
21173           scheduling dimension for the parallelism check from the polyhedral
21174           information in the AST.
21175         * graphite-dependences.c (carries_deps): Do not assume the schedule is
21176           in 2D + 1 form.
21177
21178 2013-07-13  Jason Merrill  <jason@redhat.com>
21179
21180         * print-tree.c (debug_vec_tree): Use debug_raw.
21181         (debug_raw (vec<tree, va_gc> &)): New.
21182         (debug_raw (vec<tree, va_gc> *)): New.
21183         * tree.h: Declare them.
21184
21185 2013-07-13  Bin Cheng  <bin.cheng@arm.com>
21186
21187         * ifcvt.c (ifcvt_after_combine): New static variable.
21188         (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
21189         for size.
21190         (if_convert): New parameter after_combine.  Set ifcvt_after_combine.
21191         (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
21192         rest_of_handle_if_after_reload): Pass new argument for if_convert.
21193
21194 2013-07-12  Maciej W. Rozycki  <macro@codesourcery.com>
21195
21196         * config/mips/mips.c (mips_expand_call): Remove empty statement.
21197
21198 2013-07-12  Michael Matz  <matz@suse.de>
21199
21200         PR middle-end/55771
21201         * convert.c (convert_to_real): Reject non-float inner types.
21202
21203 2013-07-12  Tejas Belagod  <tejas.belagod@arm.com>
21204
21205         * config/aarch64/aarch64-protos.h
21206         (aarch64_simd_immediate_valid_for_move): Remove.
21207         * config/aarch64/aarch64.c (simd_immediate_info): New member.
21208         (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
21209         cases.
21210         (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
21211
21212 2013-07-11  Steve Ellcey  <sellcey@mips.com>
21213
21214         * config/mips/mips.c (mips_conditional_register_usage): Do not
21215         use t[0-7] registers in MIPS16 mode when optimizing for size.
21216
21217 2013-07-11  Sriraman Tallam  <tmsriram@google.com>
21218
21219         * config/i386/i386.c (dispatch_function_versions): Fix array
21220         indexing of function_version_info to match actual_versions.
21221
21222 2013-07-11  Teresa Johnson  <tejohnson@google.com>
21223
21224         * vec.h (struct va_gc): Move release out-of-line.
21225         (va_gc::release): Call ggc_free on released vec.
21226
21227 2013-07-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21228
21229         * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
21230         Require GOT register as additional operand in UNSPEC.
21231         ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
21232         ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
21233         ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
21234         ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
21235         ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
21236         ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
21237         ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
21238
21239 2013-07-11  Georg-Johann Lay  <avr@gjlay.de>
21240
21241         PR target/57631
21242         * config/avr/avr.c (avr_set_current_function): Sanity-check signal
21243         name seen by assembler/linker rather if available.
21244
21245 2013-07-11  Andreas Schwab  <schwab@suse.de>
21246
21247         * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
21248
21249 2013-07-10  Vladimir Makarov  <vmakarov@redhat.com>
21250
21251         * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21252
21253 2013-07-10  Joseph Myers  <joseph@codesourcery.com>
21254
21255         * doc/tm.texi.in: Move hook documentation to ....
21256         * target.def: ... here.
21257
21258         * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
21259         text on @hook line.
21260         * doc/tm.texi: Regenerate.
21261
21262 2013-07-10  Paolo Carlini  <paolo.carlini@oracle.com>
21263
21264         PR c++/57869
21265         * doc/invoke.texi: Document -Wconditionally-supported.
21266
21267 2013-07-10  Georg-Johann Lay  <avr@gjlay.de>
21268
21269         PR target/57844
21270         * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
21271         of my_fp.
21272
21273 2013-07-10  Georg-Johann Lay  <avr@gjlay.de>
21274
21275         PR target/57506
21276         * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
21277         (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
21278         (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
21279         Remove duplicate devices.
21280         * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
21281         * config/avr/t-multilib: Regenerate.
21282         * config/avr/avr-tables.opt: Regenerate.
21283         * doc/avr-mmcu.texi: Regenerate.
21284
21285 2013-07-10  Georg-Johann Lay  <avr@gjlay.de>
21286
21287         PR target/56987
21288         * config/avr/avr.opt (Waddr-space-convert): Fix typo.
21289
21290 2013-07-10  Graham Stott  <graham.stott@btinternet.com>
21291
21292         * config/mips/mips.c (mips_rtx_costs): Very slightly increase
21293         the cost of MULT when optimizing for size.
21294
21295 2013-07-10  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
21296
21297         * config/cr16/cr16-protos.h: Don't include target.h.
21298
21299 2013-07-09  Joseph Myers  <joseph@codesourcery.com>
21300
21301         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
21302         adjust register size for TDmode and TFmode for VSX registers.
21303
21304 2013-07-08  Kai Tietz  <ktietz@redhat.com>
21305
21306         PR target/56892
21307         * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
21308         hook_bool_const_tree_true.
21309
21310 2013-07-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21311
21312         * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
21313         * config/s390/s390.h: Remove F*_REGNUM macro definitions.
21314         * config/s390/s390.md: Define FPR*_REGNUM constants.
21315         Fix FPR2_REGNUM constant (18 -> 17).
21316         ("*trunc<BFP:mode><DFP_ALL:mode>2")
21317         ("*trunc<DFP_ALL:mode><BFP:mode>2")
21318         ("trunc<BFP:mode><DFP_ALL:mode>2")
21319         ("trunc<DFP_ALL:mode><BFP:mode>2")
21320         ("*extend<BFP:mode><DFP_ALL:mode>2")
21321         ("*extend<DFP_ALL:mode><BFP:mode>2")
21322         ("extend<BFP:mode><DFP_ALL:mode>2")
21323         ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
21324         FPR4_REGNUM.
21325
21326 2013-07-08  Graham Stott  <graham.stott@btinternet.com>
21327
21328         * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
21329
21330 2013-07-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21331
21332         * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
21333         and cfun_fpr_bit_p to cfun_fpr_save_p.
21334         (s390_frame_area, s390_register_info, s390_frame_info)
21335         (s390_emit_prologue, s390_emit_epilogue)
21336         (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
21337         register numbers.
21338         * config/s390/s390.h: Define *_REGNUM macros for floating point
21339         register numbers.
21340
21341 2013-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21342
21343         * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
21344
21345 2013-07-08  Po-Chun Chang  <pchang9@cs.wisc.edu>
21346
21347         PR rtl-optimization/57786
21348         * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
21349         and break out of the loop when it is set to false.
21350
21351 2013-07-08  Jakub Jelinek  <jakub@redhat.com>
21352
21353         PR target/57819
21354         * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
21355         Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
21356         (const_int 63)) 0)).
21357         * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
21358         using simplify_gen_unary instead of gen_rtx_*_EXTEND.
21359         * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
21360
21361         PR rtl-optimization/57829
21362         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
21363         mask bits outside of mode are just sign-extension from mode to HWI.
21364
21365 2013-07-08  Michael Zolotukhin  <michael.v.zolotukhin@gmail.com>
21366
21367         * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
21368         * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
21369         adjust_address instead of change_address to keep info about alignment.
21370         (emit_strmov): Remove.
21371         (emit_memmov): New function.
21372         (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
21373         (expand_movmem_epilogue): Likewise and return updated rtx for
21374         destination.
21375         (expand_constant_movmem_prologue): Likewise and return updated rtx for
21376         destination and source.
21377         (decide_alignment): Refactor, handle vector_loop.
21378         (ix86_expand_movmem): Likewise.
21379         (ix86_expand_setmem): Likewise.
21380         * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
21381
21382 2013-07-07  Uros Bizjak  <ubizjak@gmail.com>
21383
21384         * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
21385         signature_TM2_ebx, it interferes with signature_INTEL_ebx.
21386
21387 2013-07-06  Uros Bizjak  <ubizjak@gmail.com>
21388
21389         * config/i386/sse.md (sse_movlhps): Change alternative 3
21390         of operand 2 to "m".
21391
21392 2013-07-06  Uros Bizjak  <ubizjak@gmail.com>
21393
21394         PR target/57807
21395         * config/i386/sse.md (iptr): New mode attribute.
21396         (sse2_movq128): Add pointer size overrides for Intel asm dialect.
21397         (<sse>_vm<plusminus_insn><mode>3): Ditto.
21398         (<sse>_vmmul<mode>3): Ditto.
21399         (<sse>_vmdiv<mode>3): Ditto.
21400         (sse_vmrcpv4sf2): Ditto.
21401         (<sse>_vmsqrt<mode>2): Ditto.
21402         (sse_vmrsqrtv4sf2): Ditto.
21403         (<sse>_vm<code><mode>3): Ditto.
21404         (avx_vmcmp<mode>3): Ditto.
21405         (<sse>_vmmaskcmp<mode>3): Ditto.
21406         (<sse>_comi): Ditto.
21407         (<sse>_ucomi): Ditto.
21408         (*xop_vmfrcz_<mode>): Ditto.
21409         (*fmai_fmadd_<mode>): Ditto.
21410         (*fmai_fmsub_<mode>): Ditto.
21411         (*fmai_fnmadd_<mode>): Ditto.
21412         (*fmai_fnmsub_<mode>): Ditto.
21413         (*fma4i_vmfmadd_<mode>): Ditto.
21414         (*fma4i_vmfmsub_<mode>): Ditto.
21415         (*fma4i_vmfnmadd_<mode>): Ditto.
21416         (*fma4i_vmfnmsub_<mode>): Ditto.
21417         (*xop_vmfrcz_<mode>): Ditto.
21418         (sse_cvtps2pi): Ditto.
21419         (sse_cvttps2pi): Ditto.
21420         (sse_cvtss2si): Ditto.
21421         (sse_cvtss2si_2): Ditto.
21422         (sse_cvtss2siq_2): Ditto.
21423         (sse_cvttss2si): Ditto.
21424         (sse_cvttss2siq): Ditto.
21425         (sse_cvtsd2si): Ditto.
21426         (sse_cvtsd2si_2): Ditto.
21427         (sse_cvtsd2siq_2): Ditto.
21428         (sse_cvttsd2si): Ditto.
21429         (sse_cvttsd2siq): Ditto.
21430         (sse_cvtsd2ss): Ditto.
21431         (sse_cvtss2sd): Ditto.
21432         (avx2_pbroadcast<mode>): Ditto.
21433         (avx2_pbroadcast<mode>_1): Ditto.
21434         (*avx_vperm_broadcast_v4sf): Ditto.
21435
21436         (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
21437         (sse_movlhps): Ditto.
21438         (sse_storehps): Ditto.
21439         (sse_loadhps): Ditto.
21440         (sse_storelps): Ditto.
21441         (sse_loadlps): Ditto.
21442         (*vec_concatv4sf): Ditto.
21443         (*vec_interleave_highv2df): Ditto.
21444         (*vec_interleave_lowv2df): Ditto.
21445         (*vec_extractv2df_1_sse): Ditto.
21446         (*vec_extractv2df_0_sse): Ditto.
21447         (sse2_storelpd): Ditto.
21448         (sse2_loadlpd): Ditto.
21449         (sse2_movsd): Ditto.
21450         (*vec_concatv4si): Ditto.
21451         (vec_concatv2di): Ditto.
21452
21453         * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
21454         for Intel asm dialect.
21455         (mmx_punpcklwd): Ditto.
21456         (mmx_punpckldq): Ditto.
21457
21458         * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
21459         for intel assembler dialect.
21460
21461 2013-07-06  Jakub Jelinek  <jakub@redhat.com>
21462
21463         PR target/29776
21464         * fold-const.c (tree_call_nonnegative_warnv_p): Return true
21465         for BUILT_IN_C{LZ,LRSB}*.
21466         * tree.h (CASE_INT_FN): Add FN##IMAX case.
21467         * tree-vrp.c (extract_range_basic): Handle
21468         BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*.  For
21469         BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
21470         fall thru to code calling set_value*.
21471         * builtins.c (expand_builtin): Remove *IMAX cases.
21472         (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
21473         if width is bigger than 2*HWI.
21474
21475 2013-07-05  Vladimir Makarov  <vmakarov@redhat.com>
21476
21477         PR rtl-optimization/55342
21478         * lra-int.h (lra_subreg_reload_pseudos): New.
21479         * lra.c: Add undoing optional reloads to the block diagram.
21480         (lra_subreg_reload_pseudos): New.
21481         (lra_optional_reload_pseudos): Change comments.
21482         (lra): Init and clear lra_subreg_reload_pseudos.  Clear
21483         lra_optional_reload_pseudos after undo transformations.
21484         * lra-assigns.c (pseudo_prefix_title): New.
21485         (lra_setup_reg_renumber): Use it.
21486         (spill_for): Ditto.  Check subreg reload pseudos too.
21487         (assign_by_spills): Consider subreg reload pseudos too.
21488         * lra-constraints.c (simplify_operand_subreg): Use
21489         lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
21490         (curr_insn_transform): Recognize and do optional reloads.
21491         (undo_optional_reloads): New.
21492         (lra_undo_inheritance): Call undo_optional_reloads.
21493
21494 2013-07-05  Thomas Quinot  <quinot@adacore.com>
21495
21496         * tree-complex.c (expand_complex_operations_1): Fix typo.
21497
21498 2013-07-04  Tejas Belagod  <tejas.belagod@arm.com>
21499
21500         * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
21501         (tune_params): New member 'const vec_costs'.
21502         * config/aarch64/aarch64.c (generic_vector_cost): New.
21503         (generic_tunings): New member 'generic_vector_cost'.
21504         (aarch64_builtin_vectorization_cost): New.
21505         (aarch64_add_stmt_cost): New.
21506         (TARGET_VECTORIZE_ADD_STMT_COST): New.
21507         (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
21508
21509 2013-07-03  Jakub Jelinek  <jakub@redhat.com>
21510
21511         PR target/57777
21512         * config/i386/predicates.md (vsib_address_operand): Disallow
21513         SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
21514
21515 2013-07-03  Hans-Peter Nilsson  <hp@bitrange.com>
21516
21517         PR middle-end/55030
21518         * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
21519         expand_builtin_setjmp_receiver.
21520         (expand_label): Adjust, call expand_builtin_setjmp_receiver
21521         with NULL for the label parameter.
21522         * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
21523         the frame-pointer.  Adjust comments.
21524         [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
21525         only if LABEL is non-NULL.
21526
21527 2013-07-03  Yufeng Zhang  <yufeng.zhang@arm.com>
21528
21529         * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
21530         (ARM_ABI_AAPCS64): Ditto.
21531         (arm_abi): Ditto.
21532         (ARM_DEFAULT_ABI): Ditto.
21533
21534 2013-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
21535
21536         * config/aarch64/aarch64-builtins.c
21537         (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
21538         * config/aarch64/aarch64-simd-builtins.def (ld1): New.
21539         (st1): Likewise.
21540         * config/aarch64/aarch64-simd.md
21541         (aarch64_ld1<VALL:mode>): New.
21542         (aarch64_st1<VALL:mode>): Likewise.
21543         * config/aarch64/arm_neon.h
21544         (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
21545
21546 2013-07-02  Sriraman Tallam  <tmsriram@google.com>
21547
21548         * config/i386/i386.c (gate_insert_vzeroupper): Check if
21549         target ISA is AVX.
21550         (ix86_option_override_internal):Turn on all -mavx target flags by
21551         default as they are dependent on AVX anyway.
21552
21553 2013-07-02  Cary Coutant  <ccoutant@google.com>
21554
21555         * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
21556         deterministic hash.
21557         (loc_checksum_ordered): Likewise.
21558         (hash_loc_operands): Remove inline keyword.
21559
21560 2013-07-02  Jakub Jelinek  <jakub@redhat.com>
21561
21562         PR tree-optimization/57741
21563         * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
21564         non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
21565         or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
21566         Allow REAL_CST step_exprs if flag_associative_math.
21567         (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
21568
21569 2013-07-02  Ian Bolton  <ian.bolton@arm.com>
21570
21571         * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
21572
21573 2013-07-02  Ian Bolton  <ian.bolton@arm.com>
21574
21575         * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
21576
21577 2013-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21578
21579         * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
21580         encoding.
21581         (iorsi3_insn): Likewise.
21582         (arm_xorsi3): Likewise.
21583
21584 2013-07-01  Sofiane Naci  <sofiane.naci@arm.com>
21585
21586         * arm.md (attribute "wtype"): Delete.  Move attribute values from here
21587         to ...
21588         (attribute "type"): ... here, and prefix with "wmmx_".
21589         (attribute "core_cycles"): Update for attribute changes.
21590         * iwmmxt.md (tbcstv8qi): Update for attribute changes.
21591         (tbcstv4hi): Likewise.
21592         (tbcstv2si): Likewise.
21593         (iwmmxt_iordi3): Likewise.
21594         (iwmmxt_xordi3): Likewise.
21595         (iwmmxt_anddi3): Likewise.
21596         (iwmmxt_nanddi3): Likewise.
21597         (iwmmxt_arm_movdi): Likewise.
21598         (iwmmxt_movsi_insn): Likewise.
21599         (mov<mode>_internal): Likewise.
21600         (and<mode>3_iwmmxt): Likewise.
21601         (ior<mode>3_iwmmxt): Likewise.
21602         (xor<mode>3_iwmmxt): Likewise.
21603         (add<mode>3_iwmmxt): Likewise.
21604         (ssaddv8qi3): Likewise.
21605         (ssaddv4hi3): Likewise.
21606         (ssaddv2si3): Likewise.
21607         (usaddv8qi3): Likewise.
21608         (usaddv4hi3): Likewise.
21609         (usaddv2si3): Likewise.
21610         (sub<mode>3_iwmmxt): Likewise.
21611         (sssubv8qi3): Likewise.
21612         (sssubv4hi3): Likewise.
21613         (sssubv2si3): Likewise.
21614         (ussubv8qi3): Likewise.
21615         (ussubv4hi3): Likewise.
21616         (ussubv2si3): Likewise.
21617         (mulv4hi3_iwmmxt): Likewise.
21618         (smulv4hi3_highpart): Likewise.
21619         (umulv4hi3_highpart): Likewise.
21620         (iwmmxt_wmacs): Likewise.
21621         (iwmmxt_wmacsz): Likewise.
21622         (iwmmxt_wmacu): Likewise.
21623         (iwmmxt_wmacuz): Likewise.
21624         (iwmmxt_clrdi): Likewise.
21625         (iwmmxt_clrv8qi): Likewise.
21626         (iwmmxt_clr4hi): Likewise.
21627         (iwmmxt_clr2si): Likewise.
21628         (iwmmxt_uavgrndv8qi3): Likewise.
21629         (iwmmxt_uavgrndv4hi3): Likewise.
21630         (iwmmxt_uavgv8qi3): Likewise.
21631         (iwmmxt_uavgv4hi3): Likewise.
21632         (iwmmxt_tinsrb): Likewise.
21633         (iwmmxt_tinsrh): Likewise.
21634         (iwmmxt_tinsrw): Likewise.
21635         (iwmmxt_textrmub): Likewise.
21636         (iwmmxt_textrmsb): Likewise.
21637         (iwmmxt_textrmuh): Likewise.
21638         (iwmmxt_textrmsh): Likewise.
21639         (iwmmxt_textrmw): Likewise.
21640         (iwmxxt_wshufh): Likewise.
21641         (eqv8qi3): Likewise.
21642         (eqv4hi3): Likewise.
21643         (eqv2si3): Likewise.
21644         (gtuv8qi3): Likewise.
21645         (gtuv4hi3): Likewise.
21646         (gtuv2si3): Likewise.
21647         (gtv8qi3): Likewise.
21648         (gtv4hi3): Likewise.
21649         (gtv2si3): Likewise.
21650         (smax<mode>3_iwmmxt): Likewise.
21651         (umax<mode>3_iwmmxt): Likewise.
21652         (smin<mode>3_iwmmxt): Likewise.
21653         (umin<mode>3_iwmmxt): Likewise.
21654         (iwmmxt_wpackhss): Likewise.
21655         (iwmmxt_wpackwss): Likewise.
21656         (iwmmxt_wpackdss): Likewise.
21657         (iwmmxt_wpackhus): Likewise.
21658         (iwmmxt_wpackwus): Likewise.
21659         (iwmmxt_wpackdus): Likewise.
21660         (iwmmxt_wunpckihb): Likewise.
21661         (iwmmxt_wunpckihh): Likewise.
21662         (iwmmxt_wunpckihw): Likewise.
21663         (iwmmxt_wunpckilb): Likewise.
21664         (iwmmxt_wunpckilh): Likewise.
21665         (iwmmxt_wunpckilw): Likewise.
21666         (iwmmxt_wunpckehub): Likewise.
21667         (iwmmxt_wunpckehuh): Likewise.
21668         (iwmmxt_wunpckehuw): Likewise.
21669         (iwmmxt_wunpckehsb): Likewise.
21670         (iwmmxt_wunpckehsh): Likewise.
21671         (iwmmxt_wunpckehsw): Likewise.
21672         (iwmmxt_wunpckelub): Likewise.
21673         (iwmmxt_wunpckeluh): Likewise.
21674         (iwmmxt_wunpckeluw): Likewise.
21675         (iwmmxt_wunpckelsb): Likewise.
21676         (iwmmxt_wunpckelsh): Likewise.
21677         (iwmmxt_wunpckelsw): Likewise.
21678         (ror<mode>3): Likewise.
21679         (ashr<mode>3_iwmmxt): Likewise.
21680         (lshr<mode>3_iwmmxt): Likewise.
21681         (ashl<mode>3_iwmmxt): Likewise.
21682         (ror<mode>3_di): Likewise.
21683         (ashr<mode>3_di): Likewise.
21684         (lshr<mode>3_di): Likewise.
21685         (ashl<mode>3_di): Likewise.
21686         (iwmmxt_wmadds): Likewise.
21687         (iwmmxt_wmaddu): Likewise.
21688         (iwmmxt_tmia): Likewise.
21689         (iwmmxt_tmiaph): Likewise.
21690         (iwmmxt_tmiabb): Likewise.
21691         (iwmmxt_tmiatb): Likewise.
21692         (iwmmxt_tmiabt): Likewise.
21693         (iwmmxt_tmiatt): Likewise.
21694         (iwmmxt_tmovmskb): Likewise.
21695         (iwmmxt_tmovmskh): Likewise.
21696         (iwmmxt_tmovmskw): Likewise.
21697         (iwmmxt_waccb): Likewise.
21698         (iwmmxt_wacch): Likewise.
21699         (iwmmxt_waccw): Likewise.
21700         (iwmmxt_waligni): Likewise.
21701         (iwmmxt_walignr): Likewise.
21702         (iwmmxt_walignr0): Likewise.
21703         (iwmmxt_walignr1): Likewise.
21704         (iwmmxt_walignr2): Likewise.
21705         (iwmmxt_walignr3): Likewise.
21706         (iwmmxt_wsadb): Likewise.
21707         (iwmmxt_wsadh): Likewise.
21708         (iwmmxt_wsadbz): Likewise.
21709         (iwmmxt_wsadhz): Likewise.
21710         * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
21711         (iwmmxt_wabsdiffb): Likewise.
21712         (iwmmxt_wabsdiffh): Likewise.
21713         (iwmmxt_wabsdiffw): Likewise.
21714         (iwmmxt_waddsubhx): Likewise
21715         (iwmmxt_wsubaddhx): Likewise.
21716         (addc<mode>3): Likewise.
21717         (iwmmxt_avg4): Likewise.
21718         (iwmmxt_avg4r): Likewise.
21719         (iwmmxt_wmaddsx): Likewise.
21720         (iwmmxt_wmaddux): Likewise.
21721         (iwmmxt_wmaddsn): Likewise.
21722         (iwmmxt_wmaddun): Likewise.
21723         (iwmmxt_wmulwsm): Likewise.
21724         (iwmmxt_wmulwum): Likewise.
21725         (iwmmxt_wmulsmr): Likewise.
21726         (iwmmxt_wmulumr): Likewise.
21727         (iwmmxt_wmulwsmr): Likewise.
21728         (iwmmxt_wmulwumr): Likewise.
21729         (iwmmxt_wmulwl): Likewise.
21730         (iwmmxt_wqmulm): Likewise.
21731         (iwmmxt_wqmulwm): Likewise.
21732         (iwmmxt_wqmulmr): Likewise.
21733         (iwmmxt_wqmulwmr): Likewise.
21734         (iwmmxt_waddbhusm): Likewise.
21735         (iwmmxt_waddbhusl): Likewise.
21736         (iwmmxt_wqmiabb): Likewise.
21737         (iwmmxt_wqmiabt): Likewise.
21738         (iwmmxt_wqmiatb): Likewise.
21739         (iwmmxt_wqmiatt): Likewise.
21740         (iwmmxt_wqmiabbn): Likewise.
21741         (iwmmxt_wqmiabtn): Likewise.
21742         (iwmmxt_wqmiatbn): Likewise.
21743         (iwmmxt_wqmiattn): Likewise.
21744         (iwmmxt_wmiabb): Likewise.
21745         (iwmmxt_wmiabt): Likewise.
21746         (iwmmxt_wmiatb): Likewise.
21747         (iwmmxt_wmiatt): Likewise.
21748         (iwmmxt_wmiabbn): Likewise.
21749         (iwmmxt_wmiabtn): Likewise.
21750         (iwmmxt_wmiatbn): Likewise.
21751         (iwmmxt_wmiattn): Likewise.
21752         (iwmmxt_wmiawbb): Likewise.
21753         (iwmmxt_wmiawbt): Likewise.
21754         (iwmmxt_wmiawtb): Likewise.
21755         (iwmmxt_wmiawtt): Likewise.
21756         (iwmmxt_wmiawbbn): Likewise.
21757         (iwmmxt_wmiawbtn): Likewise.
21758         (iwmmxt_wmiawtbn): Likewise.
21759         (iwmmxt_wmiawttn): Likewise.
21760         (iwmmxt_wmerge): Likewise.
21761         (iwmmxt_tandc<mode>3): Likewise.
21762         (iwmmxt_torc<mode>3): Likewise.
21763         (iwmmxt_torvsc<mode>3): Likewise.
21764         (iwmmxt_textrc<mode>3): Likewise.
21765         * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
21766         (wmmxt_pack): Likewise.
21767         (wmmxt_mult_c1): Likewise.
21768         (wmmxt_mult_c2): Likewise.
21769         (wmmxt_alu_c1): Likewise.
21770         (wmmxt_alu_c2): Likewise.
21771         (wmmxt_alu_c3): Likewise.
21772         (wmmxt_transfer_c1): Likewise.
21773         (wmmxt_transfer_c2): Likewise.
21774         (wmmxt_transfer_c3): Likewise.
21775         (marvell_f_iwmmxt_wstr): Likewise.
21776         (marvell_f_iwmmxt_wldr): Likewise.
21777
21778 2013-06-29  Yufeng Zhang  <yufeng.zhang@arm.com>
21779
21780         * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
21781
21782 2013-06-28  Vladimir Makarov  <vmakarov@redhat.com>
21783
21784         Revert:
21785         2013-06-28  Vladimir Makarov  <vmakarov@redhat.com>
21786         * lra-constraints.c (need_for_split_p): Check call used hard regs
21787         living through calls.
21788
21789         * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
21790         call used regs for call insn.
21791
21792 2013-06-28  Jakub Jelinek  <jakub@redhat.com>
21793
21794         PR target/57736
21795         * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
21796         mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
21797
21798 2013-06-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>
21799
21800         * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
21801
21802 2013-06-28  Vladimir Makarov  <vmakarov@redhat.com>
21803
21804         * lra-constraints.c (need_for_split_p): Check call used hard regs
21805         living through calls.
21806
21807 2013-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
21808
21809         PR target/57744
21810         * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
21811         to tie with any other modes.  Eliminate Altivec vector mode tests,
21812         since these are a subset of ALTIVEC or VSX vector modes.  Simplify
21813         code, to return 0 if testing MODE2 for a condition, if we've
21814         already tested MODE1 for the same condition.
21815
21816 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
21817
21818         * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
21819         layout.
21820
21821 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
21822
21823         * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
21824         Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
21825
21826 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
21827
21828         * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
21829         Define.
21830         (aarch64_symbolic_constant_p): Remove.
21831         * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
21832         static.  Fix line length and white space.
21833         (aarch64_symbolic_constant_p): Remove.
21834         * config/aarch64/predicates.md (aarch64_valid_symref):
21835         Use aarch64_classify_symbol_expression.
21836
21837 2013-06-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21838
21839         * config/arm/constraints.md (Ts): New constraint.
21840         * config/arm/arm.md (arm_movqi_insn): Add alternatives for
21841         16-bit encodings.
21842         (compare_scc): Use "Ts" constraint for operand 0.
21843         (ior_scc_scc): Likewise.
21844         (and_scc_scc): Likewise.
21845         (and_scc_scc_nodom): Likewise.
21846         (ior_scc_scc_cmp): Likewise for operand 7.
21847         (and_scc_scc_cmp): Likewise.
21848         * config/arm/thumb2.md (thumb2_movsi_insn):
21849         Add alternatives for 16-bit encodings.
21850         (thumb2_movhi_insn): Likewise.
21851         (thumb2_movsicc_insn): Likewise.
21852         (thumb2_and_scc): Take 'and' outside cond_exec.  Use "Ts" constraint.
21853         (thumb2_negscc): Use "Ts" constraint.
21854         Move mvn instruction outside cond_exec block.
21855         * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
21856         for 16-bit encodings.
21857
21858 2013-06-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21859
21860         * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
21861         encoding.
21862         (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
21863         (mulsi3subsi): Likewise.
21864         (mulsidi3adddi): Likewise.
21865         (mulsidi3_v6): Likewise.
21866         (umulsidi3_v6): Likewise.
21867         (umulsidi3adddi_v6): Likewise.
21868         (smulsi3_highpart_v6): Likewise.
21869         (umulsi3_highpart_v6): Likewise.
21870         (mulhisi3tb): Likewise.
21871         (mulhisi3bt): Likewise.
21872         (mulhisi3tt): Likewise.
21873         (maddhisi4): Likewise.
21874         (maddhisi4tb): Likewise.
21875         (maddhisi4tt): Likewise.
21876         (maddhidi4): Likewise.
21877         (maddhidi4tb): Likewise.
21878         (maddhidi4tt): Likewise.
21879         (zeroextractsi_compare0_scratch): Likewise.
21880         (insv_zero): Likewise.
21881         (insv_t2): Likewise.
21882         (anddi_notzesidi_di): Likewise.
21883         (anddi_notsesidi_di): Likewise.
21884         (andsi_notsi_si): Likewise.
21885         (iordi_zesidi_di): Likewise.
21886         (xordi_zesidi_di): Likewise.
21887         (andsi_iorsi3_notsi): Likewise.
21888         (smax_0): Likewise.
21889         (smax_m1): Likewise.
21890         (smin_0): Likewise.
21891         (not_shiftsi): Likewise.
21892         (unaligned_loadsi): Likewise.
21893         (unaligned_loadhis): Likewise.
21894         (unaligned_loadhiu): Likewise.
21895         (unaligned_storesi): Likewise.
21896         (unaligned_storehi): Likewise.
21897         (extv_reg): Likewise.
21898         (extzv_t2): Likewise.
21899         (divsi3): Likewise.
21900         (udivsi3): Likewise.
21901         (arm_zero_extendhisi2addsi): Likewise.
21902         (arm_zero_extendqisi2addsi): Likewise.
21903         (compareqi_eq0): Likewise.
21904         (arm_extendhisi2_v6): Likewise.
21905         (arm_extendqisi2addsi): Likewise.
21906         (arm_movt): Likewise.
21907         (thumb2_ldrd): Likewise.
21908         (thumb2_ldrd_base): Likewise.
21909         (thumb2_ldrd_base_neg): Likewise.
21910         (thumb2_strd): Likewise.
21911         (thumb2_strd_base): Likewise.
21912         (thumb2_strd_base_neg): Likewise.
21913         (arm_negsi2): Add alternative for 16-bit encoding.
21914         (arm_one_cmplsi2): Likewise.
21915
21916 2013-06-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21917
21918         * config/arm/predicates.md (arm_cond_move_operator): New predicate.
21919         * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
21920         (movdfcc): Likewise.
21921         * config/arm/vfp.md (*thumb2_movsf_vfp):
21922         Disable predication for arm_restrict_it.
21923         (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
21924         (*thumb2_movdfcc_vfp): Likewise.
21925         (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
21926         *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
21927         *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
21928         *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
21929         *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
21930         *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
21931         *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
21932         *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
21933         *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
21934         *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
21935         *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
21936         *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
21937         Disable predication for arm_restrict_it.
21938
21939 2013-06-28  Kirill Yukhin  <kirill.yukhin@intel.com>
21940
21941         * config/i386/bmiintrin.h (_bextr_u32): New.
21942         (_bextr_u64): Ditto.
21943
21944 2013-06-27  Richard Sandiford  <rdsandiford@googlemail.com>
21945
21946         * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
21947         (mips64r5900el-*-elf*): Include mips/n32-elf.h.
21948         * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
21949         (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
21950         * config/mips/n32-elf.h: ...this new file.
21951
21952 2013-06-27  Marc Glisse  <marc.glisse@inria.fr>
21953
21954         PR target/57224
21955         * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
21956         IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
21957
21958 2013-06-27  Catherine Moore  <clm@codesourcery.com>
21959
21960         * config/mips/mips-tables.opt: Regenerate.
21961         * config/mips/mips-cpus.def: Add m14ke and m14kec.
21962         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
21963         * doc/invoke.texi: Add -m14kc.
21964
21965 2013-06-27  Jakub Jelinek  <jakub@redhat.com>
21966
21967         PR target/57623
21968         * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
21969         constraints of operand 1 and 2.
21970
21971         PR target/57623
21972         * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
21973         to match RTL canonicalization.  Swap predicates and
21974         constraints of operand 1 and 2.
21975
21976 2013-06-27  Vladimir Makarov  <vmakarov@redhat.com>
21977
21978         * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
21979         Process OP_INOUT regs for splitting too.
21980
21981 2013-06-27  Jakub Jelinek  <jakub@redhat.com>
21982
21983         * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
21984         decl before the loop, initialize to NULL.
21985         (vectorizable_load): Initialize ptr_incr to NULL.
21986
21987 2013-06-27  Martin Jambor  <mjambor@suse.cz>
21988
21989         PR lto/57208
21990         * ipa-ref.h (ipa_maybe_record_reference): Declare.
21991         * ipa-ref.c (ipa_maybe_record_reference): New function.
21992         * cgraphclones.c (cgraph_create_virtual_clone): Use it.
21993         * ipa-cp.c (create_specialized_node): Record potential references from
21994         aggvals.
21995         * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
21996
21997 2013-06-27  Yufeng Zhang  <yufeng.zhang@arm.com>
21998
21999         * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
22000         parameter 'mode' of type 'enum machine_mode mode'; change to pass
22001         'mode' to force_reg.
22002         (aarch64_add_offset): Update calls to aarch64_force_temporary.
22003         (aarch64_expand_mov_immediate): Likewise.
22004
22005 2013-06-27  Yufeng Zhang  <yufeng.zhang@arm.com>
22006
22007         * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
22008         'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
22009
22010 2013-06-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22011
22012         * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
22013         UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
22014         (struct machine_function): Add tbegin_p.
22015         (s390_canonicalize_comparison): Fold CC mode compares to
22016         conditional jump if possible.
22017         (s390_emit_jump): Return the emitted jump.
22018         (s390_branch_condition_mask, s390_branch_condition_mnemonic):
22019         Handle CCRAWmode compares.
22020         (s390_option_override): Default to -mhtm if available.
22021         (s390_reg_clobbered_rtx): Handle floating point regs as well.
22022         (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
22023         FPRs instead of df_regs_ever_live_p.
22024         (s390_optimize_nonescaping_tx): New function.
22025         (s390_init_frame_layout): Extend clobbered_regs array to cover
22026         FPRs as well.
22027         (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
22028         (s390_expand_tbegin): New function.
22029         (enum s390_builtin): New enum definition.
22030         (code_for_builtin): New array definition.
22031         (s390_init_builtins): New function.
22032         (s390_expand_builtin): New function.
22033         (TARGET_INIT_BUILTINS): Define.
22034         (TARGET_EXPAND_BUILTIN): Define.
22035         * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
22036         * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
22037         (s390_alc_comparison): Likewise.
22038         * config/s390/s390-modes.def: Add CCRAWmode.
22039         * config/s390/s390.h (processor_flags): Add PF_TX.
22040         (TARGET_CPU_HTM): Define macro.
22041         (TARGET_HTM): Define macro.
22042         (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
22043         * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
22044         UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
22045         (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
22046         (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
22047         (TBEGIN_MASK, TBEGINC_MASK): New constants.
22048         ("*cc_to_int"): Move up.
22049         ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
22050         constants other than 0.
22051         ("*ccraw_to_int"): New insn and splitter definition.
22052         ("tbegin", "tbegin_nofloat", "tbegin_retry")
22053         ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
22054         ("tx_assist"): New expander.
22055         ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
22056         ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
22057         * config/s390/s390.opt: Add -mhtm option.
22058         * config/s390/s390-protos.h (s390_emit_jump): Add return type.
22059         * config/s390/htmxlintrin.h: New file.
22060         * config/s390/htmintrin.h: New file.
22061         * config/s390/s390intrin.h: New file.
22062         * doc/extend.texi: Document htm builtins.
22063         * config.gcc: Add the new header files to extra_headers.
22064
22065 2013-06-26  Thomas Schwinge  <thomas@codesourcery.com>
22066
22067         * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
22068         (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
22069
22070 2013-06-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
22071             Pat Haugen  <pthaugen@us.ibm.com>
22072             Peter Bergner  <bergner@vnet.ibm.com>
22073
22074         * config/rs6000/power8.md: New.
22075         * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
22076         setting for power8 entry.
22077         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
22078         * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
22079         test for Power4/Power5 only.
22080         (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
22081         support.
22082         (force_new_group): Adjust comment.
22083         * config/rs6000/rs6000.md: Include power8.md.
22084
22085 2013-06-26  Greta Yorsh  <Greta.Yorsh@arm.com>
22086
22087         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
22088         * config/arm/arm-protos.h (arm_max_conditional_execute): New
22089         declaration.
22090         (tune_params): Update comment.
22091         * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
22092         (arm_max_conditional_execute): New function.
22093         (thumb2_final_prescan_insn): Use max_insn_skipped and
22094         MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
22095
22096 2013-06-25  Jakub Jelinek  <jakub@redhat.com>
22097
22098         PR tree-optimization/57705
22099         * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
22100         SSA_NAME step, provided that it is not defined inside the loop.
22101         (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
22102         (get_initial_def_for_induction): Handle SSA_NAME IV step.
22103
22104 2013-06-25  Martin Jambor  <mjambor@suse.cz>
22105
22106         PR middle-end/57670
22107         * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
22108         * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
22109         calls in the dump.
22110         (ipa_note_param_call): Initialize member_ptr flag.
22111         (ipa_analyze_indirect_call_uses): Set member_ptr flag.
22112         (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
22113         (ipa_write_indirect_edge_info): Stream member_ptr flag.
22114         (ipa_read_indirect_edge_info): Likewise.
22115
22116 2013-06-25  Richard Biener  <rguenther@suse.de>
22117
22118         PR middle-end/56977
22119         * passes.c (init_optimization_passes): Move pass_fold_builtins
22120         and pass_dce earlier with -Og.
22121
22122 2013-06-25  Eric Botcazou  <ebotcazou@adacore.com>
22123
22124         * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
22125         <BIT_FIELD_REF>: Remove trailing TAB.
22126         * varasm.c (output_constructor_bitfield): Fix formatting glitch and
22127         remove blank line.
22128
22129 2013-06-24  Martin Jambor  <mjambor@suse.cz>
22130
22131         PR tree-optimization/57358
22132         * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
22133         (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
22134         (ipa_analyze_params_uses): Generate pessimistic info when true.
22135
22136 2013-06-24  Martin Jambor  <mjambor@suse.cz>
22137
22138         PR tree-optimization/57539
22139         * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
22140         global.inlined_to of the new node to it.  All callers changed.
22141         * ipa-inline-transform.c (clone_inlined_nodes): New variable
22142         inlining_into, pass it to cgraph_clone_node.
22143         * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
22144         ipa_free_edge_args_substructures.
22145         (ipa_edge_duplication_hook): Only add edges from inlined nodes to
22146         rdesc linked list.  Do not assert rdesc edges have inlined caller.
22147         Assert we have found an rdesc in the rdesc list.
22148
22149 2013-06-24  Richard Biener  <rguenther@suse.de>
22150
22151         * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
22152         (pointer_set_lookup): Declare.
22153         (class pointer_map): New template class implementing a
22154         generic pointer to T map.
22155         (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
22156         pointer_map<T>::contains, pointer_map<T>::insert,
22157         pointer_map<T>::traverse): New functions.
22158         * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
22159         (pointer_set_lookup): New function.
22160         (pointer_set_contains): Use pointer_set_lookup.
22161         (pointer_set_insert): Likewise.
22162         (insert_aux): Remove.
22163         (struct pointer_map_t): Embed a pointer_set_t.
22164         (pointer_map_create): Adjust.
22165         (pointer_map_destroy): Likewise.
22166         (pointer_map_contains): Likewise.
22167         (pointer_map_insert): Likewise.
22168         (pointer_map_traverse): Likewise.
22169         * tree-streamer.h (struct streamer_tree_cache_d): Use a
22170         pointer_map<unsigned> instead of a pointer_map_t.
22171         * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
22172         (streamer_tree_cache_lookup): Likewise.
22173         (streamer_tree_cache_create): Likewise.
22174         (streamer_tree_cache_delete): Likewise.
22175         * lto-streamer.h (struct lto_tree_ref_encoder): Use a
22176         pointer_map<unsigned> instead of a pointer_map_t.
22177         (lto_init_tree_ref_encoder): Adjust.
22178         (lto_destroy_tree_ref_encoder): Likewise.
22179         * lto-section-out.c (lto_output_decl_index): Likewise.
22180         (lto_record_function_out_decl_state): Likewise.
22181         * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
22182
22183 2013-06-24  Richard Biener  <rguenther@suse.de>
22184
22185         PR tree-optimization/57488
22186         * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
22187
22188 2013-06-24  Alan Modra  <amodra@gmail.com>
22189
22190         * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
22191         (gen_easy_altivec_constant): Likewise.
22192         * config/rs6000/predicates.md (easy_vector_constant_add_self,
22193         easy_vector_constant_msb): Likewise.
22194
22195 2013-06-23  Jakub Jelinek  <jakub@redhat.com>
22196
22197         PR target/57688
22198         * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
22199         add missing return true.
22200
22201 2013-06-23  Oleg Endo  <olegendo@gcc.gnu.org>
22202
22203         PR target/52483
22204         * config/sh/predicates.md (general_extend_operand): Invoke
22205         general_movsrc_operand for memory operands.
22206         (general_movsrc_operand): Allow reg+reg addressing, do not use
22207         general_operand for memory operands.
22208
22209 2013-06-23  Sriraman Tallam  <tmsriram@google.com>
22210
22211         * config/i386/i386.c (ix86_pragma_target_parse):  Restore target
22212         when current target options does not apply.
22213         * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
22214         * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
22215         * config/i386/bmiintrin.h: Pass appropriate target
22216         attributes to header.
22217         * config/i386/mmintrin.h: Ditto.
22218         * config/i386/nmmintrin.h: Ditto.
22219         * config/i386/avx2intrin.h: Ditto.
22220         * config/i386/fxsrintrin.h: Ditto.
22221         * config/i386/tbmintrin.h: Ditto.
22222         * config/i386/xsaveintrin.h: Ditto.
22223         * config/i386/f16cintrin.h: Ditto.
22224         * config/i386/xtestintrin.h: Ditto.
22225         * config/i386/xsaveoptintrin.h: Ditto.
22226         * config/i386/bmi2intrin.h: Ditto.
22227         * config/i386/lzcntintrin.h: Ditto.
22228         * config/i386/smmintrin.h: Ditto.
22229         * config/i386/wmmintrin.h: Ditto.
22230         * config/i386/x86intrin.h: Remove all header include guards.
22231         * config/i386/prfchwintrin.h: Ditto.
22232         * config/i386/pmmintrin.h: Ditto.
22233         * config/i386/tmmintrin.h: Ditto.
22234         * config/i386/xmmintrin.h: Ditto.
22235         * config/i386/popcntintrin.h: Ditto.
22236         * config/i386/rdseedintrin.h: Ditto.
22237         * config/i386/ammintrin.h: Ditto.
22238         * config/i386/emmintrin.h: Ditto.
22239         * config/i386/immintrin.h: Remove all header include guards.
22240         * config/i386/fma4intrin.h: Ditto.
22241         * config/i386/lwpintrin.h: Ditto.
22242         * config/i386/xopintrin.h: Ditto.
22243         * config/i386/ia32intrin.h: Ditto.
22244         * config/i386/avxintrin.h: Ditto.
22245         * config/i386/rtmintrin.h: Ditto.
22246         * config/i386/fmaintrin.h: Ditto.
22247         * config/i386/mm3dnow.h: Ditto.
22248
22249 2013-06-22  Sriraman Tallam  <tmsriram@google.com>
22250
22251         * common/config/i386/i386-common.c: Handle LZCNT.
22252
22253 2013-06-22  Andi Kleen  <ak@linux.intel.com>
22254
22255         * doc/extend.texi: Use __atomic_store_n instead of
22256         __atomic_store in HLE example.
22257
22258 2013-06-22  Oleg Endo  <olegendo@gcc.gnu.org>
22259
22260         * config/sh/sh.c: Remove <cstdlib> workaround.
22261
22262 2013-06-21  Andi Kleen  <ak@linux.intel.com>
22263
22264         * doc/extend.texi: Dont use __atomic_clear in HLE example.  Fix typo.
22265
22266 2013-06-21  Andi Kleen  <ak@linux.intel.com>
22267
22268         * doc/extend.texi: Document that __atomic_clear and
22269           __atomic_test_and_set should only be used with bool.
22270
22271 2013-06-20  Jan Hubicka  <jh@suse.cz>
22272
22273         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
22274         types_same_for_odr.
22275         * tree.c (decls_same_for_odr): New function.
22276         (same_for_edr): New function.
22277         (types_same_for_odr): New function.
22278         (get_binfo_at_offset): Use it.
22279         * tree.h (types_same_for_odr): Declare.
22280
22281 2013-06-20  Oleg Endo  <olegendo@gcc.gnu.org>
22282             Jason Merrill  <jason@redhat.com>
22283
22284         * system.h: Include <cstdlib> as well as <stdlib.h>.
22285
22286 2013-06-20  Uros Bizjak  <ubizjak@gmail.com>
22287
22288         PR target/57655
22289         * config/i386/i386.c (construct_container): Report error if
22290         long double is used with disabled x87 float returns.
22291
22292 2013-06-20  Jan Hubicka  <jh@suse.cz>
22293
22294         * lto-cgraph.c (input_symtab): Do not set cgraph state.
22295
22296 2013-06-20  Joern Rennecke  <joern.rennecke@embecosm.com>
22297
22298         PR rtl-optimization/57425
22299         PR rtl-optimization/57569
22300         * alias.c (write_dependence_p): Remove parameters mem_mode and
22301         canon_mem_addr.  Add parameters x_mode, x_addr and x_canonicalized.
22302         Changed all callers.
22303         (canon_anti_dependence): Get comments and semantics in sync.
22304         Add parameter mem_canonicalized.  Changed all callers.
22305         * rtl.h (canon_anti_dependence): Update prototype.
22306
22307 2013-06-20  Richard Biener  <rguenther@suse.de>
22308
22309         * data-streamer-in.c (streamer_read_uhwi): Optimize single
22310         byte case, inline streamer_read_uchar and defer section
22311         overrun check.
22312
22313 2013-06-20  Richard Biener  <rguenther@suse.de>
22314
22315         PR tree-optimization/57584
22316         * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
22317         SSA names into the expanded expression that take part in
22318         abnormal coalescing.
22319
22320 2013-06-19  Sharad Singhai  <singhai@google.com>
22321
22322         * gcov.c (print_usage): Handle new option.
22323         (process_args): Ditto.
22324         (get_gcov_intermediate_filename): New function.
22325         (output_intermediate_file): New function.
22326         (output_gcov_file): New function
22327         (generate_results): Handle new option.
22328         (release_function): Relase demangled name.
22329         (read_graph_file): Handle demangled name.
22330         (output_lines): Ditto.
22331         * doc/gcov.texi: Document gcov intermediate format.
22332
22333 2013-06-19  Vladimir Makarov  <vmakarov@redhat.com>
22334
22335         PR bootstrap/57604
22336         * lra.c (emit_add3_insn, emit_add2_insn): New functions.
22337         (lra_emit_add): Use the functions.  Add comment about Y as an
22338         address segment.
22339
22340 2013-06-19  David Edelsohn  <dje.gcc@gmail.com>
22341
22342         PR driver/57652
22343         * collect2.c (collect_atexit): New.
22344         (collect_exit): Delete.
22345         (main): Register collect_atexit with atexit.
22346         (collect_wait): Change collect_exit to exit.
22347         (do_wait): Same.
22348         * collect2.h (collect_exit): Delete.
22349         * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
22350
22351 2013-06-19  Wei Mi  <wmi@google.com>
22352
22353         PR rtl-optimization/57518
22354         * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
22355         if regno is used in paradoxical subreg.
22356         (update_equiv_regs): Check pdx_subregs[regno] before
22357         set a reg to be equivalent with a mem.
22358
22359 2013-06-19  Matthias Klose  <doko@ubuntu.com>
22360
22361         PR driver/57651
22362         * file-find.h (find_a_file): Add a mode parameter.
22363         * file-find.c (find_a_file): Likewise.
22364         * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
22365         with X_OK for the executables.
22366         * collect2.c (main): Call find_a_file with X_OK.
22367
22368 2013-06-19  Steve Ellcey  <sellcey@mips.com>
22369
22370         PR target/56942
22371         * config/mips/mips.md (casesi_internal_mips16_<mode>):
22372         Use NEXT_INSN instead of next_real_insn.
22373
22374 2013-06-19  Jan Hubicka  <jh@suse.cz>
22375
22376         * cgraph.h (const_value_known_p): Replace by ...
22377         (ctor_for_folding): .. this one.
22378         * cgraphunit.c (process_function_and_variable_attributes): Use it.
22379         * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
22380         * expr.c (expand_expr_real_1): Likewise.
22381         (string_constant): Likewise.
22382         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
22383         * ipa.c (process_references): Likewise.
22384         (symtab_remove_unreachable_nodes): Likewise.
22385         * ipa-inline-analysis.c (param_change_prob): Likewise.
22386         * gimple-fold.c (canonicalize_constructor_val): Likewise.
22387         (get_base_constructor): Likwise.
22388         * varpool.c (varpool_remove_node): Likewise.
22389         (varpool_remove_initializer): LIkewise.
22390         (dump_varpool_node): LIkwise.
22391         (const_value_known_p): Rewrite to ...
22392         (ctor_for_folding): ... this one.
22393
22394 2013-06-19  Jakub Jelinek  <jakub@redhat.com>
22395
22396         PR driver/57651
22397         * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
22398         PERSONALITY in $PATH derived prefixes.
22399
22400 2013-06-19  Jeff Law  <law@redhat.com>
22401
22402         * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
22403         in comment.
22404
22405         * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
22406         (simplify_bitwise_binary): Use it to simpify certain binary ops on
22407         booleans.
22408
22409 2013-06-19  Sofiane Naci  <sofiane.naci@arm.com>
22410
22411         * config/arm/vfp.md: Move VFP instruction classification documentation
22412         to ...
22413         * config/arm/arm.md: ... here.  Update instruction classification
22414         documentation.
22415
22416 2013-06-19  Richard Earnshaw  <rearnsha@arm.com>
22417
22418         arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
22419         (peepholes for eq(reg, not-0)): Ensure condition register is dead after
22420         pattern.  Use more efficient sequences on ARMv5 and Thumb2.
22421
22422 2013-06-19  Steven Bosscher  <steven@gcc.gnu.org>
22423
22424         PR target/57609
22425         * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
22426         with NEXT_INSN.  Use tablejump_p to check for jump table data
22427         insns.
22428
22429 2013-06-19  Paolo Carlini  <paolo.carlini@oracle.com>
22430
22431         PR c++/56544
22432         * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
22433         that now in C++ the value is correct per the C++ standards.
22434
22435 2013-06-19  Richard Biener  <rguenther@suse.de>
22436
22437         * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
22438         for global context.
22439
22440 2013-06-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22441
22442         Revert:
22443         2013-06-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22444
22445         PR target/57609
22446         * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
22447         with next_active_insn.
22448
22449 2013-06-18  Sriraman Tallam  <tmsriram@google.com>
22450
22451         * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
22452         functions are inlined during failures to flag an error.
22453         * tree-inline.c (expand_call_inline): Allow the error to be flagged
22454         in early inline pass.
22455
22456 2013-06-18  H.J. Lu  <hongjiu.lu@intel.com>
22457
22458         * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
22459         in comments.
22460
22461 2013-06-18  Julian Brown  <julian@codesourcery.com>
22462
22463         * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
22464         Permit virtual register pre-reload if !strict.
22465         (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
22466         change.
22467         * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
22468         prototype.
22469         * config/arm/neon.md (movmisalign<mode>): Use
22470         neon_perm_struct_or_reg_operand instead of
22471         neon_struct_or_register_operand.
22472         (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
22473         neon_permissive_struct_operand instead of neon_struct_operand.
22474         * config/arm/constraints.md (Un, Um, Us): Adjust calls to
22475         neon_vector_mem_operand.
22476         * config/arm/predicates.md (neon_struct_operand): Adjust call to
22477         neon_vector_mem_operand.
22478         (neon_permissive_struct_operand): New.
22479         (neon_struct_or_register_operand): Rename to...
22480         (neon_perm_struct_or_reg_operand): This. Adjust call to
22481         neon_vector_mem_operand.
22482
22483 2013-06-18  Richard Biener  <rguenther@suse.de>
22484
22485         * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
22486         * lto-streamer.h: Include pointer-set.h.
22487         (struct lto_decl_slot): Remove.
22488         (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
22489         Remove next_index entry.
22490         (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
22491         lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
22492         (lto_init_tree_ref_encoder): Adjust.
22493         (lto_destroy_tree_ref_encoder): Likewise.
22494         * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
22495         lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
22496         (lto_output_decl_index): Adjust.
22497         (lto_new_out_decl_state): Likewise.
22498         (lto_record_function_out_decl_state): Likewise.
22499         * lto-streamer-out.c (copy_function): Likewise.
22500
22501 2013-06-18  Richard Biener  <rguenther@suse.de>
22502
22503         * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
22504         * cgraphunit.c: Include cfgloop.h.
22505         (init_lowered_empty_function): Initialize the loop tree.
22506         (assemble_thunk): Insert new BBs into loops.
22507
22508 2013-06-18  Richard Biener  <rguenther@suse.de>
22509
22510         * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
22511         * tree-streamer.c (streamer_tree_cache_create): Make maintaining
22512         the map from cache entry to cache index optional.
22513         (streamer_tree_cache_replace_tree): Adjust accordingly.
22514         (streamer_tree_cache_append): Likewise.
22515         (streamer_tree_cache_delete): Likewise.
22516         * lto-streamer-in.c (lto_data_in_create): Do not maintain the
22517         streamer cache map from cache entry to cache index.
22518         * lto-streamer-out.c (create_output_block): Adjust.
22519
22520 2013-06-18  Sofiane Naci  <sofiane.naci@arm.com>
22521
22522         * config/arm/arm.md (attribute "insn"): Move multiplication and
22523         division attributes to...
22524         (attribute "type"): ... here.  Remove mult.
22525         (attribute "mul32"): New attribute.
22526         (attribute "mul64"): Add umaal.
22527         (*arm_mulsi3): Update attributes.
22528         (*arm_mulsi3_v6): Likewise.
22529         (*thumb_mulsi3): Likewise.
22530         (*thumb_mulsi3_v6): Likewise.
22531         (*mulsi3_compare0): Likewise.
22532         (*mulsi3_compare0_v6): Likewise.
22533         (*mulsi_compare0_scratch): Likewise.
22534         (*mulsi_compare0_scratch_v6): Likewise.
22535         (*mulsi3addsi): Likewise.
22536         (*mulsi3addsi_v6): Likewise.
22537         (*mulsi3addsi_compare0): Likewise.
22538         (*mulsi3addsi_compare0_v6): Likewise.
22539         (*mulsi3addsi_compare0_scratch): Likewise.
22540         (*mulsi3addsi_compare0_scratch_v6): Likewise.
22541         (*mulsi3subsi): Likewise.
22542         (*mulsidi3adddi): Likewise.
22543         (*mulsi3addsi_v6): Likewise.
22544         (*mulsidi3adddi_v6): Likewise.
22545         (*mulsidi3_nov6): Likewise.
22546         (*mulsidi3_v6): Likewise.
22547         (*umulsidi3_nov6): Likewise.
22548         (*umulsidi3_v6): Likewise.
22549         (*umulsidi3adddi): Likewise.
22550         (*umulsidi3adddi_v6): Likewise.
22551         (*smulsi3_highpart_nov6): Likewise.
22552         (*smulsi3_highpart_v6): Likewise.
22553         (*umulsi3_highpart_nov6): Likewise.
22554         (*umulsi3_highpart_v6): Likewise.
22555         (mulhisi3): Likewise.
22556         (*mulhisi3tb): Likewise.
22557         (*mulhisi3bt): Likewise.
22558         (*mulhisi3tt): Likewise.
22559         (maddhisi4): Likewise.
22560         (*maddhisi4tb): Likewise.
22561         (*maddhisi4tt): Likewise.
22562         (maddhidi4): Likewise.
22563         (*maddhidi4tb): Likewise.
22564         (*maddhidi4tt): Likewise.
22565         (divsi3): Likewise.
22566         (udivsi3): Likewise.
22567         * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
22568         (thumb2_mulsi_short_compare0): Likewise.
22569         (thumb2_mulsi_short_compare0_scratch): Likewise.
22570         * config/arm/arm1020e.md (1020mult1): Update attribute change.
22571         (1020mult2): Likewise.
22572         (1020mult3): Likewise.
22573         (1020mult4): Likewise.
22574         (1020mult5): Likewise.
22575         (1020mult6): Likewise.
22576         * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
22577         change.
22578         (cortex_a15_mult64): Likewise.
22579         (cortex_a15_sdiv): Likewise.
22580         (cortex_a15_udiv): Likewise.
22581         * config/arm/arm1026ejs.md (mult1): Update attribute change.
22582         (mult2): Likewise.
22583         (mult3): Likewise.
22584         (mult4): Likewise.
22585         (mult5): Likewise.
22586         (mult6): Likewise.
22587         * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
22588         (pj4_ir_div): Likewise.
22589         * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
22590         (11_mult2): Likewise.
22591         (11_mult3): Likewise.
22592         (11_mult4): Likewise.
22593         (11_mult5): Likewise.
22594         (11_mult6): Likewise.
22595         (11_mult7): Likewise.
22596         * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
22597         (cortex_a8_mla): Likewise.
22598         (cortex_a8_mull): Likewise.
22599         (cortex_a8_smulwy): Likewise.
22600         (cortex_a8_smlald): Likewise.
22601         * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
22602         * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
22603         (cortex_r4_mul_3): Likewise.
22604         (cortex_r4_mla_4): Likewise.
22605         (cortex_r4_mla_3): Likewise.
22606         (cortex_r4_smlald): Likewise.
22607         (cortex_r4_mull): Likewise.
22608         (cortex_r4_sdiv): Likewise.
22609         (cortex_r4_udiv): Likewise.
22610         * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
22611         (cortex_a7_idiv): Likewise.
22612         * config/arm/arm926ejs.md (9_mult1): Update attribute change.
22613         (9_mult2): Likewise.
22614         (9_mult3): Likewise.
22615         (9_mult4): Likewise.
22616         (9_mult5): Likewise.
22617         (9_mult6): Likewise.
22618         * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
22619         (cortex_a53_sdiv): Likewise.
22620         (cortex_a53_udiv): Likewise.
22621         * config/arm/fa726te.md (726te_mult_op): Update attribute change.
22622         * config/arm/fmp626.md (mp626_mult1): Update attribute change.
22623         (mp626_mult2): Likewise.
22624         (mp626_mult3): Likewise.
22625         (mp626_mult4): Likewise.
22626         * config/arm/fa526.md (526_mult1): Update attribute change.
22627         (526_mult2): Likewise.
22628         * config/arm/arm-generic.md (mult): Update attribute change.
22629         (mult_ldsched_strongarm): Likewise.
22630         (mult_ldsched): Likewise.
22631         (multi_cycle): Likewise.
22632         * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
22633         * config/arm/fa606te.md (606te_mult1): Update attribute change.
22634         (606te_mult2): Likewise.
22635         (606te_mult3): Likewise.
22636         (606te_mult4): Likewise.
22637         * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
22638         (cortex_a9_mac16): Likewise.
22639         (cortex_a9_multiply): Likewise.
22640         (cortex_a9_mac): Likewise.
22641         (cortex_a9_multiply_long): Likewise.
22642         * config/arm/fa626te.md (626te_mult1): Update attribute change.
22643         (626te_mult2): Likewise.
22644         (626te_mult3): Likewise.
22645         (626te_mult4): Likewise.
22646
22647 2013-06-18  Richard Biener  <rguenther@suse.de>
22648
22649         PR lto/57334
22650         * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
22651
22652 2013-06-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22653
22654         PR target/57609
22655         * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
22656         with next_active_insn.
22657
22658 2013-06-18  Alan Modra  <amodra@gmail.com>
22659
22660         * config/rs6000/rs6000.h (enum data_align): New.
22661         (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
22662         (DATA_ABI_ALIGNMENT): Define.
22663         (CONSTANT_ALIGNMENT): Correct comment.
22664         * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
22665         * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
22666
22667 2013-06-17  David Malcolm  <dmalcolm@redhat.com>
22668
22669         * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
22670         ATTRIBUTE_UNUSED marking.
22671
22672 2013-06-17  Sofiane Naci  <sofiane.naci@arm.com>
22673
22674         * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
22675         alternative and update.
22676         (aarch64_dup_lanedi): Delete.
22677         * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
22678         * config/aarch64/aarch64-simd-builtins.def: Update.
22679
22680 2013-06-17  Richard Biener  <rguenther@suse.de>
22681
22682         * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
22683         (lto_input_scc): Declare.
22684         (lto_input_tree_1): Likewise.
22685         (struct lto_stats_d): Add num_tree_bodies_output and
22686         num_pickle_refs_output.
22687         * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
22688         (lto_read_tree_1): Split out from ...
22689         (lto_read_tree): ... this.
22690         (lto_input_scc): New function.
22691         (lto_input_tree_1): Split out from ...
22692         (lto_input_tree): ... this.  Handle LTO_tree_scc.
22693         (lto_data_in_create): Create the streamer cache without hashes.
22694         * lto-streamer-out.c (create_output_block): Create the streamer
22695         cache with hashes when not doing WPA.
22696         (lto_write_tree_1): Split out from ...
22697         (lto_write_tree): ... this.
22698         (get_symbol_initial_value): New function.
22699         (lto_output_tree_1): Split out from ...
22700         (lto_output_tree): ... this.  Write trees as series of SCCs
22701         using a DFS walk via DFS_write_tree.
22702         (struct sccs, struct scc_entry): New types.
22703         (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
22704         (DFS_write_tree_body): New function.
22705         (DFS_write_tree): Likewise.
22706         (hash_tree): Likewise.
22707         (scc_entry_compare): Likewise.
22708         (hash_scc): Likewise.
22709         (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
22710         * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
22711         TREE_CHAIN as regular reference.
22712         (streamer_read_integer_cst): Remove.
22713         (streamer_get_pickled_tree): Adjust.
22714         * tree-streamer-out.c (streamer_write_chain): Disable streaming
22715         of DECL_EXTERNALs in BLOCK_VARS for now.
22716         (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
22717         reference.
22718         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
22719         Add hash value argument and record that if hashes are recorded
22720         in the cache.
22721         (streamer_tree_cache_insert_1): Adjust.
22722         (streamer_tree_cache_insert): Likewise.
22723         (streamer_tree_cache_insert_at): Rename to ...
22724         (streamer_tree_cache_replace_tree): ... this and adjust.
22725         (streamer_tree_cache_append): Adjust.
22726         (record_common_node): Likewise.
22727         (streamer_tree_cache_create): Add argument whether to
22728         record hash values together with trees.
22729         (streamer_tree_cache_delete): Adjust.
22730         * tree-streamer.h (struct streamer_tree_cache_d): Add
22731         vector of hashes.
22732         (streamer_read_integer_cst): Remove.
22733         (streamer_tree_cache_insert): Adjust.
22734         (streamer_tree_cache_append): Likewise.
22735         (streamer_tree_cache_insert_at): Rename to ...
22736         (streamer_tree_cache_replace_tree): ... this and adjust.
22737         (streamer_tree_cache_create): Add argument whether to record hashes.
22738         (streamer_tree_cache_get): Rename to ...
22739         (streamer_tree_cache_get_tree): ... this.
22740         (streamer_tree_cache_get_hash): New function.
22741         * tree.c (cache_integer_cst): New function.
22742         * tree.h (cache_integer_cst): Declare.
22743         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
22744         * lto-symtab.c (lto_varpool_replace_node): Only release
22745         DECL_INITIAL of non-prevailing decls.
22746         * varpool.c (varpool_remove_initializer): Do not release
22747         DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
22748
22749 2013-06-16  Jürgen Urban  <JuergenUrban@gmx.de>
22750
22751         * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
22752         (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
22753         * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
22754         (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
22755         (mul<mode>3_mul3): Handle TARGET_MIPS5900.
22756         (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
22757         (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
22758         (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
22759         instead of TARGET_64BIT.
22760         (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
22761         Require ISA_HAS_<D>DIV.
22762
22763 2013-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
22764
22765         * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
22766         (mips*-*-linux*): Move default with_llsc setting to where other
22767         defaults are set.
22768         (mips*-*-vxworks*): Move with_arch default from with_cpu block to
22769         with_arch block.
22770         (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
22771         Likewise.  Remove default with_tune setting.  Move default float
22772         setting to its own block.  Handle with_llsc in the same block as above.
22773
22774 2013-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
22775
22776         PR rtl-optimization/57425
22777         PR rtl-optimization/57569
22778         * alias.c (write_dependence_p): Add new parameters mem_mode,
22779         canon_mem_addr and mem_canonicalized.  Change type of writep to bool.
22780         Changed all callers.
22781         (canon_anti_dependence): New function.
22782         * cse.c (check_dependence): Use canon_anti_dependence.
22783         * cselib.c (cselib_invalidate_mem): Likewise.
22784         * rtl.h (canon_anti_dependence): Declare.
22785
22786 2013-06-16  Jürgen Urban  <JuergenUrban@gmx.de>
22787
22788         * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
22789         * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
22790         ".set mips3" for 64-bit targets.
22791
22792 2013-06-15  Dehao Chen  <dehao@google.com>
22793
22794         * tree-flow.h (gimple_check_call_matching_types): Add new argument.
22795         * gimple-low.c (gimple_check_call_matching_types): Likewise.
22796         (gimple_check_call_args): Likewise.
22797         * value-prof.c (check_ic_target): Likewise.
22798         * ipa-inline.c (early_inliner): Likewise.
22799         * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
22800         * cgraph.c (cgraph_create_edge_1): Likewise.
22801         (cgraph_make_edge_direct): Likewise.
22802
22803 2013-06-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
22804
22805         PR target/57615
22806         * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
22807         rs6000_output_move_128bit to handle emitting quad memory
22808         operations.  Set attribute length to 8 bytes.
22809
22810 2013-06-14  Vidya Praveen  <vidyapraveen@arm.com>
22811
22812         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
22813         New pattern.
22814         (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
22815         (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
22816         (aarch64_<su>mlsl<mode>): Likewise.
22817
22818 2013-06-14  Mike Stump  <mikestump@comcast.net>
22819
22820         * Makefile.in (TARGET_H): Add insn-codes.h.
22821
22822 2013-06-14  Alan Modra  <amodra@gmail.com>
22823
22824         PR middle-end/57134
22825         PR middle-end/57586
22826         * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
22827         EXPAND_MEMORY and EXPAND_WRITE to recursive call.  Don't use
22828         bitfield expansion when EXPAND_MEMORY.
22829         (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
22830
22831 2013-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
22832
22833         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
22834         test for clearing quad memory on 32-bit later.
22835
22836 2013-06-13  Marc Glisse  <marc.glisse@inria.fr>
22837
22838         * fold-const.c (negate_expr_p): Handle VECTOR_CST.
22839         (fold_negate_expr): Likewise.
22840         (fold_real_zero_addition_p): Handle vectors.
22841         (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
22842
22843 2013-06-14  Alan Modra  <amodra@gmail.com>
22844
22845         * varasm.c (force_const_mem): Revert 2013-06-07 change.
22846
22847 2013-06-13  Jan Hubicka  <jh@suse.cz>
22848
22849         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
22850         Local comdats are not externally visible.
22851         * symtab.c (dump_symtab_base): Dump externally visible.
22852         (verify_symtab_base): Verify back links in the symtab hash.
22853
22854 2013-06-13  Bin Cheng  <bin.cheng@arm.com>
22855
22856         * fold-const.c (operand_equal_p): Consider NOP_EXPR and
22857         CONVERT_EXPR as equal nodes.
22858
22859 2013-06-13  Bin Cheng  <bin.cheng@arm.com>
22860
22861         * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
22862
22863 2013-06-13  Marc Glisse  <marc.glisse@inria.fr>
22864
22865         * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
22866         Generalize to complex and vector.
22867         * tree.c (build_all_ones_cst): New function.
22868         * tree.h (build_all_ones_cst): Declare it.
22869
22870 2013-06-13  Alan Modra  <amodra@gmail.com>
22871
22872         * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
22873         * config/rs6000/rs6000.md (signbittf2): New insn.
22874         (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
22875         (abstf2_internal, cmptf_internal2): Likewise.
22876         * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
22877
22878 2013-06-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
22879             Pat Haugen  <pthaugen@us.ibm.com>
22880             Peter Bergner  <bergner@vnet.ibm.com>
22881
22882         * config/rs6000/rs6000.c (emit_load_locked): Add support for
22883         power8 byte, half-word, and quad-word atomic instructions.
22884         (emit_store_conditional): Likewise.
22885         (rs6000_expand_atomic_compare_and_swap): Likewise.
22886         (rs6000_expand_atomic_op): Likewise.
22887
22888         * config/rs6000/sync.md (larx): Add new modes for power8.
22889         (stcx): Likewise.
22890         (AINT): New mode iterator to include TImode as well as normal
22891         integer modes on power8.
22892         (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
22893         that VSX registers are not considered.  Use AINT mode iterator
22894         instead of INT1 to allow inclusion of quad word atomic operations
22895         on power8.
22896         (load_locked<mode>): Likewise.
22897         (store_conditional<mode>): Likewise.
22898         (atomic_compare_and_swap<mode>): Likewise.
22899         (atomic_exchange<mode>): Likewise.
22900         (atomic_nand<mode>): Likewise.
22901         (atomic_fetch_<fetchop_name><mode>): Likewise.
22902         (atomic_nand_fetch<mode>): Likewise.
22903         (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
22904         each type.
22905         (ATOMIC): On power8, add QImode, HImode modes.
22906         (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
22907         modes that promote to SImode.
22908         (load_lockedti): Convert TImode arguments to PTImode, so that we
22909         get a guaranteed even/odd register pair.
22910         (load_lockedpti): Likewise.
22911         (store_conditionalti): Likewise.
22912         (store_conditionalpti): Likewise.
22913
22914         * config/rs6000/rs6000.md (QHI): New mode iterator for power8
22915         atomic load/store instructions.
22916         (HSI): Likewise.
22917
22918 2013-06-12  Richard Sandiford  <rdsandiford@googlemail.com>
22919
22920         * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
22921         loads.
22922         (insn_count): New attribute, with most cases extracted from...
22923         (length): ...here.  Redefine most cases in terms of insn_count.
22924         (single_insn): Delete.
22925         (can_delay): Use insn_count to check for single instructions.
22926         (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
22927         (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
22928         (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
22929         (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
22930         (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
22931         (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
22932         (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
22933         (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
22934         (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
22935         (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
22936         rather than "length".
22937         (tls_get_tp_<mode>): Likewise.  Remove redundant "no_delay" attribute.
22938         * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
22939         Use "insn_count" rather than "length".
22940         * config/mips/mips-dsp.md
22941         (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
22942         (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
22943         length attributes.
22944
22945 2013-06-12  Marc Glisse  <marc.glisse@inria.fr>
22946
22947         PR tree-optimization/57361
22948         * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
22949
22950 2013-06-12  Sofiane Naci  <sofiane.naci@arm.com>
22951
22952         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
22953         to split.
22954         (aarch64_simd_combine<mode>): New instruction expansion.
22955         * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
22956         function prototype.
22957         * config/aarch64/aarch64.c (aarch64_split_combine): New function.
22958         * config/aarch64/iterators.md (Vdbl): Add entry for DF.
22959
22960 2013-06-12  Jan Hubicka  <jh@suse.cz>
22961
22962         * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
22963         decl has when in streaming stage.
22964         * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
22965         * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
22966
22967 2013-06-12  Roland Stigge  <stigge@antcom.de>
22968
22969         PR target/57578
22970         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
22971
22972 2013-06-12  Jakub Jelinek  <jakub@redhat.com>
22973
22974         PR tree-optimization/57537
22975         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
22976         vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
22977
22978 2013-06-12  Richard Biener  <rguenther@suse.de>
22979
22980         * data-streamer.h (streamer_write_char_stream): CSE
22981         obs->current_pointer.
22982         * data-streamer-out.c (streamer_write_uhwi_stream): Inline
22983         streamer_write_char_stream manually and optimize the resulting loop.
22984         (streamer_write_hwi_stream): Likewise.
22985
22986 2013-06-12  Jan Hubicka  <jh@suse.cz>
22987
22988         * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
22989         * cgraph.h (varpool_create_empty_node): Declare.
22990         * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
22991         duplicated nodes.
22992         * symtab.c (symtab_unregister_node): Be lax about missin entries
22993         in node hash.
22994         (symtab_get_node): Update comment.
22995         * varpool.c (varpool_create_empty_node): Break out from ...
22996         (varpool_node_for_decl): ... here.
22997         * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
22998
22999 2013-06-12  Eric Botcazou  <ebotcazou@adacore.com>
23000
23001         * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
23002         <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
23003         part.  Use straight-line flow at the end.
23004         <COMPONENT_REF>: Remove superfluous else.
23005         <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
23006
23007 2013-06-12  Jakub Jelinek  <jakub@redhat.com>
23008
23009         PR target/56564
23010         * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
23011         target hook even for !TREE_PUBLIC decls.  If no resolution info
23012         is available, return false for common and external decls.
23013
23014 2013-06-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
23015
23016         * config/rl78/constraints.md (U): New constraint.
23017         * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
23018         valloc attribute.
23019
23020 2013-06-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
23021
23022         PR target/57589
23023         * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
23024         to allow returning address to AT_PLATFORM name.
23025
23026 2013-06-11  Jan Hubicka  <jh@suse.cz>
23027
23028         * cgraph.c (cgraph_create_function_alias): Set weakref flag.
23029         * cgraph.h (symtab_node_base): Add weakref flag.
23030         * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
23031         (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
23032         (output_weakrefs): Use weakref flag.
23033         * fold-const.c (simple_operand_p): Handle WEAK.
23034         * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
23035         * ipa.c (varpool_externally_visible_p): Drop weakref.
23036         (function_and_variable_visibility): Update comment; fix weakref
23037         sanity checks; do not clear DECL_WEAK on them.
23038         * lto-cgraph.c (lto_output_node): update.
23039         (lto_output_varpool_node): Update.
23040         (input_overwrite_node): Update.
23041         (input_node): Update.
23042         (input_varpool_node): Update.
23043         * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
23044         (lto_symtab_merge_symbols): Add sanity check.
23045         (lto_symtab_prevailing_decl): Do not special case weakrefs.
23046         * passes.c (rest_of_decl_compilation): Set static flag, too.
23047         * symtab.c (dump_symtab_base): Dump weakref.
23048         (verify_symtab_base): Sanity check weakrefs.
23049         (symtab_make_decl_local): Remove duplicated code.
23050         (symtab_alias_ultimate_target): Simplify.
23051         * varpool.c (varpool_create_variable_alias): Set weakref flag.
23052
23053 2013-06-11  Tom de Vries  <tom@codesourcery.com>
23054
23055         * genautomata.c (gen_regexp_sequence): Handle els_num == -1.  Handle
23056         sequence_vect == NULL.
23057
23058 2013-06-11  DJ Delorie  <dj@redhat.com>
23059
23060         * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
23061         (rl78_unwind_word_mode): New.
23062
23063 2013-06-11  David Malcolm  <dmalcolm@redhat.com>
23064
23065         * final.c (debug_prefix_maps): Make static.
23066
23067 2013-06-11  David Malcolm  <dmalcolm@redhat.com>
23068
23069         * function.c (initial_trampoline): Remove stray copy.
23070
23071 2013-06-11  Sofiane Naci  <sofiane.naci@arm.com>
23072
23073         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
23074
23075 2013-06-11  Martin Jambor  <mjambor@suse.cz>
23076
23077         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
23078         within bounds at the beginning of the function.
23079
23080 2013-06-11  Alan Modra  <amodra@gmail.com>
23081
23082         * varasm.c (get_section): Don't die on !DECL_P decl.  Tidy error
23083         reporting.
23084         (get_named_section): Don't NULL !DECL_P decl.
23085
23086 2013-06-11  Igor Zamyatin  <igor.zamyatin@intel.com>
23087
23088         * doc/invoke.texi (core-avx2): Document.
23089         (slm): Likewise.
23090         (atom): Updated with MOVBE.
23091
23092 2013-06-11  Richard Biener  <rguenther@suse.de>
23093
23094         * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
23095
23096 2013-06-11  Anton Blanchard  <anton@samba.org>
23097
23098         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
23099         correct shift value in little-endian mode.
23100
23101 2013-06-11  Jakub Jelinek  <jakub@redhat.com>
23102
23103         PR target/56564
23104         * varasm.c (get_variable_align): Move #endif to the right place.
23105
23106 2013-06-10  Cary Coutant  <ccoutant@google.com>
23107
23108         * dwarf2out.c (hash_external_ref): Use die_symbol or signature
23109         for hash so that hash table traversal order is deterministic.
23110
23111 2013-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
23112             Pat Haugen  <pthaugen@us.ibm.com>
23113             Peter Bergner  <bergner@vnet.ibm.com>
23114
23115         * config/rs6000/vector.md (GPR move splitter): Do not split moves
23116         of vectors in GPRS if they are direct moves or quad word load or
23117         store moves.
23118
23119         * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
23120         declaration.
23121         (direct_move_p): Likewise.
23122         (quad_load_store_p): Likewise.
23123
23124         * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
23125         classes into bins based on the physical register type.
23126         (reg_class_to_reg_type): Likewise.
23127         (IS_STD_REG_TYPE): Likewise.
23128         (IS_FP_VECT_REG_TYPE): Likewise.
23129         (reload_fpr_gpr): Arrays to determine what insn to use if we can
23130         use direct move instructions.
23131         (reload_gpr_vsx): Likewise.
23132         (reload_vsx_gpr): Likewise.
23133         (rs6000_init_hard_regno_mode_ok): Precalculate the register type
23134         information that is a simplification of register classes.  Also
23135         precalculate direct move reload helpers.
23136         (direct_move_p): New function to return true if the operation can
23137         be done as a direct move instruciton.
23138         (quad_load_store_p): New function to return true if the operation
23139         is a quad memory operation.
23140         (rs6000_legitimize_address): If quad memory, only allow register
23141         indirect for TImode addresses.
23142         (rs6000_legitimate_address_p): Likewise.
23143         (enum reload_reg_type): Delete, replace with rs6000_reg_type.
23144         (rs6000_reload_register_type): Likewise.
23145         (register_to_reg_type): Return register type.
23146         (rs6000_secondary_reload_simple_move): New helper function for
23147         secondary reload and secondary memory needed to identify anything
23148         that is a simple move, and does not need reloading.
23149         (rs6000_secondary_reload_direct_move): New helper function for
23150         secondary reload to identify cases that can be done with several
23151         instructions via the direct move instructions.
23152         (rs6000_secondary_reload_move): New helper function for secondary
23153         reload to identify moves between register types that can be done.
23154         (rs6000_secondary_reload): Add support for quad memory operations
23155         and for direct move.
23156         (rs6000_secondary_memory_needed): Likewise.
23157         (rs6000_debug_secondary_memory_needed): Change argument names.
23158         (rs6000_output_move_128bit): New function to return the move to
23159         use for 128-bit moves, including knowing about the various
23160         limitations of quad memory operations.
23161
23162         * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
23163         memory operations.  call rs6000_output_move_128bit for the actual
23164         instruciton(s) to generate.
23165         (vsx_movti_64bit): Likewise.
23166
23167         * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
23168         (UNSPEC_P8V_MTVSRWZ): Likewise.
23169         (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
23170         (UNSPEC_P8V_MTVSRD): Likewise.
23171         (UNSPEC_P8V_XXPERMDI): Likewise.
23172         (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
23173         (UNSPEC_FUSION_GPR): Likewise.
23174         (FMOVE128_GPR): New iterator for direct move.
23175         (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
23176         (f32_sv): Likewise.
23177         (f32_dm): Likewise.
23178         (zero_extend<mode>di2_internal1): Add support for power8 32-bit
23179         loads and direct move instructions.
23180         (zero_extendsidi2_lfiwzx): Likewise.
23181         (extendsidi2_lfiwax): Likewise.
23182         (extendsidi2_nocell): Likewise.
23183         (floatsi<mode>2_lfiwax): Likewise.
23184         (lfiwax): Likewise.
23185         (floatunssi<mode>2_lfiwzx): Likewise.
23186         (lfiwzx): Likewise.
23187         (fix_trunc<mode>_stfiwx): Likewise.
23188         (fixuns_trunc<mode>_stfiwx): Likewise.
23189         (mov<mode>_hardfloat, 32-bit floating point): Likewise.
23190         (mov<move>_hardfloat64, 64-bit floating point): Likewise.
23191         (parity<mode>2_cmpb): Set length/type attr.
23192         (unnamed shift right patterns, mov<mode>_internal2): Change type attr
23193         for 'mr.' to fast_compare.
23194         (bpermd_<mode>): Change type attr to popcnt.
23195         (p8_fmrgow_<mode>): New insns for power8 direct move support.
23196         (p8_mtvsrwz_1): Likewise.
23197         (p8_mtvsrwz_2): Likewise.
23198         (reload_fpr_from_gpr<mode>): Likewise.
23199         (p8_mtvsrd_1): Likewise.
23200         (p8_mtvsrd_2): Likewise.
23201         (p8_xxpermdi_<mode>): Likewise.
23202         (reload_vsx_from_gpr<mode>): Likewise.
23203         (reload_vsx_from_gprsf): Likewise.
23204         (p8_mfvsrd_3_<mode>): LIkewise.
23205         (reload_gpr_from_vsx<mode>): Likewise.
23206         (reload_gpr_from_vsxsf): Likewise.
23207         (p8_mfvsrd_4_disf): Likewise.
23208         (multi-word GPR splits): Do not split direct moves or quad memory
23209         operations.
23210
23211 2013-06-10  David Malcolm  <dmalcolm@redhat.com>
23212
23213         * tree-into-ssa.c (interesting_blocks): Make static.
23214
23215 2013-06-10  Jakub Jelinek  <jakub@redhat.com>
23216
23217         PR target/56564
23218         * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
23219         CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
23220         Use DATA_ABI_ALIGNMENT for that case instead if defined.
23221         (get_variable_align): New function.
23222         (get_variable_section, emit_bss, emit_common,
23223         assemble_variable_contents, place_block_symbol): Use
23224         get_variable_align instead of DECL_ALIGN.
23225         (assemble_noswitch_variable): Add align argument, use it
23226         instead of DECL_ALIGN.
23227         (assemble_variable): Adjust caller.  Use get_variable_align
23228         instead of DECL_ALIGN.
23229         * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
23230         caller.
23231         (DATA_ABI_ALIGNMENT): Define.
23232         * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
23233         * config/i386/i386.c (x86_data_alignment): Add opt argument.  If
23234         opt is false, only return the psABI mandated alignment increase.
23235         * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
23236         (DATA_ABI_ALIGNMENT): ... this.
23237         * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
23238         (DATA_ABI_ALIGNMENT): ... this.
23239         * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
23240         * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
23241         (DATA_ABI_ALIGNMENT): ... this.
23242         * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
23243         * doc/tm.texi: Regenerated.
23244
23245 2013-06-10  Uros Bizjak  <ubizjak@gmail.com>
23246
23247         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
23248         cmp_code to construct REG_EQUAL note.
23249
23250 2013-06-09  Jakub Jelinek  <jakub@redhat.com>
23251
23252         PR target/57568
23253         * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
23254         that operands[2] doesn't overlap with operands[0].
23255
23256 2013-06-09  David Edelsohn  <dje.gcc@gmail.com>
23257             Jan Hubicka  <jh@suse.cz>
23258
23259         * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
23260         hack to mark symbols as used.
23261
23262 2013-06-08  Vladimir Makarov  <vmakarov@redhat.com>
23263
23264         PR rtl-optimization/57559
23265         * lra-constraints.c (process_alt_operands): Don't discourage
23266         memory with known offset for offsetable memory constraint.
23267         * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
23268
23269 2013-06-08  Eric Botcazou  <ebotcazou@adacore.com>
23270
23271         * varasm.c (struct oc_local_state): Reorder fields.
23272         (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
23273         and adjust accordingly.
23274         (output_constructor): Reorder initialization code and adjust call to
23275         output_constructor_bitfield.
23276
23277 2013-06-07  Jan Hubicka  <jh@suse.cz>
23278
23279         * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
23280
23281 2013-06-07  David Malcolm  <dmalcolm@redhat.com>
23282
23283         * tree-object-size.c (unknown): Make const.
23284
23285 2013-06-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23286
23287         * config/s390/s390.md (cpu_facility): Add cpu_zarch.
23288         ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
23289         for last alternative in the cpu_facility attribute.
23290
23291 2013-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23292
23293         PR target/56315
23294         * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
23295         (xordi3): Change operand 2 constraint to arm_xordi_operand.
23296         * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
23297         * config/arm/constraints.md (Dg): New constraint.
23298         * config/arm/neon.md (xordi3_neon): Remove.
23299         (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
23300         * config/arm/predicates.md (arm_xordi_operand): New predicate.
23301
23302 2013-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23303
23304         * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
23305         Clean up alternatives.
23306
23307 2013-06-07  Alan Modra  <amodra@gmail.com>
23308
23309         * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
23310         va_list_gpr_size.
23311
23312 2013-06-07  Alan Modra  <amodra@gmail.com>
23313
23314         * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
23315
23316 2013-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23317
23318         * config/arm/constraints.md (Df): New constraint.
23319         * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
23320         Correct length attribute for last two alternatives.
23321
23322 2013-06-07  Alan Modra  <amodra@gmail.com>
23323
23324         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
23325         override user -mfp-in-toc.
23326         (offsettable_ok_by_alignment): Consider just the current access
23327         rather than the whole object, unless BLKmode.  Handle
23328         CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
23329         (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
23330         for -mcmodel=medium.
23331         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
23332         override user -mfp-in-toc or -msum-in-toc.  Default to
23333         -mno-fp-in-toc for -mcmodel=medium.
23334
23335 2013-06-06  DJ Delorie  <dj@redhat.com>
23336
23337         * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
23338         TARGET_VALID_POINTER_MODE.
23339
23340 2013-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
23341             Pat Haugen  <pthaugen@us.ibm.com>
23342             Peter Bergner  <bergner@vnet.ibm.com>
23343
23344         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
23345         Document new power8 builtins.
23346
23347         * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
23348         condition code register, to allow 128-bit logical operations to be
23349         done in the VSX or GPR registers.
23350         (nor<mode>3): Use the canonical form for nor.
23351         (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
23352         vclz*, and vpopcnt* vector instructions.
23353         (nand<mode>3): Likewise.
23354         (orc<mode>3): Likewise.
23355         (clz<mode>2): LIkewise.
23356         (popcount<mode>2): Likewise.
23357
23358         * config/rs6000/predicates.md (int_reg_operand): Rework tests so
23359         that only the GPRs are recognized.
23360
23361         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
23362         support for new power8 builtins.
23363
23364         * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
23365         builtin functions.
23366         (xscvdpspn): Likewise.
23367         (vclz): Likewise.
23368         (vclzb): Likewise.
23369         (vclzh): Likewise.
23370         (vclzw): Likewise.
23371         (vclzd): Likewise.
23372         (vpopcnt): Likewise.
23373         (vpopcntb): Likewise.
23374         (vpopcnth): Likewise.
23375         (vpopcntw): Likewise.
23376         (vpopcntd): Likewise.
23377         (vgbbd): Likewise.
23378         (vmrgew): Likewise.
23379         (vmrgow): Likewise.
23380         (eqv): Likewise.
23381         (eqv_v16qi3): Likewise.
23382         (eqv_v8hi3): Likewise.
23383         (eqv_v4si3): Likewise.
23384         (eqv_v2di3): Likewise.
23385         (eqv_v4sf3): Likewise.
23386         (eqv_v2df3): Likewise.
23387         (nand): Likewise.
23388         (nand_v16qi3): Likewise.
23389         (nand_v8hi3): Likewise.
23390         (nand_v4si3): Likewise.
23391         (nand_v2di3): Likewise.
23392         (nand_v4sf3): Likewise.
23393         (nand_v2df3): Likewise.
23394         (orc): Likewise.
23395         (orc_v16qi3): Likewise.
23396         (orc_v8hi3): Likewise.
23397         (orc_v4si3): Likewise.
23398         (orc_v2di3): Likewise.
23399         (orc_v4sf3): Likewise.
23400         (orc_v2df3): Likewise.
23401
23402         * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
23403         allow power8 quad mode in 64-bit.
23404         (rs6000_builtin_vectorized_function): Add support to vectorize
23405         ISA 2.07 count leading zeros, population count builtins.
23406         (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
23407         V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
23408         (builtin_function_type): Add vgbbd builtin function which takes an
23409         unsigned argument.
23410         (altivec_expand_vec_perm_const): Add support for new power8 merge
23411         instructions.
23412
23413         * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
23414         that does not include TImdoe for use with 32-bit.
23415         (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
23416         instructions.
23417         (UNSPEC_VSX_CVDPSPN): Likewise.
23418         (vsx_xscvdpspn): Likewise.
23419         (vsx_xscvspdpn): Likewise.
23420         (vsx_xscvdpspn_scalar): Likewise.
23421         (vsx_xscvspdpn_directmove): Likewise.
23422         (vsx_and<mode>3): Split logical operations into 32-bit and
23423         64-bit. Add support to do logical operations on TImode as well as
23424         VSX vector types.  Allow logical operations to be done in either
23425         VSX registers or in general purpose registers in 64-bit mode.  Add
23426         splitters if GPRs were used. For AND, add clobber of CCmode to
23427         allow use of ANDI on GPRs.  Rewrite nor to use the canonical RTL
23428         encoding.
23429         (vsx_and<mode>3_32bit): Likewise.
23430         (vsx_and<mode>3_64bit): Likewise.
23431         (vsx_ior<mode>3): Likewise.
23432         (vsx_ior<mode>3_32bit): Likewise.
23433         (vsx_ior<mode>3_64bit): Likewise.
23434         (vsx_xor<mode>3): Likewise.
23435         (vsx_xor<mode>3_32bit): Likewise.
23436         (vsx_xor<mode>3_64bit): Likewise.
23437         (vsx_one_cmpl<mode>2): Likewise.
23438         (vsx_one_cmpl<mode>2_32bit): Likewise.
23439         (vsx_one_cmpl<mode>2_64bit): Likewise.
23440         (vsx_nor<mode>3): Likewise.
23441         (vsx_nor<mode>3_32bit): Likewise.
23442         (vsx_nor<mode>3_64bit): Likewise.
23443         (vsx_andc<mode>3): Likewise.
23444         (vsx_andc<mode>3_32bit): Likewise.
23445         (vsx_andc<mode>3_64bit): Likewise.
23446         (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
23447         and xxlorc instructions.
23448         (vsx_eqv<mode>3_64bit): Likewise.
23449         (vsx_nand<mode>3_32bit): Likewise.
23450         (vsx_nand<mode>3_64bit): Likewise.
23451         (vsx_orc<mode>3_32bit): Likewise.
23452         (vsx_orc<mode>3_64bit): Likewise.
23453
23454         * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
23455
23456         * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
23457         instruction.
23458         (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
23459         (p8_vmrgow): Likewise.
23460         (altivec_and<mode>3): Add clobber of CCmode to allow AND using
23461         GPRs to be split under VSX.
23462         (p8v_clz<mode>2): Add power8 count leading zero support.
23463         (p8v_popcount<mode>2): Add power8 population count support.
23464         (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
23465         support.
23466
23467         * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
23468         instruction.
23469
23470         * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
23471         builtin functions.
23472         (vec_nand): Likewise.
23473         (vec_vclz): Likewise.
23474         (vec_vclzb): Likewise.
23475         (vec_vclzd): Likewise.
23476         (vec_vclzh): Likewise.
23477         (vec_vclzw): Likewise.
23478         (vec_vgbbd): Likewise.
23479         (vec_vmrgew): Likewise.
23480         (vec_vmrgow): Likewise.
23481         (vec_vpopcnt): Likewise.
23482         (vec_vpopcntb): Likewise.
23483         (vec_vpopcntd): Likewise.
23484         (vec_vpopcnth): Likewise.
23485         (vec_vpopcntw): Likewise.
23486
23487 2013-06-06  Vladimir Makarov  <vmakarov@redhat.com>
23488
23489         PR rtl-optimization/57468
23490         * config/i386/i386.c (inline_secondary_memory_needed): Ignore
23491         spilled pseudos.
23492
23493 2013-06-06  Vladimir Makarov  <vmakarov@redhat.com>
23494
23495         PR rtl-optimization/57459
23496         * lra-constraints.c (update_ebb_live_info): Fix typo for operand
23497         type when setting live regs.
23498
23499 2013-06-06  Vladimir Makarov  <vmakarov@redhat.com>
23500
23501         * config/s390/s390.opt (mlra): New option.
23502         * config/s390/s390.c (s390_decompose_address): Check displacement
23503         for all registers for LRA.
23504         (s390_secondary_reload): Don't used secondary reloads for LRA.
23505         (s390_lra_p): New function.
23506         (TARGET_LRA_P): Define.
23507         * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
23508         of attribute cpu_facility to zarch for the last alternative.
23509         (*cmpmem_short): Ditto.
23510
23511 2013-06-06  Eric Botcazou  <ebotcazou@adacore.com>
23512
23513         * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
23514         (arm_compute_static_chain_stack_bytes): Use it.  Tidy up.
23515         (arm_expand_prologue): Likewise.
23516
23517 2013-06-06  Teresa Johnson  <tejohnson@google.com>
23518
23519         PR c++/53743
23520         * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
23521         as this is now done by redirect_edge_and_branch_force.
23522         * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
23523         barriers, and fix interaction with splitting.
23524         * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
23525         * cfgcleanup.c (try_forward_edges): Fix early return value to properly
23526         reflect changes made in the routine.
23527         * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
23528         (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
23529         since this is called in cfglayout mode, and replace partition fixup
23530         with assert as that is now done by force_nonfallthru_and_redirect.
23531         (add_reg_crossing_jump_notes): Handle the fact that some jumps may
23532         already be marked with region crossing note.
23533         (insert_section_boundary_note): Make non-static, gate on flag
23534         has_bb_partition, rewrite to also check for multiple partitions.
23535         (rest_of_handle_reorder_blocks): Remove call to
23536         insert_section_boundary_note, now done later during free_cfg.
23537         (duplicate_computed_gotos): Don't duplicate partition crossing edge.
23538         * bb-reorder.h (insert_section_boundary_note): Declare.
23539         * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
23540         * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
23541         invoke insert_section_boundary_note.
23542         (try_redirect_by_replacing_jump): Remove unnecessary
23543         check for region crossing note.
23544         (fixup_partition_crossing): New function.
23545         (rtl_redirect_edge_and_branch): Fixup partition boundaries.
23546         (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
23547         in non-cfglayout mode.
23548         (force_nonfallthru_and_redirect): Fixup partition boundaries,
23549         remove old code that tried to do this. Emit barrier correctly
23550         when we are in cfglayout mode.
23551         (last_bb_in_partition): New function.
23552         (rtl_split_edge): Correctly fixup partition boundaries.
23553         (commit_one_edge_insertion): Remove old code that tried to
23554         fixup region crossing edge since this is now handled in
23555         split_block, and set up insertion point correctly since
23556         block may now end in a jump.
23557         (verify_hot_cold_block_grouping): Guard against checking when not in
23558         linearized RTL mode.
23559         (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
23560         notes.
23561         (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
23562         rtl_verify_flow_info, so not called in cfglayout mode.
23563         (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
23564         (fixup_reorder_chain): Remove old code that attempted to fixup region
23565         crossing note as this is now handled in force_nonfallthru_and_redirect.
23566         (duplicate_insn_chain): Don't duplicate switch section notes.
23567         (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
23568         note.
23569         * basic-block.h (emit_barrier_after_bb): Declare.
23570
23571 2013-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23572
23573         * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
23574         sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
23575         arm_usatsihi): Adjust alternatives for arm_restrict_it.
23576
23577 2013-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23578
23579         * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
23580         where appropriate.
23581         * config/arm/ldmstm.md: Regenerate.
23582
23583 2013-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23584
23585         * config/arm/sync.md (atomic_loaddi_1):
23586         Disable predication for arm_restrict_it.
23587         (arm_load_exclusive<mode>): Likewise.
23588         (arm_load_exclusivesi): Likewise.
23589         (arm_load_exclusivedi): Likewise.
23590         (arm_load_acquire_exclusive<mode>): Likewise.
23591         (arm_load_acquire_exclusivesi): Likewise.
23592         (arm_load_acquire_exclusivedi): Likewise.
23593         (arm_store_exclusive<mode>): Likewise.
23594         (arm_store_exclusive<mode>): Likewise.
23595         (arm_store_release_exclusivedi): Likewise.
23596         (arm_store_release_exclusive<mode>): Likewise.
23597
23598 2013-06-06  Richard Biener  <rguenther@suse.de>
23599
23600         * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
23601         after LTO_null.
23602         (lto_tag_is_tree_code_p): Adjust.
23603         (lto_tag_is_gimple_code_p): Likewise.
23604         (lto_gimple_code_to_tag): Likewise.
23605         (lto_tag_to_gimple_code): Likewise.
23606         (lto_tree_code_to_tag): Likewise.
23607         (lto_tag_to_tree_code): Likewise.
23608         * data-streamer.h (streamer_write_hwi_in_range): Use
23609         uhwi streaming to stream the normalized range.
23610         (streamer_read_hwi_in_range): Likewise.
23611
23612 2013-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23613
23614         * config/arm/arm.md (enabled_for_depr_it): New attribute.
23615         (predicable_short_it): Likewise.
23616         (predicated): Likewise.
23617         (enabled): Handle above.
23618         (define_cond_exec): Set predicated attribute to yes.
23619
23620 2013-06-05  Mike Stump  <mikestump@comcast.net>
23621
23622         * gdbinit.in (__FUNCTION__): Add.
23623
23624 2013-06-05  Uros Bizjak  <ubizjak@gmail.com>
23625
23626         * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
23627         GE, GT, GEU and GTU compares, modulo DImode compares with zero.
23628
23629 2013-06-05  Jan Hubicka  <jh@suse.cz>
23630
23631         * varasm.c (mark_decl_referenced): Revert the removal until targets
23632         are fixed.
23633
23634 2013-06-05  David Edelsohn  <dje.gcc@gmail.com>
23635
23636         * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
23637         instead of mark_decl_referenced.
23638
23639 2013-06-05  Jan Hubicka  <jh@suse.cz>
23640
23641         * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
23642         (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
23643         and symtab_used_from_object_file_p.
23644         (cgraph_make_node_local_1): Clear forced_by_abi.
23645         (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
23646         * cgraph.h (symtab_node_base): Add forced_by_abi.
23647         (decide_is_variable_needed): Remove.
23648         (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
23649         * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
23650         (decide_is_symbol_needed): ... this one; handle symbols in general;
23651         always analyze virtuals; honnor forced_by_abi.
23652         (cgraph_finalize_function): Update.
23653         (varpool_finalize_decl): Update.
23654         (symbol_defined_and_needed): Remove.
23655         (analyze_functions): Update.
23656         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
23657         output_refs, input_overwrite_node): Handle forced_by_abi.
23658         * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
23659         (address_taken_from_non_vtable_p): ... this one.
23660         (comdat_can_be_unshared_p_1): New function.
23661         (cgraph_comdat_can_be_unshared_p): Rename to ...
23662         (comdat_can_be_unshared_p): ... this one; handle symbols in general.
23663         (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
23664         (function_and_variable_visibility): Clear forced_by_abi as needed.
23665         * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
23666         (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
23667         * symtab.c (dump_symtab_base): Dump forced_by_abi.
23668         * varpool.c (decide_is_variable_needed): Remove.
23669
23670 2013-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23671
23672         * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
23673         (arm_option_override): Override arm_restrict_it where appropriate.
23674         (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
23675         * config/arm/arm.opt (mrestrict-it): New command-line option.
23676         * doc/invoke.texi: Document -mrestrict-it.
23677
23678 2013-06-05  David Malcolm  <dmalcolm@redhat.com>
23679
23680         * tsan.c (tsan_atomic_table): Make const.
23681
23682 2013-06-05  Richard Biener  <rguenther@suse.de>
23683
23684         * tree-streamer.c (streamer_tree_cache_insert_1): Update the
23685         index associated with the tree we are supposed to replace.
23686         * tree-streamer-out.c (pack_ts_base_value_fields): Output
23687         TREE_ASM_WRITTEN as zero for everything but SSA names.
23688
23689 2013-06-05  David Malcolm  <dmalcolm@redhat.com>
23690
23691         * tree-ssa-structalias.c (call_stmt_vars): Make static.
23692
23693 2013-06-04  Jan Hubicka  <jh@suse.cz>
23694
23695         * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
23696         (input_node, input_varpool_node): Handle correctly external same
23697         body aliases.
23698         * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
23699         nodes at ltrans stage.
23700
23701 2013-06-04  Jan Hubicka  <jh@suse.cz>
23702
23703         * ipa-inline.c (update_caller_keys): Fix availability test.
23704         (update_callee_keys): Likewise.
23705         * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
23706         to follow ELF standard.
23707
23708 2013-06-04  Jürgen Urban  <JuergenUrban@gmx.de>
23709
23710         * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
23711         (mips64r5900el-*-elf*): New configurations.
23712         * config/mips/mips-cpus.def (r5900): New processor.
23713         * config/mips/mips-tables.opt: Regenerate.
23714         * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
23715         (mips_issue_rate): Handle PROCESSOR_R5900.
23716         (mips_reorg_process_insns): Force reorder mode for the R5900.
23717         * config/mips/mips.h (TARGET_MIPS5900): Define.
23718         (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
23719         TARGET_MIPS5900.
23720         (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
23721         TARGET_MIPS5900.
23722         * config/mips/mips.md (processor): Add r5900.
23723         (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
23724
23725 2013-06-04  Ian Bolton  <ian.bolton@arm.com>
23726
23727         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
23728         into function to generate MOVI instruction.
23729         * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
23730         (aarch64_preferred_simd_mode): Turn into wrapper.
23731         (aarch64_output_scalar_simd_mov_immediate): New function.
23732         * config/aarch64/aarch64-protos.h: Add prototype for above.
23733
23734 2013-06-04  Ian Bolton  <ian.bolton@arm.com>
23735
23736         * config/aarch64/aarch64.c (simd_immediate_info): Remove
23737         element_char member.
23738         (sizetochar): Return signed char.
23739         (aarch64_simd_valid_immediate): Remove elchar and other
23740         unnecessary variables.
23741         (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
23742         Calculate element_char as required.
23743         * config/aarch64/aarch64-protos.h: Update and move prototype
23744         for aarch64_output_simd_mov_immediate.
23745         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
23746         Update arguments.
23747
23748 2013-06-04  Ian Bolton  <ian.bolton@arm.com>
23749
23750         * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
23751         information completed by aarch64_simd_valid_immediate.
23752         (aarch64_legitimate_constant_p): Update arguments.
23753         (aarch64_simd_valid_immediate): Work with struct rather than many
23754         pointers.
23755         (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
23756         (aarch64_simd_make_constant): Update arguments.
23757         (aarch64_output_simd_mov_immediate): Work with struct rather than
23758         many pointers.  Output immediate directly rather than as operand.
23759         * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
23760         Update prototype.
23761         * config/aarch64/constraints.md (Dn): Update arguments.
23762
23763 2013-06-04  Ian Bolton  <ian.bolton@arm.com>
23764
23765         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
23766         longer static.
23767         (aarch64_simd_immediate_valid_for_move): Remove.
23768         (aarch64_simd_scalar_immediate_valid_for_move): Update call.
23769         (aarch64_simd_make_constant): Update call.
23770         (aarch64_output_simd_mov_immediate): Update call.
23771         * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
23772         Add prototype.
23773         * config/aarch64/constraints.md (Dn): Update call.
23774
23775 2013-06-04  Ian Bolton  <ian.bolton@arm.com>
23776
23777         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
23778         return type to bool for prototype.
23779         (aarch64_legitimate_constant_p): Check for true instead of not -1.
23780         (aarch64_simd_valid_immediate): Fix up each return to return a bool.
23781         (aarch64_simd_immediate_valid_for_move): Update retval for bool.
23782
23783 2013-06-04  Catherine Moore  <clm@codesourcery.com>
23784
23785         * config/mips/mips.opt (meva): New.
23786         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
23787         (ASM_SPEC): Handle -meva.
23788         * doc/invoke.texi (meva):  Document.
23789
23790 2013-06-04  Alan Modra  <amodra@gmail.com>
23791
23792         * config/rs6000/rs6000.c (output_toc): Correct little-endian float
23793         constant output.
23794
23795 2013-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23796
23797         * rtl.def: Add extra fourth optional field to define_cond_exec.
23798         * gensupport.c (process_one_cond_exec): Process attributes from
23799         define_cond_exec.
23800         * doc/md.texi: Document fourth field in define_cond_exec.
23801
23802 2013-06-04  Eric Botcazou  <ebotcazou@adacore.com>
23803
23804         * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
23805         out the processing order as in store_bit_field_1.
23806
23807 2013-06-04  Jan Hubicka  <jh@suse.cz>
23808
23809         PR middle-end/57500
23810         * cgraphunit.c (cgraph_process_same_body_aliases): Create
23811         non-VAR_DECL node if it does not exist yet.
23812
23813 2013-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
23814
23815         * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
23816         (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
23817         (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
23818         target_cpu_default setting.
23819
23820 2013-06-03  Teresa Johnson  <tejohnson@google.com>
23821
23822         * dumpfile.c (opt_info_switch_p): Change -fopt-info
23823         default to -fopt-info=optimized instead of all.
23824         * doc/invoke.texi: Ditto.
23825         * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
23826         success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
23827         (execute_vect_slp): Emit BB vectorization success under
23828         MSG_OPTIMIZED_LOCATIONS.
23829         * tree-vect-slp.c (vect_slp_transform_bb): Change
23830         MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
23831         * tree-vect-loop.c (vect_transform_loop): Ditto.
23832
23833 2013-06-03  Jason Merrill  <jason@redhat.com>
23834
23835         PR c++/57415
23836         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
23837         Use TARGET_EXPR for C++.
23838
23839 2013-06-03  Jakub Jelinek  <jakub@redhat.com>
23840
23841         PR rtl-optimization/57268
23842         * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
23843         if DEBUG_INSN_P (insn).
23844
23845         Reapply
23846         2013-05-31  Dinar Temirbulatov  <dinar@kugelworks.com>
23847
23848         PR rtl-optimization/57268
23849         * sched-deps.c (sched_analyze_2): Flush dependence lists if
23850         the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
23851
23852 2013-06-03  Yuri Rumyantsev  <yuri.s.rumyantsev@intel.com>
23853
23854         * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
23855         (ix86_avoid_lea_for_addr): Likewise.
23856         (exact_dependency_1): Likewise.
23857         (ix86_adjust_cost): Likewise.
23858         (swap_top_of_ready_list): Fix formatting and !reload_completed check
23859         removed.
23860         (do_reorder_for_imul): Fix typo, formatting and
23861         !reload_completed check removed.
23862         (ix86_sched_reorder): Fix typo and formatting.
23863         (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
23864         list.
23865
23866 2013-06-03  Sofiane Naci  <sofiane.naci@arm.com>
23867
23868         * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
23869
23870 2013-06-03  Eric Botcazou  <ebotcazou@adacore.com>
23871
23872         * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
23873         <STRING_CST>: Likewise.
23874         <VECTOR_CST>: Likewise.
23875
23876 2013-06-01  Janus Weil  <janus@gcc.gnu.org>
23877             Mikael Morin  <mikael@gcc.gnu.org>
23878
23879         * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
23880         * config.in: Regenerated.
23881         * configure: Regenerated.
23882
23883 2013-06-01  Jan Hubicka  <jh@suse.cz>
23884
23885         PR middle-end/57366
23886         * cgraphunit.c (compile): When weakref is not supported,
23887         set up transparent aliases before final output pass.
23888         * varasm.c (assemble_alias): Do not try to do it here.
23889
23890 2013-06-01  Jan Hubicka  <jh@suse.cz>
23891
23892         PR middle-end/57467
23893         * passes.c (for_per_function): Skip unanalyzed functions.
23894
23895 2013-06-01  Jan Hubicka  <jh@suse.cz>
23896
23897         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
23898         (lto_symtab_merge_symbols_1): ... this one.
23899         (lto_symtab_merge_cgraph_nodes): Rename to ...
23900         (lto_symtab_merge_symbols): ... this one; simplify.
23901         * cgraph.c (same_body_aliases_done): Rename to ...
23902         (cpp_implicit_aliases_done): ... this one.
23903         (cgraph_create_function_alias): Update.
23904         (cgraph_same_body_alias): Update.
23905         (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
23906         (verify_edge_corresponds_to_fndecl): Simplify.
23907         * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
23908         (cgraph_node): Remove same_body_alias.
23909         (varpool_node): Remove alias_of and extra_name_alias.
23910         (same_body_aliases_done): Rename to ..
23911         (cpp_implicit_aliases_done): ... this one.
23912         (symtab_alias_ultimate_target): Add default parameter.
23913         (symtab_resolve_alias): New function.
23914         (fixup_same_cpp_alias_visibility): Declare.
23915         (cgraph_function_node): Add default parameter.
23916         (cgraph_node_asm_name): Likewise.
23917         (cgraph_function_or_thunk_node): Add default parameter; do
23918         not ICE when it is NULL.
23919         (varpool_variable_node): Likewise.
23920         * tree-emutls.c (create_emultls_var): Update.
23921         (ipa_lower_emutls): Update.
23922         * cgraphunit.c (cgraph_decide_is_function_needed): Update.
23923         (cgraph_reset_node): Reset alias info.
23924         (cgraph_finalize_function): Update.
23925         (fixup_same_cpp_alias_visibility): Move to symtab.c.
23926         (analyze_function): Simplify.
23927         (cgraph_process_same_body_aliases): Simplify.
23928         (analyze_functions): Fixup same body aliases.
23929         (handle_alias_pairs): Simplify.
23930         (assemble_thunk): Update.
23931         (assemble_thunks_and_aliases): Update.
23932         (output_weakrefs): Rewrite.
23933         * lto-cgraph.c (lto_output_node): Rewrite alias handling.
23934         (lto_output_varpool_node): Likewise.
23935         (compute_ltrans_boundary): Remve assert.
23936         (get_alias_symbol): New functoin.
23937         (input_node): Rewrite alias handling.
23938         (input_varpool_node): Likewise.
23939         * ipa-pure-const.c (propagate_pure_const): Fix formating.
23940         * ipa.c (process_references): Handle weakrefs correctly.
23941         (symtab_remove_unreachable_nodes): Likewise.
23942         * trans-mem.c (get_cg_data): Update.
23943         (ipa_tm_create_version_alias): Update.
23944         (ipa_tm_execute): Update.
23945         * symtab.c (dump_symtab_base): Dump aliases.
23946         (verify_symtab_base): Verify aliases.
23947         (symtab_node_availability): New function.
23948         (symtab_alias_ultimate_target): Simplify.
23949         (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
23950         handle all the fixup cases.
23951         (symtab_resolve_alias): New function.
23952         * passes.c (ipa_write_summaries): Handle weakrefs.
23953         * varpool.c (varpool_analyze_node): Simplify.
23954         (assemble_aliases): Update.
23955         (varpool_create_variable_alias): Simplify.
23956         (varpool_extra_name_alias): Simplify.
23957         * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
23958         (lto_symtab_merge_symbols): ... this one.
23959
23960 2013-06-01  Dinar Temirbulatov  <dinar@kugelworks.com>
23961
23962         Revert
23963         PR rtl-optimization/57268
23964         * sched-deps.c (sched_analyze_2): Flush dependence lists if
23965         the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
23966
23967 2013-06-01  Tobias Burnus  <burnus@net-b.de>
23968
23969         Partially reverted:
23970         2013-05-31  Tobias Burnus  <burnus@net-b.de>
23971
23972         PR middle-end/57073
23973         * tree-ssa-math-opts.c (execute_cse_sincos): Move check
23974         further up.
23975
23976 2013-05-31  Dinar Temirbulatov  <dinar@kugelworks.com>
23977
23978         PR rtl-optimization/57268
23979         * sched-deps.c (sched_analyze_2): Flush dependence lists if
23980         the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
23981
23982 2013-05-31  Eric Botcazou  <ebotcazou@adacore.com>
23983
23984         * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
23985         unordered comparison operators when -fno-trapping-math is in effect
23986         on the e500.
23987         * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
23988         and implement unordered comparison operators properly on the e500.
23989
23990 2013-05-31  Eric Botcazou  <ebotcazou@adacore.com>
23991
23992         * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
23993         for constant scalar integers.
23994         (simplify_relational_operation_1): Likewise.
23995
23996 2013-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
23997
23998         * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
23999         * config/rs6000/rs6000.md (cpu): Reorder.  Split long line.
24000         Fix comment.
24001
24002 2013-05-31  Yuri Rumyantsev  <yuri.s.rumyantsev@intel.com>
24003             Igor Zamyatin  <igor.zamyatin@intel.com>
24004
24005         Silvermont (SLM) architecture performance tuning.
24006         * config/i386/i386.h (enum ix86_tune_indices): Add
24007         X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
24008         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
24009
24010         * config/i386/i386.c (initial_ix86_tune_features)
24011         <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
24012         (ix86_lea_outperforms): Handle Silvermont tuning.
24013         (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
24014         call.
24015         (ix86_use_lea_for_mov): Likewise.
24016         (ix86_avoid_lea_for_addr): Likewise.
24017         (ix86_lea_for_add_ok): Likewise.
24018         (exact_dependency_1): New function.
24019         (exact_store_load_dependency): Likewise.
24020         (ix86_adjust_cost): Handle Silvermont tuning.
24021         (do_reoder_for_imul): Likewise.
24022         (swap_top_of_ready_list): New function.
24023         (ix86_sched_reorder): Changed to handle Silvermont tuning.
24024
24025         * config/i386/i386.md (peepholes that split memory operand in fp
24026         converts): New.
24027
24028 2013-05-31  Marcus Shawcroft  <marcus.shawcroft@arm.com>
24029
24030         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
24031         Remove un-necessary braces.
24032
24033 2013-05-31  Marcus Shawcroft  <marcus.shawcroft@arm.com>
24034
24035         * config/aarch64/aarch64.c (aarch64_classify_symbol):
24036         Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
24037
24038 2013-05-31  Tobias Burnus  <burnus@net-b.de>
24039
24040         PR middle-end/57073
24041         * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
24042
24043 2013-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24044
24045         PR target/56315
24046         * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
24047         * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
24048         * config/arm/neon.md (iordi3_neon): Remove.
24049         (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
24050         * config/arm/predicates.md (imm_for_neon_logic_operand):
24051         Move to earlier in the file.
24052         (neon_logic_op2): Likewise.
24053         (arm_iordi_operand_neon): New predicate.
24054
24055 2013-05-31  Richard Biener  <rguenther@suse.de>
24056
24057         PR tree-optimization/57478
24058         PR tree-optimization/57453
24059         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
24060         are life as well.
24061
24062 2013-05-31  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
24063
24064         * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
24065         (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
24066
24067 2013-05-30  Tobias Burnus  <burnus@net-b.de>
24068             Thomas Koenig  <tkoenig@gcc.gnu.org>
24069
24070         PR middle-end/57073
24071         * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
24072         powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
24073
24074 2013-05-30  Steven Bosscher  <steven@gcc.gnu.org>
24075
24076         * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
24077
24078 2013-05-30  Vladimir Makarov  <vmakarov@redhat.com>
24079
24080         * target.def (register_usage_leveling_p): New hook.
24081         * targhooks.c (default_register_usage_leveling_p): New.
24082         * targhooks.h (default_register_usage_leveling_p): New prototype.
24083         * lra-assigns.c (register_usage_leveling_p): Use the hook.
24084         * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
24085         * doc/tm.texi: Update.
24086         * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
24087
24088 2013-05-30  Ian Bolton  <ian.bolton@arm.com>
24089
24090         * config/aarch64/aarch64.md (insv<mode>): New define_expand.
24091         (*insv_reg<mode>): New define_insn.
24092
24093 2013-05-30  Joern Rennecke  <joern.rennecke@embecosm.com>
24094
24095         PR rtl-optimization/57439
24096         * postreload.c (move2add_valid_value_p): Check that we have
24097         a zero subreg_regno_offset when accessing the register in
24098         the requested mode.
24099
24100 2013-05-30  Yuri Rumyantsev  <yuri.s.rumyantsev@intel.com>
24101             Igor Zamyatin  <igor.zamyatin@intel.com>
24102
24103         Silvermont (SLM) architecture pipeline model, tuning and
24104         insn selection.
24105         * config.gcc: Add slm config options and target.
24106
24107         * config/i386/slm.md: New.
24108
24109         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
24110
24111         * config/i386/i386-c.c (ix86_target_macros_internal):  New case
24112         PROCESSOR_SLM.
24113         (ix86_target_macros_internal): Likewise.
24114
24115         * config/i386/i386.c (slm_cost): New cost.
24116         (m_SLM): New macro flag.
24117         (initial_ix86_tune_features): Set m_SLM.
24118         (x86_accumulate_outgoing_args): Likewise.
24119         (x86_arch_always_fancy_math_387): Likewise.
24120         (processor_target_table): Add slm cost.
24121         (cpu_names): Add slm cpu name.
24122         (x86_option_override_internal): Set SLM ISA.
24123         (ix86_issue_rate): New case PROCESSOR_SLM.
24124         (ia32_multipass_dfa_lookahead): Likewise.
24125         (fold_builtin_cpu): Add slm.
24126
24127         * config/i386/i386.h (TARGET_SLM): New target macro.
24128         (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
24129         (processor_type): Add PROCESSOR_SLM.
24130
24131         * config/i386/i386.md (cpu): Add new value "slm".
24132         (slm.md): Include slm.md.
24133
24134 2013-05-30  Bernd Schmidt  <bernds@codesourcery.com>
24135             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
24136
24137         * config/arm/arm-protos.h: Add and update function protos.
24138         * config/arm/arm.c (use_simple_return_p): New added.
24139         (thumb2_expand_return): Check simple_return flag.
24140         * config/arm/arm.md: Add simple_return and conditional simple_return.
24141         * config/arm/iterators.md: Add iterator for return and simple_return.
24142
24143 2013-05-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
24144
24145         * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
24146         (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
24147         (arm_emit_vfp_multi_reg_pop): Likewise.
24148         (thumb2_emit_ldrd_pop): Likewise.
24149         (arm_expand_epilogue): Add misc REG_CFA notes.
24150         (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
24151
24152 2013-05-29  Lawrence Crowl  <crowl@google.com>
24153
24154         * config/arm/t-arm: Update for below.
24155
24156         * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
24157         Change type to hash_table.  Update dependent calls and types.
24158
24159         * config/i386/t-cygming: Update for below.
24160
24161         * config/i386/t-interix: Update for below.
24162
24163         * config/i386/winnt.c (i386_pe_section_type_flags::htab):
24164         Change type to hash_table.  Update dependent calls and types.
24165         (i386_find_on_wrapper_list::wrappers): Likewise.
24166
24167         * config/ia64/t-ia64: Update for below.
24168
24169         * config/ia64/ia64.c (bundle_state_table):
24170         Change type to hash_table.  Update dependent calls and types.
24171
24172         * config/mips/mips.c (mips_reorg_process_insns::htab):
24173         Change type to hash_table.  Update dependent calls and types.
24174
24175         * config/sol2.c (solaris_comdat_htab):
24176         Change type to hash_table.  Update dependent calls and types.
24177
24178         * config/t-sol2: Update for above.
24179
24180 2013-05-29  Teresa Johnson  <tejohnson@google.com>
24181
24182         * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
24183         functions are not yet marked as defined.
24184
24185 2013-05-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
24186             Pat Haugen  <pthaugen@us.ibm.com>
24187             Peter Bergner  <bergner@vnet.ibm.com>
24188
24189         * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
24190         instructions.
24191         (VEC_A): Likewise.
24192         (VEC_C): Likewise.
24193         (vrotl<mode>3): Likewise.
24194         (vashl<mode>3): Likewise.
24195         (vlshr<mode>3): Likewise.
24196         (vashr<mode>3): Likewise.
24197
24198         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
24199         support for power8 V2DI builtins.
24200
24201         * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
24202         power8 V2DI builtins.
24203         (vupkhsw): Likewise.
24204         (vupklsw): Likewise.
24205         (vaddudm): Likewise.
24206         (vminsd): Likewise.
24207         (vmaxsd): Likewise.
24208         (vminud): Likewise.
24209         (vmaxud): Likewise.
24210         (vpkudum): Likewise.
24211         (vpksdss): Likewise.
24212         (vpkudus): Likewise.
24213         (vpksdus): Likewise.
24214         (vrld): Likewise.
24215         (vsld): Likewise.
24216         (vsrd): Likewise.
24217         (vsrad): Likewise.
24218         (vsubudm): Likewise.
24219         (vcmpequd): Likewise.
24220         (vcmpgtsd): Likewise.
24221         (vcmpgtud): Likewise.
24222         (vcmpequd_p): Likewise.
24223         (vcmpgtsd_p): Likewise.
24224         (vcmpgtud_p): Likewise.
24225         (vupkhsw): Likewise.
24226         (vupklsw): Likewise.
24227         (vaddudm): Likewise.
24228         (vmaxsd): Likewise.
24229         (vmaxud): Likewise.
24230         (vminsd): Likewise.
24231         (vminud): Likewise.
24232         (vpksdss): Likewise.
24233         (vpksdus): Likewise.
24234         (vpkudum): Likewise.
24235         (vpkudus): Likewise.
24236         (vrld): Likewise.
24237         (vsld): Likewise.
24238         (vsrad): Likewise.
24239         (vsrd): Likewise.
24240         (vsubudm): Likewise.
24241
24242         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
24243         support for power8 V2DI instructions.
24244
24245         * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
24246         power8 V2DI instructions.  Combine pack and unpack insns to use an
24247         iterator for each mode.  Check whether a particular mode supports
24248         Altivec instructions instead of just checking TARGET_ALTIVEC.
24249         (UNSPEC_VPKUWUM): Likewise.
24250         (UNSPEC_VPKSHSS): Likewise.
24251         (UNSPEC_VPKSWSS): Likewise.
24252         (UNSPEC_VPKUHUS): Likewise.
24253         (UNSPEC_VPKSHUS): Likewise.
24254         (UNSPEC_VPKUWUS): Likewise.
24255         (UNSPEC_VPKSWUS): Likewise.
24256         (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
24257         (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
24258         (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
24259         (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
24260         (UNSPEC_VUPKHSB): Likewise.
24261         (UNSPEC_VUNPACK_HI_SIGN): Likewise.
24262         (UNSPEC_VUNPACK_LO_SIGN): Likewise.
24263         (UNSPEC_VUPKHSH): Likewise.
24264         (UNSPEC_VUPKLSB): Likewise.
24265         (UNSPEC_VUPKLSH): Likewise.
24266         (VI2): Likewise.
24267         (VI_char): Likewise.
24268         (VI_scalar): Likewise.
24269         (VI_unit): Likewise.
24270         (VP): Likewise.
24271         (VP_small): Likewise.
24272         (VP_small_lc): Likewise.
24273         (VU_char): Likewise.
24274         (add<mode>3): Likewise.
24275         (altivec_vaddcuw): Likewise.
24276         (altivec_vaddu<VI_char>s): Likewise.
24277         (altivec_vadds<VI_char>s): Likewise.
24278         (sub<mode>3): Likewise.
24279         (altivec_vsubcuw): Likewise.
24280         (altivec_vsubu<VI_char>s): Likewise.
24281         (altivec_vsubs<VI_char>s): Likewise.
24282         (altivec_vavgs<VI_char>): Likewise.
24283         (altivec_vcmpbfp): Likewise.
24284         (altivec_eq<mode>): Likewise.
24285         (altivec_gt<mode>): Likewise.
24286         (altivec_gtu<mode>): Likewise.
24287         (umax<mode>3): Likewise.
24288         (smax<mode>3): Likewise.
24289         (umin<mode>3): Likewise.
24290         (smin<mode>3): Likewise.
24291         (altivec_vpkuhum): Likewise.
24292         (altivec_vpkuwum): Likewise.
24293         (altivec_vpkshss): Likewise.
24294         (altivec_vpkswss): Likewise.
24295         (altivec_vpkuhus): Likewise.
24296         (altivec_vpkshus): Likewise.
24297         (altivec_vpkuwus): Likewise.
24298         (altivec_vpkswus): Likewise.
24299         (altivec_vpks<VI_char>ss): Likewise.
24300         (altivec_vpks<VI_char>us): Likewise.
24301         (altivec_vpku<VI_char>us): Likewise.
24302         (altivec_vpku<VI_char>um): Likewise.
24303         (altivec_vrl<VI_char>): Likewise.
24304         (altivec_vsl<VI_char>): Likewise.
24305         (altivec_vsr<VI_char>): Likewise.
24306         (altivec_vsra<VI_char>): Likewise.
24307         (altivec_vsldoi_<mode>): Likewise.
24308         (altivec_vupkhsb): Likewise.
24309         (altivec_vupkhs<VU_char>): Likewise.
24310         (altivec_vupkls<VU_char>): Likewise.
24311         (altivec_vupkhsh): Likewise.
24312         (altivec_vupklsb): Likewise.
24313         (altivec_vupklsh): Likewise.
24314         (altivec_vcmpequ<VI_char>_p): Likewise.
24315         (altivec_vcmpgts<VI_char>_p): Likewise.
24316         (altivec_vcmpgtu<VI_char>_p): Likewise.
24317         (abs<mode>2): Likewise.
24318         (vec_unpacks_hi_v16qi): Likewise.
24319         (vec_unpacks_hi_v8hi): Likewise.
24320         (vec_unpacks_lo_v16qi): Likewise.
24321         (vec_unpacks_hi_<VP_small_lc>): Likewise.
24322         (vec_unpacks_lo_v8hi): Likewise.
24323         (vec_unpacks_lo_<VP_small_lc>): Likewise.
24324         (vec_pack_trunc_v8h): Likewise.
24325         (vec_pack_trunc_v4si): Likewise.
24326         (vec_pack_trunc_<mode>): Likewise.
24327
24328         * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
24329         V2DI builtins.
24330         (vec_vmaxsd): Likewise.
24331         (vec_vmaxud): Likewise.
24332         (vec_vminsd): Likewise.
24333         (vec_vminud): Likewise.
24334         (vec_vpksdss): Likewise.
24335         (vec_vpksdus): Likewise.
24336         (vec_vpkudum): Likewise.
24337         (vec_vpkudus): Likewise.
24338         (vec_vrld): Likewise.
24339         (vec_vsld): Likewise.
24340         (vec_vsrad): Likewise.
24341         (vec_vsrd): Likewise.
24342         (vec_vsubudm): Likewise.
24343         (vec_vupkhsw): Likewise.
24344         (vec_vupklsw): Likewise.
24345
24346 2013-05-29  Jan Hubicka  <jh@suse.cz>
24347
24348         * cgraph.h (symtab_node_base): Add definition, alias and analyzed
24349         flags; reorder rest of fields in more consistent way.
24350         (varpool_node): Remove analyzed, finalized and alias.
24351         (cgraph_ndoe): Likewise.
24352         (symtab_alias_ultimate_target): New function.
24353         (cgraph_function_node): Move offline.
24354         (cgraph_reset_node): Declare.
24355         (cgraph_comdat_can_be_unshared_p): Remove.
24356         (varpool_remove_initializer): Declare.
24357         (varpool_first_defined_variable, varpool_next_defined_variable
24358         cgraph_first_defined_function, cgraph_next_defined_function): Update.
24359         (cgraph_function_with_gimple_body_p): Update.
24360         (varpool_all_refs_explicit_p): Update.
24361         (symtab_alias_target): New function.
24362         (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
24363         (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
24364         (cgraph_function_or_thunk_node): Simplify using
24365         symtab_alias_ultimate_target.
24366         (varpool_variable_node): Likewise.
24367         * cgraph.c (cgraph_create_function_alias): Update.
24368         (cgraph_add_thunk): Update.
24369         (cgraph_remove_node): Update.
24370         (dump_cgraph_node): Do not dump removed flags.
24371         (cgraph_function_body_availability): Update.
24372         (cgraph_propagate_frequency): Update.
24373         (verify_cgraph_node): Check sanity of local flag.
24374         (cgraph_function_node): Move here from cgraph.h; revamp for
24375         cgraph_function_or_thunk_node.
24376         * lto-symtab.c (lto_varpool_replace_node): Update.
24377         (lto_symtab_resolve_can_prevail_p): Update.
24378         (lto_symtab_merge_cgraph_nodes): Update.
24379         * ipa-cp.c (determine_versionability, initialize_node_lattices,
24380         propagate_constants_accross_call, devirtualization_time_bonus,
24381         ipcp_propagate_stage): Update.
24382         * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
24383         * ipa-inline-transform.c (clone_inlined_nodes,
24384         preserve_function_body_p): Update.
24385         * ipa-reference.c (propagate): Update.
24386         (write_node_summary_p): Update.
24387         * toplev.c (wrapup_global_declaration_2): Update.
24388         * cgraphunit.c (cgraph_analyze_function): Rename to ...
24389         (analyze_function) ... this one.
24390         (cgraph_process_new_functions): Update.
24391         (cgraph_reset_node): Export.
24392         (cgraph_finalize_function): Update.
24393         (cgraph_add_new_function): Update.
24394         (process_function_and_variable_attributes): Update.
24395         (varpool_finalize_decl): Update.
24396         (symbol_finalized): Remove.
24397         (symbol_finalized_and_needed): Rename to ...
24398         (symbol_defined_and_needed): ... update.
24399         (cgraph_analyze_functions): Update.
24400         (handle_alias_pairs): Update.
24401         (mark_functions_to_output): Update.
24402         (assemble_thunk): Update.
24403         (output_in_order): Update.
24404         (output_weakrefs): Update.
24405         (finalize_compilation_unit): Update.
24406         * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
24407         lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
24408         input_node, input_varpool_node): Update.
24409         * dbxout.c (dbxout_expand_expr): Update.
24410         * cgraphclones.c (cgraph_clone_node): Update.
24411         (cgraph_copy_node_for_versioning): Update.
24412         (cgraph_materialize_clone): Update.
24413         (cgraph_materialize_all_clones): Update.
24414         * ipa-pure-const.c (analyze_function, pure_const_write_summary,
24415         propagate_pure_const, propagate_nothrow): Update.
24416         * lto-streamer-out.c (lto_output, write_symbol): Update.
24417         * ipa-utils.c (ipa_reverse_postorder): Update.
24418         * ipa-inline.c (can_inline_edge_p): Update.
24419         (update_caller_keys, ipa_inline): Update.
24420         * dwarf2out.c (reference_to_unused,
24421         premark_types_used_by_global_vars_helper): Update.
24422         * tree-eh.c (tree_could_trap_p): Update.
24423         * ipa-split.c (consider_split, execute_split_functions): Update.
24424         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
24425         has_addr_references_p): Update; move ahead in file for better
24426         readability.
24427         (process_references): Simplify.
24428         (symtab_remove_unreachable_nodes): Update; cleanup way function/var
24429         bodies are removed.
24430         (cgraph_comdat_can_be_unshared_p): Make static.
24431         (cgraph_externally_visible_p): Update.
24432         (varpool_externally_visible_p): Update.
24433         (function_and_variable_visibility): Update.
24434         * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
24435         ipa_tm_mark_force_output_node): Update.
24436         * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
24437         estimate_edge_devirt_benefit, inline_generate_summary,
24438         inline_write_summary): Update.
24439         * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
24440         * ipa-prop.c (ipa_compute_jump_functions): Update.
24441         (ipa_print_node_params, ipa_prop_read_section,
24442         ipa_update_after_lto_read, read_replacements_section): Update.
24443         * varasm.c (mark_decl_referenced): Update.
24444         (assemble_alias, dump_tm_clone_pairs): Update.
24445         * tree-inline.c (copy_bb): Update.
24446         (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
24447         Update.
24448         * symtab.c (dump_symtab_base): Print new flags.
24449         (verify_symtab_base): Verify new flags.
24450         (symtab_alias_ultimate_target): New function.
24451         * tree-ssa-structalias.c (get_constraint_for_ssa_var,
24452         create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
24453         Update.
24454         * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
24455         Update.
24456         * i386.c (ix86_get_function_versions_dispatcher,
24457         ix86_generate_version_dispatcher_body): Update.
24458         (fold_builtin_cpu): Use varpool_add_new_variable.
24459         * varpool.c (varpool_remove_initializer): Break out from ...
24460         (varpool_remove_node): ... this one.
24461         (dump_varpool_node, varpool_node_for_asm,
24462         cgraph_variable_initializer_availability, varpool_analyze_node,
24463         varpool_assemble_decl, varpool_remove_unreferenced_decls,
24464         varpool_finalize_named_section_flags, varpool_create_variable_alias):
24465         Update.
24466
24467 2013-05-29  Jan Hubicka  <jh@suse.cz>
24468
24469         * passes.c (init_optimization_passes): Move OMP expansion into lowering.
24470
24471 2013-05-29  Easwaran Raman  <eraman@google.com>
24472
24473         PR tree-optimization/57442
24474         * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
24475         when control exits the main loop.
24476
24477 2013-05-29  Sandeep Kumar Singh  <Sandeep.Singh2@kpitcummins.com>
24478
24479         * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
24480         and RX600.
24481         * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
24482         * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
24483         * rx/t-rx: Add rx100 under multi library matches option for nofpu
24484         option.
24485
24486 2013-05-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24487
24488         PR tree-optimization/57441
24489         * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
24490         Don't limit size of incr_vec to number of candidates.
24491
24492 2013-05-29  Steve Ellcey  <sellcey@imgtec.com>
24493
24494         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
24495         and mips16 directories.
24496         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
24497         (MULTILIB_DIRNAMES): Ditto.
24498         (MULTILIB_EXCEPTIONS): Add new exceptions.
24499         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
24500         (MULTILIB_DIRNAMES): Ditto.
24501         (MULTILIB_EXCEPTIONS): Add new exceptions.
24502
24503 2012-05-29  Chris Schlumberger-Socha  <chris.schlumberger-socha@arm.com>
24504             Marcus Shawcroft  <marcus.shawcroft@arm.com>
24505
24506         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
24507         SYMBOL_TINY_ABSOLUTE.
24508         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
24509         SYMBOL_TINY_ABSOLUTE.
24510         (aarch64_expand_mov_immediate): Likewise.
24511         (aarch64_classify_symbol): Likewise.
24512         (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
24513         Permit SYMBOL_TINY_ABSOLUTE.
24514         * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
24515
24516 2013-05-29  Chris Schlumberger-Socha  <chris.schlumberger-socha@arm.com>
24517             Marcus Shawcroft  <marcus.shawcroft@arm.com>
24518
24519         * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
24520         Refactor if/switch.  Replace gcc_assert with if.
24521
24522 2013-05-29  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
24523
24524         * config/i386/i386.c (initial_ix86_tune_features): Enable
24525         FP Reassociation for AMD bdver1 and bdver2.
24526
24527 2013-05-29  Martin Jambor  <mjambor@suse.cz>
24528
24529         * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
24530         and IMAGPART_EXPR do not occur within other handled_components.
24531
24532 2013-05-29  Richard Biener  <rguenther@suse.de>
24533
24534         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
24535         access on whether the use is in the BB we currently try to
24536         vectorize.
24537         (vect_bb_vectorization_profitable_p): Pass the BB we currently
24538         vectorize to vect_bb_slp_scalar_cost.
24539
24540 2013-05-29  Richard Biener  <rguenther@suse.de>
24541
24542         * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
24543         computing scalar cost offsetted by stmts that are kept live
24544         by scalar uses.
24545         (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
24546         for computation of scalar cost.
24547
24548 2013-05-28  Steve Ellcey  <sellcey@mips.com>
24549
24550         * config/mips/mips-cpus.def (mips32r2): Change processor type.
24551
24552 2013-05-28  Balaji V. Iyer  <balaji.v.iyer@intel.com>
24553
24554         * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
24555         array notation built-in reduction functions.
24556         * doc/passes.texi (Passes): Added documentation about changes done
24557         for Cilk Plus.
24558         * doc/invoke.texi (C Dialect Options): Added documentation about
24559         the -fcilkplus flag.
24560         * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
24561         (BUILTINS_DEF): Depend on cilkplus.def.
24562         * builtins.def: Include cilkplus.def.  Define DEF_CILKPLUS_BUILTIN.
24563         * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
24564         * cilkplus.def: New file.
24565
24566 2013-05-28  Joern Rennecke  <joern.rennecke@embecosm.com>
24567
24568         PR rtl-optimization/57439
24569         * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
24570
24571 2013-05-28  Easwaran Raman  <eraman@google.com>
24572
24573         PR tree-optimization/57337
24574         * tree-ssa-reassoc.c (appears_later_in_bb): New function.
24575         (find_insert_point): Correctly identify the insertion point
24576         when two statements with the same UID is compared.
24577
24578 2013-05-28  Richard Biener  <rguenther@suse.de>
24579
24580         PR tree-optimization/56787
24581         * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
24582         from the list of data references.
24583         * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
24584         clobbers.
24585         (vect_analyze_loop_operations): Likewise.
24586         (vect_transform_loop): Remove clobbers.
24587
24588 2013-05-28  Martin Jambor  <mjambor@suse.cz>
24589
24590         * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
24591         and REALPART_EXPRs have scalar type.
24592
24593 2013-05-28  Richard Biener  <rguenther@suse.de>
24594
24595         PR tree-optimization/57411
24596         * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
24597         virtual operands.
24598         * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
24599         virtual operand propagation.
24600
24601 2013-05-28  Eric Botcazou  <ebotcazou@adacore.com>
24602
24603         * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
24604         destination register for bmasksi_vis.
24605         (vector_init_bshuffle): Likewise.
24606         * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
24607
24608 2013-05-28  Eric Botcazou  <ebotcazou@adacore.com>
24609
24610         * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
24611         * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
24612         mode if the instruction isn't available in the original mode.
24613         * config/sparc/sparc.opt (mfix-ut699): New option.
24614         * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
24615         (divdf3): Turn into expander.
24616         (divdf3_nofix): New insn.
24617         (divdf3_fix): Likewise.
24618         (divsf3): Disable if -mfix-ut699.
24619         (sqrtdf2): Turn into expander.
24620         (sqrtdf2_nofix): New insn.
24621         (sqrtdf2_fix): Likewise.
24622         (sqrtsf2): Disable if -mfix-ut699.
24623
24624 2013-05-27  Richard Biener  <rguenther@suse.de>
24625
24626         PR middle-end/57412
24627         * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
24628         block for the new loop.
24629
24630 2013-05-27  Richard Biener  <rguenther@suse.de>
24631
24632         PR tree-optimization/57343
24633         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
24634         use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
24635         (number_of_iterations_cond): Do not build the folded tree.
24636
24637 2013-05-27  Richard Biener  <rguenther@suse.de>
24638
24639         Revert
24640         PR middle-end/57381
24641         * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
24642         OEP_CONSTANT_ADDRESS_OF retained.
24643
24644         PR tree-optimization/57417
24645         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
24646         for unchanged base.
24647         (set_ssa_val_to): Compare addresses using
24648         get_addr_base_and_unit_offset.
24649
24650 2013-05-27  Joern Rennecke  <joern.rennecke@embecosm.com>
24651
24652         PR rtl-optimization/56833
24653         * postreload.c (move2add_record_mode): New function.
24654         (move2add_record_sym_value, move2add_valid_value_p): Likewise.
24655         (move2add_use_add2_insn): Use move2add_record_sym_value.
24656         (move2add_use_add3_insn): Likewise.
24657         (reload_cse_move2add): Use move2add_valid_value_p and
24658         move2add_record_mode.  Invalidate call-clobbered and REG_INC
24659         affected regs by setting reg_mode to VOIDmode.
24660         (move2add_note_store): Don't pretend the inside of a SUBREG is
24661         the actual destination.  Invalidate single/leading registers by
24662         setting reg_mode to VOIDmode.
24663         Use move2add_record_sym_value, move2add_valid_value_p and
24664         move2add_record_mode.
24665
24666 2013-05-27  Richard Biener  <rguenther@suse.de>
24667
24668         PR tree-optimization/57396
24669         * tree-affine.c (double_int_constant_multiple_p): Properly
24670         return false for val == 0 and div != 0.
24671
24672 2013-05-25  Richard Sandiford  <rdsandiford@googlemail.com>
24673
24674         * config/mips/mips.h: Use #elif in preprocessor conditions.
24675
24676 2013-05-25  Richard Sandiford  <rdsandiford@googlemail.com>
24677
24678         PR target/53916
24679         * config/mips/constraints.md (kl): New constraint.
24680         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
24681         (divmod<mode>4_internal): Rename to divmod<mode>4.  Use "kl" as the
24682         constraint for operand 0.  Split after CSE for MIPS16.  Emit a move
24683         from LO for MIPS16.
24684         (udivmod<mode>4_internal): Likewise udivmod<mode>4.
24685
24686 2013-05-25  Richard Sandiford  <rdsandiford@googlemail.com>
24687
24688         PR target/55777
24689         * config/mips/mips.c (mips_can_inline_p): New function.
24690         (TARGET_CAN_INLINE_P): Define.
24691
24692 2013-05-25  Steven Bosscher  <steven@gcc.gnu.org>
24693
24694         * sched-int.h (ds_t, dw_t): Make unsigned int.
24695         Fix documentation that describes how all the ds_t bits are used.
24696         Reserve the last bit for delayed-branch scheduling.
24697         (BITS_PER_DEP_STATUS): Move to ds_t typedef.
24698         (BITS_PER_DEP_WEAK): Fix definition and documentation.
24699         (gen_dep_weak_1): Remove prototype.
24700         * sched-deps.c (get_dep_weak_1): Make static.
24701         * target.def (speculate_insn, needs_block_p, gen_spec_check,
24702         get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
24703         * doc/tm.texi: Regenerate.
24704         * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
24705
24706 2013-05-24  Steven Bosscher  <steven@gcc.gnu.org>
24707
24708         PR debug/56950
24709         * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
24710
24711 2013-05-24  Nathan Sidwell  <nathan@codesourcery.com>
24712             Sandra Loosemore  <sandra@codesourcery.com>
24713
24714         * config.gcc (powerpc-*): Allow native for with-cpu.
24715
24716 2013-05-24  Jeff Law  <law@redhat.com>
24717
24718         PR tree-optimization/57124
24719         * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
24720         conversion feeding a condition if the range has an overflow
24721         if -fstrict-overflow.  Add warnings for when we do make the
24722         transformation.
24723
24724 2013-05-24  Dehao Chen  <dehao@google.com>
24725
24726         * tree-cfg.c (locus_discrim_map): Fix the typo.
24727         (locus_discrim_hasher): Likewise.
24728         (locus_discrim_hasher::hash): Likewise.
24729         (locus_discrim_hasher::equal): Likewise.
24730
24731 2013-05-24  Martin Jambor  <mjambor@suse.cz>
24732
24733         PR tree-optimization/57294
24734         * cgraph.h (ipa_record_stmt_references): Declare.
24735         * cgraphbuild.c (ipa_record_stmt_references): New function.
24736         (build_cgraph_edges): Use ipa_record_stmt_references.
24737         (rebuild_cgraph_edges): Likewise.
24738         (cgraph_rebuild_references): Likewise.
24739         * ipa-prop.c (ipa_modify_call_arguments): Discard references
24740         associated with the old statement and build references from the
24741         newly built statements.
24742         * ipa-ref.c (ipa_remove_stmt_references): New function.
24743         * ipa-ref.h (ipa_remove_stmt_references): Declare.
24744
24745 2013-05-24  Vladimir Makarov  <vmakarov@redhat.com>
24746
24747         * lra-constraints.c (emit_spill_move): Use smaller mode for
24748         mem-mem moves.
24749         (check_and_process_move): Consider mem-reg moves for secondary
24750         too.
24751         (curr_insn_transform): Don't lose insns emitted before for
24752         secondary memory moves.
24753         (inherit_in_ebb): Mark defined reg.  Add usage only if it is not a
24754         reg set up in the current insn.
24755
24756 2013-05-24  Dehao Chen  <dehao@google.com>
24757
24758         * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
24759         hash function.
24760         (locus_descrim_hasher::equal): Likewise.
24761         (build_gimple_cfg): New discriminator assignment algorithm.
24762         (make_edges): Likewise.
24763         (next_discriminator_for_locus): Likewise.
24764         (same_line_p): Likewise.
24765         (assign_discriminators): Likewise.
24766         (make_cond_expr_edges): Likewise.
24767         (make_gimple_switch_edges): Likewise.
24768         (make_goto_expr_edges): Likewise.
24769         (make_gimple_asm_edges): Likewise.
24770
24771 2013-05-24  Ian Bolton  <ian.bolton@arm.com>
24772
24773         * config/aarch64/aarch64.c (aarch64_print_operand): Change the
24774         X format specifier to only display bottom 16 bits.
24775         * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
24776         immediate to match for operand 2, since it will be masked.
24777
24778 2013-05-24  Richard Biener  <rguenther@suse.de>
24779
24780         PR tree-optimization/57287
24781         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
24782         all SSA names that occur in abnormal PHIs.
24783
24784 2013-05-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
24785
24786         PR tree-ssa/57385
24787         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
24788         that index is not negative.
24789
24790 2013-05-24  Eric Botcazou  <ebotcazou@adacore.com>
24791
24792         PR rtl-optimization/55177
24793         * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
24794         (simplify_byte_swapping_operation): New.
24795         (simplify_binary_operation_1): Call it for AND, IOR and XOR.
24796         (simplify_relational_operation_1): Deal with BSWAP.
24797
24798 2013-05-23  Richard Henderson  <rth@redhat.com>
24799
24800         PR target/56742
24801         * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
24802         (ix86_reorg): Call it.
24803
24804 2013-05-23  Uros Bizjak  <ubizjak@gmail.com>
24805
24806         PR target/57379
24807         * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
24808         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
24809         REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
24810
24811 2013-05-23  Christian Bruel  <christian.bruel@st.com>
24812
24813         PR debug/57351
24814         * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
24815
24816 2013-05-23  Chris Schlumberger-Socha  <chris.schlumberger-socha@arm.com>
24817             Marcus Shawcroft  <marcus.shawcroft@arm.com>
24818
24819         * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
24820         * config/aarch64/constraints.md (Usa): Remove.
24821         * doc/md.texi (AArch64 Usa): Remove.
24822
24823 2013-05-23  Chris Schlumberger-Socha  <chris.schlumberger-socha@arm.com>
24824             Marcus Shawcroft  <marcus.shawcroft@arm.com>
24825
24826         * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
24827         * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
24828         * config/aarch64/predicates.md (aarch64_const_address): Remove.
24829         (aarch64_mov_operand): Use aarch64_mov_operand_p.
24830
24831 2013-05-23  Vidya Praveen  <vidyapraveen@arm.com>
24832
24833         * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
24834         instruction (AdvSIMD).
24835         * config/aarch64/aarch64-builtins.c
24836         (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
24837         * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
24838
24839 2013-05-23  Martin Jambor  <mjambor@suse.cz>
24840
24841         PR middle-end/57347
24842         * tree.h (contains_bitfld_component_ref_p): Declare.
24843         * tree-sra.c (contains_bitfld_comp_ref_p): Move...
24844         * tree.c (contains_bitfld_component_ref_p): ...here.  Adjust its
24845         caller.
24846         * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
24847         not access a bit-field.  Assert all final offsets are byte-aligned.
24848
24849 2013-05-23  Richard Biener  <rguenther@suse.de>
24850
24851         PR tree-optimization/57380
24852         * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
24853         least one invariant or re-used load.
24854         * passes.c (init_optimization_passes): Move pass_phiprop before
24855         pass_forwprop.
24856
24857 2013-05-23  James Greenhalgh  <james.greenhalgh@arm.com>
24858
24859         * config/aarch64/aarch64-simd.md
24860         (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
24861
24862 2013-05-23  Richard Biener  <rguenther@suse.de>
24863
24864         PR middle-end/57381
24865         * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
24866         OEP_CONSTANT_ADDRESS_OF retained.
24867
24868 2013-05-23  Jakub Jelinek  <jakub@redhat.com>
24869
24870         PR middle-end/57344
24871         * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
24872         don't lower unit.  Handle unit not being always BITS_PER_WORD.
24873
24874 2013-05-23  Richard Biener  <rguenther@suse.de>
24875
24876         PR rtl-optimization/57341
24877         * ira.c (validate_equiv_mem_from_store): Use anti_dependence
24878         instead of true_dependence.
24879
24880 2013-05-22  David Malcolm  <dmalcolm@redhat.com>
24881
24882         * bb-reorder.c (branch_threshold): Make const.
24883         (exec_threshold): Ditto.
24884
24885 2013-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
24886             Pat Haugen  <pthaugen@us.ibm.com>
24887             Peter Bergner  <bergner@vnet.ibm.com>
24888
24889         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
24890         documentation for the power8 crypto builtins.
24891
24892         * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
24893
24894         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
24895         macros for defining power8 builtin functions.
24896         (BU_P8V_AV_2): Likewise.
24897         (BU_P8V_AV_P): Likewise.
24898         (BU_P8V_VSX_1): Likewise.
24899         (BU_P8V_OVERLOAD_1): Likewise.
24900         (BU_P8V_OVERLOAD_2): Likewise.
24901         (BU_CRYPTO_1): Likewise.
24902         (BU_CRYPTO_2): Likewise.
24903         (BU_CRYPTO_3): Likewise.
24904         (BU_CRYPTO_OVERLOAD_1): Likewise.
24905         (BU_CRYPTO_OVERLOAD_2): Likewise.
24906         (XSCVSPDP): Fix typo, point to the correct instruction.
24907         (VCIPHER): Add power8 crypto builtins.
24908         (VCIPHERLAST): Likewise.
24909         (VNCIPHER): Likewise.
24910         (VNCIPHERLAST): Likewise.
24911         (VPMSUMB): Likewise.
24912         (VPMSUMH): Likewise.
24913         (VPMSUMW): Likewise.
24914         (VPERMXOR_V2DI): Likewise.
24915         (VPERMXOR_V4SI: Likewise.
24916         (VPERMXOR_V8HI: Likewise.
24917         (VPERMXOR_V16QI: Likewise.
24918         (VSHASIGMAW): Likewise.
24919         (VSHASIGMAD): Likewise.
24920         (VPMSUM): Likewise.
24921         (VPERMXOR): Likewise.
24922         (VSHASIGMA): Likewise.
24923
24924         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
24925         __CRYPTO__ if the crypto instructions are available.
24926         (altivec_overloaded_builtins): Add support for overloaded power8
24927         builtins.
24928
24929         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
24930         support for power8 crypto builtins.
24931         (builtin_function_type): Likewise.
24932         (altivec_init_builtins): Add support for builtins that take vector
24933         long long (V2DI) arguments.
24934
24935         * config/rs6000/crypto.md: New file, define power8 crypto
24936         instructions.
24937
24938 2013-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
24939             Pat Haugen  <pthaugen@us.ibm.com>
24940             Peter Bergner  <bergner@vnet.ibm.com>
24941
24942         * doc/invoke.texi (Option Summary): Add power8 options.
24943         (RS/6000 and PowerPC Options): Likewise.
24944
24945         * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
24946         constraints.md instead of rs6000.h.  Reorder w* constraints.  Add
24947         wm, wn, wr documentation.
24948
24949         * config/rs6000/constraints.md (wm): New constraint for VSX
24950         registers if direct move instructions are enabled.
24951         (wn): New constraint for no registers.
24952         (wq): New constraint for quad word even GPR registers.
24953         (wr): New constraint if 64-bit instructions are enabled.
24954         (wv): New constraint if power8 vector instructions are enabled.
24955         (wQ): New constraint for quad word memory locations.
24956
24957         * config/rs6000/predicates.md (const_0_to_15_operand): New
24958         constraint for 0..15 for crypto instructions.
24959         (gpc_reg_operand): If VSX allow registers in VSX registers as well
24960         as GPR and floating point registers.
24961         (int_reg_operand): New predicate to match only GPR registers.
24962         (base_reg_operand): New predicate to match base registers.
24963         (quad_int_reg_operand): New predicate to match even GPR registers
24964         for quad memory operations.
24965         (vsx_reg_or_cint_operand): New predicate to allow vector logical
24966         operations in both GPR and VSX registers.
24967         (quad_memory_operand): New predicate for quad memory operations.
24968         (reg_or_indexed_operand): New predicate for direct move support.
24969
24970         * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
24971         Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
24972         (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
24973         (POWERPC_MASKS): Add power8 options.
24974         (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
24975         various options.
24976
24977         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
24978         Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
24979
24980         * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
24981         (-mpower8-fusion): New power8 options.
24982         (-mpower8-fusion-sign): Likewise.
24983         (-mpower8-vector): Likewise.
24984         (-mcrypto): Likewise.
24985         (-mdirect-move): Likewise.
24986         (-mquad-memory): Likewise.
24987
24988         * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
24989         (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
24990         registers.
24991         (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
24992         (rs6000_debug_vector_unit): Add p8_vector.
24993         (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
24994         definitions.  Also print fusion state.
24995         (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
24996         (rs6000_builtin_mask_calculate): Add power8 builtin support.
24997         (rs6000_option_override_internal): Add support for power8.
24998         (rs6000_common_init_builtins): Add debugging for skipped builtins
24999         if -mdebug=builtin.
25000         (rs6000_adjust_cost): Add power8 support.
25001         (rs6000_issue_rate): Likewise.
25002         (insn_must_be_first_in_group): Likewise.
25003         (insn_must_be_last_in_group): Likewise.
25004         (force_new_group): Likewise.
25005         (rs6000_register_move_cost): Likewise.
25006         (rs6000_opt_masks): Likewise.
25007
25008         * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
25009         power8 capable assembler, default to power7 options.
25010         (TARGET_DIRECT_MOVE): Likewise.
25011         (TARGET_CRYPTO): Likewise.
25012         (TARGET_P8_VECTOR): Likewise.
25013         (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
25014         (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
25015         (VECTOR_MEM_P8_VECTOR_P): Likewise.
25016         (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
25017         (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
25018         (TARGET_XSCVDPSPN): Likewise.
25019         (TARGET_XSCVSPDPN): Likewsie.
25020         (TARGET_SYNC_HI_QI): Likewise.
25021         (TARGET_SYNC_TI): Likewise.
25022         (MASK_CRYPTO): Likewise.
25023         (MASK_DIRECT_MOVE): Likewise.
25024         (MASK_P8_FUSION): Likewise.
25025         (MASK_P8_VECTOR): Likewise.
25026         (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
25027         temporary used by some of the direct move instructions to get two FP
25028         temporary registers does not force creation of a stack frame.
25029         (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
25030         (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
25031         that any VSX registers are tieable, even if they are also an
25032         Altivec vector mode.
25033         (r6000_reg_class_enum): Add wm, wr, wv constraints.
25034         (RS6000_BTM_P8_VECTOR): Power8 builtin support.
25035         (RS6000_BTM_CRYPTO): Likewise.
25036         (RS6000_BTM_COMMON): Likewise.
25037
25038         * config/rs6000/rs6000.md (cpu attribute): Add power8.
25039         * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
25040         (enum rs6000_vector): Add power8 vector support.
25041
25042 2013-05-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25043
25044         PR target/19599
25045         PR target/57340
25046         * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
25047         (any_sibcall_could_use_r3): this and handle indirect calls.
25048         (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
25049
25050 2013-05-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25051
25052         * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
25053
25054 2013-05-22  Richard Biener  <rguenther@suse.de>
25055
25056         PR middle-end/57349
25057         * profile.c (branch_prob): Do not split blocks that are
25058         abnormally receiving from ECF_RETURNS_TWICE functions.
25059
25060 2013-05-22  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
25061
25062         * recog.c (offsettable_address_addr_space_p): Fix calculation of
25063         address mode.  Move pointer mode initialization to the same place.
25064
25065 2013-05-22  Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
25066
25067         * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
25068         while it has any effect.
25069
25070 2013-05-21  Easwaran Raman  <eraman@google.com>
25071
25072         PR tree-optimization/57322
25073         * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
25074         UID of the statement added to the BB to be 1.
25075
25076 2013-05-21  Jakub Jelinek  <jakub@redhat.com>
25077
25078         PR tree-optimization/57331
25079         * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
25080         of conversion from pointer type to integral type with integer.
25081
25082 2013-05-21  Martin Jambor  <mjambor@suse.cz>
25083
25084         PR lto/57289
25085         * ipa-prop.c (ipa_read_node_info): Process param_used and
25086         controlled_uses in the same order as when writing.
25087
25088 2013-05-21  Magnus Granberg  <baldrick@free.fr>
25089
25090         PR plugins/56754
25091         * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
25092
25093 2013-05-21  Richard Biener  <rguenther@suse.de>
25094
25095         PR tree-optimization/57318
25096         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
25097         estimate stmts with side-effects as likely eliminated.
25098
25099 2013-05-21  Richard Biener  <rguenther@suse.de>
25100
25101         PR tree-optimization/57330
25102         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
25103         preserve the call stmts fntype.
25104
25105 2013-05-21  Richard Biener  <rguenther@suse.de>
25106
25107         PR tree-optimization/57303
25108         * tree-ssa-sink.c (statement_sink_location): Improve killing
25109         stmt detection and properly handle self-assignments.
25110
25111 2013-05-21  Christian Bruel  <christian.bruel@st.com>
25112
25113         * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
25114         spanning registers. LEAF_REG_REMAP is supported only for contiguous
25115         registers. Set register size out of the PARALLEL loop.
25116
25117 2013-05-20  Oleg Endo  <olegendo@gcc.gnu.org>
25118
25119         PR target/56547
25120         * config/sh/sh.md (fmasf4): Remove empty constraints strings.
25121         (*fmasf4, *fmasf4_media): New insns.
25122
25123 2013-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
25124
25125         * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
25126         * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
25127         (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
25128         (mips_idiv_insns): Update the comments to say that the returned
25129         instruction counts are in units of BASE_INSN_LENGTH.
25130         (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
25131         by BASE_INSN_LENGTH rather than 4.  Add the jump separately,
25132         using 2 rather than 4 as the length of indirect MIPS16 and
25133         microMIPS jumps.  Use NOP_INSN_LENGTH rather than 4 as the
25134         length of a NOP.  Don't divide MIPS16 lengths by 2.
25135         (mips16_split_long_branches): Assume a branch is long if the
25136         length is greater than 4 rather than 8.
25137         * config/mips/mips.md (length): Give MIPS16 lengths directly,
25138         rather than multiplying them by 2.  Multiply instruction counts
25139         by BASE_INSN_LENGTH rather than 4.
25140         (*jump_mips16, tls_get_tp_mips16_<mode>)
25141         (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
25142
25143 2013-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
25144
25145         * config/mips/mips.md (extended_mips16): Remove branch case.
25146         (length): Remove duplicated extended_mips16 test.
25147
25148 2013-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
25149
25150         * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
25151
25152 2013-05-18  Richard Sandiford  <rdsandiford@googlemail.com>
25153
25154         * recog.h (Recog_data): Rename to...
25155         (recog_data_d): ...this.
25156         (recog_data): Update accordingly.
25157         * recog.c (recog_data): Likewise.
25158         * reload.c (save_recog_data): Likewise.
25159         * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
25160         (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
25161
25162 2013-05-17  Julian Brown  <julian@codesourcery.com>
25163
25164         * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
25165         found in a REG_EQUAL note, invalidate it.
25166
25167 2013-05-17  Easwaran Raman  <eraman@google.com>
25168
25169         * tree-ssa-reassoc.c (find_insert_point): New function.
25170         (insert_stmt_after): Likewise.
25171         (get_def_stmt): Likewise.
25172         (ensure_ops_are_available): Likewise.
25173         (not_dominated_by): Likewise.
25174         (rewrite_expr_tree): Do not move statements beyond what is
25175         necessary. Remove call to swap_ops_for_binary_stmt...
25176         (reassociate_bb): ... and move it here.
25177         (build_and_add_sum): Assign UIDs for new statements.
25178         (linearize_expr): Likewise.
25179         (do_reassoc): Renumber gimple statement UIDs.
25180
25181 2013-05-17  Jan Hubicka  <jh@suse.cz>
25182
25183         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
25184         weakrefs.
25185         * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
25186         * cgraphunit.c (handle_alias_pairs): Store target of unresolved
25187         weakrefs.
25188         (output_weakrefs): Update.
25189
25190 2013-05-17  Po-Chun Chang  <pchang9@cs.wisc.edu>
25191             Martin Jambor  <mjambor@suse.cz>
25192
25193         PR middle-end/57276
25194         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
25195         value that corresponds to the given aggval is found in values vector.
25196
25197 2013-05-17  Uros Bizjak  <ubizjak@gmail.com>
25198
25199         * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
25200         sse, sse2, sse3, ssse3 and sse4a flags to options.
25201
25202 2013-05-17  David Malcolm  <dmalcolm@redhat.com>
25203
25204         * gengtype-state.c: (s_expr_writer): New class, to handle
25205         prettifying of output layout of s-expressions.
25206         (state_writer): New class, to write out gtype.state.
25207         (state_written_type_count): Move this variable into member data of
25208         state_writer.
25209         (s_expr_writer::s_expr_writer): New code: constructor for new class
25210         (state_writer::state_writer(): ditto
25211         (s_expr_writer::write_new_line): New function
25212         (s_expr_writer::write_any_indent): ditto
25213         (s_expr_writer::begin_s_expr): ditto
25214         (s_expr_writer::end_s_expr): ditto
25215         (write_state_fileloc): convert to method of state_writer...
25216         (state_writer:: write_state_fileloc): ...and use methods of
25217         s_expr_writer to write indentation into the gtype.state output file
25218         to visually represent the hierarchical structure of the list
25219         structures
25220         (write_state_fields): ditto, renaming to...
25221         (state_writer::write_state_fields)
25222         (write_state_a_string): ditto, renaming to...
25223         (state_writer::write_state_a_string)
25224         (write_state_string_option): ditto, renaming to...
25225         (state_writer::write_state_string_option)
25226         (write_state_type_option): ditto, renaming to...
25227         (state_writer::write_state_type_option)
25228         (write_state_nested_option): ditto, renaming to...
25229         (state_writer::write_state_nested_option)
25230         (write_state_option): ditto, renaming to...
25231         (state_writer::write_state_option)
25232         (write_state_options): ditto, renaming to...
25233         (state_writer::write_state_options)
25234         (write_state_lang_bitmap): ditto, renaming to...
25235         (state_writer::write_state_lang_bitmap)
25236         (write_state_version): ditto, renaming to...
25237         (state_writer::write_state_version)
25238         (write_state_scalar_type): ditto, renaming to...
25239         (state_writer::write_state_scalar_type)
25240         (write_state_string_type): ditto, renaming to...
25241         (state_writer::write_state_string_type)
25242         (write_state_undefined_type): ditto, renaming to...
25243         (state_writer::write_state_undefined_type)
25244         (write_state_struct_union_type): ditto, renaming to...
25245         (state_writer::write_state_struct_union_type)
25246         (write_state_struct_type): ditto, renaming to...
25247         (state_writer::write_state_struct_type)
25248         (write_state_user_struct_type): ditto, renaming to...
25249         (state_writer::write_state_user_struct_type)
25250         (write_state_lang_struct_type): ditto, renaming to...
25251         (state_writer::write_state_lang_struct_type)
25252         (write_state_param_struct_type): ditto, renaming to...
25253         (state_writer::write_state_param_struct_type)
25254         (write_state_pointer_type): ditto, renaming to...
25255         (state_writer::write_state_pointer_type)
25256         (write_state_array_type): ditto, renaming to...
25257         (state_writer::write_state_array_type)
25258         (write_state_gc_used): ditto, renaming to...
25259         (state_writer::write_state_gc_used)
25260         (write_state_common_type_content): ditto, renaming to...
25261         (state_writer::write_state_common_type_content)
25262         (write_state_type): ditto, renaming to...
25263         (state_writer::write_state_type)
25264         (write_state_pair_list): ditto, renaming to...
25265         (state_writer::write_state_pair_list)
25266         (write_state_pair): ditto, renaming to...
25267         (state_writer::write_state_pair)
25268         (write_state_typedefs): ditto, renaming to...
25269         (state_writer::write_state_typedefs)
25270         (write_state_structures): ditto, renaming to...
25271         (state_writer::write_state_structures)
25272         (write_state_param_structs): ditto, renaming to...
25273         (state_writer::write_state_param_structs)
25274         (write_state_variables): ditto, renaming to...
25275         (state_writer::write_state_variables)
25276         (write_state_srcdir): ditto, renaming to...
25277         (state_writer::write_state_srcdir)
25278         (write_state_files_list): ditto, renaming to...
25279         (state_writer::write_state_files_list)
25280         (write_state_languages): ditto, renaming to...
25281         (state_writer::write_state_languages)
25282         (write_state): create a state_writer instance and use it when
25283         writing out the state file
25284
25285 2013-05-17  Mike Stump  <mikestump@comcast.net>
25286
25287         PR rtl-optimization/57304
25288         * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
25289         accessing DF_REF_REAL_LOC.
25290
25291 2013-05-17  Jakub Jelinek  <jakub@redhat.com>
25292
25293         PR rtl-optimization/57281
25294         PR rtl-optimization/57300
25295         * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
25296         (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
25297         what the other splitter did if the registers are dead.
25298
25299 2013-05-17  Richard Biener  <rguenther@suse.de>
25300
25301         * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
25302         MEM_REF offsets.
25303
25304 2013-05-17  Jakub Jelinek  <jakub@redhat.com>
25305
25306         * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
25307         linking.
25308
25309 2013-05-17  Marek Polacek  <polacek@redhat.com>
25310
25311         * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
25312         length when doing non-zero store of storing '\0' to '\0'.
25313
25314 2013-05-17  Jakub Jelinek  <jakub@redhat.com>
25315
25316         * tree-vect-patterns.c (vect_recog_rotate_pattern): For
25317         vect_external_def oprnd1 with loop_vinfo, try to emit
25318         optional cast, negation and and stmts on the loop preheader
25319         edge instead of into the pattern def seq.
25320
25321         PR tree-optimization/57051
25322         * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
25323         case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
25324
25325 2013-05-16  Nick Clifton  <nickc@redhat.com>
25326
25327         * config/rl78/rl78.c (rl78_attribute_table): Add naked.
25328         (rl78_is_naked_func): New function.
25329         (rl78_expand_prologue): Skip prologue generation for naked functions.
25330         (rl78_expand_epilogue): Skip epilogue generation for naked functions.
25331         * doc/extend.texi (naked): Add RL78 to the list of processors
25332         that supports this attribute.
25333
25334 2013-05-16  Jeff Law  <law@redhat.com>
25335
25336         * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
25337
25338 2013-05-16  Uros Bizjak  <ubizjak@gmail.com>
25339
25340         * config/i386/driver-i386.c (host_detect_local_cpu): Determine
25341         cache parameters using detect_caches_amd also for CYRIX,
25342         NSC and TM2 signatures.
25343
25344 2013-05-16  Uros Bizjak  <ubizjak@gmail.com>
25345             Dzianis Kahanovich  <mahatma@eu.by>
25346
25347         PR target/45359
25348         PR target/46396
25349         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
25350         VIA/Centaur processors and determine their cache parameters
25351         using detect_caches_amd.
25352
25353 2013-05-16  Teresa Johnson  <tejohnson@google.com>
25354
25355         * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
25356         (rtl_verify_edges): New function.
25357         (rtl_verify_bb_insns): Ditto.
25358         (rtl_verify_bb_pointers): Ditto.
25359         (rtl_verify_bb_insn_chain): Ditto.
25360         (rtl_verify_fallthru): Ditto.
25361         (rtl_verify_bb_layout): Ditto.
25362         (rtl_verify_flow_info_1): Outline checks into new functions.
25363         (rtl_verify_flow_info): Ditto.
25364
25365 2013-05-16  Steve Ellcey  <sellcey@imgtec.com>
25366
25367         * cfghooks.c (copy_bbs): Add update_dominance argument.
25368         * cfghooks.h (copy_bbs): Update prototype.
25369         * tree-cfg.c (gimple_duplicate_sese_region):
25370         Add update_dominance argument.
25371         * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
25372         * tree-ssa-loop-ch.c (copy_loop_headers): Update
25373         gimple_duplicate_sese_region call.
25374         * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
25375         Update copy_bbs call.
25376         * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
25377         * trans-mem.c (ipa_uninstrument_transaction): Ditto.
25378
25379 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
25380
25381         * tree-vectorizer.h (NUM_PATTERNS): Increment.
25382         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
25383         vect_recog_rotate_pattern.
25384         (vect_recog_rotate_pattern): New function.
25385
25386 2013-05-16  Jason Merrill  <jason@redhat.com>
25387
25388         * Makefile.in (LLINKER): New variable.
25389         (mostlyclean): Remove link mutex.
25390         * configure.ac: Handle --enable-link-mutex.
25391         * lock-and-run.sh: New script.
25392
25393 2013-05-16  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25394
25395         PR target/19599
25396         * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
25397         for NULL decl.
25398
25399 2013-05-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25400
25401         * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
25402
25403 2013-05-16  Greta Yorsh  <Greta.Yorsh@arm.com>
25404
25405         * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
25406         * config/arm/arm.c (next_consecutive_mem): New function.
25407         (gen_movmem_ldrd_strd): Likewise.
25408         * config/arm/arm.md (movmemqi): Update condition and code.
25409         (unaligned_loaddi, unaligned_storedi): New patterns.
25410
25411 2013-05-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25412
25413         * config.gcc: Obsolete *-*-solaris2.9*.
25414         * doc/install.texi (Specific, *-*-solaris2*): Document it.
25415
25416 2013-05-16  Richard Biener  <rguenther@suse.de>
25417
25418         * passes.c (init_optimization_passes): Move pass_parallelize_loops
25419         earlier, after GRAPHITE transforms and IV canonicalization.
25420
25421 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
25422
25423         * omp-low.c (extract_omp_for_data): For collapsed loops,
25424         if at least one of the loops is known at compile time to
25425         iterate zero times, set count to 0.
25426         (expand_omp_regimplify_p): New function.
25427         (expand_omp_for_generic): For collapsed loops, if at least
25428         one of the loops isn't known to iterate at least once,
25429         add runtime check with setting count to 0.
25430         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
25431         For unsigned types if it isn't known at compile time that
25432         the loop will iterate at least once, add runtime check to bypass
25433         the whole loop if initial condition isn't true.
25434
25435 2013-05-16  Nathan Sidwell  <nathan@codesourcery.com>
25436
25437         * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
25438
25439 2013-05-16  Marc Glisse  <marc.glisse@inria.fr>
25440
25441         PR middle-end/57286
25442         * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
25443         transformations to avoid an infinite loop.
25444
25445 2013-05-16  Marek Polacek  <polacek@redhat.com>
25446
25447         * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
25448
25449 2013-05-15  Leif Ekblad  <leif@rdos.net>
25450
25451         * config/i386/i386.c (ix86_decompose_address): Use
25452         DEFAULT_TLS_SEG_REG to access TLS segment register.
25453         * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
25454         * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
25455         (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
25456
25457 2013-05-15  Richard Sandiford  <rdsandiford@googlemail.com>
25458
25459         PR target/57260
25460         * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
25461         sibling calls to functions that would normally be lazily bound,
25462         unless $gp is call-clobbered.
25463
25464 2013-05-15  Uros Bizjak  <ubizjak@gmail.com>
25465
25466         * config/i386/i386.c (ix86_option_override_internal): Update
25467         processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags.  Add
25468         PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
25469         non-SSE 3dNow! targets.  Enable TARGET_PRFCHW for TARGET_3DNOW targets.
25470         * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
25471         of TARGET_3DNOW.
25472         (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
25473
25474 2013-05-15  Andreas Schwab  <schwab@suse.de>
25475
25476         * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
25477         for rotlhi3+1 and rotlqi3+1, resp.  Fix reference to non-existing
25478         third operand.
25479
25480 2013-05-15  Teresa Johnson  <tejohnson@google.com>
25481
25482         * loop-unroll.c (report_unroll_peel): Check decision before
25483         emitting unroll/peel message.
25484
25485 2013-05-15  Teresa Johnson  <tejohnson@google.com>
25486
25487         * function.h (has_bb_partition): New rtl_data flag.
25488         (bb_reorder_complete): Ditto.
25489         * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
25490         instead of flag_reorder_blocks_and_partition.
25491         * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
25492         with some enhancements.
25493         (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
25494         * bb-reorder.c (connect_traces): Check for has_bb_partition
25495         instead of flag_reorder_blocks_and_partition.
25496         (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
25497         (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
25498         verify_hot_cold_block_grouping.
25499         (partition_hot_cold_basic_blocks): Set has_bb_partition.
25500
25501 2013-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25502
25503         PR target/19599
25504         * config/arm/predicates.md (call_insn_operand): New predicate.
25505         * config/arm/constraints.md ("Cs", "Ss"):  New constraints.
25506         * config/arm/arm.md (*call_insn, *call_value_insn): Match only
25507         if insn is not a tail call.
25508         (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
25509         registers.
25510         * config/arm/arm.h (enum reg_class): New caller save register class.
25511         (REG_CLASS_NAMES): Likewise.
25512         (REG_CLASS_CONTENTS): Likewise.
25513         * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
25514         without decls.
25515
25516 2013-05-15  Richard Biener  <rguenther@suse.de>
25517
25518         * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
25519         of MSG_OPTIMIZED_LOCATIONS.
25520         * tree-vect-slp.c (vect_make_slp_decision): Likewise.
25521         (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
25522         message.
25523         * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
25524         of MSG_OPTIMIZED_LOCATIONS.
25525         (execute_vect_slp): Likewise.
25526         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
25527         (vect_create_cond_for_alias_checks): Likewise.
25528         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
25529         (vect_recog_widen_mult_pattern): Likewise.
25530         (vect_recog_widen_sum_pattern): Likewise.
25531         (vect_recog_over_widening_pattern): Likewise.
25532         (vect_recog_widen_shift_pattern): Likewise.
25533         (vect_recog_vector_vector_shift_pattern): Likewise.
25534         (vect_recog_divmod_pattern): Likewise.
25535         (vect_recog_mixed_size_cond_pattern): Likewise.
25536         (vect_recog_bool_pattern): Likewise.
25537         (vect_pattern_recog_1): Likewise.
25538
25539 2013-05-15  Martin Jambor  <mjambor@suse.cz>
25540
25541         * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
25542         non-functions to builtin_unreachable.
25543         * ipa-inline-transform.c (inline_call): Do not assert estimates were
25544         correct when new direct edges were discovered.
25545
25546 2013-05-15  Martin Jambor  <mjambor@suse.cz>
25547
25548         * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
25549         header, print symbol order instead of node uid, print more information
25550         about indirect edge targets.
25551         (ipa_make_edge_direct_to_target): Print symbol order instead of node
25552         uids.
25553         (ipa_make_edge_direct_to_target): Likewise.
25554         (remove_described_reference): Likewise.
25555         (propagate_controlled_uses): Likewise.
25556         (ipa_print_node_params): Also print symbol order.
25557         (ipcp_transform_function): Print symbol order instead of node uids.
25558         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
25559         (cgraph_get_create_real_symbol_node): Likewise.
25560         * ipa-cp.c (print_lattice): Likewise.
25561         (print_all_lattices): Likewise.
25562         (determine_versionability): Likewise.
25563         (initialize_node_lattices): Likewise.
25564         (estimate_local_effects): Likewise.
25565         (update_profiling_info): Likewise.
25566         (create_specialized_node): Likewise.
25567         (perhaps_add_new_callers): Likewise.
25568         (decide_about_value): Likewise.
25569         (decide_whether_version_node): Likewise.
25570         (identify_dead_nodes): Likewise.
25571         * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
25572         (dump_inline_summary): Likewise.
25573         (estimate_node_size_and_time): Likewise.
25574         (inline_analyze_function): Likewise.
25575         * ipa-inline.c (report_inline_failed_reason): Likewise.
25576         (want_early_inline_function_p): Likewise.
25577         (edge_badness): Likewise.
25578         (update_edge_key): Likewise.
25579         (inline_small_functions): Likewise.  Add dumping of order to two other
25580         dumps.
25581         * ipa-pure-const.c (pure_const_read_summary): Print symbol order
25582         instead of node uids.
25583         (propagate_pure_const): Likewise.
25584         (propagate_pure_const): Likewise.
25585         * ipa-utils.c (dump_cgraph_node_set): Likewise.
25586         * lto-cgraph.c (input_node): Explicitly specify we dump uid.
25587         * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
25588         of node uids.
25589         * tree-pretty-print.c (dump_function_header): Likewise.
25590         * tree-sra.c (convert_callers_for_node): Dump in traditional format.
25591         Print symbol order instead of node uids.
25592
25593 2013-05-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25594
25595         * config/s390/s390.c (s390_register_move_cost): Don't impose the
25596         FPR<->GPR move cost penalty if ldgr/lgdr can be used.
25597
25598 2013-05-15  Richard Biener  <rguenther@suse.de>
25599
25600         PR tree-optimization/57275
25601         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
25602         return value for fail to do runtime alias checks for gather loads.
25603
25604 2013-05-15  Jan Hubicka  <jh@suse.cz>
25605
25606         PR lto/57038
25607         PR lto/47375
25608         * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
25609         weakrefs are not external.
25610         (lto_symtab_merge_decls): Fix thinko when dealing with
25611         non-lto_symtab decls.
25612         (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
25613         (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
25614         * varpool.c (dump_varpool_node): Dump more flags.
25615
25616 2013-05-15  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
25617
25618         * config/i386/i386.c (processor_alias_table): Add instruction
25619         FSGSBASE for AMD bdver3 architecture.
25620
25621 2013-05-14  Jakub Jelinek  <jakub@redhat.com>
25622
25623         * tree.c (warn_deprecated_use): Print file:line using locus color.
25624         * diagnostic.c (diagnostic_report_current_module): Print file:line
25625         and file:line:column using locus color.
25626
25627 2013-05-14  Mike Stump  <mikestump@comcast.net>
25628
25629         * gdbinit.in: Add __null.
25630
25631 2013-05-14  Mike Stump  <mikestump@comcast.net>
25632
25633         * recog.h: Rename struct recog_data to Recog_data.
25634         * recog.c: Likewise.
25635         * reload.c (can_reload_into): Likewise.
25636         * config/picochip/picochip.c: Likewise.
25637
25638 2013-05-14  Mike Stump  <mikestump@comcast.net>
25639
25640         * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
25641
25642 2013-05-14  Steven Bosscher  <steven@gcc.gnu.org>
25643
25644         * resource.h (struct resources): Remove unch_memory member.
25645         (CLEAR_RESOURCE): Don't clear unch_memory.
25646         * resource.c (mark_referenced_resources): Don't set it.
25647         (mark_set_resources): Likewise.
25648         (mark_target_live_regs): Don't clear it.
25649         (init_resource_info): Likewise.
25650         * reorg.c (resource_conflicts_p): Don't compare it.
25651         (redundant_insn): Don't set it.
25652
25653         * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
25654         Remove prototypes.
25655         * emit-rtl.c (next_label): Remove unused function.
25656         (skip_consecutive_labels, link_cc0_insns): Move to ...
25657         * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
25658         only place where these functions are used, and make them static.
25659
25660 2013-05-14  Marc Glisse  <marc.glisse@inria.fr>
25661
25662         * fold-const.c (fold_negate_expr): Handle vectors.
25663         (fold_truth_not_expr): Make it static.
25664         (fold_invert_truthvalue): New static function.
25665         (invert_truthvalue_loc): Handle vectors. Do not call
25666         fold_truth_not_expr directly.
25667         (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
25668         <TRUTH_NOT_EXPR>: Do not cast to boolean.
25669         (fold_comparison): Handle vector constants.
25670         (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
25671         (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
25672         * tree.h (fold_truth_not_expr): Remove declaration.
25673
25674 2013-05-14  James Greenhalgh  <james.greenhalgh@arm.com>
25675
25676         * config/aarch64/aarch64-simd.md
25677         (aarch64_vcond_internal<mode>): Rename to...
25678         (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
25679         (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
25680         float modes. Clarify all iterator modes.
25681         (vcond<mode><mode>): Use new name for vcond expanders.
25682         (vcond<v_cmp_result><mode>): Likewise.
25683         (vcondu<mode><mode>: Likewise.
25684         * config/aarch64/iterators.md (VDQF_COND): New.
25685
25686 2013-05-14  Marc Glisse  <marc.glisse@inria.fr>
25687
25688         PR bootstrap/57266
25689         * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
25690         variable for the shift amount. Check that we shift by non-negative
25691         amounts.
25692
25693 2013-05-14  Chung-Lin Tang  <cltang@codesourcery.com>
25694
25695         PR target/42017
25696         * config/arm/arm.h (EPILOGUE_USES): Only return true
25697         for LR_REGNUM after epilogue_completed.
25698
25699 2013-05-14  Joern Rennecke  <joern.rennecke@embecosm.com>
25700
25701         * config/avr/avr.c (avr_encode_section_info): Bail out if the type
25702         is error_mark_node.
25703
25704 2013-05-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25705
25706         PR target/57261
25707         * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
25708         and Solaris 11+/x86 with gld.
25709         * configure: Regenerate.
25710
25711 2013-05-14  Jakub Jelinek  <jakub@redhat.com>
25712
25713         * expmed.c (expand_shift_1): Canonicalize rotates by
25714         constant bitsize / 2 to bitsize - 1.
25715         * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
25716         case ROTATERT>: Likewise.
25717
25718         Revert:
25719         2013-05-10  Jakub Jelinek  <jakub@redhat.com>
25720
25721         * config/i386/i386.md (rotateinv): New code attr.
25722         (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
25723         *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
25724         roll $31, %eax, etc.
25725
25726 2013-05-14  Richard Biener  <rguenther@suse.de>
25727
25728         PR middle-end/57235
25729         * tree-eh.c (sink_clobbers): Give up for successors with
25730         multiple predecessors and no virtual uses.
25731
25732 2013-05-14  Eric Botcazou  <ebotcazou@adacore.com>
25733
25734         * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
25735         * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
25736
25737 2013-05-14  Jakub Jelinek  <jakub@redhat.com>
25738
25739         PR middle-end/57251
25740         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
25741         the case when both op0 and op1 have VOIDmode.
25742
25743 2013-05-14  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
25744
25745         * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
25746         in multiply-accumulate mode.
25747
25748 2013-05-13  Guozhi Wei  <carrot@google.com>
25749
25750         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
25751
25752 2013-05-13  Kai Tietz  <ktietz@redhat.com>
25753
25754         PR target/56975
25755         * config/i386/cygming.h (TARGET_PECOFF): Define as true.
25756         * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
25757         (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
25758         * config/i386/i386.c (ix86_option_override_internal): Likewise.
25759         (ix86_expand_prologue): Likewise.
25760         (ix86_expand_split_stack_prologue): Likewise.
25761         (legitimate_pic_address_disp_p): Likewise.
25762         (legitimize_pic_address): Likewise.
25763         (legitimize_tls_address): Likewise.
25764         (legitimize_pe_coff_symbol): Likewise.
25765         (output_pic_addr_const): Likewise.
25766         (construct_plt_address): Likewise.
25767         (ix86_expand_call): Likewise.
25768         (x86_output_mi_thunk): Likewise.
25769         (x86_function_profiler): Likewise.
25770
25771 2013-05-13  Sofiane Naci  <sofiane.naci@arm.com>
25772
25773         * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
25774         similar switch cases.
25775         (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
25776         (aarch64_simd_mov_to_<mode>low): Delete.
25777         (aarch64_simd_mov_to_<mode>high): Delete.
25778         (move_lo_quad_<mode>): Add w<-r alternative.
25779         (aarch64_simd_move_hi_quad_<mode>): Likewise.
25780         (aarch64_simd_mov_from_*): Update type attribute.
25781         * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
25782         statement.
25783
25784 2013-05-13  Jan Hubicka  <jh@suse.cz>
25785
25786         * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
25787         * config/i386/i386.c (ix86_compute_frame_layout,
25788         ix86_expand_epilogue, emit_i387_cw_initialization,
25789         ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
25790         ix86_local_alignment): Fix use of size/speed predicates.
25791
25792 2013-05-13  Jakub Jelinek  <jakub@redhat.com>
25793
25794         PR tree-optimization/45216
25795         PR tree-optimization/57157
25796         * tree-ssa-forwprop.c (simplify_rotate): Only recognize
25797         the (-Y) & (B - 1) variant if OP is |.
25798         * expmed.c (expand_shift_1): For rotations by const0_rtx just
25799         return shifted.  Use (-op1) & (prec - 1) as other_amount
25800         instead of prec - op1.
25801
25802 2013-05-13  Martin Jambor  <mjambor@suse.cz>
25803
25804         PR middle-end/42371
25805         * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
25806         (ipa_constant_data): New type.
25807         (ipa_jump_func): Use ipa_constant_data to hold information about
25808         constant jump functions.
25809         (ipa_get_jf_constant): Adjust to jump function type changes.
25810         (ipa_get_jf_constant_rdesc): New function.
25811         (ipa_param_descriptor): New field controlled_uses.
25812         (ipa_get_controlled_uses): New function.
25813         (ipa_set_controlled_uses): Likewise.
25814         * ipa-ref.h (ipa_find_reference): Declare.
25815         * ipa-prop.c (ipa_cst_ref_desc): New type.
25816         (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
25817         changes.
25818         (ipa_set_jf_constant): Likewise.  Also create reference descriptions.
25819         New parameter cs.  Adjust all callers.
25820         (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
25821         (remove_described_reference): New function.
25822         (jfunc_rdesc_usable): Likewise.
25823         (try_make_edge_direct_simple_call): Decrement controlled use count,
25824         attempt to remove reference if it hits zero.
25825         (combine_controlled_uses_counters): New function.
25826         (propagate_controlled_uses): Likewise.
25827         (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
25828         (ipa_edge_duplication_hook): Duplicate reference descriptions.
25829         (ipa_print_node_params): Print described use counter.
25830         (ipa_write_jump_function): Adjust to jump function type changes.
25831         (ipa_read_jump_function): New parameter CS, pass it to
25832         ipa_set_jf_constant.  Adjust caller.
25833         (ipa_write_node_info): Stream controlled use count
25834         (ipa_read_node_info): Likewise.
25835         * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
25836         asserting.
25837         * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
25838         count.  Remove cloning-added reference if it reaches zero.
25839         * ipa-ref.c (ipa_find_reference): New function.
25840
25841 2013-05-13  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
25842
25843         * config/i386/i386.c (processor_target_table): Modified default
25844         alignment values for AMD BD and BT architectures.
25845
25846 2013-05-13  Marc Glisse  <marc.glisse@inria.fr>
25847
25848         * tree-vect-generic.c (uniform_vector_p): Move ...
25849         * tree.c (uniform_vector_p): ... here.
25850         * tree.h (uniform_vector_p): Declare it.
25851         * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
25852         into a scalar.
25853
25854 2013-05-13  Jakub Jelinek  <jakub@redhat.com>
25855
25856         PR tree-optimization/57230
25857         * tree-ssa-strlen.c (handle_char_store): Record length for
25858         array store from STRING_CST.
25859
25860         PR tree-optimization/57230
25861         * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
25862         check.
25863
25864 2013-05-12  Joern Rennecke  <joern.rennecke@embecosm.com>
25865
25866         * config/epiphany/epiphany.c (epiphany_init): Check size of
25867         NUM_MODES_FOR_MODE_SWITCHING.
25868         (epiphany_expand_prologue):
25869         Remove CONFIG_REGNUM initial value handling code.
25870         (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
25871         (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
25872         (emit_set_fp_mode, epiphany_mode_after): Likewise.
25873         (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
25874         Don't return 1 for FP_MODE_NONE.
25875         * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
25876         Add value for EPIPHANY_MSW_ENTITY_CONFIG.
25877         (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
25878         * config/epiphany/epiphany.md (save_config): New pattern.
25879
25880 2013-05-12  Uros Bizjak  <ubizjak@gmail.com>
25881
25882         * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
25883
25884 2013-05-10  Uros Bizjak  <ubizjak@gmail.com>
25885
25886         * config/i386/i386.md (memory): Handle sseishft1.
25887         * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
25888         (*vec_extractv2di_1): Ditto.
25889
25890 2013-05-10  Vladimir Makarov  <vmakarov@redhat.com>
25891
25892         * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
25893         saved registers.
25894
25895 2013-05-10  Sebastian Huber  <sebastian.huber@embedded-brains.de>
25896
25897         * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
25898         Add mthumb/march=armv7-a multilib.
25899         Add mthumb/march=armv7-r multilib.
25900         Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
25901
25902 2013-05-10  Ralf Corsépius  <ralf.corsepius@rtems.org>
25903
25904         * config/v850/t-rtems: Add more multilibs.
25905
25906 2013-05-10  Richard Biener  <rguenther@suse.de>
25907
25908         PR tree-optimization/57214
25909         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
25910         not propagate from SSA names that occur in abnormal PHI nodes.
25911
25912 2013-05-10  Marc Glisse  <marc.glisse@inria.fr>
25913
25914         * stor-layout.c (element_precision): New function.
25915         * machmode.h (element_precision): Declare it.
25916         * tree.c (build_minus_one_cst): New function.
25917         (element_precision): Likewise.
25918         * tree.h (build_minus_one_cst): Declare new function.
25919         (element_precision): Likewise.
25920         * fold-const.c (operand_equal_p): Use element_precision.
25921         (fold_binary_loc): Handle vector types.
25922         * convert.c (convert_to_integer): Use element_precision.
25923         * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
25924         separately.
25925
25926 2013-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
25927
25928         * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
25929         (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
25930         (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
25931         (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
25932         * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
25933         (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
25934         (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
25935         (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
25936         * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
25937         (Uuw8): New constraints.
25938         (Usb4): Move into alphabetical order.
25939         * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
25940         (sd8_operand, ub8_operand, uw8_operand): New predicates.
25941         * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
25942         previously unnamed patterns.
25943         (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
25944         (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
25945         (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
25946         (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
25947         of set_attr_alternative/if_then_else.  Use extended_mips16 instead
25948         of specific lengths.
25949
25950 2013-05-10  Jakub Jelinek  <jakub@redhat.com>
25951
25952         * config/i386/i386.md (rotateinv): New code attr.
25953         (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
25954         *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
25955         roll $31, %eax, etc.
25956
25957         PR tree-optimization/45216
25958         PR tree-optimization/57157
25959         * tree-ssa-forwprop.c (simplify_rotate): New function.
25960         (ssa_forward_propagate_and_combine): Call it.
25961
25962 2013-05-10  Richard Biener  <rguenther@suse.de>
25963
25964         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
25965         disable peeling when we version for aliasing.
25966         (vector_alignment_reachable_p): Honor explicit user alignment.
25967         (vect_supportable_dr_alignment): Likewise.
25968         * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
25969         STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
25970         * tree-vect-loop.c (vect_transform_loop): First apply versioning,
25971         then peeling to arrange for the cost-model check to come first.
25972
25973 2013-05-10  Alan Modra  <amodra@gmail.com>
25974
25975         * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
25976         (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
25977         * configure: Regenerate.
25978
25979 2013-05-10  Alan Modra  <amodra@gmail.com>
25980
25981         PR target/55033
25982         * varasm.c (default_elf_select_section): Move !DECL_P check..
25983         (get_named_section): ..to here before calling get_section_name.
25984         Adjust assertion.
25985         (default_section_type_flags): Add DECL_P check.
25986         * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
25987         * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
25988
25989 2013-05-09  Joern Rennecke  <joern.rennecke@embecosm.com>
25990
25991         * config/epiphany/epiphany.c (epiphany_expand_prologue):
25992         When using gen_stack_adjust_str with a register offset, add a
25993         REG_FRAME_RELATED_EXPR note.
25994
25995 2013-05-09  Uros Bizjak  <ubizjak@gmail.com>
25996
25997         * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
25998         (*vec_extractv4si_zext_mem): Ditto.
25999         (*vec_extractv2di): Add 0->x and x->x alternatives.
26000         * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
26001         * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
26002
26003 2013-05-09  Jason Merrill  <jason@redhat.com>
26004
26005         N3639 C++1y VLA support
26006         * gimplify.c (gimplify_vla_decl): Don't touch an existing
26007         DECL_VALUE_EXPR.
26008
26009         * tree.c (build_constructor_va): New.
26010         * tree.h: Declare it.
26011
26012 2013-05-09  Martin Jambor  <mjambor@suse.cz>
26013
26014         PR lto/57084
26015         * gimple-fold.c (canonicalize_constructor_val): Call
26016         cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
26017
26018 2013-05-09  Jan Hubicka  <jh@suse.cz>
26019             Richard Biener  <rguenther@suse.de>
26020
26021         PR lto/54095
26022         * symtab.c (symtab_make_decl_local): Do not add private names.
26023
26024 2013-05-09  Jan Hubicka  <jh@suse.cz>
26025
26026         PR lto/54095
26027         * symtab.c (insert_to_assembler_name_hash): Handle clones.
26028         (unlink_from_assembler_name_hash): Likewise.
26029         (symtab_prevail_in_asm_name_hash, symtab_register_node,
26030         symtab_unregister_node, symtab_initialize_asm_name_hash,
26031         change_decl_assembler_name): Update.
26032
26033 2013-05-09  Sofiane Naci  <sofiane.naci@arm.com>
26034
26035         * config/aarch64/aarch64.md: New movtf split.
26036         (*movtf_aarch64): Update.
26037         (aarch64_movdi_tilow): Handle TF modes and rename to
26038         aarch64_movdi_<mode>low.
26039         (aarch64_movdi_tihigh): Handle TF modes and rename to
26040         aarch64_movdi_<mode>high
26041         (aarch64_movtihigh_di): Handle TF modes and rename to
26042         aarch64_mov<mode>high_di
26043         (aarch64_movtilow_di): Handle TF modes and rename to
26044         aarch64_mov<mode>low_di
26045         (aarch64_movtilow_tilow): Remove spurious whitespace.
26046         * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
26047         splits.
26048         (aarch64_print_operand): Update.
26049
26050 2013-05-09  Alan Modra  <amodra@gmail.com>
26051
26052         * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
26053         powerpc64le.
26054         * configure: Regenerate.
26055
26056 2013-05-08  Uros Bizjak  <ubizjak@gmail.com>
26057
26058         * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
26059         splitter preparation statements.
26060         * config/i386/sse.md (*vec_extract* splitters): Ditto.
26061         (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
26062         adjust_address_nv.
26063
26064 2013-05-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26065
26066         * gimple-ssa-strength-reduction.c (count_candidates): Change
26067         return value to int.
26068         (analyze_candidates_and_replace): Change type of length to int.
26069
26070 2013-05-08  Uros Bizjak  <ubizjak@gmail.com>
26071
26072         * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
26073         (*vec_extract<mode>): Use VI12_128 mode iterator.
26074         (*vec_extract<mode>_mem): Ditto.
26075         (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
26076         attribute.
26077
26078 2013-05-08  Diego Novillo  <dnovillo@google.com>
26079
26080         PR bootstrap/54659
26081
26082         Revert:
26083         2012-08-17  Diego Novillo  <dnovillo@google.com>
26084
26085         PR bootstrap/54281
26086         * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
26087         * config.in: Regenerate.
26088         * configure: Regenerate.
26089         * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
26090
26091 2013-05-08  Jan Hubicka  <jh@suse.cz>
26092
26093         PR lto/54095
26094         * cgraph.c (cgraph_make_node_local_1): Se unique_name.
26095         * cgraph.h (symtab_node_base): Add unique_name.
26096         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
26097         input_overwrite_node, input_varpool_node): Stream unique_name.
26098         * cgraphclones.c (cgraph_create_virtual_clone,
26099         cgraph_function_versioning): Set unique_name.
26100         * ipa.c (function_and_variable_visibility): Set unique_name.
26101
26102 2013-05-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26103
26104         * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
26105         (alloc_cand_and_find_basis): Restrict conditional candidate
26106         processing to CAND_MULTs.
26107
26108 2013-05-08  Jan Hubicka  <jh@suse.cz>
26109
26110         PR lto/54095
26111         lto-symtab.c (lto_symtab_symbol_p): New function.
26112         (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
26113         lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
26114         lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
26115         Skip static symbols.
26116
26117 2013-05-08  Paolo Carlini  <paolo.carlini@oracle.com>
26118
26119         PR tree-optimization/57200
26120         * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
26121         Only call inform if the preceding warning_at returns true.
26122
26123 2013-05-07  Han Shen  <shenhan@google.com>
26124
26125         * cfgexpand.c (record_or_union_type_has_array_p): New function.
26126         (expand_used_vars): Add logic handling '-fstack-protector-strong'.
26127         * common.opt (fstack-protector-strong): New option.
26128         * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
26129         * doc/invoke.texi (Optimization Options): Document
26130         "-fstack-protector-strong".
26131         * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
26132
26133 2013-05-06  Steven Bosscher  <steven@gcc.gnu.org>
26134
26135         * config/mips/mips.c (mips_machine_reorg2): Return 0.
26136
26137 2013-05-07  Vladimir Makarov  <vmakarov@redhat.com>
26138
26139         * ira.c (update_equiv_regs): Add insn having equiv memory even if
26140         it is not lhs of the insn.
26141         (setup_reg_equiv): Remove insn having equiv memory which it is not
26142         lhs of the insn.
26143         * lra-constraints.c (process_address): Try to improve generation
26144         code for address base + disp.
26145         (lra_constraints): Make correct the code for checking insn setting
26146         up backward equivalence.  Remove insn only if it is in the init
26147         insn list.
26148         * lra-eliminations.c (update_reg_eliminate): Change return value.
26149         (lra_eliminate): Use the result.
26150
26151 2013-05-07  Uros Bizjak  <ubizjak@gmail.com>
26152
26153         * config/i386/sse.md (ssescalarnummask): New mode attribute.
26154         (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
26155         (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
26156         *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
26157         register target operands.
26158         (*vec_extractv8hi_sse2): New pattern.
26159         (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
26160         (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
26161         (*vec_extract<mode>_mem): New insn and split pattern.
26162
26163 2013-05-07  Christophe Lyon  <christophe.lyon@linaro.org>
26164
26165         * config/arm/arm.c (arm_asan_shadow_offset): New function.
26166         (TARGET_ASAN_SHADOW_OFFSET): Define.
26167         * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
26168         (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
26169
26170 2013-05-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26171
26172         * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
26173         (incr_vec_index): Return -1 if increment not found.
26174         (create_add_on_incoming_edge): Assert if increment not found.
26175         (record_increment): Limit number of increments recorded.
26176         (all_phi_incrs_profitable): Return false if an increment not found.
26177         (replace_profitable_candidates): Don't process increments that were
26178         not recorded.
26179         (analyze_candidates_and_replace): Limit size of incr_vec.
26180
26181 2013-05-07  Richard Biener  <rguenther@suse.de>
26182
26183         * calls.c (special_function_p): setjmp-like functions are leaf.
26184         * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
26185         * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
26186
26187 2013-05-07  Sofiane Naci  <sofiane.naci@arm.com>
26188
26189         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
26190         (aarch64_simd_mov<mode>): New expander.
26191         (aarch64_simd_mov_to_<mode>low): New instruction pattern.
26192         (aarch64_simd_mov_to_<mode>high): Likewise.
26193         (aarch64_simd_mov_from_<mode>low): Likewise.
26194         (aarch64_simd_mov_from_<mode>high): Likewise.
26195         (aarch64_dup_lane<mode>): Update.
26196         (aarch64_dup_lanedi): New instruction pattern.
26197         * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
26198         * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
26199
26200 2013-05-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26201
26202         * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
26203         (replace_mult_candidate): Remove unnecessary argument; remove
26204         unnecessary parameter from call to introduce_cast_before_cand.
26205         (replace_unconditional_candidate): Remove unnecessary parameter
26206         from call to replace_mult_candidate.
26207         (replace_conditional_candidate): Likewise.
26208         (insert_initializers): Use make_temp_ssa_name.
26209         (introduce_cast_before_cand): Remove unnecessary argument; use
26210         make_temp_ssa_name.
26211         (replace_one_candidate): Remove unnecessary argument; remove
26212         unnecessary parameter from calls to introduce_cast_before_cand.
26213         (replace_profitable_candidates): Remove unnecessary parameters
26214         from calls to replace_one_candidate.
26215
26216 2013-05-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26217
26218         * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
26219         phi def as possibly hiding a basis for a CAND_ADD whose operands
26220         have been commuted in the analysis.
26221         (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
26222
26223 2013-05-07  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
26224
26225         * config/aarch64/aarch64.md
26226         (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
26227         shift value between 0-4.
26228
26229 2013-05-07  Richard Biener  <rguenther@suse.de>
26230
26231         * double-int.h (rshift): New overload.
26232         * double-int.c (rshift): New function.
26233         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
26234         (create_reference_ops_from_ref): Remove.
26235         (vn_reference_insert): Use shared ops for constructing the
26236         reference and copy it.
26237
26238 2013-05-07  Richard Biener  <rguenther@suse.de>
26239
26240         PR middle-end/57190
26241         * tree-eh.c (sink_clobbers): Properly propagate
26242         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
26243
26244 2013-05-07  Jakub Jelinek  <jakub@redhat.com>
26245
26246         PR tree-optimization/57149
26247         * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
26248         (can_skip_redundant_opnd, compute_uninit_opnds_pos,
26249         collect_phi_def_edges, execute_late_warn_uninitialized): Use
26250         uninit_undefined_value_p instead of ssa_undefined_value_p.
26251
26252         PR debug/57184
26253         * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
26254         for modifier == EXPAND_INITIALIZER.
26255
26256 2013-05-07  Anton Blanchard  <anton@samba.org>
26257
26258         * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
26259         for powerpc64 little endian.
26260         * configure: Regenerate.
26261
26262 2013-05-06  Graham Stott  <grahams@btinternet.com>
26263
26264         * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
26265         mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
26266         wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
26267         shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
26268
26269 2013-05-06  Graham Stott  <grahams@btinternet.com>
26270
26271         * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
26272         codes which allow non-lvalues.
26273
26274 2013-05-06  Marc Glisse  <marc.glisse@inria.fr>
26275
26276         * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
26277         components are all 1s.
26278         (integer_minus_onep): New function.
26279         * tree.h (integer_minus_onep): Declare it.
26280         * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
26281         integer_minus_onep instead of integer_all_onesp.
26282
26283 2013-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
26284
26285         PR target/52933
26286         * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
26287         variations of these patterns.
26288
26289 2013-05-06  Uros Bizjak  <ubizjak@gmail.com>
26290
26291         * config/i386/i386.md (isa): Add x64_sse4 member.
26292         (enabled): Handle x64_sse4.
26293         (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
26294         instruction for 64bit SSE4_1 targets.  Update insn attributes.
26295         (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
26296         instruction for SSE4_1 targets.  Update insn attributes.
26297         * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
26298         with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
26299         (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
26300         const_1 selector.
26301         (*vec_extractv4si): Rename from *sse4_1_pextrd.
26302         (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
26303         (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
26304
26305 2013-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
26306
26307         PR target/57108
26308         * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
26309
26310 2013-05-06  Maxim Kuznetsov  <maks.kuznetsov@gmail.com>
26311
26312         * final.c (do_assembler_dialects): Don't handle curly braces and
26313         vertical bar escaped by % as dialect delimiters.
26314         (output_asm_insn): Print curly braces and vertical bar if escaped
26315         by % and ASSEMBLER_DIALECT defined.
26316         * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
26317         * doc/tm.texi: Regenerated.
26318
26319 2013-05-06  Steven Bosscher  <steven@gcc.gnu.org>
26320
26321         * config/mips/mips.c: Include tree-pass.h.
26322         (mips_reorg): Split in pre- and post-dbr_schedule parts.
26323         (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
26324         (pass_mips_machine_reorg2): New machine specific pass.
26325         (insert_pass_mips_machine_reorg2): New pass plugin definition.
26326         (mips_option_override): Register the new pass.
26327         * rtl.h (cleanup_barriers): Remove prototype.
26328         (dbr_schedule): Likewise.
26329         * jump.c (cleanup_barriers): Make static.
26330         * reorg.c (dbr_schedule): Likewise.
26331
26332 2013-05-06  Richard Biener  <rguenther@suse.de>
26333
26334         PR tree-optimization/57185
26335         * tree-parloops.c (add_field_for_reduction): Handle anonymous
26336         SSA names properly.
26337
26338 2013-05-06  Uros Bizjak  <ubizjak@gmail.com>
26339
26340         PR target/57106
26341         * config/i386/i386.c (add_parameter_dependencies): Add dependence
26342         between "first_arg" and "insn", not "last" and "insn".
26343
26344 2013-05-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26345
26346         * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
26347         (find_candidates_in_block): Re-enable slsr_process_phi.
26348         (create_phi_basis): Fix double counting of candidate adjustment.
26349
26350 2013-05-06  Richard Biener  <rguenther@suse.de>
26351
26352         PR middle-end/57147
26353         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
26354         the edge is also fallthru, preserve it and just clear the
26355         abnormal flag.
26356         * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
26357         also complex, preserve that and just clear the fallthru flag.
26358         * tree-inline.c (update_ssa_across_abnormal_edges): Also
26359         update virtual operands.
26360
26361 2013-05-06  Alan Modra  <amodra@gmail.com>
26362
26363         * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
26364         (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
26365         * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
26366         * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
26367         (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
26368         * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
26369
26370 2013-05-06  Alan Modra  <amodra@gmail.com>
26371
26372         * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
26373         (ASM_SPEC): ..here.  Emit DEFAULT_ASM_ENDIAN too.
26374         (DEFAULT_ASM_ENDIAN): Define.
26375         (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
26376         * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
26377         Update -K PIC clause from sysv4.h.
26378         (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
26379         (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
26380
26381 2013-05-06  Alan Modra  <amodra@gmail.com>
26382
26383         * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
26384         twice for little-endian.
26385         (ashrdi3_no_power, ashrdi3): Support little-endian.
26386
26387 2013-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
26388
26389         PR target/55303
26390         * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
26391         * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
26392         related expanders.
26393         * config/sh/iterators.md (SMIN_SMAX): New code iterator.
26394         * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
26395         clips_min_const_int, clips_max_const_int, clipu_max_const_int):
26396         New predicates.
26397
26398 2013-05-05  Steven Bosscher  <steven@gcc.gnu.org>
26399             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26400
26401         * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
26402         * config/pa/pa.opt: Make mbig-switch a no-op.
26403         * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
26404         (CASE_VECTOR_MODE): Always return SImode.
26405         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
26406         for the !TARGET_BIG_SWITCH case.
26407         * config/pa/pa-linux.h: Likewise.
26408         * config/pa/pa-openbsd.h: Likewise.
26409         * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
26410         * config/pa/pa.md (short_jump): Remove define_insn.
26411         (casesi): Remove code for the !TARGET_BIG_SWITCH case.
26412         (casesi0): Remove define_insn.
26413         (type): Remove btable_branch.
26414         (pa_combine_type): Likewise.
26415         (in_nullified_branch_delay): Likewise.
26416         (in_call_delay): Likewise.
26417         (define_delay): Likewise.
26418         (define_insn_reservation "Z3"): Likewise.
26419         (define_insn_reservation "Z4"): Likewise.
26420         * config/pa/pa.c  (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
26421         (pa_adjust_insn_length): Remove adjustment for btable branches.
26422         * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
26423         and mno-big-switch
26424
26425 2013-05-05  Uros Bizjak  <ubizjak@gmail.com>
26426
26427         * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
26428         from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
26429         Add m->r,x alternatives.
26430         (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
26431         splitters using SWI48x mode iterator.
26432         (*vec_extract_v2di_0_sse): Rename from *sse2_storeq.  Disable for
26433         TARGET_64BIT.  Add m->x alternative.
26434         (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
26435         Add o->x alternative.  Enable for TARGET_SSE.
26436         (sse_storeq): Remove expander.
26437         (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
26438         with memory input operand.
26439         (*vec_extractv2di_1 splitter): New.
26440         (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
26441         * config/i386/i386.md (ssevecmodelower): New mode attribute.
26442
26443 2013-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
26444
26445         * config/rs6000/rs6000.c (INT_P): Reformat.  Delete obsolete comment.
26446         (INT_LOWPART): Delete.
26447         (extract_MB): Adjust.
26448         (extract_ME): Adjust.
26449         (print_operand): Adjust.
26450
26451 2013-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
26452
26453         * config/rs6000/predicates.md (reg_or_add_cint_operand,
26454         reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
26455         (reg_or_logical_cint_operand, easy_fp_constant,
26456         logical_const_operand): Delete "CONST_DOUBLE" case.
26457         * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
26458         "HOST_BITS_PER_WIDE_INT == 64" test.
26459         (num_insns_constant): Ditto.  Delete CONST_DOUBLE DImode/VOIDmode case.
26460         (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
26461         (rs6000_emit_set_const): Delete CONST_DOUBLE case.
26462         (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
26463         test.
26464         (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
26465         CONST_DOUBLE DImode/VOIDmode case.
26466         (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
26467         (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.  Delete
26468         CONST_DOUBLE VOIDmode case.
26469         (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
26470         (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
26471         * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
26472         Delete CONST_DOUBLE case.
26473         (splitters for mov FMOVE64 const_double): Delete
26474         "HOST_BITS_PER_WIDE_INT == 32" case.  Delete
26475         "HOST_BITS_PER_WIDE_INT >= 64" test.
26476         (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
26477         case.
26478         (mov DI const_double): Delete.
26479
26480 2013-05-04  Jakub Jelinek  <jakub@redhat.com>
26481
26482         * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
26483         on op shows all bits zero in mode of a lowpart subreg, return zero.
26484
26485 2013-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
26486
26487         PR target/57150
26488         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
26489         to save TFmode registers and DImode to save TImode registers for
26490         caller save operations.
26491         (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
26492         mark being partially clobbered since they only use the first
26493         double word.
26494
26495         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
26496         and TDmode only use the upper 64-bits of each VSX register.
26497
26498 2013-05-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26499
26500         * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
26501         (find_candidates_in_block): Disable slsr_process_phi.
26502
26503 2013-05-03  Guozhi Wei  <carrot@google.com>
26504
26505         * coverage.c (coverage_obj_init): Move the construction of gcov
26506         constructor to ...
26507         (build_init_ctor): ... here.
26508
26509 2013-05-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26510
26511         * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
26512         (slsr_cand_d): Redefine def_phi.
26513         (stride_status, phi_adjust_status, count_phis_status): New enums.
26514         (find_phi_def): New.
26515         (find_basis_for_base_expr): New.
26516         (find_basis_for_candidate): Handle hidden bases.
26517         (alloc_cand_and_find_basis): Handle phi candidates.
26518         (slsr_process_phi): New.
26519         (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
26520         (create_mul_imm_cand): Likewise.
26521         (create_add_ssa_cand): Exclude phi base candidates.
26522         (create_add_imm_cand): Likewise.
26523         (slsr_process_cast): Likewise.
26524         (slsr_process_copy): Likewise.
26525         (find_candidates_in_block): Handle phi candidates.
26526         (dump_candidate): Likewise.
26527         (unconditional_cands): Delete.
26528         (unconditional_cands_with_known_stride_p): Delete.
26529         (phi_dependent_cand_p): New.
26530         (cand_increment): Handle phi-dependent candidates.
26531         (replace_dependent): Delete.
26532         (replace_mult_candidate): New.
26533         (replace_unconditional_candidate): New.
26534         (incr_vec_index): Move to avoid forward reference.
26535         (create_add_on_incoming_edge): New.
26536         (create_phi_basis): New.
26537         (replace_dependents): Delete.
26538         (replace_conditional_candidate): New.
26539         (phi_add_costs): New.
26540         (replace_uncond_cands_and_profitable_phis): New.
26541         (record_increment): Handle phi adjustments.
26542         (record_phi_increments): New.
26543         (record_increments): Handle phi adjustments.
26544         (phi_incr_cost): New.
26545         (lowest_cost_path): Handle phis.
26546         (total_savings): Likewise.
26547         (analyze_increments): Likewise.
26548         (ncd_with_phi): New.
26549         (ncd_of_cand_and_phis): New.
26550         (nearest_common_dominator_for_cands): Handle phi increments.
26551         (all_phi_incrs_profitable): New.
26552         (replace_profitable_candidates): Handle phi-dependent candidates.
26553         (analyze_candidates_and_replace): Likewise.
26554
26555 2013-05-03  Teresa Johnson  <tejohnson@google.com>
26556
26557         PR bootstrap/57154
26558         * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
26559         do not exceed REG_BR_PROB_BASE.
26560
26561 2013-05-03  Jeff Law  <law@redhat.com>
26562
26563         PR tree-optimization/57144
26564         * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
26565         operand of the condition will bit into the new type when eliminating
26566         a cast feeding a condition.
26567
26568 2013-05-03  Jakub Jelinek  <jakub@redhat.com>
26569
26570         PR rtl-optimization/57130
26571         * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
26572         of COMPARE as in_code to the recursive call if needed.
26573
26574 2013-05-03  Uros Bizjak  <ubizjak@gmail.com>
26575
26576         * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
26577         (enabled): Handle new members.
26578         * config/i386/sse.md (*vec_concatv2si): Merge from
26579         *vec_concatv2si_sse2 and vec_concatv2si_sse.
26580         (vec_concatv2di): Merge with *vec_concatv2di_rex64.
26581
26582 2013-05-03  Joern Rennecke  <joern.rennecke@embecosm.com>
26583
26584         PR tree-optimization/57027
26585         * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
26586         for fnms opportunity, check we got the prerequisite kind
26587         of tree / gimple before using accessor functions.
26588
26589 2013-05-03  Richard Biener  <rguenther@suse.de>
26590
26591         * double-int.h (lshift): New overload without precision
26592         and arith argument.
26593         (operator *=, operator +=, operator -=): Move ...
26594         * double-int.c (operator *=, operator +=, operator -=): ... here
26595         and implement more efficiently.
26596         (mul_double_with_sign): Remove.
26597         (lshift_double): Adjust to take unsinged shift argument, push
26598         dispatching code to callers.
26599         (mul_double_wide_with_sign): Add early out for callers that
26600         are not interested in high parts or overflow.
26601         (lshift): New function.
26602         (lshift, rshift, alshift, arshift, llshift, lrshift): Add
26603         dispatch code here.
26604         (lrotate, rrotate): Use logical shifts.
26605         * expr.c (get_inner_reference): Use lshift.
26606         * fixed-value.c (do_fixed_divide): Likewise.
26607         * tree-dfa.c (get_ref_base_and_extent): Likewise.
26608         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
26609         (indirect_refs_may_alias_p): Likewise.
26610         (stmt_kills_ref_p_1): Likewise.
26611
26612 2013-05-03  Vidya Praveen  <vidyapraveen@arm.com>
26613
26614         * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
26615
26616 2013-05-03  Vidya Praveen  <vidyapraveen@arm.com>
26617
26618         * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
26619         scalar form of FABD instruction.
26620
26621 2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
26622
26623         * lra-constraints.c (process_alt_operands): Add checking alt
26624         number to choose the best alternative.
26625
26626 2013-05-02  Richard Biener  <rguenther@suse.de>
26627
26628         * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
26629         bitmap and its handling.
26630         (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
26631
26632 2013-05-02  Richard Biener  <rguenther@suse.de>
26633
26634         PR middle-end/57140
26635         * tree-inline.c (copy_loops): Properly handle removed loops.
26636         (copy_cfg_body): Mark destination loops for fixup if source
26637         loops needed fixup.
26638
26639 2013-05-02  Greta Yorsh  <Greta.Yorsh@arm.com>
26640
26641         PR target/56732
26642         * config/arm/arm.c (arm_expand_epilogue): Check really_return before
26643         generating simple_return for naked functions.
26644
26645 2013-05-02  Martin Jambor  <mjambor@suse.cz>
26646
26647         PR middle-end/56988
26648         * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
26649         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
26650         flags match.
26651         (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
26652         ipa_agg_replacement_value structures.
26653         (known_aggs_to_agg_replacement_list): Likewise.
26654         * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
26655         (read_agg_replacement_chain): Likewise.
26656         (ipcp_transform_function): Also check that by_ref flags match.
26657
26658 2013-05-02  Richard Biener  <rguenther@suse.de>
26659
26660         * graphds.h (struct graph): Add obstack member.
26661         * graphds.c (new_graph): Initialize obstack and allocate
26662         vertices from it.
26663         (add_edge): Allocate edge from the obstack.
26664         (free_graph): Free the obstack instead of all edges and vertices.
26665
26666 2013-05-02  Teresa Johnson  <tejohnson@google.com>
26667
26668         * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
26669         divides.
26670         * cfg.c (update_bb_profile_for_threading): Ditto.
26671         * tree-inline.c (copy_bb): Ditto.
26672         (copy_edges_for_bb): Ditto.
26673         (initialize_cfun): Ditto.
26674         (copy_cfg_body): Ditto.
26675         (expand_call_inline): Ditto.
26676         * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
26677         (estimate_node_size_and_time): Ditto.
26678         (inline_merge_summary): Ditto.
26679         * cgraphclones.c (cgraph_clone_edge): Ditto.
26680         (cgraph_clone_node): Ditto.
26681         * sched-rgn.c (compute_dom_prob_ps): Ditto.
26682         (compute_trg_info): Ditto.
26683
26684 2013-05-02  Ian Bolton  <ian.bolton@arm.com>
26685
26686         * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
26687         S reg when fp attribute set.
26688         (movdi_aarch64): Only allow to/from D reg when fp attribute set.
26689
26690 2013-05-02  Ian Bolton  <ian.bolton@arm.com>
26691
26692         * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
26693         New pattern.
26694         (*and_one_cmplsi3_compare0_uxtw): Likewise.
26695         (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
26696         (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
26697
26698 2013-05-02  Richard Biener  <rguenther@suse.de>
26699
26700         * tree-scalar-evolution.c (scev_info_hasher): Remove.
26701         (struct instantiate_cache_entry): New type.
26702         (struct instantiate_cache_entry_hasher): New hashtable descriptor.
26703         (struct instantiate_cache_type): New type.
26704         (set_instantiated_value, get_instantiated_value): Remove.
26705         (get_instantiated_value_entry): New function.
26706         (instantiate_scev_name): Use the new cache and adjust.
26707         (instantiate_scev_poly): Adjust.
26708         (instantiate_scev_binary): Likewise.
26709         (instantiate_array_ref): Likewise.
26710         (instantiate_scev_convert): Likewise.
26711         (instantiate_scev_not): Likewise.
26712         (instantiate_scev_3): Likewise.
26713         (instantiate_scev_2): Likewise.
26714         (instantiate_scev_r): Likewise.
26715         (instantiate_scev): Likewise.
26716         (resolve_mixers): Likewise.
26717
26718 2013-05-01  Vladimir Makarov  <vmakarov@redhat.com>
26719
26720         PR target/57091
26721         * lra-constraints.c (best_small_class_operands_num): Remove.
26722         (process_alt_operands): Remove small_class_operands_num.  Take
26723         small classes operands into losers and only if the operand is not
26724         matched.  Modify debugging output.
26725         (curr_insn_transform): Remove best_small_class_operands_num.
26726         Print insn name.
26727
26728 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
26729
26730         * config/aarch64/aarch64-builtins.c
26731         (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
26732         * config/aarch64/aarch64-simd-builtins.def
26733         (reduc_splus_): Add new modes.
26734         (reduc_uplus_): New.
26735         * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
26736         (reduc_uplus_v4sf): Likewise.
26737         (reduc_splus_v4sf): Likewise.
26738         (aarch64_addv<mode>): Likewise.
26739         (reduc_uplus_<mode>): Likewise.
26740         (reduc_splus_<mode>): Likewise.
26741         (aarch64_addvv2di): Likewise.
26742         (reduc_uplus_v2di): Likewise.
26743         (reduc_splus_v2di): Likewise.
26744         (aarch64_addvv2si): Likewise.
26745         (reduc_uplus_v2si): Likewise.
26746         (reduc_splus_v2si): Likewise.
26747         (reduc_<sur>plus_<mode>): New.
26748         (reduc_<sur>plus_v2di): Likewise.
26749         (reduc_<sur>plus_v2si): Likewise.
26750         (reduc_<sur>plus_v4sf): Likewise.
26751         (aarch64_addpv4sf): Likewise.
26752         * config/aarch64/arm_neon.h
26753         (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
26754         * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
26755         add UNSPEC_SADDV, UNSPEC_UADDV.
26756         (SUADDV): New.
26757         (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
26758
26759 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
26760
26761         * config/aarch64/arm_neon.h
26762         (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
26763
26764 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
26765
26766         * config/aarch64/aarch64-builtins
26767         (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
26768
26769 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
26770
26771         * config/aarch64/aarch64-simd-builtins.def
26772         (reduc_smax_): New.
26773         (reduc_smin_): Likewise.
26774         (reduc_umax_): Likewise.
26775         (reduc_umin_): Likewise.
26776         (reduc_smax_nan_): Likewise.
26777         (reduc_smin_nan_): Likewise.
26778         (fmax): Remove.
26779         (fmin): Likewise.
26780         (smax): Update for V2SF, V4SF and V2DF modes.
26781         (smin): Likewise.
26782         (smax_nan): New.
26783         (smin_nan): Likewise.
26784         * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
26785         (<su><maxmin><mode>3): ...This, refactor.
26786         (s<maxmin><mode>3): New.
26787         (<maxmin_uns><mode>3): Likewise.
26788         (reduc_<maxmin_uns>_<mode>): Refactor.
26789         (reduc_<maxmin_uns>_v4sf): Likewise.
26790         (reduc_<maxmin_uns>_v2si): Likewise.
26791         (aarch64_<fmaxmin><mode>: Remove.
26792         * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
26793         new builtin names.
26794         (vmin<q>_f<32,64>): Likewise.
26795         * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
26796         (FMAXMIN): New.
26797         (su): Add mappings for smax, smin, umax, umin.
26798         (maxmin): New.
26799         (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
26800         (FMAXMIN): Rename as...
26801         (FMAXMIN_UNS): ...This.
26802         (maxminv): Remove.
26803         (fmaxminv): Likewise.
26804         (fmaxmin): Likewise.
26805         (maxmin_uns): New.
26806         (maxmin_uns_op): Likewise.
26807
26808 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
26809
26810         * config/aarch64/arm_neon.h
26811         (vac<ge, gt><sd>_f<32, 64>): Rename to...
26812         (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
26813         (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
26814
26815 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
26816
26817         * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
26818         * config/aarch64/iterators.md (FAC_COMPARISONS): New.
26819
26820 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
26821
26822         * config/aarch64/aarch64-simd.md
26823         (vcond<mode>_internal): Handle special cases for constant masks.
26824         (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
26825         (vcondu<mode><mode>): Likewise.
26826         (vcond<v_cmp_result><mode>): New.
26827
26828 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
26829
26830         * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
26831         (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
26832         * config/aarch64/aarch64-simd-builtins.def
26833         (cmeq): Update to BUILTIN_VALLDI.
26834         (cmgt): Likewise.
26835         (cmge): Likewise.
26836         (cmle): Likewise.
26837         (cmlt): Likewise.
26838         * config/aarch64/arm_neon.h
26839         (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
26840         to builtins or C as appropriate.
26841
26842 2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
26843
26844         * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
26845         (cmgeu): ...This.
26846         (cmhi): Rename to...
26847         (cmgtu): ...This.
26848         * config/aarch64/aarch64-simd.md
26849         (simd_mode): Add SF.
26850         (aarch64_vcond_internal): Use new names for unsigned comparison insns.
26851         (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
26852         * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
26853         (cstore<mode>_neg): ...This.
26854         * config/aarch64/iterators.md
26855         (VALLF): new.
26856         (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
26857         (COMPARISONS): New.
26858         (UCOMPARISONS): Likewise.
26859         (optab): Add missing comparisons.
26860         (n_optab): New.
26861         (cmp_1): Likewise.
26862         (cmp_2): Likewise.
26863         (CMP): Likewise.
26864         (cmp): Remove.
26865         (VCMP_S): Likewise.
26866         (VCMP_U): Likewise.
26867         (V_cmp_result): Add DF, SF modes.
26868         (v_cmp_result): Likewise.
26869         (v): Likewise.
26870         (vmtype): Likewise.
26871         * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
26872
26873 2013-05-01  Greta Yorsh  <Greta.Yorsh@arm.com>
26874
26875         * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
26876         define_insn to define_insn_and_split.
26877         (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
26878         (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
26879         (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
26880         (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
26881         (thumb2_negscc): Likewise.
26882
26883 2013-04-30  Greta Yorsh  <Greta.Yorsh@arm.com>
26884
26885         * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
26886
26887 2013-04-30  Greta Yorsh  <Greta.Yorsh@arm.com>
26888
26889         * config/arm/thumb2.md: Remove trailing whitespaces.
26890
26891 2013-04-30  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
26892
26893         * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
26894         Use gen_int_mode rather than GEN_INT.
26895
26896 2013-04-30  H.J. Lu  <hongjiu.lu@intel.com>
26897
26898         * value-prof.c (stream_in_histogram_value): Remove the strayed
26899         debug_gimple_stmt.
26900
26901 2013-04-30  Richard Biener  <rguenther@suse.de>
26902
26903         PR middle-end/57122
26904         * cfghooks.c (split_edge): Properly check for the loop latch edge.
26905
26906 2013-04-30  Richard Biener  <rguenther@suse.de>
26907
26908         PR middle-end/57107
26909         * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
26910
26911 2013-04-30  Andrey Belevantsev  <abel@ispras.ru>
26912
26913         PR rtl-optimization/56957
26914         PR rtl-optimization/57105
26915         * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
26916         variable.  Use just INSN_UID for determining whether an insn
26917         should be only disconnected from the insn stream.
26918         * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
26919
26920 2013-04-30  Jakub Jelinek  <jakub@redhat.com>
26921
26922         PR tree-optimization/57104
26923         * tsan.c (instrument_expr): Don't instrument accesses to
26924         DECL_HARD_REGISTER VAR_DECLs.
26925
26926 2013-04-30  Richard Biener  <rguenther@suse.de>
26927
26928         * function.h (loops_for_fn): New inline function.
26929         (set_loops_for_fn): Likewise.
26930         * cfgloop.h (place_new_loop): Add struct function parameter.
26931         (get_loop): Likewise.
26932         (get_loops): Likewise.
26933         (number_of_loops): Likewise.
26934         (fel_next): Adjust.
26935         (fel_init): Likewise.
26936         * cfg.c (get_loop_copy): Adjust.
26937         * cfgloop.c (flow_loops_dump): Likewise.
26938         (record_loop_exits): Likewise.
26939         (verify_loop_structure): Likewise.
26940         * cfgloopanal.c (mark_irreducible_loops): Likewise.
26941         (estimate_reg_pressure_cost): Likewise.
26942         (mark_loop_exit_edges): Likewise.
26943         * cfgloopmanip.c (place_new_loop): Likewise.
26944         (add_loop): Likewise.
26945         (duplicate_loop): Likewise.
26946         * graph.c (draw_cfg_nodes): Likewise.
26947         * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
26948         * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
26949         (extract_affine_chrec): Likewise.
26950         (build_scop_iteration_domain): Likewise.
26951         * graphite.c (graphite_initialize): Likewise.
26952         * ira-build.c (create_loop_tree_nodes): Likewise.
26953         (more_one_region_p): Likewise.
26954         (rebuild_regno_allocno_maps): Likewise.
26955         (mark_loops_for_removal): Likewise.
26956         (mark_all_loops_for_removal): Likewise.
26957         (remove_unnecessary_regions): Likewise.
26958         (ira_build): Likewise.
26959         * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
26960         * loop-init.c (fix_loop_structure): Likewise.
26961         (gate_rtl_move_loop_invariants): Likewise.
26962         (gate_rtl_unswitch): Likewise.
26963         (gate_rtl_unroll_and_peel_loops): Likewise.
26964         (rtl_doloop): Likewise.
26965         * lto-streamer-in.c (input_cfg): Likewise.
26966         * lto-streamer-out.c (output_cfg): Likewise.
26967         * modulo-sched.c (sms_schedule): Likewise.
26968         * predict.c (tree_estimate_probability): Likewise.
26969         (tree_estimate_probability_driver): Likewise.
26970         (estimate_loops): Likewise.
26971         * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
26972         (move_sese_region_to_fn): Likewise.
26973         (debug_loop_num): Likewise.
26974         * tree-chrec.c (chrec_evaluate): Likewise.
26975         (hide_evolution_in_other_loops_than_loop): Likewise.
26976         (chrec_component_in_loop_num): Likewise.
26977         (reset_evolution_in_loop): Likewise.
26978         (evolution_function_is_invariant_rec_p): Likewise.
26979         * tree-if-conv.c (main_tree_if_conversion): Likewise.
26980         * tree-inline.c (copy_loops): Likewise.
26981         (copy_cfg_body): Likewise.
26982         (tree_function_versioning): Likewise.
26983         * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
26984         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
26985         Likewise.
26986         (add_to_evolution_1): Likewise.
26987         (scev_const_prop): Likewise.
26988         * tree-scalar-evolution.h (get_chrec_loop): Likewise.
26989         * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
26990         * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
26991         (tree_ssa_lim_initialize): Likewise.
26992         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
26993         (verify_loop_closed_ssa): Likewise.
26994         * tree-ssa-loop.c  (tree_ssa_loop_init): Likewise.
26995         (tree_ssa_loop_im): Likewise.
26996         (tree_ssa_loop_unswitch): Likewise.
26997         (tree_vectorize): Likewise.
26998         (check_data_deps): Likewise.
26999         (tree_ssa_loop_ivcanon): Likewise.
27000         (tree_ssa_loop_bounds): Likewise.
27001         (tree_complete_unroll): Likewise.
27002         (tree_complete_unroll_inner): Likewise.
27003         (tree_parallelize_loops): Likewise.
27004         (tree_ssa_loop_prefetch): Likewise.
27005         (tree_ssa_loop_ivopts): Likewise.
27006         * tree-ssa.c (execute_update_addresses_taken): Liekwise.
27007         * tree-vectorizer.c (vectorize_loops): Likewise.
27008
27009 2013-04-29  Mike Frysinger  <vapier@gentoo.org>
27010
27011         * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
27012         (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
27013         * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
27014         with EABI_LINK_SPEC.
27015
27016 2013-04-29  Uros Bizjak  <ubizjak@gmail.com>
27017
27018         PR target/44578
27019         * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
27020         alternative.
27021
27022 2013-04-29  Vladimir Makarov  <vmakarov@redhat.com>
27023
27024         PR target/57097
27025         * lra-constraints.c (process_alt_operands): Discourage a bit more
27026         using memory for pseudos.  Print cost dump for alternatives.
27027         Modify cost values for conflicts with early clobbers.
27028         (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
27029
27030 2013-04-29  Uros Bizjak  <ubizjak@gmail.com>
27031
27032         PR target/57098
27033         * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
27034
27035 2013-04-29  Ian Bolton  <ian.bolton@arm.com>
27036
27037         * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
27038         from/to S register.
27039         (movdi_aarch64): Support LDR/STR from/to D register.
27040
27041 2013-04-29  Ian Bolton  <ian.bolton@arm.com>
27042
27043         * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
27044         or higher by default.
27045
27046 2013-04-29  Richard Biener  <rguenther@suse.de>
27047
27048         PR middle-end/57075
27049         * tree-inline.c (copy_edges_for_bb): Still split the bbs,
27050         even if not adding abnormal edges for calls that can make
27051         abnormal gotos.
27052
27053 2013-04-29  Richard Biener  <rguenther@suse.de>
27054
27055         PR middle-end/57103
27056         * tree-cfg.c (move_stmt_op): Fix condition under which to update
27057         TREE_BLOCK.
27058         (move_stmt_r): Remove redundant checking.
27059
27060 2013-04-29  Teresa Johnson  <tejohnson@google.com>
27061
27062         PR bootstrap/57077
27063         * basic-block.h (apply_scale): New function.
27064         (apply_probability): Use apply_scale.
27065         * gimple-streamer-in.c (input_bb): Ditto.
27066         * lto-streamer-in.c (input_cfg): Ditto.
27067         * lto-cgraph.c (merge_profile_summaries): Ditto.
27068         * tree-optimize.c (execute_fixup_cfg): Ditto.
27069         * tree-inline.c (copy_bb): Update comment to use apply_scale.
27070         (copy_edges_for_bb): Ditto.
27071         (copy_cfg_body): Ditto.
27072
27073 2013-04-29  Tom de Vries  <tom@codesourcery.com>
27074
27075         * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
27076         (replace_block_by): Don't set LOOPS_NEED_FIXUP.
27077         (tail_merge_optimize): Handle current_loops == NULL.
27078
27079 2013-04-26  Jeff Law  <law@redhat.com>
27080
27081         * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
27082         (simplify_cond_using_ranges): Generalize code to simplify
27083         COND_EXPRs where one argument is a constant and the other
27084         is an SSA_NAME created by an integral type conversion.
27085
27086 2013-04-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27087
27088         * config/arm/arm.md (store_minmaxsi): Use only when
27089         optimize_insn_for_size_p.
27090
27091 2013-04-29  Christian Bruel  <christian.bruel@st.com>
27092
27093         PR target/57108
27094         * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
27095
27096 2013-04-29  Richard Biener  <rguenther@suse.de>
27097
27098         PR middle-end/57089
27099         * omp-low.c (expand_omp_taskreg): If the parent function had a broken
27100         loop tree make sure to schedule a fixup for the child as well.
27101         (expand_omp_for_generic): Properly add loops.
27102         (expand_omp_for_static_nochunk): Likewise.
27103         (expand_omp_for_static_chunk): Likewise.
27104         (expand_omp_for): For the degenerate case fixup loops.
27105         (expand_omp_sections): Fix default bb placement in loops.
27106         (expand_omp_atomic_pipeline): Properly add loops.
27107
27108 2013-04-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27109
27110         * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
27111
27112 2013-04-29  Tom de Vries  <tom@codesourcery.com>
27113
27114         * tree-ssa-tail-merge.c: Update header comment.
27115
27116 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
27117
27118         * config/aarch64/arm_neon.h
27119         (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
27120         (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
27121         (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
27122         (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
27123         (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
27124         (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
27125         (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
27126         (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
27127
27128 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
27129
27130         * config/aarch64/aarch64-simd.md
27131         (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
27132         (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
27133         fix_trunc, fixuns_trunc.
27134         (ftrunc<VDQF:mode>2): New.
27135         * config/aarch64/iterators.md (optab): Add fix, fixuns.
27136         (fix_trunc_optab): New.
27137
27138 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
27139
27140         * config/aarch64/aarch64-builtins.c
27141         (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
27142         iceilf, lround, iroundf.
27143
27144 2013-04-29  Uros Bizjak  <ubizjak@gmail.com>
27145
27146         PR target/54349
27147         * config/i386/i386.h (enum ix86_tune_indices)
27148         <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
27149         New, split from X86_TUNE_INTER_UNIT_MOVES.
27150         <X86_TUNE_INTER_UNIT_MOVES>: Remove.
27151         (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
27152         (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
27153         (TARGET_INTER_UNIT_MOVES): Remove.
27154         * config/i386/i386.c (initial_ix86_tune_features): Update.
27155         Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
27156         (ix86_expand_convert_uns_didf_sse): Use
27157         TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
27158         (ix86_expand_vector_init_one_nonzero): Ditto.
27159         (ix86_expand_vector_init_interleave): Ditto.
27160         (inline_secondary_memory_needed): Return true for moves from SSE class
27161         registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
27162         to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
27163         * config/i386/constraints.md (Yi, Ym): Depend on
27164         TARGET_INTER_UNIT_MOVES_TO_VEC.
27165         (Yj, Yn): New constraints.
27166         * config/i386/i386.md (*movdi_internal): Change constraints of
27167         operand 1 from Yi to Yj and from Ym to Yn.
27168         (*movsi_internal): Ditto.
27169         (*movdf_internal): Ditto.
27170         (*movsf_internal): Ditto.
27171         (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
27172         TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
27173         (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
27174         (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
27175         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
27176         * config/i386/sse.md (movdi_to_sse): Ditto.
27177         (sse2_stored): Change constraint of operand 1 from Yi to Yj.
27178         Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
27179         TARGET_INTER_UNIT_MOVES.
27180         (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
27181         (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
27182         instead of TARGET_INTER_UNIT_MOVES.
27183         * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
27184         operand 1 from Yi to Yj and from Ym to Yn.
27185
27186 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
27187
27188         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
27189         (float_truncate_hi_): Likewise.
27190         (float_extend_lo_): Likewise.
27191         (float_truncate_lo_): Likewise.
27192         * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
27193         (aarch64_float_extend_lo_v2df): Likewise.
27194         (vec_unpacks_hi_v4sf): Likewise.
27195         (aarch64_float_truncate_lo_v2sf): Likewise.
27196         (aarch64_float_truncate_hi_v4sf): Likewise.
27197         (vec_pack_trunc_v2df): Likewise.
27198         (vec_pack_trunc_df): Likewise.
27199
27200 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
27201
27202         * config/aarch64/aarch64-builtins.c
27203         (aarch64_fold_builtin): Fold float conversions.
27204         * config/aarch64/aarch64-simd-builtins.def
27205         (floatv2si, floatv4si, floatv2di): New.
27206         (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
27207         * config/aarch64/aarch64-simd.md
27208         (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
27209         * config/aarch64/iterators.md (FLOATUORS): New.
27210         (optab): Add float, floatuns.
27211         (su_optab): Likewise.
27212
27213 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
27214
27215         * config/aarch64/aarch64-builtins.c
27216         (aarch64_builtin_vectorized_function): Use new names for
27217         fcvt builtins.
27218         * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
27219         (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
27220         (fcvtzu): Split as...
27221         (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
27222         (fcvtas): Split as...
27223         (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
27224         (fcvtau): Split as...
27225         (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
27226         (fcvtps): Split as...
27227         (lceilv2sf, lceilv4sf, lceilv2df): ...This.
27228         (fcvtpu): Split as...
27229         (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
27230         (fcvtms): Split as...
27231         (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
27232         (fcvtmu): Split as...
27233         (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
27234         (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
27235         (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
27236         (lfrintnusf, lfrintnudf): Likewise.
27237         * config/aarch64/aarch64-simd.md
27238         (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
27239         define_insn.
27240         (aarch64_fcvt<frint_suffix><su><mode>): Remove.
27241         * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
27242         (fcvt_pattern): Likewise.
27243
27244 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
27245
27246         * config/aarch64/aarch64-simd.md
27247         (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
27248         (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
27249
27250 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
27251
27252         * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
27253         (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
27254         (vrnd<a,m,n,p>_f32): Implement using builtins.
27255         (vrnd<i,x><q>_f<32, 64>): New.
27256
27257 2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
27258
27259         * config/aarch64/aarch64-builtins.c
27260         (aarch64_builtin_vectorized_function): Fold to standard pattern names.
27261         * config/aarch64/aarch64-simd-builtins.def (frintn): New.
27262         (frintz): Rename to...
27263         (btrunc): ...this.
27264         (frintp): Rename to...
27265         (ceil): ...this.
27266         (frintm): Rename to...
27267         (floor): ...this.
27268         (frinti): Rename to...
27269         (nearbyint): ...this.
27270         (frintx): Rename to...
27271         (rint): ...this.
27272         (frinta): Rename to...
27273         (round): ...this.
27274         * config/aarch64/aarch64-simd.md
27275         (aarch64_frint<frint_suffix><mode>): Delete.
27276         (<frint_pattern><mode>2): Convert to insn.
27277         * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
27278         * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
27279         (frint_pattern): Likewise.
27280         (frint_suffix): Likewise.
27281
27282 2013-04-29  Richard Biener  <rguenther@suse.de>
27283
27284         PR tree-optimization/57081
27285         * loop-init.c: Include tree-flow.h.
27286         (loop_optimizer_finalize): Free number of iteration estimates.
27287         * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
27288
27289 2013-04-29  Jakub Jelinek  <jakub@redhat.com>
27290
27291         PR tree-optimization/57083
27292         * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
27293         non-singleton shift count range, zero extend low_bound for uns case.
27294
27295         * config/i386/predicates.md (general_vector_operand): New predicate.
27296         * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
27297         (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
27298         if they aren't nonimmediate operands.  If their original values
27299         satisfy const_vector_equal_evenodd_p, don't shift them.
27300         * config/i386/sse.md (mul<mode>3): Use general_vector_operand
27301         predicates.  For the SSE4.1 case force operands[{1,2}] into registers
27302         if not nonimmediate_operand.
27303         (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
27304         instead of register_operand.
27305         (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
27306
27307 2013-04-28  Eric Botcazou  <ebotcazou@adacore.com>
27308
27309         * stor-layout.c (finalize_size_functions): Allocate a structure and
27310         reset cfun before dumping the functions.
27311
27312 2013-04-27  Jakub Jelinek  <jakub@redhat.com>
27313
27314         * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
27315
27316         PR target/56866
27317         * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
27318         use xop_pmacsdqh if uns_p.
27319         * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
27320         the immediate rotate count.
27321
27322 2013-04-26  Vladimir Makarov  <vmakarov@redhat.com>
27323
27324         * rtl.h (struct rtx_def): Add comment for field jump.
27325         (LRA_SUBREG_P): New macro.
27326         * recog.c (register_operand): Check LRA_SUBREG_P.
27327         * lra.c (lra): Add note at the end of RTL code. Align non-empty
27328         stack frame.
27329         * lra-spills.c (lra_spill): Align stack after spilling pseudos.
27330         (lra_final_code_change): Skip subreg change for operators.
27331         * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
27332         if there are no operand changes.
27333         * lra-constraints.c (curr_insn_set): New.
27334         (match_reload): Set LRA_SUBREG_P.
27335         (emit_spill_move): Ditto.
27336         (check_and_process_move): Use curr_insn_set. Process only single
27337         set insns.  Don't initialize sec_mem_p and change_p.
27338         (simplify_operand_subreg): Use LRA_SUBREG_P.
27339         (reg_in_class_p): New function.
27340         (process_alt_operands): Use it.  Use #if HAVE_ATTR_enabled instead
27341         of #ifdef.  Add code to remove cycling.
27342         (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
27343         non-null disp.  Reload inner instead of disp when base and index
27344         are null.  Try to put lo_sum into register.
27345         (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
27346         (check_and_process_move): Move code for move cost check to
27347         simple_move_p.  Remove equiv_substitution.
27348         (simple_move_p): New function.
27349         (curr_insn_transform): Initialize sec_mem_p and change_p.  Set up
27350         curr_insn_set.  Call check_and_process_move only for single set
27351         insns.  Use the new function.  Move call of check_and_process_move
27352         after operand equiv substitution and address process.
27353
27354 2013-04-26  Jakub Jelinek  <jakub@redhat.com>
27355
27356         PR go/57045
27357         * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
27358         with nonlocal goto receivers or returns twice calls, ignore
27359         unininitialized values from abnormal edges to nl goto receiver
27360         or returns twice call.
27361
27362 2013-04-26  Jakub Jelinek  <jakub@redhat.com>
27363
27364         PR tree-optimization/57051
27365         * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
27366         and VEC_RSHIFT_EXPR if shift count is a multiple of element
27367         bitsize.
27368
27369 2013-04-26  Richard Biener  <rguenther@suse.de>
27370
27371         * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
27372         (expand_omp_taskreg): Likewise.  Mark loops for fixup.
27373         * tree-cfg.c (move_block_to_fn): Remap loop fathers.
27374         (fixup_loop_arrays_after_move): New function.
27375         (move_sese_region_to_fn): Properly outline the loop tree parts
27376         of the SESE region.
27377
27378 2013-04-26  Uros Bizjak  <ubizjak@gmail.com>
27379
27380         * config/i386/i386.md (type, unit): Fix long lines.
27381
27382 2013-04-26  Richard Biener  <rguenther@suse.de>
27383
27384         * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
27385         (lto-streamer-out.o): Likewise.
27386         * cfgloop.c (init_loops_structure): Export, add struct function
27387         argument and adjust.
27388         (flow_loops_find): Adjust.
27389         * cfgloop.h (enum loop_estimation): Add EST_LAST.
27390         (init_loops_structure): Declare.
27391         * lto-streamer-in.c: Include cfgloop.h.
27392         (input_cfg): Input the loop tree.
27393         * lto-streamer-out.c: Include cfgloop.h.
27394         (output_cfg): Output the loop tree.
27395         (output_struct_function_base): Do not drop PROP_loops.
27396
27397 2013-03-26  Richard Biener  <rguenther@suse.de>
27398
27399         * tree-cfg.c (execute_build_cfg): Build the loop tree.
27400         (pass_build_cfg): Provide PROP_loops.
27401         (move_sese_region_to_fn): Remove loops that are outlined into fn
27402         for now.
27403         * tree-inline.c: Include cfgloop.h.
27404         (initialize_cfun): Do not drop PROP_loops.
27405         (copy_loops): New function.
27406         (copy_cfg_body): Copy loop structure.
27407         (tree_function_versioning): Initialize destination loop tree.
27408         * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
27409         (pass_parallelize_loops): Do IL verification.
27410         * loop-init.c (loop_optimizer_init): Fixup loops if required.
27411         * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
27412         the CFG make sure we fixup loops as well.
27413         * tree-ssa-tail-merge.c: Include cfgloop.h.
27414         (replace_block_by): When merging loop latches mark loops for fixup.
27415         * lto-streamer-out.c (output_struct_function_base): Drop
27416         PROP_loops for now.
27417         * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
27418         (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
27419         * ipa-split.c: Include cfgloop.h.
27420         (split_function): Add the new return block to the loop tree root.
27421         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
27422         whether we have removed the forwarder block.
27423         (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
27424         * cfgloop.h (place_new_loop): Declare.
27425         * cfgloopmanip.c (place_new_loop): Export.
27426         * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
27427         (tree-switch-conversion.o): Likewise.
27428         (tree-complex.o): Likewise.
27429         (tree-inline.o): Likewise.
27430         (tree-ssa-tailmerge.o): Likewise.
27431         (ipa-split.o): Likewise.
27432         (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
27433         (tree-ssa-copy.o): Likewise.
27434         * tree-switch-conversion.c: Include cfgloop.h
27435         (process_switch): If we emit a bit-test cascade, schedule loops
27436         for fixup.
27437         * tree-complex.c: Include cfgloop.h.
27438         (expand_complex_div_wide): Properly add new basic-blocks to loops.
27439         * asan.c: Include cfgloop.h.
27440         (create_cond_insert_point): Properly add new basic-blocks to
27441         loops, schedule loop fixup.
27442         * cfgloop.c (verify_loop_structure): Check that looks are not
27443         marked for fixup.
27444         * omp-low.c (expand_parallel_call): Properly add new basic-blocks
27445         to loops.
27446         (expand_omp_for_generic): Likewise.
27447         (expand_omp_sections): Likewise.
27448         (expand_omp_atomic_pipeline): Schedule loops for fixup.
27449         * tree-ssa-copy.c: Include tree-scalar-evolution.h.
27450         (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
27451         is initialized, not when loops are present.
27452         * tree-parloops.c (parallelize_loops): Remove checking here.
27453         * passes.c (init_optimization_passes): Schedule a copy-propagation
27454         pass before complete unrolling of inner loops.
27455
27456 2013-04-26  Jakub Jelinek  <jakub@redhat.com>
27457
27458         * Makefile.in (toplev.o): Depend on diagnostic-color.h.
27459         * diagnostic-color.c (should_colorize): Remove _WIN32 version.
27460         (colorize_init): Add argument to _WIN32 version.
27461         * toplev.c: Include diagnostic-color.h.
27462         (process_options): Default to -fdiagnostics-color=auto if
27463         GCC_COLORS env var is in the environment.
27464         * common.opt (fdiagnostics-color=): Add Var and Init.
27465         * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
27466         env var is in the environment, the default is auto rather than never.
27467
27468         * diagnostic.h (file_name_as_prefix): Add context argument.
27469         * diagnostic.c (file_name_as_prefix): Likewise.  Colorize
27470         the string as locus.
27471         * langhooks.c (lhd_print_error_function): Adjust caller.
27472
27473 2013-04-25  Lawrence Crowl  <crowl@google.com>
27474
27475         * var-tracking.c (shared_hash_def::htab):
27476         Change type to hash_table.  Update dependent calls and types.
27477
27478 2013-04-25  Lawrence Crowl  <crowl@google.com>
27479
27480         * Makefile.in: Update as needed below.
27481
27482         * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
27483         Move declaration to after the type's method definitons.
27484
27485         * attribs.c (htab_t scoped_attributes::attribute_hash):
27486         Change type to hash_table.  Update dependent calls and types.
27487
27488         * bitmap.c (htab_t bitmap_desc_hash):
27489         Change type to hash_table.  Update dependent calls and types.
27490
27491         * cselib.c (htab_t cselib_hash_table):
27492         Change type to hash_table.  Update dependent calls and types.
27493
27494         * data-streamer.h (struct string_slot): Move to lto-streamer.h.
27495         (hash_string_slot_node): Move implementation into lto-streamer.h
27496         struct string_slot_hasher.
27497         (eq_string_slot_node): Likewise.
27498
27499         * data-streamer-out.c: Update output_block::string_hash_table
27500         dependent calls and types.
27501
27502         * dwarf2cfi.c (htab_t trace_index):
27503         Change type to hash_table.  Update dependent calls and types.
27504
27505         * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
27506         Change type to hash_table.  Update dependent calls and types.
27507         (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
27508         (htab_t optimize_external_refs::map): Likewise.
27509         (htab_t output_comp_unit::extern_map): Likewise.
27510         (htab_t output_comdat_type_unit::extern_map): Likewise.
27511         (htab_t output_macinfo::macinfo_htab): Likewise.
27512         (htab_t optimize_location_lists::htab): Likewise.
27513         (htab_t dwarf2out_finish::comdat_type_table): Likewise.
27514
27515         * except.c (htab_t ehspec_hash_type):
27516         Change type to hash_table.  Update dependent calls and types.
27517         (assign_filter_values::ttypes): Likewise.
27518         (assign_filter_values::ehspec): Likewise.
27519         (sjlj_assign_call_site_values::ar_hash): Likewise.
27520         (convert_to_eh_region_ranges::ar_hash): Likewise.
27521
27522         * gcse.c (htab_t pre_ldst_table):
27523         Change type to hash_table.  Update dependent calls and types.
27524
27525         * ggc-common.c (htab_t saving_htab):
27526         Change type to hash_table.  Update dependent calls and types.
27527         (htab_t loc_hash): Likewise.
27528         (htab_t ptr_hash): Likewise.
27529         (call_count): Rename ggc_call_count.
27530         (call_alloc): Rename ggc_call_alloc.
27531         (loc_descriptor): Rename make_loc_descriptor.
27532         (add_statistics): Rename ggc_add_statistics.
27533
27534         * ggc-common.c (saving_htab):
27535         Change type to hash_table.  Update dependent calls and types.
27536
27537         * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
27538         (push_gimplify_context): Likewise.
27539         (pop_gimplify_context): Likewise.
27540         (struct gimple_temp_hash_elt): Added.
27541         (struct gimplify_hasher): Likewise.
27542         (struct gimplify_ctx.temp_htab):
27543         Change type to hash_table.  Update dependent calls and types.
27544
27545         * gimple-fold.c: Include gimplify-ctx.h.
27546
27547         * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
27548         Change type to hash_table.  Update dependent calls and types.
27549         (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
27550         avoid potential global name collision.
27551
27552         * gimplify.c: Include gimplify-ctx.h.
27553         (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
27554         (htab_t gimplify_ctx::temp_htab):
27555         Update dependent calls and types for new type hash_table.
27556         (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
27557         (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
27558
27559         * gimplify-ctx.h: New.
27560         (struct gimple_temp_hash_elt): Move from gimplify.c.
27561         (class gimplify_hasher): New.
27562         (struct gimplify_ctx): Move from gimple.h.
27563         (htab_t gimplify_ctx::temp_htab):
27564         Change type to hash_table.  Update dependent calls and types.
27565
27566         * graphite-clast-to-gimple.c: Include graphite-htab.h.
27567         (htab_t ivs_params::newivs_index):
27568         Change type to hash_table.  Update dependent calls and types.
27569         (htab_t ivs_params::params_index): Likewise.
27570         (htab_t print_generated_program::params_index): Likewise.
27571         (htab_t gloog::newivs_index): Likewise.
27572         (htab_t gloog::params_index): Likewise.
27573
27574         * graphite.c: Include graphite-htab.h.
27575         4htab_t graphite_transform_loops::bb_pbb_mapping):
27576         Change type to hash_table.  Update dependent calls and types.
27577
27578         * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
27579         (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
27580         (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
27581
27582         * graphite-dependences.c: Include graphite-htab.h.
27583         (loop_is_parallel_p): Change hash table type of parameter.
27584
27585         * graphite-htab.h: New.
27586         (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
27587         (extern find_pbb_via_hash): Move from graphite-poly.h.
27588         (extern loop_is_parallel_p): Move from graphite-poly.h.
27589         (extern get_loop_body_pbbs): Move from graphite-poly.h.
27590
27591         * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
27592         (extern loop_is_parallel_p): Move to graphite-htab.h.
27593         (extern get_loop_body_pbbs): Move to graphite-htab.h.
27594
27595         * haifa-sched.c (htab_t delay_htab):
27596         Change type to hash_table.  Update dependent calls and types.
27597         (htab_t delay_htab_i2): Likewise.
27598
27599         * ira-color.c (htab_t allocno_hard_regs_htab):
27600         Change type to hash_table.  Update dependent calls and types.
27601
27602         * ira-costs.c (htab_t cost_classes_htab):
27603         Change type to hash_table.  Update dependent calls and types.
27604
27605         * loop-invariant.c (htab_t merge_identical_invariants::eq):
27606         Change type to hash_table.  Update dependent calls and types.
27607
27608         * loop-iv.c (htab_t bivs):
27609         Change type to hash_table.  Update dependent calls and types.
27610
27611         * loop-unroll.c (htab_t opt_info::insns_to_split):
27612         Change type to hash_table.  Update dependent calls and types.
27613         (htab_t opt_info::insns_with_var_to_expand): Likewise.
27614
27615         * lto-streamer.h (struct string_slot): Move from data-streamer.h
27616         (struct string_slot_hasher): New.
27617         (htab_t output_block::string_hash_table):
27618         Change type to hash_table.  Update dependent calls and types.
27619
27620         * lto-streamer-in.c (freeing_string_slot_hasher): New.
27621         (htab_t file_name_hash_table):
27622         Change type to hash_table.  Update dependent calls and types.
27623
27624         * lto-streamer-out.c: Update output_block::string_hash_table dependent
27625         calls and types.
27626
27627         * lto-streamer.c (htab_t tree_htab):
27628         Change type to hash_table.  Update dependent calls and types.
27629
27630         * omp-low.c: Include gimplify-ctx.h.
27631
27632         * passes.c (htab_t name_to_pass_map):
27633         Change type to hash_table.  Update dependent calls and types.
27634         (pass_traverse): Rename to passes_pass_traverse.
27635
27636         * plugin.c (htab_t event_tab):
27637         Change type to hash_table.  Update dependent calls and types.
27638
27639         * postreload-gcse.c (htab_t expr_table):
27640         Change type to hash_table.  Update dependent calls and types.
27641         (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
27642
27643         * sese.c (debug_rename_map_1): Make extern.
27644         (htab_t copy_bb_and_scalar_dependences::rename_map):
27645         Change type to hash_table.  Update dependent calls and types.
27646
27647         * sese.h (extern debug_rename_map): Move to .c file.
27648
27649         * store-motion.c (htab_t store_motion_mems_table):
27650         Change type to hash_table.  Update dependent calls and types.
27651
27652         * trans-mem.c (htab_t tm_new_mem_hash):
27653         Change type to hash_table.  Update dependent calls and types.
27654
27655         * tree-browser.c (htab_t TB_up_ht):
27656         Change type to hash_table.  Update dependent calls and types.
27657
27658         * tree-cfg.c (htab_t discriminator_per_locus):
27659         Change type to hash_table.  Update dependent calls and types.
27660
27661         * tree-complex.c: Include tree-hasher.h
27662         (htab_t complex_variable_components):
27663         Change type to hash_table.  Update dependent calls and types.
27664
27665         * tree-eh.c (htab_t finally_tree):
27666         Change type to hash_table.  Update dependent calls and types.
27667
27668         * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
27669         struct int_tree_hasher.
27670         (extern int_tree_map_eq): Likewise.
27671         (uid_decl_map_hash): Removed.
27672         (extern decl_tree_map_eq): Likewise.
27673
27674         * tree-hasher.h: New.
27675         (struct int_tree_hasher): New.
27676         (typedef int_tree_htab_type): New.
27677
27678         * tree-inline.c: Include gimplify-ctx.h.
27679
27680         * tree-mudflap.c: Include gimplify-ctx.h.
27681
27682         * tree-parloops.c: Include tree-hasher.h.
27683         (htab_t eliminate_local_variables_stmt::decl_address):
27684         Change type to hash_table.  Update dependent calls and types.
27685         (htab_t separate_decls_in_region::decl_copies): Likewise.
27686
27687         * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
27688         Change type to hash_table.  Update dependent calls and types.
27689
27690         * tree-sra.c (candidates):
27691         Change type to hash_table.  Update dependent calls and types.
27692
27693         * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
27694         in tree-flow.h.
27695         (int_tree_map_hash): Likewise.
27696
27697         * tree-ssa-dom.c (htab_t avail_exprs):
27698         Change type to hash_table.  Update dependent calls and types.
27699
27700         * tree-ssa-live.c (var_map_base_init::tree_to_index):
27701         Change type to hash_table.  Update dependent calls and types.
27702
27703         * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
27704         Change type to hash_table.  Update dependent calls and types.
27705
27706         * tree-ssa-phiopt.c (seen_ssa_names):
27707         Change type to hash_table.  Update dependent calls and types.
27708
27709         * tree-ssa-strlen.c (decl_to_stridxlist_htab):
27710         Change type to hash_table.  Update dependent calls and types.
27711
27712         * tree-ssa-uncprop.c (equiv):
27713         Change type to hash_table.  Update dependent calls and types.
27714
27715 2013-04-25  Jakub Jelinek  <jakub@redhat.com>
27716
27717         PR rtl-optimization/57003
27718         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
27719         call note_stores with kill_clobbered_value callback again after
27720         killing regs_invalidated_by_call.
27721
27722 2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
27723
27724         * config/aarch64/aarch64-simd.md
27725         (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
27726         (aarch64_simd_bsl<mode>): Likewise.
27727         * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
27728
27729 2013-04-25  Marek Polacek  <polacek@redhat.com>
27730
27731         PR tree-optimization/57066
27732         * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
27733
27734 2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
27735
27736         * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
27737
27738 2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
27739
27740         * config/aarch64/aarch64-builtins.c
27741         (aarch64_fold_builtin): New.
27742         * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
27743         * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
27744         * config/aarch64/aarch64-simd-builtins.def (abs): New.
27745         * config/aarch64/arm_neon.h
27746         (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
27747
27748 2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
27749             Tejas Belagod  <tejas.belagod@arm.com>
27750
27751         * config/aarch64/aarch64-builtins.c
27752         (aarch64_gimple_fold_builtin): New.
27753         * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
27754         * config/aarch64/aarch64-simd-builtins.def (addv): New.
27755         * config/aarch64/aarch64-simd.md (addpv4sf): New.
27756         (addvv4sf): Update.
27757         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
27758
27759 2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
27760
27761         * config/aarch64/aarch64.md
27762         (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
27763
27764 2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
27765
27766         * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
27767         (*ngcsi_uxtw): New pattern.
27768
27769 2013-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27770             Julian Brown  <julian@codesourcery.com>
27771
27772         * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
27773         (TB_DREG): Add T_V4HF.
27774         (v4hf_UP): New macro.
27775         (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
27776         (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
27777         Handle initialisation of V4HF. Adjust initialisation of reinterpret
27778         built-ins.
27779         (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
27780         (arm_vector_mode_supported_p): Handle V4HF.
27781         (arm_mangle_map): Handle V4HFmode.
27782         * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
27783         * config/arm/arm_neon_builtins.def: Add entries for
27784         vcvtv4hfv4sf, vcvtv4sfv4hf.
27785         * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
27786         (neon_vcvtv4hfv4sf): Likewise.
27787         * config/arm/neon-gen.ml: Handle half-precision floating point
27788         features.
27789         * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
27790         * config/arm/arm_neon.h: Regenerate.
27791         * config/arm/neon.ml (type elts): Add F16.
27792         (type vectype): Add T_float16x4, T_floatHF.
27793         (type vecmode): Add V4HF.
27794         (type features): Add Requires_FP_bit feature.
27795         (elt_width): Handle F16.
27796         (elt_class): Likewise.
27797         (elt_of_class_width): Likewise.
27798         (mode_of_elt): Refactor.
27799         (type_for_elt): Handle F16, fix error messages.
27800         (vectype_size): Handle T_float16x4.
27801         (vcvt_sh): New function.
27802         (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
27803         (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
27804         (string_of_mode): Handle V4HF.
27805         * doc/arm-neon-intrinsics.texi: Regenerate.
27806
27807 2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
27808
27809         * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
27810         format specifier in 'X' case.
27811
27812 2013-04-25  Alan Modra  <amodra@gmail.com>
27813
27814         PR target/57052
27815         * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
27816         rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
27817         (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
27818         Repeat for many other rotate/shift and mask patterns using subregs.
27819         Name lshiftrt insns.
27820         (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
27821         on WORDS_BIG_ENDIAN.
27822
27823 2013-04-25  Alan Modra  <amodra@gmail.com>
27824
27825         * config.gcc: Support little-endian powerpc-linux targets.
27826         * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
27827         (LINK_OS_LINUX_SPEC): Define.
27828         * config/rs6000/linuxspe.h (TARGET_DEFAULT):
27829         Preserve MASK_LITTLE_ENDIAN.
27830         * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
27831         * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
27832         * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
27833         (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
27834         (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
27835         * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
27836         Correct fp word order for little-endian.  Don't shift toc entries
27837         smaller than a word for little-endian.
27838         * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
27839         (bswapdi2 splits): Correct low-part subreg for little-endian.
27840         Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
27841         low/high where such is correct only for be.
27842         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
27843         little-endian for -mcall-aixdesc.
27844
27845 2013-04-25  Alan Modra  <amodra@gmail.com>
27846
27847         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
27848         replace_equiv_address_nv.
27849
27850 2013-04-25  Alan Modra  <amodra@gmail.com>
27851
27852         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
27853
27854 2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
27855
27856         Revert:
27857         2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
27858         * rtl.h (struct rtx_def): ...
27859
27860 2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
27861
27862         PR rtl-optimizations/57046
27863         * lra-constraints (split_reg): Set up lra_risky_transformations_p
27864         for multi-reg splits.
27865
27866 2013-04-24  H.J. Lu  <hongjiu.lu@intel.com>
27867
27868         * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
27869
27870 2013-04-24  Sterling Augustine  <saugustine@google.com>
27871
27872         * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
27873         (comp_dir_string, debug_str_dwo_section): New.
27874         (DEBUG_STR_DWO_SECTION): Rename to ...
27875         (DEBUG_DWO_STR_SECTION): ... this.
27876         (DEBUG_NORM_STR_SECTION): Delete.
27877         (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
27878         (DEBUG_STR_DWO_SECTION_FLAGS): New.
27879         (find_AT_string): Move most logic to ...
27880         (find_AT_string_in_table): ... here.  New.
27881         (add_top_level_skeleton_die_attrs): Call comp_dir_string and
27882         add_skeleton_AT_string.  Delete logic.
27883         (output_skeleton_debug_sections): Remove call to
27884         add_top_level_skeleton_die_attrs.
27885         (add_comp_dir_attribute): Move logic to comp_dir_string.
27886         (dwarf2out_init): Initialize debug_str_dwo_section.
27887         (output_indirect_string): Call find_string_form.
27888         (output_indirect_strings): Rewrite.
27889         (prune_unused_types): Empty skeleton_debug_str_hash.
27890         Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
27891         (dwarf2out_finish):  Call output_indirect_strings.
27892
27893 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
27894
27895         * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
27896
27897 2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
27898
27899         * rtl.h (struct rtx_def): Add comment for field jump.
27900         (LRA_SUBREG_P): New macro.
27901         * recog.c (register_operand): Check LRA_SUBREG_P.
27902         * lra.c (lra): Add note at the end of RTL code. Align non-empty
27903         stack frame.
27904         * lra-spills.c (lra_spill): Align stack after spilling pseudos.
27905         (lra_final_code_change): Skip subreg change for operators.
27906         * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
27907         if there are no operand changes.
27908         * lra-constraints.c (curr_insn_set): New.
27909         (match_reload): Set LRA_SUBREG_P.
27910         (emit_spill_move): Ditto.
27911         (check_and_process_move): Use curr_insn_set. Process only single
27912         set insns.  Don't initialize sec_mem_p and change_p.
27913         (simplify_operand_subreg): Use LRA_SUBREG_P.
27914         (reg_in_class_p): New function.
27915         (process_alt_operands): Use it.  Use #if HAVE_ATTR_enabled instead
27916         of #ifdef.  Add code to remove cycling.
27917         (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
27918         non-null disp.  Reload inner instead of disp when base and index
27919         are null.  Try to put lo_sum into register.
27920         (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
27921         (check_and_process_move): Move code for move cost check to
27922         simple_move_p.  Remove equiv_substitution.
27923         (simple_move_p): New function.
27924         (curr_insn_transform): Initialize sec_mem_p and change_p.  Set up
27925         curr_insn_set.  Call check_and_process_move only for single set
27926         insns.  Use the new function.  Move call of check_and_process_move
27927         after operand equiv substitution and address process.
27928
27929 2013-04-24  James Greenhalgh  <james.greenhalgh@arm.com>
27930
27931         * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
27932         (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
27933         (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
27934
27935 2013-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
27936
27937         * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
27938
27939 2013-04-24  Marek Polacek  <polacek@redhat.com>
27940
27941         * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
27942         * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
27943         (select_loops_exit_conditions): Likewise.
27944         (number_of_iterations_for_all_loops): Likewise.
27945         (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
27946         (scev_analysis): Likewise.
27947
27948 2013-04-02  Catherine Moore  <clm@codesourcery.com>
27949             Chao-ying Fu  <fu@mips.com>
27950
27951         * config/mips/micromips.md (jraddiusp): New pattern.
27952         * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
27953         instruction if possible.
27954
27955 2013-04-24  Alan Modra  <amodra@gmail.com>
27956
27957         * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
27958
27959 2013-04-24  Julian Brown  <julian@codesourcery.com>
27960             Chung-Lin Tang  <cltang@codesourcery.com>
27961
27962         * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
27963         dependency behavior in enumeration type DIE generation. Add TODO note
27964         to comments about future DW_FORM_sdata/udata re-work of related code.
27965
27966 2013-04-23  Lawrence Crowl  <crowl@google.com>
27967
27968         * Makefile.in: Update as needed below.
27969
27970         * hash-table.h (class hash_table):
27971         Correct many methods with parameter types compare_type to the correct
27972         value_type.  (Correct code was unlikely to notice the change.)
27973         (hash_table::elements_with_deleted) New.
27974         (class hashtable::iterator): New.
27975         (hashtable::begin()): New.
27976         (hashtable::end()): New.
27977         (FOR_EACH_HASH_TABLE_ELEMENT): New.
27978
27979         * statistics.c (statistics_hashes):
27980         Change type to hash_table.  Update dependent calls and types.
27981
27982         * tree-into-ssa.c (var_infos):
27983         Change type to hash_table.  Update dependent calls and types.
27984
27985         * tree-ssa-coalesce.c (struct coalesce_list_d.list):
27986         Change type to hash_table.  Update dependent calls and types.
27987
27988         * tree-ssa-loop-im.c (struct mem_ref.refs):
27989         Change type to hash_table.  Update dependent calls and types.
27990
27991         * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
27992         Change type to hash_table.  Update dependent calls and types.
27993
27994         * tree-ssa-sccvn.c (vn_tables_s::nary):
27995         Change type to hash_table.  Update dependent calls and types.
27996         (vn_tables_s::phis): Likewise.
27997         (vn_tables_s::references): Likewise.
27998
27999         * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
28000         (vn_reference_eq): Update parameter and return types.
28001
28002         * tree-ssa-structalias.c (pointer_equiv_class_table):
28003         Change type to hash_table.  Update dependent calls and types.
28004         (location_equiv_class_table): Likewise.
28005
28006         * tree-vect-data-refs.c: Consequential changes for making
28007         peeling a hash_table.
28008
28009         * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
28010         (destroy_loop_vec_info): Dependent hash_table update.
28011
28012         * tree-vectorizer.h (peeling_htab):
28013         Change type to hash_table.  Update dependent calls and types.
28014
28015 2013-04-23  Shiva Chen  <shiva0217@gmail.com>
28016
28017         * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
28018         to check the register content is equal or not.
28019         * lra-constraints.c (match_reload): Use lra_assign_reg_val
28020         to assign register content record.
28021         * lra-eliminations.c (update_reg_eliminate): Use
28022         lra_update_reg_val_offset to update register content offset.
28023         * lra-int.h (struct lra_reg): Add offset member.
28024         (lra_reg_val_equal_p): New static inline function.
28025         (lra_update_reg_val_offset): New static inline function.
28026         (lra_assign_reg_val): New static inline function.
28027         * lra.c (lra_create_new_reg): Use lra_assign_reg_val
28028         to assign register content record.
28029         (initialize_lra_reg_info_element): Initial offset to zero.
28030
28031 2013-04-23  Catherine Moore  <clm@codesourcery.com>
28032
28033         * config/mips/mips.md (*movhi_internal, *movqi_internal): New
28034         operands.  Record compression.
28035
28036 2013-04-23  Xinliang David Li  <davidxl@google.com>
28037
28038         * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
28039
28040 2013-04-23  Richard Biener  <rguenther@suse.de>
28041
28042         PR middle-end/57036
28043         * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
28044         parameter, only add abnormal goto edges from the copied body
28045         if the call could perform abnormal gotos.
28046         (copy_cfg_body): Adjust.
28047
28048 2013-04-23  Sofiane Naci  <sofiane.naci@arm.com>
28049
28050         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
28051
28052 2013-04-23  Andreas Schwab  <schwab@linux-m68k.org>
28053
28054         * coretypes.h (gimple_stmt_iterator): Add struct to make
28055         compatible with C.
28056
28057 2013-04-23  Richard Biener  <rguenther@suse.de>
28058
28059         PR tree-optimization/57026
28060         * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
28061         from SSA names occuring in abnormal PHI nodes.
28062
28063 2013-04-22  Andi Kleen  <ak@linux.intel.com>
28064
28065         * lto/lto.c (print_lto_report_1): Fix LTO report names.
28066
28067 2013-04-22  Andi Kleen  <ak@linux.intel.com>
28068
28069         * lto/lto.c (print_lto_report_1): Declare early.
28070         (read_cgraph_and_symbols): Call print_lto_report_1 early.
28071
28072 2013-04-22  Andi Kleen  <ak@linux.intel.com>
28073
28074         * common.opt (-flto-report-wpa): Add.
28075         * doc/invoke.texi (-flto-report-wpa): Add.
28076         * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
28077         (lto_main): dito.
28078
28079 2013-04-22  Xinliang David Li  <davidxl@google.com>
28080
28081         * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
28082         * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
28083         * Makefile.in: New dependency
28084
28085             David Daney <ddaney.cavm@gmail.com>
28086
28087         * configure.ac (gcc_cv_as_micromips_support):  Use the
28088         --fatal-warnings option.
28089         * configure: Regenerate.
28090
28091 2013-04-22  Marek Polacek  <polacek@redhat.com>
28092
28093         PR sanitizer/56990
28094         * tsan.c (instrument_expr): Don't instrument expression
28095         in case its size is zero.
28096
28097 2013-04-22  Uros Bizjak  <ubizjak@gmail.com>
28098
28099         PR target/57032
28100         Revert:
28101         2013-03-17  Uros Bizjak  <ubizjak@gmail.com>
28102
28103         * config/alpha/alpha.c (TARGET_LRA_P): New define.
28104
28105 2013-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
28106
28107         * coretypes.h (gimple_stmt_iterator_d): Forward declare.
28108         (gimple_stmt_iterator): New typedef.
28109         * gimple.h (gimple_stmt_iterator): Rename to...
28110         (gimple_stmt_iterator_d): ... This.
28111         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
28112         trees be valid for GIMPLE and GENERIC.
28113         (TARGET_GIMPLE_FOLD_BUILTIN): New.
28114         * gimple-fold.c (gimple_fold_call): Call target hook
28115         gimple_fold_builtin.
28116         * hooks.c (hook_bool_gsiptr_false): New.
28117         * hooks.h (hook_bool_gsiptr_false): New.
28118         * target.def (fold_stmt): New.
28119         * doc/tm.texi: Regenerate.
28120
28121 2013-04-22  Vladimir Makarov  <vmakarov@redhat.com>
28122
28123         PR target/57018
28124         * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
28125         a set sp if no stack realignment.
28126
28127 2013-04-22  Nick Clifton  <nickc@redhat.com>
28128
28129         * config.gcc (tilegx-linux): Extend extra_objs rather than
28130         overwriting it.
28131         (tilepro-linux): Likewise.
28132
28133 2013-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
28134
28135         * config/aarch64/aarch64-builtins.c
28136         (CF): Remove.
28137         (CF0, CF1, CF2, CF3, CF4, CF10): New.
28138         (VAR<1-12>): Add MAP parameter.
28139         (BUILTIN_*): Likewise.
28140         * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
28141         * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
28142         (aarch64_ushl_n<mode>): Likewise.
28143         (aarch64_sshr_n<mode>): Likewise.
28144         (aarch64_ushr_n<mode>): Likewise.
28145         (aarch64_<maxmin><mode>): Likewise.
28146         (aarch64_sqrt<mode>): Likewise.
28147         * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
28148         (vshr<q>_n_*): Likewise.
28149
28150 2013-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
28151
28152         * config/aarch64/aarch64-builtins.c
28153         (aarch64_simd_builtin_type_mode): Handle SF types.
28154         (sf_UP): Define.
28155         (BUILTIN_GPF): Define.
28156         (aarch64_init_simd_builtins): Handle SF types.
28157         * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
28158         (frecps): Likewise.
28159         (frecpx): Likewise.
28160         * config/aarch64/aarch64-simd.md
28161         (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
28162         (aarch64_frecpe<mode>): New.
28163         (aarch64_frecps<mode>): Likewise.
28164         * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
28165         (v8type): Add frecp<esx>.
28166         (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
28167         (aarch64_frecps<mode>): Likewise.
28168         * config/aarch64/iterators.md (FRECP): New.
28169         (frecp_suffix): Likewise.
28170         * config/aarch64/arm_neon.h
28171         (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
28172
28173 2013-04-22  Christian Bruel  <christian.bruel@st.com>
28174
28175         PR target/56995
28176         * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
28177         (REG_CLASS_NAMES): Idem.
28178         (REG_CLASS_CONTENTS): Idem.
28179         (REGCLASS_HAS_FP_REG): Idem.
28180         * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
28181         (sh_conditional_register_usage): Idem.
28182
28183 2013-04-21  Jeff Law  <law@redhat.com>
28184
28185         * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
28186         (ssa_forward_propagate_and_combine): Use it.
28187
28188 2013-04-19  Vladimir Makarov  <vmakarov@redhat.com>
28189
28190         * lra.c: Update the flow chart diagram.
28191
28192 2013-04-19  Vladimir Makarov  <vmakarov@redhat.com>
28193
28194         PR rtl-optimization/56847
28195         * lra-constraints.c (process_alt_operands): Discourage alternative
28196         with non-matche doffsettable memory constraint fro memory with
28197         known offset.
28198
28199 2013-04-19  Richard Biener  <rguenther@suse.de>
28200
28201         PR tree-optimization/56982
28202         * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
28203         function.
28204         * gimplify.c (gimplify_call_expr): Notice special calls.
28205         (gimplify_modify_expr): Likewise.
28206         * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
28207         abnormal control flow receivers.
28208         (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
28209         in the same way as cfun->has_nonlocal_labels.
28210         (gimple_purge_dead_abnormal_call_edges): Likewise.
28211         (stmt_starts_bb_p): Make setjmp-like abnormal control flow
28212         receivers start a basic-block.
28213
28214 2013-04-19  Richard Biener  <rguenther@suse.de>
28215
28216         * tree-vectorizer.h (struct _slp_instance): Move load_permutation
28217         member ...
28218         (struct _slp_tree): ... here.  Make it a vector of unsigned ints.
28219         (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
28220         (SLP_TREE_LOAD_PERMUTATION): Add.
28221         (vect_transform_slp_perm_load): Adjust prototype.
28222         * tree-vect-slp.c (vect_free_slp_tree): Adjust.
28223         (vect_free_slp_instance): Likewise.
28224         (vect_create_new_slp_node): Likewise.
28225         (vect_supported_slp_permutation_p): Remove.
28226         (vect_slp_rearrange_stmts): Adjust.
28227         (vect_supported_load_permutation_p): Likewise.  Inline
28228         vect_supported_slp_permutation_p here.
28229         (vect_analyze_slp_instance): Compute load permutations per
28230         slp node instead of per instance.
28231         (vect_get_slp_defs): Adjust.
28232         (vect_transform_slp_perm_load): Likewise.
28233         (vect_schedule_slp_instance): Remove redundant code.
28234         (vect_schedule_slp): Remove hack for PR56270, add it ...
28235         * tree-vect-stmts.c (vectorizable_load): ... here, do not
28236         CSE loads for SLP.  Adjust.
28237
28238 2013-04-19  Greta Yorsh  <Greta.Yorsh@arm.com>
28239
28240         * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
28241         spelling in two comments.
28242
28243 2013-04-19  Greta Yorsh  <Greta.Yorsh@arm.com>
28244
28245         PR target/56797
28246         * config/arm/arm.c (load_multiple_sequence): Require SP
28247         as base register for loads if SP is in the register list.
28248
28249 2013-04-19  Martin Jambor  <mjambor@suse.cz>
28250
28251         PR tree-optimization/56718
28252         * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
28253         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
28254         and made public.  Adjusted all callers.
28255         (ipa_intraprocedural_devirtualization): New function.
28256         * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
28257         (ipa_intraprocedural_devirtualization): Likewise.
28258         * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
28259
28260 2013-04-19  Richard Biener  <rguenther@suse.de>
28261
28262         PR tree-optimization/57000
28263         * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
28264
28265 2013-04-19  Terry Guo  <terry.guo@arm.com>
28266
28267         * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
28268         Replace with ...
28269         (cortex_m4_v_a,  cortex_m4_v_b): ... new cpu units.
28270         (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
28271         (cortex_m4_fmacs): Use new reservations.
28272         (cortex_m4_f_load, cortex_m4_f_store): Likewise.
28273
28274 2013-04-18  Vladimir Makarov  <vmakarov@redhat.com>
28275
28276         PR rtl-optimization/56999
28277         * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
28278         related code.
28279         (lra_coalesce): Remove split_origin_bitmap and related code.
28280         * lra.c (lra): Coalesce after undoing inheritance.  Recreate live
28281         ranges if necessary.
28282
28283 2013-04-18  Uros Bizjak  <ubizjak@gmail.com>
28284
28285         * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
28286         New array.
28287         (ix86_expand_call): Remove clobbered_registers array and use
28288         x86_64_ms_sysv_extra_clobbered_registers instead.
28289         * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
28290         Declare here.
28291         * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
28292         predicate.
28293         * config/i386/i386.md (*call_rex64_ms_sysv): Use
28294         call_rex64_ms_sysv_operation predicate.  Remove explicit clobbers.
28295         (*call_value_rex64_ms_sysv): Ditto.
28296
28297 2013-04-18  Cary Coutant  <ccoutant@google.com>
28298
28299         * dwarf2out.c (output_pubnames): Check die_perennial_p of
28300         parent instead of die_mark.
28301
28302 2013-04-18  Diego Novillo  <dnovillo@google.com>
28303
28304         * gimple.c (create_gimple_tmp): New.
28305         (get_expr_type): New.
28306         (build_assign): New.
28307         (build_type_cast): New.
28308         * gimple.h (enum ssa_mode): Define.
28309         (gimple_seq_set_location): New.
28310         * asan.c (build_check_stmt): Change some gimple_build_* calls
28311         to use build_assign and build_type_cast.
28312
28313 2013-04-18  Richard Biener  <rguenther@suse.de>
28314
28315         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
28316         handle negative step.  Remove redundant checks.
28317         (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
28318         * tree-vect-stmts.c (vectorizable_load): Instead of asserting
28319         for negative step and grouped loads fail to vectorize.
28320
28321 2013-04-18  Steven Bosscher  <steven@gcc.gnu.org>
28322
28323         * emit-rtl.c (reset_insn_used_flags): New function.
28324         (reset_all_used_flags): Use it.
28325         (verify_insn_sharing): New function.
28326         (verify_rtl_sharing): Fix verification for SEQUENCEs.
28327
28328 2013-04-18  Jakub Jelinek  <jakub@redhat.com>
28329
28330         PR tree-optimization/56984
28331         * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
28332         and (x >> M) >= N don't register any assertion if N << M is the
28333         minimum value.
28334
28335 2013-04-18  Steven Bosscher  <steven@gcc.gnu.org>
28336
28337         * lower-subreg.c (resolve_simple_move): If called self-recursive,
28338         do not delete_insn insns that have not yet been emitted, only
28339         unlink them with remove_insn.
28340         * df-scan.c (df_insn_delete): Revert r197492.
28341
28342 2013-04-17  Steven Bosscher  <steven@gcc.gnu.org>
28343
28344         * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
28345         * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
28346
28347 2013-04-17  Greta Yorsh  <Greta.Yorsh@arm.com>
28348
28349         * config/arm/arm.md (movsicc_insn): Convert define_insn into
28350         define_insn_and_split.
28351         (and_scc,ior_scc,negscc): Likewise.
28352         (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
28353
28354 2013-04-17  Greta Yorsh  <Greta.Yorsh@arm.com>
28355
28356         * config/arm/arm.c (use_return_insn): Return 0 for targets that
28357         can benefit from using a sequence of LDRD instructions in epilogue
28358         instead of a single LDM instruction.
28359
28360 2013-04-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28361
28362         PR 45688
28363         * doc/extend.texi: Fix typo.
28364
28365 2013-04-17  Richard Biener  <rguenther@suse.de>
28366
28367         * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
28368         (vect_build_slp_tree): ... here.
28369         (vect_build_slp_tree_1): Compute which stmts of the SLP group
28370         match.  Remove special-casing of mismatched complex loads.
28371         (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
28372         re-try the match with swapped commutative operands.
28373         (vect_supported_load_permutation_p): Remove special-casing of
28374         mismatched complex loads.
28375         (vect_analyze_slp_instance): Adjust.
28376
28377 2013-04-17  Richard Biener  <rguenther@suse.de>
28378
28379         PR rtl-optimization/56921
28380         * cfgloop.h (struct loop): Add simple_loop_desc member.
28381         (struct niter_desc): Mark with GTY(()).
28382         (simple_loop_desc): Do not use aux field but simple_loop_desc.
28383         * loop-iv.c (get_simple_loop_desc): Likewise.
28384         (free_simple_loop_desc): Likewise.
28385
28386         Revert
28387         2013-04-16  Richard Biener  <rguenther@suse.de>
28388
28389         PR rtl-optimization/56921
28390         * loop-init.c (pass_rtl_move_loop_invariants): Add
28391         TODO_do_not_ggc_collect to todo_flags_finish.
28392         (pass_rtl_unswitch): Same.
28393         (pass_rtl_unroll_and_peel_loops): Same.
28394         (pass_rtl_doloop): Same.
28395
28396 2013-04-17  Eric Botcazou  <ebotcazou@adacore.com>
28397
28398         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
28399         (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
28400         Use nonoverlapping_component_refs_of_decl_p to disambiguate component
28401         references.
28402         (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
28403         * tree-streamer.c (record_common_node): Adjust reference in comment.
28404
28405 2013-04-17  Terry Guo  <terry.guo@arm.com>
28406
28407         * config/arm/cortex-m4.md: Add a new bypass.
28408
28409 2013-04-16  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
28410
28411         * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
28412         New pattern.
28413         (*subs_<optab><mode>_multp2): New pattern.
28414         (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
28415         (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
28416
28417 2013-04-16  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
28418
28419         * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
28420         (*subs_mul_imm_<mode>): New pattern.
28421
28422 2013-04-16  David Edelsohn  <dje.gcc@gmail.com>
28423
28424         PR target/56948
28425         * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
28426         (vsx_movti_64bit): Change j->wa to O->wa.  Add n->r alternative.
28427         (vsx_movti_32bit): Change j->wa to O->wa.
28428
28429 2013-04-16  Richard Biener  <rguenther@suse.de>
28430
28431         PR rtl-optimization/56921
28432         * loop-init.c (pass_rtl_move_loop_invariants): Add
28433         TODO_do_not_ggc_collect to todo_flags_finish.
28434         (pass_rtl_unswitch): Same.
28435         (pass_rtl_unroll_and_peel_loops): Same.
28436         (pass_rtl_doloop): Same.
28437
28438 2013-04-16  Greta Yorsh  <Greta.Yorsh@arm.com>
28439
28440         * config/arm/arm.c (emit_multi_reg_push): New declaration
28441         for an existing function.
28442         (arm_emit_strd_push): New function.
28443         (arm_expand_prologue): Used here.
28444         (arm_emit_ldrd_pop): New function.
28445         (arm_expand_epilogue): Used here.
28446         (arm_get_frame_offsets): Update condition.
28447         (arm_emit_multi_reg_pop): Add a special case for load of a single
28448         register with writeback.
28449
28450 2013-04-16  Uros Bizjak  <ubizjak@gmail.com>
28451
28452         * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
28453         description.
28454
28455 2013-04-16  Richard Biener  <rguenther@suse.de>
28456
28457         PR tree-optimization/56756
28458         * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
28459         (first_mem_ref_loc): New.
28460         (execute_sm): Place the load temporarily before a previous
28461         access instead of in the latch edge to ensure its SSA dependencies
28462         are defined at points dominating the load.
28463
28464 2013-04-16  Steven Bosscher  <steven@gcc.gnu.org>
28465
28466         * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
28467         correct fix by moving header and footer insn to the footer of
28468         the merged basic block.  Clear BB_END of the merged-away block.
28469
28470         PR middle-end/43631
28471         * emit-rtl.c (make_note_raw): New function.
28472         (link_insn_into_chain): New static inline function.
28473         (add_insn): Use it.
28474         (add_insn_before, add_insn_after): Factor insn chain linking code...
28475         (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
28476         using link_insn_into_chain.
28477         (note_outside_basic_block_p): New helper function for emit_note_after
28478         and emit_note_before.
28479         (emit_note_after): Use nobb variant of add_insn_after if the note
28480         should not be contained in a basic block.
28481         (emit_note_before): Use nobb variant of add_insn_before if the note
28482         should not be contained in a basic block.
28483         (emit_note_copy): Use make_note_raw.
28484         (emit_note): Likewise.
28485         * bb-reorder.c (insert_section_boundary_note): Remove hack to set
28486         BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
28487         * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
28488         the moved barrier the tail of the basic block it follows.
28489         * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
28490
28491 2013-04-15  Jakub Jelinek  <jakub@redhat.com>
28492
28493         PR tree-optimization/56962
28494         * gimple-ssa-strength-reduction.c (record_increment): Only set
28495         initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
28496         either rhs1 or rhs2 is equal to c->base_expr.
28497
28498 2013-04-15  Richard Biener  <rguenther@suse.de>
28499
28500         PR tree-optimization/56933
28501         * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
28502         member.
28503         (GROUP_READ_WRITE_DEPENDENCE): Remove.
28504         (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
28505         * tree-vect-data-refs.c (vect_analyze_group_access): Move
28506         dependence check ...
28507         vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
28508         ... here.
28509         * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
28510         GROUP_READ_WRITE_DEPENDENCE.
28511
28512 2013-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28513
28514         * emit-rtl.c (reset_all_used_flags): New function.
28515         (verify_rtl_sharing): Call reset_all_used_flags before and after
28516         performing the checks.
28517
28518 2013-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28519
28520         * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
28521         * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
28522         * config/arm/constraints.md (De): New constraint.
28523         * config/arm/neon.md (anddi3_neon): Delete.
28524         (neon_vand<mode>): Expand to standard anddi3 pattern.
28525         * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
28526         Move earlier in the file.
28527         (neon_inv_logic_op2): Likewise.
28528         (arm_anddi_operand_neon): New predicate.
28529
28530 2013-04-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28531
28532         * configure.ac (gcc_cv_ld_as_needed): Set
28533         gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
28534         Use -z ignore, -z record on *-*-solaris2*.
28535         (HAVE_LD_AS_NEEDED): Update comment.
28536         (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
28537         * configure: Regenerate.
28538         * config.in: Regenerate.
28539         * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
28540         LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
28541         * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
28542         * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
28543         equivalents.  Fix markup.
28544         * doc/tm.texi: Regenerate.
28545
28546 2013-04-15  Andrew Hsieh  <andrewhsieh.google.com>
28547
28548         * config/i386/i386.opt: New option mstack-protector-guard=.
28549         * config/i386/i386-opts.h: Add enum stack_protector_guard.
28550         * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
28551         TARGET_SSP_TLS_GUARD.
28552         * config/i386/i386.c (ix86_option_override_internal): Set
28553         ix86_stack_protector_guard.
28554         * config/i386/i386.md (stack_protect_set): Enable for
28555         TARGET_SSP_TLS_GUARD only.
28556         (stack_protect_set_<mode>): Ditto.
28557         (stack_protect_test): Ditto.
28558         (stack_protect_test_<mode>): Ditto.
28559         * doc/invoke.texi (i386 Option): Document.
28560
28561 2013-04-15  Eric Botcazou  <ebotcazou@adacore.com>
28562
28563         PR target/56890
28564         * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
28565         (S_MODES): Set H_MODE bit.
28566         (SF_MODES): Set only S_MODE and SF_MODE bits.
28567         (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
28568         (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
28569         <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
28570         <MODE_FLOAT>: Likewise.
28571
28572 2013-04-15  Joey Ye  <joey.ye@arm.com>
28573
28574         * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
28575
28576 2013-04-15  Joey Ye  <joey.ye@arm.com>
28577
28578         * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
28579         for real far jump.
28580         (thumb_far_jump_used_p): Count instruction size and set
28581         far_jump_used.
28582
28583 2013-04-14  Eric Botcazou  <ebotcazou@adacore.com>
28584
28585         * reorg.c (fill_simple_delay_slots): Reindent block of code.
28586         * resource.c (mark_target_live_regs): Reformat conditional block.
28587
28588 2013-04-13  Steven Bosscher  <steven@gcc.gnu.org>
28589
28590         * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
28591         notes, they are emitted only just before final.
28592         * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
28593
28594 2013-04-13  Steven Bosscher  <steven@gcc.gnu.org>
28595
28596         * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
28597         * cfgrtl.c (delete_insn): Call it here instead.
28598         * lra-spills.c (lra_final_code_change): Use delete_insn.
28599         * haifa-sched.c (sched_remove_insn): Likewise.
28600         * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
28601         returning to the nop pool.
28602         (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
28603         use delete_insn for definitive removal.  Clear BLOCK_FOR_INSN.
28604
28605 2013-04-12  Steven Bosscher  <steven@gcc.gnu.org>
28606
28607         * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
28608         * doc/tm.texi: Regenerated.
28609
28610 2013-04-12  Uros Bizjak  <ubizjak@gmail.com>
28611
28612         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
28613         QImode checks.
28614
28615 2013-04-12  Steven Bosscher  <steven@gcc.gnu.org>
28616
28617         * df-core.c (df_find_def): Compare register numbers.
28618         (df_find_use): Likewise.
28619
28620 2013-04-12  Vladimir Makarov  <vmakarov@redhat.com>
28621
28622         PR target/56903
28623         * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
28624         lra_in_progress for return.
28625
28626 2013-04-12  Greta Yorsh  <Greta.Yorsh@arm.com>
28627
28628         * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
28629         define_insn into define_insn_and_split and emit movsicc patterns.
28630
28631 2013-04-12  Greta Yorsh  <Greta.Yorsh@arm.com>
28632
28633         * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
28634
28635 2013-04-12  Richard Biener  <rguenther@suse.de>
28636
28637         * tree-pass.h (TODO_do_not_ggc_collect): New.
28638         * passes.c (execute_one_ipa_transform_pass): Honor
28639         TODO_do_not_ggc_collect.
28640         (execute_one_pass): Likewise.
28641
28642         Revert
28643         2013-04-10  Richard Biener  <rguenther@suse.de>
28644
28645         * passes.c (init_optimization_passes): Remove reload pass.
28646         * ira.c (do_reload): Merge into ...
28647         (ira): ... this.
28648         (rest_of_handle_reload): Remove.
28649         (pass_reload): Likewise.
28650         * config/i386/i386.c (ix86_option_override): Refer to ira instead
28651         of reload for vzeroupper pass placement.
28652
28653 2013-04-12  Jakub Jelinek  <jakub@redhat.com>
28654
28655         PR tree-optimization/56918
28656         PR tree-optimization/56920
28657         * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
28658         instead of op1 - op2.  Pass 2 * TYPE_PRECISION (type) as second
28659         argument to rshift method.  For 2 * HOST_BITS_PER_WIDE_INT precision
28660         use wide_mul_with_sign method.
28661
28662 2013-04-12  Richard Biener  <rguenther@suse.de>
28663
28664         * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
28665         not be considered a gimple constant.
28666
28667 2013-04-12  Marc Glisse  <marc.glisse@inria.fr>
28668
28669         * fold-const.c (const_binop): Handle vector shifts by a scalar.
28670         (fold_binary_loc): Call const_binop also for mixed vector-scalar
28671         operations.
28672
28673 2013-04-12  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28674             Jakub Jelinek  <jakub@redhat.com>
28675
28676         * opts.c: Include diagnostic-color.h.
28677         (common_handle_option): Handle OPT_fdiagnostics_color_.
28678         * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
28679         (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
28680         (diagnostic-color.o): New.
28681         * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
28682         (diagnostic_color_rule): New enum.
28683         * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
28684         * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
28685         the location string.
28686         * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
28687         either NULL, or color kind.
28688         * diagnostic-color.c: New file.
28689         * diagnostic-color.h: New file.
28690         * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
28691         arguments.
28692         * doc/invoke.texi (-fdiagnostics-color): Document.
28693         * pretty-print.h (pp_show_color): Define.
28694         (struct pretty_print_info): Add show_color field.
28695         * diagnostic.c: Include diagnostic-color.h.
28696         (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
28697         macros.  Colorize error:, warning: etc. strings and also the location
28698         string.
28699         (diagnostic_show_locus): Colorize the caret line.
28700         * pretty-print.c: Include diagnostic-color.h.
28701         (pp_base_format): Handle %r and %R format specifiers.  Colorize strings
28702         inside of %< %> quotes or quoted through q format modifier.
28703
28704 2013-04-12  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28705
28706         * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
28707
28708 2013-04-11  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
28709
28710         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
28711         code in CC_NZ mode.
28712         * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
28713         pattern.
28714
28715 2013-04-11  Marek Polacek  <polacek@redhat.com>
28716
28717         PR tree-optimization/48184
28718         * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
28719
28720 2013-04-11  Eric Botcazou  <ebotcazou@adacore.com>
28721
28722         * stor-layout.c (skip_simple_constant_arithmetic): Move to...
28723         * tree.c (skip_simple_constant_arithmetic): ...here and make public.
28724         (skip_simple_arithmetic): Tidy up.
28725         * tree.h (skip_simple_constant_arithmetic): Declare.
28726
28727 2013-04-11  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
28728
28729         * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
28730
28731 2013-04-11  Richard Biener  <rguenther@suse.de>
28732
28733         * tree-vect-loop.c (get_initial_def_for_induction): Properly
28734         generate vector constants.
28735
28736 2013-04-11  Richard Biener  <rguenther@suse.de>
28737
28738         PR tree-optimization/56878
28739         * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
28740         * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
28741         New function.
28742         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
28743         Prefer to align the DR with the most invariant base address.
28744
28745 2013-04-11  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
28746
28747         * opts.c (common_handle_option): Fix formatting and add FALLTHRU
28748         comment.
28749
28750 2013-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
28751
28752         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
28753         floating-point vector comparisons against 0.
28754
28755 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
28756
28757         PR tree-optimization/56899
28758         * fold-const.c (extract_muldiv_1): Apply distributive law
28759         only if TYPE_OVERFLOW_WRAPS (ctype).
28760
28761 2013-04-11  Bin Cheng  <bin.cheng@arm.com>
28762
28763         PR target/56124
28764         * ira-costs.c (scan_one_insn): Check whether the source rtx of
28765         loading has side effect.
28766
28767 2013-04-10  Steven Bosscher  <steven@gcc.gnu.org>
28768
28769         * config/sparc/sparc.c: Include tree-pass.h.
28770         (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
28771         (sparc_reorg): Rename to sparc_do_work_around_errata.  Move to
28772         head of file.  Change return type.  Split off gate function.
28773         (sparc_gate_work_around_errata): New function.
28774         (pass_work_around_errata): New pass definition.
28775         (insert_pass_work_around_errata) New pass insert definition to
28776         insert pass_work_around_errata just after delayed-branch scheduling.
28777         (sparc_option_override): Insert the pass.
28778         * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
28779
28780 2013-04-10  David S. Miller  <davem@davemloft.net>
28781
28782         * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
28783         or -mcpu=hypersparc.
28784
28785         * target.def (cstore_mode): New hook.
28786         * target.h: Include insn-codes.h
28787         * targhooks.c: Likewise.
28788         (default_cstore_mode): New function.
28789         * targhooks.h: Declare it.
28790         * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
28791         * doc/tm.texi: Rebuild.
28792         * expmed.c (emit_cstore): Obtain cstore boolean result mode using
28793         target hook, rather than inspecting the insn_data.
28794         * config/sparc/sparc.c (sparc_cstore_mode): New function.
28795         (TARGET_CSTORE_MODE): Redefine.
28796         (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
28797         result patterns.
28798         * config/sparc/predicates.md (cstore_result_operand): New special
28799         predicate.
28800         * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
28801         Use it for operand 0.
28802         (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
28803         (*snesi_special): Likewise.
28804         (*snesi_zero): Likewise.
28805         (*seqsi_zero): Likewise.
28806         (*sltu_insn): Likewise.
28807         (*sgeu_insn): Likewise.
28808         (*seqdi_special): Make operand 0 and comparison operation be of
28809         DImode.
28810         (*snedi_special): Likewise.
28811         (*snedi_special_vis3): Likewise.
28812         (*neg_snesi_zero): Rename to *neg_snesisi_zero.
28813         (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
28814         (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
28815         (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
28816         (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
28817         (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
28818         (*sltu_extend_sp64): Likewise.
28819         (*neg_sltu_insn): Rename to *neg_sltusi_insn.
28820         (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
28821         (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
28822         (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
28823         (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
28824
28825 2013-04-10  Yufeng Zhang  <yufeng.zhang@arm.com>
28826
28827         * config/aarch64/aarch64.c (aarch64_print_extension): New function.
28828         (aarch64_start_file): Use the new function.
28829
28830 2013-04-10  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
28831             Jason Merrill  <jason@redhat.com>
28832
28833         * common.opt: Add -gdwarf.
28834         * opts.c (common_handle_option): Handle it.
28835         * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
28836
28837 2013-04-10  Richard Biener  <rguenther@suse.de>
28838
28839         * passes.c (execute_todo): Do not call ggc_collect conditional here.
28840         (execute_one_ipa_transform_pass): But unconditionally here.
28841         (execute_one_pass): And here.
28842         (init_optimization_passes): Remove reload pass.
28843         * tree-pass.h (TODO_ggc_collect): Remove.
28844         (pass_reload): Likewise.
28845         * ira.c (do_reload): Merge into ...
28846         (ira): ... this.
28847         (rest_of_handle_reload): Remove.
28848         (pass_reload): Likewise.
28849         * config/i386/i386.c (ix86_option_override): Refer to ira instead
28850         of reload for vzeroupper pass placement.
28851         * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
28852         and todo_flags_finish of all passes.
28853
28854 2013-04-10  Richard Biener  <rguenther@suse.de>
28855
28856         * tree-vectorizer.h (struct _slp_oprnd_info): Remove
28857         first_const_oprnd field, rename first_def_type to first_op_type.
28858         * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
28859         (vect_get_and_check_slp_defs): Always use the type of the
28860         operand.  Allow mixed vect_external_def, vect_constant_def types.
28861         (vect_get_constant_vectors): Handle mixed vect_external_def,
28862         vect_constant_def types.
28863
28864 2013-04-10  Joern Rennecke  <joern.rennecke@embecosm.com>
28865
28866         PR tree-optimization/55524
28867         * tree-ssa-math-opts.c
28868         (convert_mult_to_fma): Don't use an fms construct
28869         when we don't have an fms operation, but fnma, and it looks
28870         likely that we'll be able to use the latter.
28871
28872 2013-04-10  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
28873
28874         * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
28875         function.
28876         * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
28877         inline fail caused by overwritable functions.
28878
28879 2013-04-10  Chung-Ju Wu  <jasonwucj@gmail.com>
28880
28881         * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
28882         unnecessary bits in the constant power of two case.
28883
28884 2013-04-10  Richard Biener  <rguenther@suse.de>
28885
28886         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
28887         broken code swapping operands.
28888         (vect_build_slp_tree): Do not compute load permutations here.
28889         (vect_analyze_slp_instance): Compute load permutations here,
28890         after building the SLP tree.
28891
28892 2013-04-09  Christian Bruel  <christian.bruel@st.com>
28893
28894         * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
28895         of next/prev_real_insn.
28896
28897 2013-04-09  Jan Hubicka  <jh@suse.cz>
28898
28899         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
28900         Drop aliased parameter.
28901         (function_and_variable_visibility): Do not handle alias pairs.
28902         * cgraph.c (varpool_externally_visible_p): Update prototype.
28903         * varpool.c (varpool_add_new_variable): Update.
28904
28905 2013-04-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28906
28907         * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
28908
28909 2013-04-09  Steven Bosscher  <steven@gcc.gnu.org>
28910
28911         * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
28912
28913         * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
28914
28915 2013-04-09  Marek Polacek  <polacek@redhat.com>
28916
28917         PR tree-optimization/48762
28918         * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
28919
28920 2013-04-09  Richard Biener  <rguenther@suse.de>
28921
28922         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
28923         dealing with cost.
28924         (vect_build_slp_tree): Likewise.
28925         (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
28926         calculating the cost of a SLP instance.
28927         (vect_analyze_slp_instance): Use it from here, after building
28928         the SLP tree.
28929
28930 2013-04-09  Jakub Jelinek  <jakub@redhat.com>
28931
28932         PR middle-end/56883
28933         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
28934         expand_omp_for_static_chunk): Use simple_p = true in
28935         force_gimple_operand_gsi calls when assigning to addressable decls.
28936
28937 2013-04-09  Jeff Law  <law@redhat.com>
28938
28939         * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
28940         when the boolean was created by converting a wider object which
28941         had a boolean range.
28942
28943 2013-04-09  Richard Biener  <rguenther@suse.de>
28944
28945         * tree-vectorizer.h (slp_void_p): Remove.
28946         (slp_tree): Typedef before _slp_tree declaration.
28947         (struct _slp_tree): Use a vector of slp_tree as children.
28948         (vect_get_place_in_interleaving_chain): Remove.
28949         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
28950         Move ...
28951         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
28952         and make static.
28953         (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
28954         vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
28955         vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
28956         vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
28957         Use slp_node instead of slp_void_p and adjust.
28958
28959 2013-04-09  Richard Biener  <rguenther@suse.de>
28960
28961         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
28962         work that is not necessary.
28963
28964 2013-04-09  Jakub Jelinek  <jakub@redhat.com>
28965
28966         PR tree-optimization/56854
28967         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
28968         forward into clobber stmts if it would change MEM_REF lhs into
28969         non-MEM_REF.
28970
28971 2013-04-09  Maxim Kuvyrkov  <maxim@kugelworks.com>
28972
28973         * tree.c (type_hash_lookup, type_hash_add): Make static.
28974         * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
28975
28976 2013-04-09  Richard Biener  <rguenther@suse.de>
28977
28978         * tree.h (unsave_expr_now): Remove.
28979         * tree-inline.c (mark_local_for_remap_r): Remove.
28980         (unsave_expr_1): Likewise.
28981         (unsave_r): Likewise.
28982         (unsave_expr_now): Likewise.
28983         * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
28984         (propagate_tree_value): Likewise.
28985
28986 2013-04-08  Steven Bosscher  <steven@gcc.gnu.org>
28987
28988         * doc/rtl.texi (sequence): Rewrite documentation to match the
28989         current use of SEQUENCE rtl objects.
28990         * rtl.def (SEQUENCE): Likewise.
28991
28992         * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
28993         Update documentation.
28994         (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
28995         NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
28996
28997         * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
28998
28999 2013-04-08  Teresa Johnson  <tejohnson@google.com>
29000
29001         * basic-block.h (GCOV_COMPUTE_SCALE): Define.
29002         * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
29003         methods.
29004         (estimate_edge_size_and_time): Add comment to suggest using rounding
29005         methods.
29006         (estimate_node_size_and_time): Ditto.
29007         (remap_edge_change_prob): Use helper rounding divide methods.
29008         * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
29009         (gimple_mod_pow2_value_transform): Ditto.
29010         (gimple_mod_subtract_transform): Ditto.
29011         (gimple_ic_transform): Ditto.
29012         (gimple_stringops_transform): Ditto.
29013         * stmt.c (conditional_probability): Ditto.
29014         (emit_case_dispatch_table): Ditto.
29015         * lto-cgraph.c (merge_profile_summaries): Ditto.
29016         * tree-optimize.c (execute_fixup_cfg): Ditto.
29017         * cfgcleanup.c (try_forward_edges): Ditto.
29018         * cfgloopmanip.c (scale_loop_profile): Ditto.
29019         (loopify): Ditto.
29020         (duplicate_loop_to_header_edge): Ditto.
29021         (lv_adjust_loop_entry_edge): Ditto.
29022         * tree-vect-loop.c (vect_transform_loop): Ditto.
29023         * profile.c (compute_branch_probabilities): Ditto.
29024         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
29025         * lto-streamer-in.c (input_cfg): Ditto.
29026         * gimple-streamer-in.c (input_bb): Ditto.
29027         * ipa-cp.c (update_profiling_info): Ditto.
29028         (update_specialized_profile): Ditto.
29029         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
29030         * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
29031         rounding methods.
29032         * sched-rgn.c (compute_dom_prob_ps): Ditto.
29033         (compute_trg_info): Ditto.
29034         * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
29035         (purge_dead_edges): Ditto.
29036         * loop-unswitch.c (unswitch_loop): Ditto.
29037         * cgraphclones.c (cgraph_clone_edge): Ditto.
29038         (cgraph_clone_node): Ditto.
29039         * tree-inline.c (copy_bb): Ditto.
29040         (copy_edges_for_bb): Ditto.
29041         (initialize_cfun): Ditto.
29042         (copy_cfg_body): Ditto.
29043         (expand_call_inline): Ditto.
29044
29045 2013-04-08  Kai Tietz  <ktietz@redhat.com>
29046
29047         * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
29048         TARGET_CYGWIN64 by TARGET_64BIT.
29049
29050 2013-04-08  Joern Rennecke  <joern.rennecke@embecosm.com>
29051
29052         * config/epiphany/epiphany.md (GPR_1): New constant.
29053         (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
29054         * config/epiphany/epiphany.c (gen_compare_reg):
29055         For flag_finite_math_only, avoid swapping operands when r0 and/or r1
29056         is already in place.
29057         Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
29058         Don't require being called during rtl expansion; If y operlaps r0,
29059         return 0.
29060         (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
29061         (epiphany_expand_epilogue): Likewise.
29062
29063         * config/epiphany/epiphany.c (epiphany_select_cc_mode):
29064         Don't use CC_FPmode for ORDERED / UNORDERED.
29065         * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
29066
29067         * config/epiphany/constraints.md (CnL): New constraint.
29068         * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
29069         * config/epiphany/predicates.md (add_operand): Allow 1024.
29070
29071         * config/epiphany/epiphany.md (logical_op): New code iterator.
29072         (op_mnc): New code attribute.
29073         (<op_mnc>_f, mov_f, cstoresi4): New patterns.
29074         (mov_f+1, mov_f+2): New peephole2 patterns.
29075
29076         * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
29077         (cstoresi4): Also allow re-use of zero result when doing a NE
29078         comparison to a non-zero operand.
29079         Use (clobber (scratch)) for first insn if the gpr output is not needed.
29080
29081         * config/epiphany/epiphany.md (<insn_opname>v2si3):
29082         Use gen_addsi3_i / gen_subsi3_i.
29083
29084 2013-04-08  Jakub Jelinek  <jakub@redhat.com>
29085
29086         PR c++/34949
29087         PR c++/50243
29088         * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
29089         contain anything but clobbers, at most one __builtin_stack_restore,
29090         optionally debug stmts and final resx, and if it has at least one
29091         incoming EH edge.  Don't check for SSA_NAME on LHS of a clobber.
29092         (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
29093         Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
29094         which isn't defaut definition, remove them.
29095         (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
29096         instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
29097         * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
29098         with MEM_REF LHS with SSA_NAME address.
29099
29100 2013-04-08  Jeff Law  <law@redhat.com>
29101
29102         * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
29103
29104 2013-04-08  Richard Biener  <rguenther@suse.de>
29105
29106         * gimple-pretty-print.c (debug_gimple_stmt): Do not print
29107         extra newline.
29108         * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
29109         determined vector type.
29110         (vect_analyze_data_refs): Likewise.
29111         (vect_get_new_vect_var): Adjust.
29112         (vect_create_destination_var): Preserve SSA name versions.
29113         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
29114         not dump anything here.
29115
29116 2013-04-08  Joern Rennecke  <joern.rennecke@embecosm.com>
29117
29118         * config/epiphany/epiphany.h (struct GTY (()) machine_function):
29119         Add member lr_slot_known.
29120         * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
29121         if necessary.
29122         * config/epiphany/epiphany.c (epiphany_compute_frame_size):
29123         Remove code that sets lr_slot_offset according to what a previous
29124         version of epiphany_emit_save_restore used to do.
29125         (epiphany_emit_save_restore): When doing an lr save or restore,
29126         set/verify lr_slot_known and lr_slot_offset.
29127
29128 2013-04-08  Xinyu Qi  <xyqi@marvell.com>
29129
29130         PR target/54338
29131         * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
29132         in ALL_REGS.
29133
29134 2013-04-08  Richard Biener  <rguenther@suse.de>
29135
29136         * alias.c (find_base_term): Fix thinko in previous change.
29137
29138 2013-04-08  Jakub Jelinek  <jakub@redhat.com>
29139
29140         * tree-loop-distribution.c (const_with_all_bytes_same): New function.
29141         (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
29142         TYPE_PRECISION is equal to mode bitsize.  Use const_with_all_bytes_same
29143         if possible to compute val.
29144         (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
29145         For QImode integers don't require anything about precision.  Use
29146         const_with_all_bytes_same to find out if the constant doesn't have
29147         repeated bytes in it.
29148
29149 2013-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29150
29151         * config/s390/s390.c (s390_expand_insv): Only accept insertions
29152         within mode size.
29153
29154 2013-04-08  Marek Polacek  <polacek@redhat.com>
29155
29156         PR rtl-optimization/48182
29157         * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
29158         value to 1.
29159
29160 2013-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
29161
29162         PR target/55487
29163         * config/pa/pa.c (legitimize_pic_address): Before incrementing label
29164         nuses, make sure we have a label.
29165
29166 2013-04-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
29167
29168         PR target/56843
29169         * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
29170         (rs6000_emit_swdiv_low_precision): Remove.
29171         (rs6000_emit_swdiv): Rewrite to handle between one and four
29172         iterations of Newton-Raphson generally; modify required number of
29173         iterations for some cases.
29174         * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
29175
29176 2013-04-05  Steven Bosscher  <steven@gcc.gnu.org>
29177
29178         * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
29179         set-but-unused variable.
29180
29181         * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
29182         basic blocks of released function bodies garbage-collectable.
29183
29184         * ree.c (find_and_remove_re): Do not call df_finish_pass here.
29185         (struct rtl_opt_pass): Add TODO_df_finish.
29186
29187         * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
29188
29189 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
29190
29191         * config/arm/constraints.md (q): New constraint.
29192         * config/arm/ldrdstrd.md: New file.
29193         * config/arm/arm.md (ldrdstrd.md) New include.
29194         (arm_movdi): Use "q" instead of "r" constraint
29195         for double-word memory access.
29196         (movdf_soft_insn): Likewise.
29197         * config/arm/vfp.md (movdi_vfp): Likewise.
29198         * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
29199         * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
29200         * config/arm/arm.c (gen_operands_ldrd_strd): New function.
29201         (mem_ok_for_ldrd_strd): Likewise.
29202         (output_move_double): Update assertion.
29203
29204 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
29205
29206         * config/arm/arm.md: Comment on splitting Thumb1 patterns.
29207
29208 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
29209
29210         * config/arm/arm.md (arm_smax_insn): Convert define_insn into
29211         define_insn_and_split.
29212         (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
29213
29214 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
29215
29216         * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
29217         define_insn_and_split.
29218         (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
29219         (shiftsi3_compare): New pattern.
29220         (rrx): New pattern.
29221         * config/arm/unspecs.md (UNSPEC_RRX): New.
29222
29223 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
29224
29225         * config/arm/arm.md (negdi_extendsidi): New pattern.
29226         (negdi_zero_extendsidi): Likewise.
29227
29228 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
29229
29230         * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
29231         define_insn_and_split.
29232         (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
29233         (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
29234
29235 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
29236
29237         * config/arm/arm.md (arm_subdi3): Convert define_insn into
29238         define_insn_and_split.
29239         (subdi_di_zesidi,subdi_di_sesidi): Likewise.
29240         (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
29241
29242 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
29243
29244         * config/arm/arm.md (subsi3_carryin): New pattern.
29245         (subsi3_carryin_const): Likewise.
29246         (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
29247         (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
29248
29249 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
29250
29251         * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
29252
29253 2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
29254
29255         * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
29256         (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
29257
29258 2013-04-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29259
29260         * config/arm/arm.c (arm_expand_builtin): Change fcode
29261         type to unsigned int.
29262
29263 2013-04-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29264
29265         * doc/invoke.texi (ARM Options): Document cortex-a53 support.
29266
29267 2013-04-04  Ian Lance Taylor  <iant@google.com>
29268
29269         * doc/standards.texi (Standards): The Go frontend supports the Go 1
29270         language standard.
29271
29272 2013-04-04  Steven Bosscher  <steven@gcc.gnu.org>
29273
29274         PR middle-end/56729
29275         * df-scan.c (df_insn_delete): Disable failing assert.
29276
29277 2013-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29278
29279         * config/arm/arm-protos.h (arm_builtin_vectorized_function):
29280         New function prototype.
29281         * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
29282         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
29283         (arm_builtin_vectorized_function): New function.
29284
29285 2013-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29286
29287         * config/arm/arm_neon_builtins.def: New file.
29288         * config/arm/arm.c (neon_builtin_data): Move contents to
29289         arm_neon_builtins.def.
29290         (enum arm_builtins): Include neon builtin definitions.
29291         (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
29292         * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
29293
29294 2013-04-04  Marek Polacek  <polacek@redhat.com>
29295
29296         PR tree-optimization/48186
29297         * predict.c (maybe_hot_frequency_p): Return false if
29298         HOT_BB_FREQUENCY_FRACTION is 0.
29299         (cgraph_maybe_hot_edge_p): Likewise.
29300
29301 2013-04-04  Richard Biener  <rguenther@suse.de>
29302
29303         PR tree-optimization/56826
29304         * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
29305         more accurately.
29306
29307 2013-04-04  Richard Biener  <rguenther@suse.de>
29308
29309         PR tree-optimization/56213
29310         * tree-vect-data-refs.c (vect_check_strided_load): Remove.
29311         (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
29312
29313 2013-04-04  Richard Biener  <rguenther@suse.de>
29314
29315         PR tree-optimization/56837
29316         * tree-loop-distribution.c (classify_partition): For non-zero
29317         values require that the value has the same precision as its
29318         mode to be useful as memset value.
29319
29320 2013-04-03  Nick Clifton  <nickc@redhat.com>
29321
29322         * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
29323         (fmssf4): Use fmsf.s on E3V5 architectures.
29324         (fnmasf4): Use fnmaf.s on E3V5 architectures.
29325         (fnmssf4): Use fnmsf.s on E3V5 architectures.
29326
29327 2013-04-03  Jeff Law  <law@redhat.com>
29328
29329         * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
29330         (lra-eliminations.o): Likewise.
29331
29332 2013-04-03  Teresa Johnson  <tejohnson@google.com>
29333
29334         * gcov-io.c (compute_working_sets): Moved most of body of old
29335         compute_working_sets here from profile.c.
29336         * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
29337         (gcov_working_set_t): Moved typedef here from basic-block.h
29338         (compute_working_set): Declare.
29339         * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
29340         (get_working_sets): Renamed from compute_working_set,
29341         replace most of body with call to new compute_working_sets.
29342         (get_exec_counts): Replace call to compute_working_sets
29343         to get_working_sets.
29344         * profile.h (get_working_sets): Renamed from compute_working_set.
29345         * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
29346         to get_working_sets.
29347         * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
29348         * gcov-dump.c (dump_working_sets): New function.
29349
29350 2013-04-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
29351
29352         * hwint.c (sext_hwi, zext_hwi): New functions.
29353         * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
29354         HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
29355         HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
29356         HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
29357         HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
29358         (sext_hwi, zext_hwi): New functions.
29359
29360 2013-04-03  Jeff Law  <law@redhat.com>
29361
29362         PR tree-optimization/56799
29363         * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
29364         back test for widening conversion erroneously dropped in prior change.
29365
29366 2013-04-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29367
29368         PR target/56809
29369         * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
29370         instead of next_real_insn.
29371
29372 2013-04-03  Marek Polacek  <polacek@redhat.com>
29373
29374         PR sanitizer/55702
29375         * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
29376
29377 2013-04-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29378
29379         PR target/56809
29380         * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
29381         next_real_insn.
29382         (thumb1_output_casesi): Likewise.
29383         (thumb2_output_casesi): Likewise.
29384
29385 2013-04-03  Richard Biener  <rguenther@suse.de>
29386
29387         PR tree-optimization/56817
29388         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
29389         Split out ...
29390         (tree_unroll_loops_completely_1): ... new function to manually
29391         walk the loop tree, properly defering outer loops of unrolled
29392         loops to later iterations.
29393
29394 2013-04-03  Marc Glisse  <marc.glisse@inria.fr>
29395
29396         * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
29397         (vectorizable_load): Likewise.
29398         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
29399         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
29400
29401 2013-04-03  Marc Glisse  <marc.glisse@inria.fr>
29402
29403         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
29404         BIT_FIELD_REF.
29405
29406 2013-04-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29407
29408         * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
29409
29410 2013-04-03  Bin Cheng  <bin.cheng@arm.com>
29411
29412         * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
29413
29414 2013-04-03  Marc Glisse  <marc.glisse@inria.fr>
29415
29416         PR tree-optimization/56790
29417         * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
29418         folding.
29419
29420 2013-04-03  Marc Glisse  <marc.glisse@inria.fr>
29421
29422         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
29423         Handle VEC_MERGE.
29424         (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
29425         for masks. Test for side effects. Handle nested VEC_MERGE. Handle
29426         equal arguments.
29427
29428 2013-04-03  Jakub Jelinek  <jakub@redhat.com>
29429
29430         PR c/19449
29431         * tree.h (force_folding_builtin_constant_p): New decl.
29432         * builtins.c (force_folding_builtin_constant_p): New variable.
29433         (fold_builtin_constant_p): Fold immediately also if
29434         force_folding_builtin_constant_p.
29435
29436 2013-04-03  Richard Biener  <rguenther@suse.de>
29437
29438         PR tree-optimization/56812
29439         * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
29440         DRs of the same interleaving chain are independent.
29441
29442 2013-04-02  Jason Merrill  <jason@redhat.com>
29443
29444         * gdbinit.in (pbb): Use debug fn.
29445
29446 2013-04-02  Lawrence Crowl  <crowl@google.com>
29447
29448         * sese.h (struct ivtype_map_elt_s): Remove unused.
29449         (extern debug_ivtype_map): Remove unused.
29450         (extern eq_ivtype_map_elts): Remove unused.
29451         * sese.c (debug_ivtype_map): Removed unused.
29452         (debug_ivtype_map_1): Removed unused.
29453         (debug_ivtype_elt): Remove unused.
29454         (eq_ivtype_map_elts): Remove unused.
29455
29456 2013-04-02  Kai Tietz  <ktietz@redhat.com>
29457
29458         PR target/52790
29459         * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
29460         * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
29461         * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
29462         function.
29463         (legitimize_pe_coff_symbol): Likewise.
29464         (is_imported_p): New helper-function.
29465         (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
29466         for Windows x64 targets.
29467         (ix86_expand_prologue): Optimize for pe-coff targets.
29468         (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
29469         (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
29470         medium/large code-model.
29471         (legitimize_pic_address): Likewise.
29472         (legitimize_tls_address): Likewise.
29473         (ix86_expand_call): Likewise.
29474         (x86_output_mi_thunk): Likewise.
29475         (get_dllimport_decl): Add new beimport argument.
29476         (construct_plt_address): Don't assert for x64 pe-coff targets.
29477         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
29478         targets.
29479         (SYMBOL_FLAG_STUBVAR): New macro.
29480         (SYMBOL_REF_STUBVAR_P): Likewise.
29481         * config/i386/winnt.c (stub_list): New structure.
29482         (stub_head): New local variable.
29483         (i386_pe_record_stub): New function.
29484         (i386_pe_file_end): Emit refptr-stubs.
29485
29486 2013-04-02  Jakub Jelinek  <jakub@redhat.com>
29487
29488         PR rtl-optimization/56745
29489         * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
29490         if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
29491
29492         PR c++/34949
29493         * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
29494         and both of them are MEM_REFs, just compare first argument for
29495         equality and attempt to deal even with differing offsets.
29496
29497         PR c++/34949
29498         * tree-cfg.c (verify_gimple_assign_single): Allow lhs
29499         of gimple_clobber_p to be MEM_REF.
29500         * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
29501         an assignment from TREE_CLOBBER_P.  Allow it to be MEM_REF
29502         after gimplification.
29503         * asan.c (get_mem_ref_of_assignment): Don't instrument
29504         gimple_clobber_p stmts.
29505         * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
29506         gimple_clobber_p stmt if they have MEM_REF lhs and
29507         are dead because of another gimple_clobber_p stmt.
29508         * tree-ssa-live.c (clear_unused_block_pointer): Treat
29509         gimple_clobber_p stmts like debug stmts.
29510         (remove_unused_locals): Remove clobbers with MEM_REF lhs
29511         that refer to unused VAR_DECLs or uninitialized values.
29512         * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
29513         gimple_clobber_p stmts if they refer to removed parameters.
29514         (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
29515         formatting.
29516
29517 2013-04-02  Uros Bizjak  <ubizjak@gmail.com>
29518
29519         * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
29520         using SWI48 mode attribute.
29521
29522 2013-04-02  Wei Mi  <wmi@google.com>
29523
29524         * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
29525         ashl<mode>3_mask, *<shift_insn><mode>3_mask and
29526         *<rotate_insn><mode>3_mask in i386.md.
29527
29528 2013-04-02  Alexander Ivchenko  <alexander.ivchenko@intel.com>
29529
29530         * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
29531
29532 2013-04-02  Richard Biener  <rguenther@suse.de>
29533
29534         PR tree-optimization/56778
29535         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
29536         Runtime alias tests are not supported for gather loads.
29537         * tree-vect-loop-manip.c (vect_loop_versioning): Insert
29538         stmts referenced from SSA operands before updating SSA form.
29539
29540 2013-04-02  Ian Caulfield  <ian.caulfield@arm.com>
29541             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29542
29543         * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
29544         * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
29545         * config/arm/cortex-a53.md: New file.
29546         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
29547         * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
29548         * config/arm/arm.c (arm_issue_rate): Likewise.
29549         * config/arm/arm-tune.md: Regenerate
29550         * config/arm/arm-tables.opt: Regenerate.
29551         * config/arm/arm-cores.def: Add cortex-a53.
29552
29553 2013-04-02  Zhenqiang Chen  <zhenqiang.chen@arm.com>
29554
29555         * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
29556         non-static link.
29557
29558 2013-04-02  Sofiane Naci  <sofiane.naci@arm.com>
29559
29560         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
29561         scalar load/store operations using B/H registers.
29562         (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
29563
29564 2013-04-02  Sofiane Naci  <sofiane.naci@arm.com>
29565
29566         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
29567         scalar move.
29568         * config/aarch64/aarch64.c
29569         (aarch64_simd_scalar_immediate_valid_for_move): New.
29570         * config/aarch64/aarch64-protos.h
29571         (aarch64_simd_scalar_immediate_valid_for_move): New.
29572         * config/aarch64/constraints.md (Dh, Dq): New.
29573         * config/aarch64/iterators.md (hq): New.
29574
29575 2013-04-02  Eric Botcazou  <ebotcazou@adacore.com>
29576
29577         * reorg.c (get_branch_condition): Deal with conditional returns.
29578         (fill_simple_delay_slots): Remove dead code dealing with jumps.
29579
29580 2013-04-01  Wei Mi  <wmi@google.com>
29581
29582         * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
29583         Truncate operand 2 using %b asm operand modifier.
29584         (*<shift_insn><mode>3_mask): Ditto.
29585         (*<rotate_insn><mode>3_mask): Ditto.
29586
29587 2013-04-01  Steven Bosscher  <steven@gcc.gnu.org>
29588
29589         PR middle-end/56798
29590         * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
29591
29592 2013-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
29593
29594         * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
29595         of next_real_insn.
29596         (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
29597
29598 2013-03-30  Lawrence Crowl  <crowl@google.com>
29599
29600         * dse.c (clear_alias_sets): Remove never set.
29601         (disqualified_clear_alias_sets): Remove never set.
29602         (clear_alias_mode_pool): Remove never set.
29603         (dse_step0): Remove condition that is never true.
29604         (canon_address): Remove condition that is never true.
29605         (dse_step7): Remove condition that is never true.
29606         (rest_of_handle_dse): Remove condition that is never true.
29607         (rest_of_handle_dse::did_global): Remove never read from above.
29608         (dse_step2_spill): Remove never called from above.
29609         (dse_step5_spill): Remove never called from above.
29610
29611 2013-03-30  Steven Bosscher  <steven@gcc.gnu.org>
29612
29613         * doc/md.texi (Standard Names) <casesi>: Update documentation for
29614         JUMP_TABLE_DATA changes.
29615         * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
29616         * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
29617         (Insns) <jump_table_data>: New entry.
29618         * doc/tm.texi: Regenerate.
29619
29620         * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
29621
29622         * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
29623         for table jump at the end of a basic block using tablejump_p.
29624         * targhooks.c (default_invalid_within_doloop): Likewise.
29625         * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
29626         target hook implementation that is identical to the default hook.
29627         (rs6000_invalid_within_doloop): Remove.
29628
29629         * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
29630         unused variable from tablejump_p call.
29631
29632         * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
29633         * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
29634         (INSN_DELETED_P): Likewise.
29635         (emit_jump_table_data): New prototype.
29636         * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
29637         after 4th as unused.
29638         * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
29639         * sched-vis.c (print_insn): Likewise.
29640         * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
29641         insn for compatibility with back ends that use next_active_insn to
29642         identify jump table data.
29643         (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
29644         (remove_insn): Likewise.
29645         (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
29646         to be emitted.
29647         (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
29648         (emit_jump_table_data): New function.
29649
29650         * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
29651         basic block, a JUMP_TABLE_DATA never is.
29652         (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
29653         * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
29654         off from code handling real insns.
29655         * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
29656         * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
29657         test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
29658         * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
29659         is not a NONDEBUG_INSN_P.
29660         * ira-costs.c (scan_one_insn): Likewise.
29661         * jump.c (mark_all_labels): Likewise.
29662         (mark_jump_label_1): Likewise.
29663         * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
29664         * lra.c (get_insn_freq): Expect all insns reaching here to be in
29665         a basic block.
29666         (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
29667         * predict.c (expensive_function_p): Use FOR_BB_INSNS.
29668         * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
29669         JUMP_TABLE_DATA_P insns.
29670         (calculate_elim_costs_all_insns): Likewise.
29671         (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
29672         (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
29673         (delete_output_reload): Code style fixups.
29674         * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
29675         insn flags on this non-insn.
29676         * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
29677         as scheduling barriers, for pre-change compatibility.
29678         * stmt.c (emit_case_dispatch_table): Emit jump table data not as
29679         JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
29680
29681         * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
29682         redundant JUMP_TABLE_DATA_P test.
29683         * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
29684         * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
29685         (frv_for_each_packet): Likewise.
29686         * config/i386/i386.c (min_insn_size): Likewise.
29687         (ix86_avoid_jump_mispredicts): Likewise.
29688         * config/m32r/m32r.c (m32r_is_insn): Likewise.
29689         * config/mep/mep.c (mep_reorg_erepeat): Likewise.
29690         * config/mips/mips.c (USEFUL_INSN_P): Likewise.
29691         (mips16_insn_length): Robustify.
29692         (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
29693         (mips16_split_long_branches): Likewise.
29694         * config/pa/pa.c (pa_combine_instructions): Likewise.
29695         * config/rs6000/rs6000.c (get_next_active_insn): Treat
29696         JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
29697         * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
29698         as contributing to pool range lengths.
29699         * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
29700         Remove redundant JUMP_TABLE_DATA_P test.
29701         (sh_loop_align): Likewise.
29702         (split_branches): Likewise.
29703         (sh_insn_length_adjustment): Likewise.
29704         * config/spu/spu.c (get_branch_target): Likewise.
29705
29706 2013-03-29  Jan Hubicka  <jh@suse.cz>
29707
29708         * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
29709         gcov streaming; stream hot bb threshold to ltrans.
29710         * predict.c (get_hot_bb_threshold): Break out from ....
29711         (maybe_hot_count_p): ... here.
29712         (set_hot_bb_threshold): New function.
29713         * lto-section-in.c (lto_section_name): Add profile.
29714         * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
29715         * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
29716         and data-streamer.h
29717         (histogram_entry): New structure.
29718         (histogram, histogram_pool): New global vars.
29719         (histogram_hash): New structure.
29720         (histogram_hash::hash): New method.
29721         (histogram_hash::equal): Likewise.
29722         (account_time_size): New function.
29723         (cmp_counts): New function.
29724         (dump_histogram): New function.
29725         (ipa_profile_generate_summary): New function.
29726         (ipa_profile_write_summary): New function.
29727         (ipa_profile_read_summary): New function.
29728         (ipa_profile): Decide on threshold.
29729         (pass_ipa_profile): Add ipa_profile_write_summary and
29730         ipa_profile_read_summary.
29731         * Makefile.in (ipa.o): Update dependencies.
29732         * lto-streamer.h (LTO_section_ipa_profile): New section.
29733
29734 2013-03-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
29735
29736         * tree.h (VAR_P): New.
29737
29738 2013-03-29  Paolo Carlini  <paolo.carlini@oracle.com>
29739
29740         PR lto/56777
29741         * doc/invoke.texi ([-fwhole-program]): Fix typo.
29742
29743 2013-03-29  Steven Bosscher  <steven@gcc.gnu.org>
29744
29745         * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
29746         of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
29747         (control_flow_insn_p): Likewise.
29748         * cfgrtl.c (duplicate_insn_chain): Likewise.
29749         * final.c (get_attr_length_1): Likewise.
29750         (shorten_branches): Likewise.
29751         (final_scan_insn): Likewise.
29752         * function.c (instantiate_virtual_regs): Likewise.
29753         * gcse.c (insert_insn_end_basic_block): Likewise.
29754         * ira-costs.c (scan_one_insn): Likewise.
29755         * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
29756         * lra.c (check_rtl): Likewise.
29757         * reload1.c (elimination_costs_in_insn): Likewise.
29758         * reorg.c (follow_jumps): Likewise.
29759
29760         * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
29761         of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
29762         (thumb_far_jump_used_p): Likewise.
29763         * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
29764         (workaround_speculation): Likewise.
29765         (add_sched_insns_for_speculation): Likewise.
29766         * config/c6x/c6x.c (reorg_emit_nops): Likewise.
29767         * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
29768         (frv_for_each_packet): Likewise.
29769         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
29770         * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
29771         (final_emit_insn_group_barriers): Likewise.
29772         * config/m32r/m32r.c (m32r_is_insn): Likewise.
29773         * config/mips/mips.c (USEFUL_INSN_P): Likewise.
29774         (mips16_insn_length): Likewise.
29775         * config/pa/pa.c (pa_reorg): Likewise.
29776         (pa_combine_instructions): Likewise.
29777         * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
29778         * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
29779         (sh_reorg): Likewise.
29780         (split_branches): Likewise.
29781         * config/spu/spu.c (get_branch_target): Likewise.
29782
29783         * config/s390/s390.c (s390_chunkify_start): Simplify logic using
29784         JUMP_TABLE_DATA_P.
29785
29786 2013-03-29  Kirill Yukhin  <kirill.yukhin@intel.com>
29787
29788         * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
29789         Fix declaration name.
29790
29791 2013-03-28  Lawrence Crowl  <crowl@google.com>
29792
29793         * graphds.h (struct graph.indicies): Remove unused.
29794         * graphite-poly.h (struct graph.original_pddrs): Remove unused.
29795         (SCOP_ORIGINAL_PDDRS): Remove unused.
29796         * sese.h (extern insert_loop_close_phis): Removed unused.
29797         (extern insert_guard_phis): Removed unused.
29798         (extern ivtype_map_elt_info): Removed unused.
29799         (new_ivtype_map_elt): Removed unused.
29800         * sese.c (ivtype_map_elt_info): Removed unused.
29801
29802 2013-03-28  Lawrence Crowl  <crowl@google.com>
29803
29804         * Makefile.in: Add several missing include dependences.
29805         (DUMPFILE_H): New.
29806         (test-dump.o): New.  This object is not added to any executable,
29807         but is present for ad-hoc testing.
29808         * bitmap.c
29809         (debug (const bitmap_head_def &)): New.
29810         (debug (const bitmap_head_def *)): New.
29811         * bitmap.h
29812         (extern debug (const bitmap_head_def &)): New.
29813         (extern debug (const bitmap_head_def *)): New.
29814         * cfg.c
29815         (debug (edge_def &)): New.
29816         (debug (edge_def *)): New.
29817         * cfghooks.c
29818         (debug (basic_block_def &)): New.
29819         (debug (basic_block_def *)): New.
29820         * dumpfile.h
29821         (dump_node (const_tree, int, FILE *)): Correct source file.
29822         * dwarf2out.c
29823         (debug (die_struct &)): New.
29824         (debug (die_struct *)): New.
29825         * dwarf2out.h
29826         (extern debug (die_struct &)): New.
29827         (extern debug (die_struct *)): New.
29828         * gimple-pretty-print.c
29829         (debug (gimple_statement_d &)): New.
29830         (debug (gimple_statement_d *)): New.
29831         * gimple-pretty-print.h
29832         (extern debug (gimple_statement_d &)): New.
29833         (extern debug (gimple_statement_d *)): New.
29834         * ira-build.c
29835         (debug (ira_allocno_copy &)): New.
29836         (debug (ira_allocno_copy *)): New.
29837         (debug (ira_allocno &)): New.
29838         (debug (ira_allocno *)): New.
29839         * ira-int.h
29840         (extern debug (ira_allocno_copy &)): New.
29841         (extern debug (ira_allocno_copy *)): New.
29842         (extern debug (ira_allocno &)): New.
29843         (extern debug (ira_allocno *)): New.
29844         * ira-lives.c
29845         (debug (live_range &)): New.
29846         (debug (live_range *)): New.
29847         * lra-int.h
29848         (debug (lra_live_range &)): New.
29849         (debug (lra_live_range *)): New.
29850         * lra-lives.c
29851         (debug (lra_live_range &)): New.
29852         (debug (lra_live_range *)): New.
29853         * omega.c
29854         (debug (omega_pb_d &)): New.
29855         (debug (omega_pb_d *)): New.
29856         * omega.h
29857         (extern debug (omega_pb_d &)): New.
29858         (extern debug (omega_pb_d *)): New.
29859         * print-rtl.c
29860         (debug (const rtx_def &)): New.
29861         (debug (const rtx_def *)): New.
29862         * print-tree.c
29863         (debug_tree (tree): Move within file.
29864         (debug_raw (const tree_node &)): New.
29865         (debug_raw (const tree_node *)): New.
29866         (dump_tree_via_hooks (const tree_node *, int)): New.
29867         (debug (const tree_node &)): New.
29868         (debug (const tree_node *)): New.
29869         (debug_verbose (const tree_node &)): New.
29870         (debug_verbose (const tree_node *)): New.
29871         (debug_head (const tree_node &)): New.
29872         (debug_head (const tree_node *)): New.
29873         (debug_body (const tree_node &)): New.
29874         (debug_body (const tree_node *)): New.
29875         (debug_vec_tree (tree): Move and reimplement in terms of dump.
29876         (debug (vec<tree, va_gc> &)): New.
29877         (debug (vec<tree, va_gc> *)): New.
29878         * rtl.h
29879         (extern debug (const rtx_def &)): New.
29880         (extern debug (const rtx_def *)): New.
29881         * sbitmap.c
29882         (debug_raw (simple_bitmap_def &)): New.
29883         (debug_raw (simple_bitmap_def *)): New.
29884         (debug (simple_bitmap_def &)): New.
29885         (debug (simple_bitmap_def *)): New.
29886         * sbitmap.h
29887         (extern debug (simple_bitmap_def &)): New.
29888         (extern debug (simple_bitmap_def *)): New.
29889         (extern debug_raw (simple_bitmap_def &)): New.
29890         (extern debug_raw (simple_bitmap_def *)): New.
29891         * sel-sched-dump.c
29892         (debug (vinsn_def &)): New.
29893         (debug (vinsn_def *)): New.
29894         (debug_verbose (vinsn_def &)): New.
29895         (debug_verbose (vinsn_def *)): New.
29896         (debug (expr_def &)): New.
29897         (debug (expr_def *)): New.
29898         (debug_verbose (expr_def &)): New.
29899         (debug_verbose (expr_def *)): New.
29900         (debug (vec<rtx> &)): New.
29901         (debug (vec<rtx> *)): New.
29902         * sel-sched-dump.h
29903         (extern debug (vinsn_def &)): New.
29904         (extern debug (vinsn_def *)): New.
29905         (extern debug_verbose (vinsn_def &)): New.
29906         (extern debug_verbose (vinsn_def *)): New.
29907         (extern debug (expr_def &)): New.
29908         (extern debug (expr_def *)): New.
29909         (extern debug_verbose (expr_def &)): New.
29910         (extern debug_verbose (expr_def *)): New.
29911         (extern debug (vec<rtx> &)): New.
29912         (extern debug (vec<rtx> *)): New.
29913         * sel-sched-ir.h
29914         (_list_iter_cond_expr): Make inline instead of static.
29915         * sreal.c
29916         (debug (sreal &)): New.
29917         (debug (sreal *)): New.
29918         * sreal.h
29919         (extern debug (sreal &)): New.
29920         (extern debug (sreal *)): New.
29921         * tree.h
29922         (extern debug_raw (const tree_node &)): New.
29923         (extern debug_raw (const tree_node *)): New.
29924         (extern debug (const tree_node &)): New.
29925         (extern debug (const tree_node *)): New.
29926         (extern debug_verbose (const tree_node &)): New.
29927         (extern debug_verbose (const tree_node *)): New.
29928         (extern debug_head (const tree_node &)): New.
29929         (extern debug_head (const tree_node *)): New.
29930         (extern debug_body (const tree_node &)): New.
29931         (extern debug_body (const tree_node *)): New.
29932         (extern debug (vec<tree, va_gc> &)): New.
29933         (extern debug (vec<tree, va_gc> *)): New.
29934         * tree-cfg.c
29935         (debug (struct loop &)): New.
29936         (debug (struct loop *)): New.
29937         (debug_verbose (struct loop &)): New.
29938         (debug_verbose (struct loop *)): New.
29939         * tree-dump.c: Add header dependence.
29940         * tree-flow.h
29941         (extern debug (struct loop &)): New.
29942         (extern debug (struct loop *)): New.
29943         (extern debug_verbose (struct loop &)): New.
29944         (extern debug_verbose (struct loop *)): New.
29945         * tree-data-ref.c
29946         (debug (data_reference &)): New.
29947         (debug (data_reference *)): New.
29948         (debug (vec<data_reference_p> &)): New.
29949         (debug (vec<data_reference_p> *)): New.
29950         (debug (vec<ddr_p> &)): New.
29951         (debug (vec<ddr_p> *)): New.
29952         * tree-data-ref.h
29953         (extern debug (data_reference &)): New.
29954         (extern debug (data_reference *)): New.
29955         (extern debug (vec<data_reference_p> &)): New.
29956         (extern debug (vec<data_reference_p> *)): New.
29957         (extern debug (vec<ddr_p> &)): New.
29958         (extern debug (vec<ddr_p> *)): New.
29959         * tree-ssa-alias.c
29960         (debug (pt_solution &)): New.
29961         (debug (pt_solution *)): New.
29962         * tree-ssa-alias.h
29963         (extern debug (pt_solution &)): New.
29964         (extern debug (pt_solution *)): New.
29965         * tree-ssa-alias.c
29966         (debug (_var_map &)): New.
29967         (debug (_var_map *)): New.
29968         (debug (tree_live_info_d &)): New.
29969         (debug (tree_live_info_d *)): New.
29970         * tree-ssa-alias.h
29971         (extern debug (_var_map &)): New.
29972         (extern debug (_var_map *)): New.
29973         (extern debug (tree_live_info_d &)): New.
29974         (extern debug (tree_live_info_d *)): New.
29975
29976 2013-03-28  Jan Hubicka  <jh@suse.cz>
29977
29978         * lto-cgraph.c (merge_profile_summaries): Fix overflows.
29979
29980 2013-03-28  Ian Bolton  <ian.bolton@arm.com>
29981
29982         * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
29983         record only when desired or required.
29984
29985 2013-03-28  Uros Bizjak  <ubizjak@gmail.com>
29986
29987         * config/i386/i386.md (*vec_extract2vdi_1): Merge with
29988         *vec_extractv2di_1_rex64.  Use x64 isa attribute.
29989
29990 2013-03-28  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
29991
29992         * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
29993         (*andsi3_compare0_uxtw): New pattern.
29994         (*and_<SHIFT:optab><mode>3_compare0): New pattern.
29995         (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
29996
29997 2013-03-28  Jan Hubicka  <jh@suse.cz>
29998
29999         * data-streamer-in.c (streamer_read_gcov_count): New function.
30000         * gimple-streamer-out.c: Include value-prof.h.
30001         (output_gimple_stmt): Output histogram.
30002         (output_bb): Use streamer_write_gcov_count.
30003         * value-prof.c: Include data-streamer.h
30004         (dump_histogram_value): Add HIST_TYPE_MAX.
30005         (stream_out_histogram_value): New function.
30006         (stream_in_histogram_value): New function.
30007         * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
30008         (stream_out_histogram_value, stream_in_histogram_value): Declare.
30009         * data-streamer-out.c (streamer_write_gcov_count): New function.
30010         (streamer_write_gcov_count_stream): New function.
30011         * lto-cgraph.c (lto_output_edge): Update counter streaming.
30012         (lto_output_node): Likewise.
30013         (input_node, input_edge): Likewise.
30014         * lto-streamer-out.c (output_cfg): Update streaming.
30015         * lto-streamer-in.c (input_cfg): Likewise.
30016         * data-streamer.h (streamer_write_gcov_count,
30017         streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
30018         * gimple-streamer-in.c: Include value-prof.h
30019         (input_gimple_stmt): Input histograms.
30020         (input_bb): Update profile streaming.
30021
30022 2013-03-28  Kenneth Zadeck  <zadeck@naturalbridge.com>
30023
30024         * genmodes.c (emit_max_int): New function.
30025         (emit_insn_modes_h): Added call to emit_max_function.
30026         * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
30027         Added doc.
30028         * machmode.def: Fixed comment.
30029
30030 2013-03-28  Kenneth Zadeck  <zadeck@naturalbridge.com>
30031
30032         * combine.c (try_combine): Removed useless assert.
30033         * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
30034
30035 2013-03-28  Marek Polacek  <polacek@redhat.com>
30036             Richard Biener  <rguenther@suse.de>
30037
30038         PR tree-optimization/56695
30039         * tree-vect-stmts.c (vectorizable_condition): Unconditionally
30040         build signed result of a vector comparison.
30041         * tree-cfg.c (verify_gimple_comparison): Check that a result
30042         of a vector comparison has signed type.
30043
30044 2013-03-28  Richard Biener  <rguenther@suse.de>
30045
30046         PR tree-optimization/37021
30047         * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
30048         do not restrict gaps between groups.
30049         * tree-vect-stmts.c (vectorizable_load): Properly account for
30050         a gap between groups.
30051
30052 2013-03-28  Eric Botcazou  <ebotcazou@adacore.com>
30053
30054         * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
30055         general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
30056         is not enabled.
30057
30058 2013-03-27  Gerald Pfeifer  <gerald@pfeifer.com>
30059
30060         * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
30061         * doc/extend.texi (Named Address Spaces): Ditto.
30062         (Variable Attributes): Ditto.
30063
30064 2013-03-27  Kai Tietz  <ktietz@redhat.com>
30065
30066         * config.build: Add support for cygwin x64 target.
30067         * config.gcc: Likewise.
30068         * config.host: Likewise.
30069         * configure.ac: Likewise
30070         * configure: Regenerated.
30071
30072 2013-03-27  Kai Tietz  <ktietz@redhat.com>
30073
30074         * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
30075         * config/i386/t-cygwin-w64: New file.
30076         * config/i386/cygwin-w64.h: New file.
30077         * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
30078         and add support for x64-cygwin target.
30079         (CPP_SPEC): Likewise.
30080         (CXX_WRAP_SPEC_LIST): Undefine before define.
30081         (LIBGCJ_SONAME): Use 15 as version.
30082
30083 2013-03-27  Richard Biener  <rguenther@suse.de>
30084
30085         PR tree-optimization/56716
30086         * tree-ssa-structalias.c (perform_var_substitution): Adjust
30087         dumping for ref nodes.
30088
30089 2013-03-27  Martin Jambor  <mjambor@suse.cz>
30090
30091         PR tree-optimization/55334
30092         * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
30093         restricted pointers to arrays.
30094
30095 2013-03-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
30096
30097         * Makefile.in (.SUFFIXES): Add .cc.
30098         (.c.o): Apply same recipe for implicit rule .cc.o.
30099
30100 2013-03-27  Richard Biener  <rguenther@suse.de>
30101
30102         PR tree-optimization/37021
30103         * tree-vect-data-refs.c (vect_check_strided_load): Allow
30104         REALPART/IMAGPART_EXPRs around the supported refs.
30105         * tree-ssa-structalias.c (find_func_aliases): Assume that
30106         floating-point values are not used to transfer pointers.
30107
30108 2013-03-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
30109
30110         * target.def (TARGET_HAS_IFUNC_P): New target hook.
30111         * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
30112         * doc/tm.texi: Regenerate.
30113         * targhooks.h (default_has_ifunc_p): New.
30114         * targhooks.c (default_has_ifunc_p): Ditto.
30115         * config/linux-protos.h: New file.
30116         * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
30117         hook for linux which disables support of indirect functions in android.
30118         * config/linux-android.c: New file.
30119         * config/t-linux-android.c: Ditto.
30120         * config.gcc: Added new object file linux-android.o.
30121         * config/i386/i386.c (ix86_get_function_versions_dispatcher):
30122         Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
30123         * varasm.c (do_assemble_alias): Likewise.
30124         * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
30125         doesn't support indirect functions.
30126         * configure: Regenerate.
30127
30128 2013-03-27  Bin Cheng  <bin.cheng@arm.com>
30129
30130         PR target/56102
30131         * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
30132         rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
30133         mult-word mode.
30134
30135 2013-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30136
30137         * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
30138
30139 2013-03-27  Terry Guo  <terry.guo@arm.com>
30140
30141         * config/arm/arm-cores.def: Added core cortex-r7.
30142         * config/arm/arm-tune.md: Regenerated.
30143         * config/arm/arm-tables.opt: Regenerated.
30144         * doc/invoke.texi: Added entry for core cortex-r7.
30145
30146 2013-03-27  Walter Lee  <walt@tilera.com>
30147
30148         * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
30149         double-decrement of next_scratch_regno.
30150
30151 2013-03-27  Walter Lee  <walt@tilera.com>
30152
30153         * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
30154         input operands.
30155         (insn_v1mulus): Ditto.
30156         (insn_v2muls): Ditto.
30157
30158 2013-03-27  Walter Lee  <walt@tilera.com>
30159
30160         * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
30161         (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
30162
30163 2013-03-27  Walter Lee  <walt@tilera.com>
30164
30165         * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
30166         (*sibcall_value): Ditto.
30167
30168 2013-03-27  Walter Lee  <walt@tilera.com>
30169
30170         * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
30171         (insn_mnz_v8qi): ... this ...
30172         (insn_mnz_v4hi): ... and this.  Replace (const_int 0) with the
30173         vector equivalent.
30174         (insn_v<n>mnz): Replaced by ...
30175         (insn_v1mnz): ... this ...
30176         (insn_v2mnz): ... and this.  Replace (const_int 0) with the vector
30177         equivalent.
30178         (insn_mz_<mode>): Replaced by ...
30179         (insn_mz_v8qi): ... this ...
30180         (insn_mz_v4hi): ... and this.  Replace (const_int 0) with the
30181         vector equivalent.
30182         (insn_v<n>mz): Replaced by ...
30183         (insn_v1mz): ... this ...
30184         (insn_v2mz): ... and this.  Replace (const_int 0) with the vector
30185         equivalent.
30186
30187 2013-03-26  Eric Botcazou  <ebotcazou@adacore.com>
30188
30189         * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
30190
30191 2013-03-26  Roland McGrath  <mcgrathr@google.com>
30192
30193         * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
30194         than fprintf with a non-constant, non-format string.
30195
30196 2013-03-26  Uros Bizjak  <ubizjak@gmail.com>
30197
30198         * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
30199         using nox64 isa attribute.  Use nonimmediate_x86nomem_operand as
30200         operand 0 predicate.
30201         (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
30202         attribute.  Use general_x64nomem_operand as operand 1 predicate.
30203         (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
30204         attribute.  Use nonimmediate_x64nomem_operand as operand 0 predicate.
30205         (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
30206         attribute.  Use nonimmediate_x64nomem_operand as operand 0 predicate.
30207         (mov<mode>_insv_1): Remove expander.  Merge insn with
30208         movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
30209         Use general_x64nomem_operand as operand 1 predicate.
30210         (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
30211         (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
30212         attribute.  Use nonimmediate_x64nomem_operand as operand 1 predicate.
30213         (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
30214         attribute.  Use nonimmediate_x64nomem_operand as operand 2 predicate.
30215         (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
30216         attribute.  Use nonimmediate_x64nomem_operand as operand 1 predicate.
30217         (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
30218         isa attribute.  Use general_x64nomem_operand as operand 2 predicate.
30219         * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
30220         (general_x64nomem_operand): Ditto.
30221
30222 2013-03-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30223
30224         * config/rtems.opt: Add -pthread option.
30225
30226 2013-03-26  Richard Biener  <rguenther@suse.de>
30227
30228         * alias.c (find_base_term): Avoid redundant and not used recursion.
30229         (base_alias_check): Get the initial base term from the caller.
30230         (true_dependence_1): Compute and pass base terms to base_alias_check.
30231         (write_dependence_p): Likewise.
30232         (may_alias_p): Likewise.
30233
30234 2013-03-26  Sofiane Naci  <sofiane.naci@arm.com>
30235
30236         * config/aarch64/aarch64.c (aarch64_classify_address): Support
30237         PC-relative load in SI modes and above only.
30238
30239 2013-03-26  Xinyu Qi  <xyqi@marvell.com>
30240
30241         * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
30242         * config/arm/iwmmxt.md (WCGR0): Update.
30243         (WCGR1, WCGR2, WCGR3): Likewise.
30244
30245 2013-03-26  Uros Bizjak  <ubizjak@gmail.com>
30246
30247         * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
30248         Use x64 and nox64 isa attributes.
30249
30250 2013-03-26  Richard Biener  <rguenther@suse.de>
30251
30252         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
30253         alignment computations and rely on get_object_alignment_1
30254         for the !TYPE_P case.
30255         Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
30256
30257 2013-03-26  Walter Lee  <walt@tilera.com>
30258
30259         * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
30260         * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
30261
30262 2013-03-25  Jeff Law  <law@redhat.com>
30263
30264         * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
30265         check for INTEGRAL_TYPE_P that was missing due to checking in
30266         wrong version of prior patch.
30267
30268 2013-03-25  Walter Lee  <walt@tilera.com>
30269
30270         * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
30271         TILEGX_INSN_SHUFFLEBYTES1.
30272         * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
30273         shufflebytes1.
30274         (tilegx_builtins): Ditto.
30275         * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
30276
30277 2013-03-25  Walter Lee  <walt@tilera.com>
30278
30279         * config/tilegx/tilegx.md (floatsisf2): New pattern.
30280         (floatunssisf2): New pattern.
30281         (floatsidf2): New pattern.
30282         (floatunssidf2): New pattern.
30283
30284 2013-03-25  Walter Lee  <walt@tilera.com>
30285
30286         * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
30287         tests for constraint J, K, N, P.
30288
30289 2013-03-25  Walter Lee  <walt@tilera.com>
30290
30291         * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
30292         Use indirect/pcrel encoding.
30293         * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
30294         Ditto.
30295
30296 2013-03-25  Steve Ellcey  <sellcey@mips.com>
30297
30298         * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
30299         74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
30300         * config/mips/mips.c (mips_option_override): Set IMADD default.
30301         * config/mips/mips.h (PTF_AVOID_IMADD): New.
30302         (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
30303         (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
30304         * config/mips/mips.md (mimadd): New flag for integer madd/msub.
30305         * doc/invoke.texi (-mimadd/-mno-imadd): New.
30306
30307 2013-03-25  Jeff Law  <law@redhat.com>
30308
30309         * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
30310         slightly to avoid creating and folding useless trees.  Simplify
30311         slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
30312
30313 2013-03-25  Uros Bizjak  <ubizjak@gmail.com>
30314
30315         * config/i386/i386.md (*zero_extendsidi2): Merge with
30316         *zero_extendsidi2_rex64.  Use x64 and nox64 isa attributes.
30317         * config/i386/predicates.md (x86_64_zext_operand): Rename from
30318         x86_64_zext_general_operand.  Use nonimmediate_operand on 32bit
30319         targets.  Clarify comment.
30320
30321 2013-03-25  Martin Jambor  <mjambor@suse.cz>
30322
30323         * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
30324         pass-through jump functions differently.
30325         (ipa_read_jump_function): Likewise.  Also use setter functions to set
30326         up jump functions.
30327
30328 2013-03-25  Martin Jambor  <mjambor@suse.cz>
30329
30330         * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
30331         ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
30332         process it.
30333         (ipa_get_indirect_edge_target): New function.
30334         (devirtualization_time_bonus): New parameter known_aggs, pass it to
30335         ipa_get_indirect_edge_target.  Update all callers.
30336         (ipcp_discover_new_direct_edges): New parameter aggvals.  Pass it to
30337         ipa_get_indirect_edge_target_1 instead of calling
30338         ipa_get_indirect_edge_target.
30339         (create_specialized_node): Pass aggvlas to
30340         ipcp_discover_new_direct_edges.
30341
30342 2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30343
30344         * config/arm/arm.md (f_sels, f_seld): New types.
30345         (*cmov<mode>): New pattern.
30346         * config/arm/predicates.md (arm_vsel_comparison_operator): New
30347         predicate.
30348
30349 2013-03-25  Kai Tietz  <ktietz@redhat.com>
30350
30351         * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
30352         POSIX-printf for mingw-hosted  builds.
30353
30354 2013-03-25  Richard Biener  <rguenther@suse.de>
30355
30356         PR middle-end/56694
30357         * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
30358         must-not-throw stmt location.
30359
30360 2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30361
30362         * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
30363         Emit load-acquire versions when acq is true.
30364         (arm_emit_store_exclusive): Add rel parameter.
30365         Emit store-release versions when rel is true.
30366         (arm_split_compare_and_swap): Use acquire-release instructions
30367         instead.
30368         of barriers when appropriate.
30369         (arm_split_atomic_op): Likewise.
30370         * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
30371         * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
30372         (VUNSPEC_SLX): Likewise.
30373         (VUNSPEC_LDA): Likewise.
30374         (VUNSPEC_STL): Likewise.
30375         * config/arm/sync.md (atomic_load<mode>): New pattern.
30376         (atomic_store<mode>): Likewise.
30377         (arm_load_acquire_exclusive<mode>): Likewise.
30378         (arm_load_acquire_exclusivesi): Likewise.
30379         (arm_load_acquire_exclusivedi): Likewise.
30380         (arm_store_release_exclusive<mode>): Likewise.
30381
30382 2013-03-25  Catherine Moore  <clm@codesourcery.com>
30383
30384         * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
30385         Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
30386         * config/mip/predicates.md (lwsp_swsp_operand,
30387         lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
30388         sb16_operand, db4_operand, db7_operand, ib3_operand,
30389         sb4_operand, ub4_operand, uh4_operand, uw4_operand,
30390         uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
30391         andi16_operand): New predicates.
30392         * config/mips/mips.md (compression): New attribute.
30393         (enabled): New attribute.
30394         (length): Consider compression in computing length.
30395         (shift_compression): New code attribute.
30396         (*add<mode>3): New operands. Record compression.
30397         (sub<mode>3): Likewise.
30398         (one_cmpl<mode>2): Likewise.
30399         (*and<mode>3): Likewise.
30400         (*ior<mode>3): Likewise.
30401         (unnamed pattern for xor): Likewise.
30402         (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
30403         (*<optab><mode>3): Likewise.
30404         (*mov<mode>_internal: Likewise.
30405         * config/mips/mips-protos.h (mips_signed_immediate_p): New.
30406         (mips_unsigned_immediate_p): New.
30407         (umips_lwsp_swsp_address_p): New.
30408         (m16_based_address_p): New.
30409         * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
30410         (mips_unsigned_immediate_p): New prototype.
30411         (lwsp_swsp_address_p): New prototype.
30412         (m16_based_address_p): New prototype.
30413         * config/mips/mips.c (mips_unsigned_immediate_p): New function.
30414         (mips_signed_immediate_p): New function.
30415         (m16_based_address_p): New function.
30416         (lwsp_swsp_address_p): New function.
30417         (mips_print_operand_punctuation): Recognize short delay slot insns
30418         for microMIPS.add<mode>3"
30419
30420 2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30421
30422         PR target/56720
30423         * config/arm/iterators.md (v_cmp_result): New mode attribute.
30424         * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
30425
30426 2013-03-25  Richard Biener  <rguenther@suse.de>
30427
30428         PR tree-optimization/56689
30429         * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
30430         any edge.
30431
30432 2013-03-25  Richard Biener  <rguenther@suse.de>
30433
30434         * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
30435         of bitmap.
30436         (memory_references): Likewise.
30437         (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
30438         gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
30439         ref_indep_loop_p_2, find_refs_for_sm): Adjust.
30440         (gather_mem_refs_in_loops): Fold into ...
30441         (analyze_memory_references): ... this.  Move initialization
30442         to tree_ssa_lim_initialize.
30443         (fill_always_executed_in): Rename to ...
30444         (fill_always_executed_in_1): ... this.
30445         (fill_always_executed_in): Move contains_call computation to
30446         this new function from ...
30447         (tree_ssa_lim_initialize): ... here.
30448         (tree_ssa_lim): Call fill_always_executed_in.
30449
30450 2013-03-25  Eric Botcazou  <ebotcazou@adacore.com>
30451
30452         * postreload.c (reload_combine): Fix code detecting returns.
30453
30454 2013-03-25  Eric Botcazou  <ebotcazou@adacore.com>
30455
30456         * function.c (emit_use_return_register_into_block): On cc0 targets,
30457         do not emit the sequence between cc0 setter and user.
30458
30459 2013-03-25  Kai Tietz  <ktietz@redhat.com>
30460
30461         * config/i386/predicates.md (local_symbolic_operand): Interpret
30462         dll-imported symbols as none-local.
30463
30464 2013-03-25  Richard Biener  <rguenther@suse.de>
30465
30466         * tree-ssa-loop-im.c (struct depend): Remove.
30467         (struct lim_aux_data): Make depends a vec of gimples.
30468         (free_lim_aux_data): Adjust.
30469         (add_dependency): Likewise.
30470         (set_level): Likewise.
30471
30472 2013-03-25  Richard Biener  <rguenther@suse.de>
30473
30474         PR middle-end/56434
30475         * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
30476         the pointer returned by calls with ECF_MALLOC set.
30477
30478 2013-03-24  Uros Bizjak  <ubizjak@gmail.com>
30479
30480         * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
30481
30482 2013-03-24  Uros Bizjak  <ubizjak@gmail.com>
30483
30484         * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
30485         using MMXMODE mode iterator.
30486         (*move<mode>_internal): Merge with *movv2sf_internal and
30487         *movv2sf_internal_rex64 using MMXMODE mode iterator.
30488
30489 2013-03-23  Steven Bosscher  <steven@gcc.gnu.org>
30490
30491         * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
30492         (record_last_mem_set_info): Likewise.
30493
30494         * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
30495         of XNEWVEC followed by memset.
30496         (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
30497
30498 2013-03-23  Steven Bosscher  <steven@gcc.gnu.org>
30499
30500         * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
30501         config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
30502         config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
30503         config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
30504         config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
30505         config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
30506         dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
30507         the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
30508         BARRIER_P instead of GET_CODE.
30509
30510 2013-03-23  Eric Botcazou  <ebotcazou@adacore.com>
30511
30512         * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
30513         inaccuracy in the probing code.
30514
30515         * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
30516         (ctrapdi4): Likewise.
30517
30518 2013-03-23  Eric Botcazou  <ebotcazou@adacore.com>
30519
30520         * calls.c (expand_call): Add missing guard to code handling return
30521         of non-BLKmode structures in MSB.
30522         * function.c (expand_function_end): Likewise.
30523
30524 2013-03-23  Eric Botcazou  <ebotcazou@adacore.com>
30525
30526         * combine.c (try_combine): Adjust comment.  Do not add the set of
30527         insn #0 if the destination indirectly is set or dies in insn #2.
30528         Tidy up code to distribute a new note.
30529
30530 2013-03-22  Uros Bizjak  <ubizjak@gmail.com>
30531
30532         * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
30533         also for alternatives 16 and 17.
30534
30535 2013-03-22  Uros Bizjak  <ubizjak@gmail.com>
30536
30537         * config/i386/sse.md (*mov<mode>_internal): Merge with
30538         *mov<mode>_internal_rex64.  Use x64 and nox64 isa attributes.
30539         Emit insn template depending on type attribute.  Use
30540         HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
30541         movd instead of movq mnemonic for interunit moves.  Rewrite mode
30542         attribute calculation.  Remove unit attribute calculation.
30543         Set prefix attribute to maybe_vex for sselog1 and ssemov types.
30544         Set prefix_data16 attribute for DImode ssemov types.
30545         Use Ym instead of y for SSE-MMX conversion alternatives.
30546         Reorder operand constraints.
30547
30548 2013-03-22  Steven Bosscher  <steven@gcc.gnu.org>
30549
30550         * df.h (df_insn_delete): Adjust prototype.
30551         * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
30552         and let it decide whether mark the basic block dirty.
30553         (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
30554         * df-scan.c (df_insn_info_delete): New helper function, split
30555         off from df_insn_delete.
30556         (df_scan_free_bb_info): Use it.
30557         (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
30558         Likewise.
30559         (df_insn_delete): Likewise.  Take insn rtx as argument.  Verify
30560         that the insn is actually an insn and it has a non-NULL basic block.
30561         Do not mark basic block dirty if only deleting a DEBUG_INSN.
30562
30563 2013-03-22  Richard Biener  <rguenther@suse.de>
30564
30565         * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
30566         dep_ref members.
30567         (mem_ref_alloc): Do not allocate them.
30568         (refs_independent_p): Do not query or maintain a cache.
30569
30570 2013-03-22  Richard Biener  <rguenther@suse.de>
30571
30572         * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
30573         (gather_mem_refs_in_loops): Do not compute it.
30574         (analyze_memory_references): Do not allocate it.
30575         (tree_ssa_lim_finalize): Do not free it.
30576         (for_all_locs_in_loop): Do not query all_refs_in_loop.
30577
30578 2013-03-22  Richard Biener  <rguenther@suse.de>
30579
30580         * is-a.h (as_a): Use gcc_checking_assert.
30581
30582 2013-03-22  Ian Bolton  <ian.bolton@arm.com>
30583
30584         * config/aarch64/aarch64.c (aarch64_print_operand): New
30585         format specifier for printing a constant in hex.
30586         * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
30587         format specifier for printing second operand.
30588
30589 2013-03-22  Richard Biener  <rguenther@suse.de>
30590
30591         * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
30592         bitmaps.
30593         (gather_mem_refs_in_loops): Perform store accumulation here.
30594         (create_vop_ref_mapping_loop): Remove.
30595         (create_vop_ref_mapping): Likewise.
30596         (analyze_memory_references): Initialize refs_stored_in_loop.
30597         (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
30598         (record_indep_loop): Remove.
30599         (record_dep_loop): New function.
30600         (ref_indep_loop_p_1): Adjust to only walk over references
30601         in the loop, not its subloops.
30602         (ref_indep_loop_p): Rename to ...
30603         (ref_indep_loop_p_2): ... this and recurse over the loop tree,
30604         maintaining a more fine-grained cache.
30605         (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
30606         (tree_ssa_lim_finalize): Free refs_stored_in_loop.
30607
30608 2013-03-22  Richard Biener  <rguenther@suse.de>
30609
30610         * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
30611         (struct mem_ref): Make accesses_in_loop a vec of a vec of
30612         aggregate mem_ref_loc.
30613         (free_mem_ref_locs): Inline into ...
30614         (memref_free): ... this and adjust.
30615         (mem_ref_alloc): Adjust.
30616         (mem_ref_locs_alloc): Remove.
30617         (record_mem_ref_loc): Adjust.
30618         (get_all_locs_in_loop): Rewrite into ...
30619         (for_all_locs_in_loop): ... this iterator.
30620         (rewrite_mem_ref_loc): New functor.
30621         (rewrite_mem_refs): Use for_all_locs_in_loop.
30622         (sm_set_flag_if_changed): New functor.
30623         (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
30624         (ref_always_accessed): New functor.
30625         (ref_always_accessed_p): Use for_all_locs_in_loop.
30626
30627 2013-03-21  Marc Glisse  <marc.glisse@inria.fr>
30628
30629         * tree-pass.h (PROP_gimple_lvec): New.
30630         * passes.c (dump_properties): Handle PROP_gimple_lvec.
30631         (init_optimization_passes): Move pass_lower_vector.
30632         * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
30633         PROP_gimple_lvec.
30634         (pass_lower_vector): Provide PROP_gimple_lvec.
30635         (pass_lower_vector_ssa): Likewise.
30636         * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
30637
30638 2013-03-21  Mark Wielaard  <mjw@redhat.com>
30639
30640         * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
30641
30642 2013-03-21  Uros Bizjak  <ubizjak@gmail.com>
30643
30644         * config/i386/i386.md (*movdi_internal): Disparage slightly
30645         all MMX moves to/from memory.  Use Yi instead of x for SSE-MMX
30646         conversion alternatives.
30647
30648 2013-03-21  Jakub Jelinek  <jakub@redhat.com>
30649
30650         PR middle-end/48087
30651         * diagnostic.def (DK_WERROR): New kind.
30652         * diagnostic.h (werrorcount): Define.
30653         * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
30654         promoted to DK_ERROR, increment DK_WERROR counter instead of
30655         DK_ERROR counter.
30656         * toplev.c (toplev_main): Call print_ignored_options even if
30657         just werrorcount is non-zero.  Exit with FATAL_EXIT_CODE
30658         even if just werrorcount is non-zero.
30659
30660         PR debug/55608
30661         * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
30662         on failure.
30663         (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
30664         (string_cst_pool_decl): New function.
30665         (optimize_one_addr_into_implicit_ptr): New function.
30666         (resolve_addr_in_expr): Optimize DWARF location expression
30667         DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
30668         which doesn't live in memory, but has DW_AT_location or
30669         DW_AT_const_value, or refers to a string literal, into
30670         DW_OP_GNU_implicit_pointer.
30671         (optimize_location_into_implicit_ptr): New function.
30672         (resolve_addr): If removing DW_AT_location of a variable because
30673         it was DW_OP_addr of address of the variable, but the variable doesn't
30674         live in memory, try to emit const value attribute for the initializer.
30675
30676 2013-03-21  Marc Glisse  <marc.glisse@inria.fr>
30677
30678         * tree.h (VECTOR_TYPE_P): New macro.
30679         (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
30680         TYPE_MODE): Use it.
30681         * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
30682         VEC_COND_EXPR cannot be lvalues.
30683         (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
30684
30685 2013-03-21  Marc Glisse  <marc.glisse@inria.fr>
30686
30687         * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
30688         Restrict the transformation to equal modes.
30689
30690 2013-03-21  Richard Biener  <rguenther@suse.de>
30691
30692         PR tree-optimization/39326
30693         * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
30694         (MEM_ANALYZABLE): Adjust.
30695         (record_mem_ref_loc): Move bitmap ops ...
30696         (gather_mem_refs_stmt): ... here.  Use the shared mem-ref for
30697         unanalyzable refs, do not record locations for it.
30698         (analyze_memory_references): Allocate ref zero as shared
30699         unanalyzable ref.
30700         (refs_independent_p): Do not test for unanalyzed mems here.
30701         (ref_indep_loop_p_1): Special-case disambiguation against
30702         the unanalyzed ref.
30703         (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
30704
30705 2013-03-21  Christophe Lyon  <christophe.lyon@linaro.org>
30706
30707         * config/arm/arm-protos.h (tune_params): Add
30708         prefer_neon_for_64bits field.
30709         * config/arm/arm.c (prefer_neon_for_64bits): New variable.
30710         (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
30711         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
30712         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
30713         (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
30714         (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
30715         (arm_option_override): Handle -mneon-for-64bits new option.
30716         * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
30717         (prefer_neon_for_64bits): Declare new variable.
30718         * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
30719         avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
30720         (arch_enabled): Handle new arch types. Remove support for onlya8
30721         and nota8.
30722         (one_cmpldi2): Use new arch names.
30723         (zero_extend<mode>di2, extend<mode>di2): Ditto.
30724         * config/arm/arm.opt (mneon-for-64bits): Add option.
30725         * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
30726         (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
30727         neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
30728         of onlya8.
30729         * doc/invoke.texi (-mneon-for-64bits): Document.
30730
30731 2013-03-21  Richard Biener  <rguenther@suse.de>
30732
30733         PR tree-optimization/39326
30734         * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
30735         (sort_bbs_in_loop_postorder_cmp): New function.
30736         (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
30737
30738 2013-03-21  Richard Biener  <rguenther@suse.de>
30739
30740         * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
30741         (vect_insert_into_interleaving_chain): Likewise.
30742         (vect_drs_dependent_in_basic_block): Inline ...
30743         (vect_slp_analyze_data_ref_dependence): ... here.  New function,
30744         split out from ...
30745         (vect_analyze_data_ref_dependence): ... here.  Simplify.
30746         (vect_check_interleaving): Simplify.
30747         (vect_analyze_data_ref_dependences): Likewise.  Split out ...
30748         (vect_slp_analyze_data_ref_dependences): ... this new function.
30749         (dr_group_sort_cmp): New function.
30750         (vect_analyze_data_ref_accesses): Compute data-reference groups
30751         here instead of in vect_analyze_data_ref_dependence.  Use
30752         a more efficient algorithm.
30753         * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
30754         vect_slp_analyze_data_ref_dependences.  Call
30755         vect_analyze_data_ref_accesses earlier.
30756         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
30757         * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
30758         (vect_slp_analyze_data_ref_dependences): New prototype.
30759
30760 2013-03-21  Richard Biener  <rguenther@suse.de>
30761
30762         * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
30763         ref is stored in the loop.
30764         (find_refs_for_sm): Walk only over all stores.
30765         (store_motion_loop): Allocate from lim_bitmap_obstack.
30766         (store_motion): Likewise.
30767
30768 2013-03-21  Richard Biener  <rguenther@suse.de>
30769
30770         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
30771         Update virtual SSA form.
30772
30773 2013-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30774
30775         * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
30776         * configure: Regenerate.
30777         * config.in: Regenerate.
30778         * config/sol2.c (solaris_override_options): Only enforce DWARF 2
30779         if !HAVE_LD_EH_FRAME_CIEV3.
30780
30781 2013-03-21  Richard Biener  <rguenther@suse.de>
30782
30783         * tree-cfg.c (verify_expr_no_block): New function.
30784         (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
30785         nor DECL_VALUE_EXPR have locations with associated blocks.
30786         * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
30787         (clear_unused_block_pointer): Remove code dealing with
30788         blocks in DECL_DEBUG_EXPR locations.
30789
30790 2013-03-21  Richard Biener  <rguenther@suse.de>
30791
30792         * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
30793         (DECL_HAS_DEBUG_EXPR_P): ... this.  Guard properly.
30794         * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
30795         * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
30796         instead of DECL_DEBUG_EXPR_IS_FROM.
30797         * gimplify.c (gimplify_modify_expr): Likewise.
30798         * tree-cfg.c (verify_expr_location_1): Likewise.
30799         * tree-complex.c (create_one_component_var): Likewise.
30800         * tree-sra.c (create_access_replacement): Likewise.
30801         * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
30802         (clear_unused_block_pointer): Likewise.
30803         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
30804         * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
30805         * var-tracking.c (var_debug_decl): Likewise.
30806         (track_expr_p): Likewise.
30807         * tree-inline.c (add_local_variables): Likewise.  Set
30808         DECL_HAS_DEBUG_EXPR_P after copying it.
30809         * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
30810         instead of DECL_DEBUG_EXPR_IS_FROM.  Guard properly.
30811
30812 2013-03-21  Uros Bizjak  <ubizjak@gmail.com>
30813
30814         PR bootstrap/56656
30815         * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
30816         * configure: Regenerate.
30817         * config.in: Regenerate.
30818         * config/i386/i386.md (*movdf_internal): Use
30819         HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
30820         movd instead of movq mnemonic for interunit moves.
30821         (*movdi_internal): Ditto.
30822
30823 2013-03-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
30824
30825         * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
30826         (abd<mode>_3): New pattern.
30827         (aba<mode>_3): New pattern.
30828         (fabd<mode>_3): New pattern.
30829
30830 2013-03-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
30831
30832         * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
30833         * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
30834         occurrence of REGISTER_PREFIX as its empty string.
30835
30836 2013-03-20  Jeff Law  <law@redhat.com>
30837
30838         * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
30839         addititional equivalences for equality comparisons between an SSA_NAME
30840         and a constant where the SSA_NAME was set from a widening conversion.
30841
30842 2013-03-20  Walter Lee  <walt@tilera.com>
30843
30844         * config/tilegx/sync.md (atomic_test_and_set): New pattern.
30845
30846 2013-03-20  Uros Bizjak  <ubizjak@gmail.com>
30847
30848         * config/i386/i386.md (*movoi_internal_avx): Emit insn template
30849         depending on type attribute.
30850         (*movti_internal): Ditto.
30851         (*movtf_internal): Ditto.
30852         (*movxf_internal): Ditto.
30853         (*movdf_internal): Ditto.
30854         (*movsf_internal): Ditto.
30855
30856 2013-03-20  Uros Bizjak  <ubizjak@gmail.com>
30857
30858         * config/i386/i386.md (*movti_internal): Set prefix attribute to
30859         maybe_vex for sselog1 and ssemov types.
30860         (*movdi_internal): Reorder operand constraints.
30861         (*movsi_internal): Ditto.  Set prefix attribute to
30862         maybe_vex for sselog1 and ssemov types.
30863         (*movtf_internal): Set prefix attribute to maybe_vex
30864         for sselog1 and ssemov types.
30865         (*movdf_internal): Ditto.  Set prefix_data16 attribute for
30866         DImode ssemov types.  Reorder operand constraints.
30867         (*movsf_internal): Set type of alternatives 3,4 to imov.  Set prefix
30868         attribute to maybe_vex for sselog1 and ssemov types.  Set prefix_data16
30869         attribute for SImode ssemov types.  Reorder operand constraints.
30870
30871 2013-03-20  Martin Jambor  <mjambor@suse.cz>
30872
30873         * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
30874         * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
30875
30876 2013-03-20  Pat Haugen  <pthaugen@us.ibm.com>
30877
30878         * config/rs6000/predicates.md (indexed_address, update_address_mem
30879         update_indexed_address_mem): New predicates.
30880         * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
30881         attribute for load/store instructions.
30882         * config/rs6000/dfp.md (movsd_store): Likewise.
30883         (movsd_load): Likewise.
30884         * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
30885         (unnamed HI->DI extend define_insn): Likewise.
30886         (unnamed SI->DI extend define_insn): Likewise.
30887         (unnamed QI->SI extend define_insn): Likewise.
30888         (unnamed QI->HI extend define_insn): Likewise.
30889         (unnamed HI->SI extend define_insn): Likewise.
30890         (unnamed HI->SI extend define_insn): Likewise.
30891         (extendsfdf2_fpr): Likewise.
30892         (movsi_internal1): Likewise.
30893         (movsi_internal1_single): Likewise.
30894         (movhi_internal): Likewise.
30895         (movqi_internal): Likewise.
30896         (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
30897         attribute for load/store instructions.
30898         (mov<mode>_hardfloat): Set correct "type" attribute for load/store
30899         instructions.
30900         (mov<mode>_softfloat): Likewise.
30901         (mov<mode>_hardfloat32): Likewise.
30902         (mov<mode>_hardfloat64): Likewise.
30903         (mov<mode>_softfloat64): Likewise.
30904         (movdi_internal32): Likewise.
30905         (movdi_internal64): Likewise.
30906         (probe_stack_<mode>): Likewise.
30907
30908 2013-03-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
30909
30910         * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
30911         floating point, and decimal floating point to reload iterator.
30912
30913         * config/rs6000/constraints.md (wl constraint): New constraints to
30914         return FLOAT_REGS if certain options are used to reduce the number
30915         of separate patterns that exist in the file.
30916         (wx constraint): Likewise.
30917         (wz constraint): Likewise.
30918
30919         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
30920         -mdebug=reg, print wg, wl, wx, and wz constraints.
30921         (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
30922         Initialize the reload functions for 64-bit binary/decimal floating
30923         point types.
30924         (reg_offset_addressing_ok_p): If we are on a power7 or later, use
30925         LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
30926         create the buffer on the stack to overcome not having a 32-bit
30927         load and store.
30928         (rs6000_emit_move): Likewise.
30929         (rs6000_secondary_memory_needed_rtx): Likewise.
30930         (rs6000_alloc_sdmode_stack_slot): Likewise.
30931         (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
30932         via xxlxor, just like DFmode 0.0.
30933
30934         * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
30935         define as 1 if we are running on a power7 or newer.
30936         (enum r6000_reg_class_enum): Add new constraints.
30937
30938         * config/rs6000/dfp.md (movsd): Delete, combine with binary
30939         floating point moves in rs6000.md.  Combine power6x (mfpgpr) moves
30940         with other moves by using conditional constraits (wg).  Use LFIWZX
30941         and STFIWX for loading SDmode on power7.  Use xxlxor to create 0.0f.
30942         (movsd splitter): Likewise.
30943         (movsd_hardfloat): Likewise.
30944         (movsd_softfloat): Likewise.
30945
30946         * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
30947         binary and decimal floating point moves.
30948         (fmove_ok): New attributes to combine binary and decimal floating
30949         point moves, and to combine power6x (mfpgpr) moves along normal
30950         floating moves.
30951         (real_value_to_target): Likewise.
30952         (f32_lr): Likewise.
30953         (f32_lm): Likewise.
30954         (f32_li): Likewise.
30955         (f32_sr): Likewise.
30956         (f32_sm): Likewise.
30957         (f32_si): Likewise.
30958         (movsf): Combine binary and decimal floating point moves.  Combine
30959         power6x (mfpgpr) moves with other moves by using conditional
30960         constraits (wg).  Use LFIWZX and STFIWX for loading SDmode on power7.
30961         (mov<mode> for SFmode/SDmode); Likewise.
30962         (SFmode/SDmode splitters): Likewise.
30963         (movsf_hardfloat): Likewise.
30964         (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
30965         (movsf_softfloat): Likewise.
30966         (mov<mode>_softfloat for SFmode/SDmode): Likewise.
30967
30968         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
30969         wx and wz constraints.
30970
30971         * config/rs6000/constraints.md (wg constraint): New constraint to
30972         return FLOAT_REGS if -mmfpgpr (power6x) was used.
30973
30974         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
30975         constraint.
30976
30977         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
30978         -mdebug=reg, print wg, wl, wx, and wz constraints.
30979         (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
30980         Initialize the reload functions for 64-bit binary/decimal floating
30981         point types.
30982         (reg_offset_addressing_ok_p): If we are on a power7 or later, use
30983         LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
30984         create the buffer on the stack to overcome not having a 32-bit
30985         load and store.
30986         (rs6000_emit_move): Likewise.
30987         (rs6000_secondary_memory_needed_rtx): Likewise.
30988         (rs6000_alloc_sdmode_stack_slot): Likewise.
30989         (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
30990         via xxlxor, just like DFmode 0.0.
30991
30992         * config/rs6000/dfp.md (movdd): Delete, combine with binary
30993         floating point moves in rs6000.md.  Combine power6x (mfpgpr) moves
30994         with other moves by using conditional constraits (wg).  Use LFIWZX
30995         and STFIWX for loading SDmode on power7.
30996         (movdd splitters): Likewise.
30997         (movdd_hardfloat32): Likewise.
30998         (movdd_softfloat32): Likewise.
30999         (movdd_hardfloat64_mfpgpr): Likewise.
31000         (movdd_hardfloat64): Likewise.
31001         (movdd_softfloat64): Likewise.
31002
31003         * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
31004         64-bit binary and decimal floating point moves.
31005         (FMOVE64X): Likewise.
31006         (movdf): Combine 64-bit binary and decimal floating point moves.
31007         Combine power6x (mfpgpr) moves with other moves by using
31008         conditional constraits (wg).
31009         (mov<mode> for DFmode/DDmode): Likewise.
31010         (DFmode/DDmode splitters): Likewise.
31011         (movdf_hardfloat32): Likewise.
31012         (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
31013         (movdf_softfloat32): Likewise.
31014         (movdf_hardfloat64_mfpgpr): Likewise.
31015         (movdf_hardfloat64): Likewise.
31016         (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
31017         (movdf_softfloat64): Likewise.
31018         (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
31019         (reload_<mode>_load): Move to later in the file so they aren't in
31020         the middle of the floating point move insns.
31021         (reload_<mode>_store): Likewise.
31022
31023         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
31024         constraint.
31025
31026         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
31027         constraint if -mdebug=reg.
31028         (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
31029         Enable using dd reload support if needed.
31030
31031         * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
31032         binary and decimal floating point moves in rs6000.md.
31033         (movtd_internal): Likewise.
31034
31035         * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
31036         decimal floating point moves.
31037         (movtf): Likewise.
31038         (movtf_internal): Likewise.
31039         (mov<mode>_internal, TDmode/TFmode): Likewise.
31040         (movtf_softfloat): Likewise.
31041         (mov<mode>_softfloat, TDmode/TFmode): Likewise.
31042
31043         * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
31044         movdi_internal64, using wg constraint for move direct operations.
31045         (movdi_internal64): Likewise.
31046
31047         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
31048         MODES_TIEABLE_P for selected modes.  Print the numerical value of
31049         the various virtual registers. Use GPR/FPR first/last values,
31050         instead of hard coding the register numbers.  Print which modes
31051         have reload functions registered.
31052         (rs6000_option_override_internal): If -mdebug=reg, trace the options
31053         settings before/after setting cpu, target and subtarget settings.
31054         (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
31055         and for secondary reload failures in rs6000_secondary_reload_inner.
31056         (rs6000_secondary_reload_fail): Likewise.
31057         (rs6000_secondary_reload_inner): Likewise.
31058
31059         * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
31060         macros for first/last GPR and FPR registers.
31061         (LAST_GPR_REGNO): Likewise.
31062         (FIRST_FPR_REGNO): Likewise.
31063         (LAST_FPR_REGNO): Likewise.
31064
31065         * config/rs6000/vector.md (mul<mode>3): Use the combined macro
31066         VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
31067         VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
31068         (vcond<mode><mode>): Likewise.
31069         (vcondu<mode><mode>): Likewise.
31070         (vector_gtu<mode>): Likewise.
31071         (vector_gte<mode>): Likewise.
31072         (xor<mode>3): Don't allow logical operations on TImode in 32-bit
31073         to prevent the compiler from converting DImode operations to TImode.
31074         (ior<mode>3): Likewise.
31075         (and<mode>3): Likewise.
31076         (one_cmpl<mode>2): Likewise.
31077         (nor<mode>3): Likewise.
31078         (andc<mode>3): Likewise.
31079
31080         * config/rs6000/constraints.md (wt constraint): New constraint
31081         that returns VSX_REGS if TImode is allowed in VSX registers.
31082
31083         * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
31084         constant under VSX.
31085
31086         * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
31087         similar to TImode, but it is restricted to being in the GPRs.
31088
31089         * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
31090         TImode to occupy a single VSX register.
31091
31092         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
31093         -mvsx-timode for power7/power8.
31094         (power7 cpu): Likewise.
31095         (power8 cpu): Likewise.
31096
31097         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
31098         sure that TFmode/TDmode take up two registers if they are ever
31099         allowed in the upper VSX registers.
31100         (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
31101         registers.
31102         (rs6000_init_hard_regno_mode_ok): Likewise.
31103         (rs6000_debug_reg_global): Add debugging for PTImode and wt
31104         constraint.  Print if LRA is turned on.
31105         (rs6000_option_override_internal): Give an error if -mvsx-timode
31106         and VSX is not enabled.
31107         (invalid_e500_subreg): Handle PTImode, restricting it to GPRs.  If
31108         -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
31109         to reg+offset addressing.  Use PTImode when checking offset
31110         addresses for validity.
31111         (reg_offset_addressing_ok_p): Likewise.
31112         (rs6000_legitimate_offset_address_p): Likewise.
31113         (rs6000_legitimize_address): Likewise.
31114         (rs6000_legitimize_reload_address): Likewise.
31115         (rs6000_legitimate_address_p): Likewise.
31116         (rs6000_eliminate_indexed_memrefs): Likewise.
31117         (rs6000_emit_move): Likewise.
31118         (rs6000_secondary_reload): Likewise.
31119         (rs6000_secondary_reload_inner): Handle PTImode.  Allow 64-bit
31120         reloads to fpr registers to continue to use reg+offset addressing,
31121         but 64-bit reloads to altivec registers need reg+reg addressing.
31122         Drop test for PRE_MODIFY, since VSX loads/stores no longer support
31123         it.  Treat LO_SUM like a PLUS operation.
31124         (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
31125         FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
31126         (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
31127         registers to share a register with a smaller sized type, since VSX
31128         puts scalars in the upper 64-bits.
31129         (print_operand): Add support for PTImode.
31130         (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
31131         VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
31132         registers, but don't have arithmetic support.
31133         (rs6000_memory_move_cost): Add test for VSX.
31134         (rs6000_opt_masks): Add -mvsx-timode.
31135
31136         * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
31137         for TImode.
31138         (VSs): Likewise.
31139         (VSr): Use wt constraint for TImode.
31140         (VSv): Drop TImode support.
31141         (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
31142         (vsx_movti_64bit): Likewise.
31143         (vsx_movti_32bit): Likewise.
31144         (vec_store_<mode>): Use VSX iterator instead of vector iterator.
31145         (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
31146         one '?' on the appropriate output constraint.  Do not allow TImode
31147         logical operations on 32-bit systems.
31148         (vsx_ior<mode>3): Likewise.
31149         (vsx_xor<mode>3): Likewise.
31150         (vsx_one_cmpl<mode>2): Likewise.
31151         (vsx_nor<mode>3): Likewise.
31152         (vsx_andc<mode>3): Likewise.
31153         (vsx_concat_<mode>): Likewise.
31154         (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
31155
31156         * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
31157         OPTION_MASK_VSX_TIMODE.
31158         (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
31159         (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
31160
31161         * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
31162         (TI2 iterator): New iterator for TImode, PTImode.
31163         (wd mode attribute): Add values for vector types.
31164         (movti_string): Replace TI move operations with operations for TImode
31165         and PTImode.  Add support for TImode being allowed in VSX registers.
31166         (mov<mode>_string, TImode/PTImode): Likewise.
31167         (movti_ppc64): Likewise.
31168         (mov<mode>_ppc64, TImode/PTImode): Likewise.
31169         (TI mode splitters): Likewise.
31170
31171         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
31172         constraint.
31173
31174 2013-03-20  Marc Glisse  <marc.glisse@inria.fr>
31175
31176         PR tree-optimization/56355
31177         * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
31178         Also handle integers with undefined overflow.
31179
31180 2013-03-20  Catherine Moore  <clm@codesourcery.com>
31181             Maciej W. Rozycki  <macro@codesourcery.com>
31182             Tom de Vries  <tom@codesourcery.com>
31183             Nathan Sidwell  <nathan@codesourcery.com>
31184             Iain Sandoe  <iain@codesourcery.com>
31185             Nathan Froyd  <froydnj@codesourcery.com>
31186             Chao-ying Fu  <fu@mips.com>
31187
31188         * doc/extend.texi: (micromips, nomicromips, nocompression):
31189         Document new function attributes.
31190         * doc/invoke.texi (minterlink-compressed, mmicromips,
31191         m14k, m14ke, m14kec): Document new options.
31192         (minterlink-mips16): Update documentation.
31193         * doc/md.texi (ZC, ZD): Document new constraints.
31194         * configure.ac (gcc_cv_as_micromips): Check if linker
31195         supports the .set micromips directive.
31196         * configure: Regenerate.
31197         * config.in: Regenerate.
31198         * config/mips/mips-tables.opt: Regenerate.
31199         * config/mips/micromips.md: New file.
31200         * constraints.md (ZC, ZD): New constraints.
31201         * config/mips/predicates.md (movep_src_register): New predicate.
31202         (movep_src_operand): New predicate.
31203         (non_volatile_mem_operand): New predicate.
31204         * config/mips/mips.md (multimem): New type.
31205         (length): Differentiate between 17-bit and 18-bit branch offsets.
31206         (MOVEP1, MOVEP2): New mode iterator.
31207         (mov_<load>l): Use ZC constraint.
31208         (mov_<load>r): Likewise.
31209         (mov_<store>l): Likewise.
31210         (mov_<store>r): Likewise.
31211         (*branch_equality<mode>_inverted): Add microMIPS support.
31212         (*branch_equality<mode>): Likewise.
31213         (*jump_absolute): Likewise.
31214         (indirect_jump_<mode>): Likewise.
31215         (tablejump_<mode>): Likewise.
31216         (<optab>_internal): Likewise.
31217         (sibcall_internal): Likewise.
31218         (sibcall_value_internal): Likewise.
31219         (prefetch): Use constraint ZD.
31220         * config/mips/mips.opt (minterlink-compressed): New option.
31221         (minterlink-mips16): Now an alias for minterlink-compressed.
31222         (mmicromips): New option.
31223         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
31224         (compare_and_swap_12): Likewise.
31225         (sync_add<mode>): Likewise.
31226         (sync_<optab>_12): Likewise.
31227         (sync_old_<optab>_12): Likewise.
31228         (sync_new_<optab>_12): Likewise.
31229         (sync_nand_12): Likewise.
31230         (sync_old_nand_12): Likewise.
31231         (sync_new_nand_12): Likewise.
31232         (sync_sub<mode>): Likewise.
31233         (sync_old_add<mode>): Likewise.
31234         (sync_old_sub<mode>): Likewise.
31235         (sync_new_add<mode>): Likewise.
31236         (sync_new_sub<mode>): Likewise.
31237         (sync_<optab><mode>): Likewise.
31238         (sync_old_<optab><mode>): Likewise.
31239         (sync_new_<optab><mode>): Likewise.
31240         (sync_nand<mode>): Likewise.
31241         (sync_old_nand<mode>): Likewise.
31242         (sync_new_nand<mode>): Likewise.
31243         (sync_lock_test_and_set<mode>): Likewise.
31244         (test_and_set_12): Likewise.
31245         (atomic_compare_and_swap<mode>): Likewise.
31246         (atomic_exchange<mode>_llsc): Likewise.
31247         (atomic_fetch_add<mode>_llsc): Likewise.
31248         * config/mips/mips-cpus.def (m14kc, m14k): New processors.
31249         * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
31250         (umips_save_restore_pattern_p): Likewise.
31251         (umips_load_store_pair_p): Likewise.
31252         (umips_output_load_store_pair): Likewise.
31253         (umips_movep_target_p): Likewise.
31254         (umips_12bit_offset_address_p): Likewise.
31255         * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
31256         (mips_base_mips16): Rename this...
31257         (mips_base_compression_flags): ...to this. Update all uses.
31258         (mips_attribute_table): Add micromips, nomicromips and nocompression.
31259         (mips_mips16_decl_p): Delete.
31260         (mips_nomips16_decl_p): Delete.
31261         (mips_get_compress_on_flags): New function.
31262         (mips_get_compress_off_flags): New function.
31263         (mips_get_compress_mode): New function.
31264         (mips_get_compress_on_name): New function.
31265         (mips_get_compress_off_name): New function.
31266         (mips_insert_attributes): Support multiple compression types.
31267         (mips_merge_decl_attributes): Likewise.
31268         (umips_12bit_offset_address_p): New function.
31269         (mips_start_function_definition): Emit .set micromips directive.
31270         (mips_call_may_need_jalx_p): New function.
31271         (mips_function_ok_for_sibcall): Add microMIPS support.
31272         (mips_print_operand_punctuation): Support short delay slots and
31273         compact jumps.
31274         (umips_swm_mask, umips_swm_encoding): New.
31275         (umips_build_save_restore): New function.
31276         (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
31277         (was_mips16_p): Remove.
31278         (old_compression_mode): New.
31279         (mips_set_compression_mode): New function.
31280         (mips_set_current_function): Add microMIPS support.
31281         (mips_option_override): Likewise.
31282         (umips_save_restore_pattern_p): New function.
31283         (umips_output_save_restore): New function.
31284         (umips_load_store_pair_p_1): New function.
31285         (umips_load_store_pair_p): New function.
31286         (umips_output_load_store_pair_1): New function.
31287         (umips_output_load_store_pair): New function.
31288         (umips_movep_target_p) New function.
31289         (mips_prepare_pch_save): Add microMIPS support.
31290         * config/mips/mips.h (TARGET_COMPRESSION): New.
31291         (TARGET_CPU_CPP_BUILTINS): Update macro
31292         to use new compression flags and to support microMIPS.
31293         (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
31294         (MIPS_ARCH_FLOAT_SPEC): Likewise.
31295         (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
31296         (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
31297         (ASM_SPEC): Support mmicromips and mno-micromips.
31298         (M16STORE_REG_P): New macro.
31299         (MIPS_CALL): Support TARGET_MICROMIPS.
31300         (MICROMIPS_J): New macro.
31301         (mips_base_mips16): Rename this...
31302         (mips_base_compression_flags): ...to this.
31303         (UMIPS_12BIT_OFFSET_P): New macro.
31304         * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
31305         (MULTILIB_DIRNAMES): Likewise.
31306 2013-03-20  Richard Biener  <rguenther@suse.de>
31307
31308         PR tree-optimization/56661
31309         * tree-ssa-sccvn.c (visit_use): Only value-number calls if
31310         the result does not have to be distinct.
31311
31312 2013-03-20  Richard Biener  <rguenther@suse.de>
31313
31314         * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
31315         remap_gimple_op_r.
31316
31317 2013-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31318             Steven Bosscher  <steven@gcc.gnu.org>
31319
31320         PR rtl-optimization/56605
31321         * loop-iv.c (implies_p): Handle equal RTXs and subregs.
31322
31323 2013-03-20  Uros Bizjak  <ubizjak@gmail.com>
31324
31325         PR bootstrap/56656
31326         * config/i386/i386.md (*movdi_internal): Handle broken assemblers
31327         that require movd instead of movq.
31328
31329 2013-03-20  Richard Biener  <rguenther@suse.de>
31330
31331         * tree-ssa-structalias.c (struct variable_info): Add pointer
31332         to the first field of an aggregate with sub-vars.  Make
31333         this and the pointer to the next subfield its ID.
31334         (vi_next): New function.
31335         (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
31336         storedanything_id, integer_id): Increment by one.
31337         (new_var_info, get_call_vi, lookup_call_clobber_vi,
31338         get_call_clobber_vi): Adjust.
31339         (solution_set_expand): Simplify and speedup.
31340         (solution_set_add): Inline into ...
31341         (set_union_with_increment): ... this.  Adjust accordingly.
31342         (do_sd_constraint): Likewise.
31343         (do_ds_constraint): Likewise.
31344         (do_complex_constraint): Simplify.
31345         (build_pred_graph): Adjust.
31346         (solve_graph): Likewise.  Simplify and speedup.
31347         (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
31348         get_constraint_for_component_ref, get_constraint_for_1,
31349         first_vi_for_offset, first_or_preceding_vi_for_offset,
31350         create_function_info_for, create_variable_info_for_1,
31351         create_variable_info_for, intra_create_variable_infos): Adjust.
31352         (init_base_vars): Push NULL for ID zero.
31353         (compute_points_to_sets): Adjust.
31354
31355 2013-03-20  Richard Biener  <rguenther@suse.de>
31356
31357         * cfgloop.c (verify_loop_structure): Streamline and avoid
31358         ICEing on corrupt loop tree.
31359         * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
31360         loop tree.
31361
31362 2013-03-20  Richard Biener  <rguenther@suse.de>
31363
31364         * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
31365         check whether an SSA update is needed.
31366
31367 2013-03-20  Richard Sandiford  <rdsandiford@googlemail.com>
31368
31369         * config/mips/constraints.md (T): Rename to...
31370         (Yf): ...this.
31371         (U): Rename to...
31372         (Yd): ...this.
31373         * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
31374         (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
31375
31376 2013-03-19  Ian Bolton  <ian.bolton@arm.com>
31377
31378         * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
31379         (*subsi3_carryin_uxtw): Likewise.
31380
31381 2013-03-19  Ian Bolton  <ian.bolton@arm.com>
31382
31383         * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
31384         (*rorsi3_insn_uxtw): Likewise.
31385
31386 2013-03-19  Ian Bolton  <ian.bolton@arm.com>
31387
31388         * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
31389         (*extrsi5_insn_uxtw): Likewise.
31390
31391 2013-03-19  Richard Biener  <rguenther@suse.de>
31392
31393         PR tree-optimization/56273
31394         * passes.c (init_optimization_passes): Move second VRP after DOM.
31395
31396 2013-03-19  Uros Bizjak  <ubizjak@gmail.com>
31397
31398         * config/i386/i386.md (*movti_internal): Merge from
31399         *movti_internal_rex64 and *movti_internal_sse.  Use x64 isa attribute.
31400         (*movdi_internal): Merge with *movdi_internal_rex64.  Use x64 and
31401         nox64 isa attributes.
31402
31403 2013-03-18  Richard Biener  <rguenther@suse.de>
31404
31405         * tree-ssa-structalias.c (find): Use gcc_checking_assert.
31406         (unite): Likewise.
31407         (merge_node_constraints): Likewise.
31408         (build_succ_graph): Likewise.
31409         (valid_graph_edge): Inline into single caller.
31410         (unify_nodes): Likewise.  Use bitmap_set_bit return value
31411         and cache varinfo.
31412         (scc_visit): Fix formatting and variable use.
31413         (do_sd_constraint): Use gcc_checking_assert.
31414         (do_ds_constraint): Likewise.
31415         (do_complex_constraint): Likewise.
31416         (condense_visit): Likewise.  Cleanup.
31417         (dump_pred_graph): New function.
31418         (perform_var_substitution): Dump the pred-graph before
31419         variable substitution.
31420         (find_equivalent_node): Use gcc_checking_assert.
31421         (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
31422
31423 2013-03-18  Richard Biener  <rguenther@suse.de>
31424
31425         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
31426         Remove cond_expr_stmt_list argument and do not gimplify the
31427         built expression.
31428         (vect_loop_versioning): Adjust.
31429         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
31430         Cleanup to use less temporaries.
31431         (vect_create_data_ref_ptr): Cleanup.
31432
31433 2013-03-18  Jakub Jelinek  <jakub@redhat.com>
31434
31435         PR tree-optimization/56635
31436         * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
31437         require types_compatible_p types.
31438
31439 2013-03-18  Nick Clifton  <nickc@redhat.com>
31440
31441         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
31442         spurious backslash.
31443
31444         * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
31445         Add missing line to comment describing function.
31446
31447 2013-03-18  Richard Biener  <rguenther@suse.de>
31448
31449         PR tree-optimization/56210
31450         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
31451         Handle string / character search functions.
31452         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
31453
31454 2013-03-18  Richard Biener  <rguenther@suse.de>
31455
31456         PR middle-end/56483
31457         * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
31458         and implement properly.
31459         * gimple.h (gimple_cond_single_var_p): Remove.
31460
31461 2013-03-18  Richard Biener  <rguenther@suse.de>
31462
31463         * tree-data-ref.h (find_data_references_in_loop): Declare.
31464         * tree-data-ref.c (get_references_in_stmt): Use a stack
31465         vector pre-allocated in the callers.
31466         (find_data_references_in_stmt): Adjust.
31467         (graphite_find_data_references_in_stmt): Likewise.
31468         (create_rdg_vertices): Likewise.
31469         (find_data_references_in_loop): Export.
31470         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
31471         Compute dependences here...
31472         (vect_analyze_data_refs): ...not here.  When we encounter
31473         a non-vectorizable data reference in basic-block vectorization
31474         truncate the data reference vector.  Do not bother to
31475         fixup data-dependence information for gather loads.
31476         * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
31477         of data references, as reported.
31478
31479 2013-03-18  Richard Biener  <rguenther@suse.de>
31480
31481         PR tree-optimization/3713
31482         * tree-ssa-sccvn.c (visit_copy): Simplify.  Always propagate
31483         has_constants and expr.
31484         (stmt_has_constants): Properly valueize SSA names when deciding
31485         whether the stmt has constants.
31486
31487 2013-03-18  Richard Biener  <rguenther@suse.de>
31488
31489         * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
31490         whole function when there is nothing to do.
31491         * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
31492         * tree-vectorizer.c (vectorize_loops): Update virtual and
31493         loop-closed SSA once.
31494         * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
31495
31496 2013-03-18  Richard Biener  <rguenther@suse.de>
31497
31498         PR middle-end/56113
31499         * domwalk.c (bb_postorder): New global static.
31500         (cmp_bb_postorder): New function.
31501         (walk_dominator_tree): Replace scheme imposing an order for
31502         visiting dominator sons by one sorting them at the time they
31503         are pushed on the stack.
31504
31505 2013-03-18  Richard Biener  <rguenther@suse.de>
31506
31507         PR tree-optimization/39326
31508         * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
31509         (struct mem_ref): Replace mem member with ao_ref typed member.
31510         (MEM_ANALYZABLE): Adjust.
31511         (memref_eq): Likewise.
31512         (mem_ref_alloc): Likewise.
31513         (gather_mem_refs_stmt): Likewise.
31514         (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
31515         (execute_sm_if_changed_flag_set): Adjust.
31516         (execute_sm): Likewise.
31517         (ref_always_accessed_p): Likewise.
31518         (refs_independent_p): Likewise.
31519         (can_sm_ref_p): Likewise.
31520
31521 2013-03-18  Jakub Jelinek  <jakub@redhat.com>
31522
31523         PR c/56566
31524         * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
31525         return 1 even for !unsignedp.
31526
31527 2013-03-17  Uros Bizjak  <ubizjak@gmail.com>
31528
31529         * config/i386/i386.md (isa): Add x64 and nox64.
31530         (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
31531         (*pushtf): Enable *roF alternative for x64 isa only.
31532         (*pushxf): Merge with *pushxf_nointeger.  Use Yx*r constraint. Set
31533         mode attribute of integer alternatives to DImode for TARGET_64BIT.
31534         (*pushdf): Merge with *pushdf_rex64.  Use x64 and nox64 isa attributes.
31535         (*movtf_internal): Merge from *movtf_internal_rex64 and
31536         *movtf_internal_sse.  Use x64 and nox64 isa attributes.
31537         (*movxf_internal): Merge with *movxf_internal_rex64.  Use x64 and
31538         nox64 isa attributes.
31539         (*movdf_internal): Merge with *movdf_internal_rex64.  Use x64 and
31540         nox64 isa attributes.
31541         * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
31542
31543 2013-03-17  Uros Bizjak  <ubizjak@gmail.com>
31544
31545         * config/alpha/alpha.c (TARGET_LRA_P): New define.
31546
31547 2013-03-17  Jakub Jelinek  <jakub@redhat.com>
31548
31549         PR target/56640
31550         * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
31551         class names.  Remove trailing comma after "ALL_REGS".
31552
31553 2013-03-16  Jan Hubicka  <jh@suse.cz>
31554
31555         * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
31556         * cgraph.c (cgraph_get_create_real_symbol_node): New function.
31557         * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
31558         of cgraph_get_create_node.
31559         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
31560
31561 2013-03-16  Jason Merrill  <jason@redhat.com>
31562
31563         PR debug/49090
31564         * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
31565         with DW_AT_default_value.
31566
31567 2013-03-16  Jakub Jelinek  <jakub@redhat.com>
31568
31569         * BASE-VER: Set to 4.9.0.
31570
31571 2013-03-14  Andi Kleen  <ak@linux.intel.com>
31572
31573         PR target/56619
31574         * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
31575         __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
31576         Document _x* TSX intrinsics.
31577
31578 2013-03-14  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
31579             David Holsgrove  <david.holsgrove@xilinx.com>
31580
31581         * configure.ac: Add MicroBlaze TLS support detection.
31582         * configure: Regenerate.
31583         * config/microblaze/microblaze-protos.h
31584         (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
31585         symbol_mentioned_p, label_mentioned_p): Add prototypes.
31586         * config/microblaze/microblaze.c (microblaze_address_type): Add
31587         ADDRESS_TLS and tls_reloc address types.
31588         (microblaze_address_info): Add tls_reloc.
31589         (TARGET_HAVE_TLS): Define.
31590         (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
31591          microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
31592          symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
31593         load_tls_operand,  microblaze_call_tls_get_addr,
31594         microblaze_legitimize_tls_address): New functions.
31595         (microblaze_classify_unspec): Handle UNSPEC_TLS.
31596         (get_base_reg): Use microblaze_tls_symbol_p.
31597         (microblaze_classify_address): Handle TLS.
31598         (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
31599         label_mentioned_p and microblaze_tls_referenced_p.
31600         (microblaze_legitimize_address): Handle TLS.
31601         (microblaze_address_insns): Handle ADDRESS_TLS.
31602         (pic_address_needs_scratch): Handle TLS.
31603         (print_operand_address): Handle TLS.
31604         (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
31605         (microblaze_expand_move): Handle TLS.
31606         (microblaze_legitimate_constant_p): Check
31607         microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
31608         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
31609         * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
31610         (PIC_OFFSET_TABLE_REGNUM): Set.
31611         * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
31612         * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
31613         (addsi3, movsi_internal2, movdf_internal): Update constraints
31614         * config/microblaze/predicates.md (arith_plus_operand): Define
31615         (move_operand): Redefine as move_src_operand,
31616         check microblaze_tls_referenced_p.
31617
31618 2013-03-14  Ian Bolton  <ian.bolton@arm.com>
31619
31620         * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
31621         (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
31622
31623 2013-03-14  Ian Bolton  <ian.bolton@arm.com>
31624
31625         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
31626         CC mode for AND.
31627
31628 2013-03-14  Jakub Jelinek  <jakub@redhat.com>
31629
31630         PR tree-optimization/53265
31631         * common.opt (Waggressive-loop-optimizations): New option.
31632         * tree-ssa-loop-niter.c: Include tree-pass.h.
31633         (do_warn_aggressive_loop_optimizations): New function.
31634         (record_estimate): Call it.  Don't add !is_exit bounds to loop->bounds
31635         if number_of_latch_executions returned constant.
31636         (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
31637         early.  If number_of_latch_executions returned constant, set
31638         nb_iterations_upper_bound back to it.
31639         * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
31640         field.
31641         * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
31642         * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
31643
31644         * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
31645         (MULTILIB_OSDIRNAMES): Set.
31646         * genmultilib: If defaultosdirname doesn't start with :: , set
31647         defaultosdirname2 instead, clear it and emit two . multilib_raw
31648         entries instead of just one.
31649
31650 2013-03-14  Kaz Kojima  <kkojima@gcc.gnu.org>
31651
31652         * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
31653         (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
31654         * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
31655         (SUBTARGET_OVERRIDE_OPTIONS): New.
31656
31657 2013-03-13  Oleg Endo  <olegendo@gcc.gnu.org>
31658
31659         PR target/49880
31660         * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
31661         (musermode): Convert to Var(TARGET_USERMODE).
31662         * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
31663         MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
31664         * config/sh/sh.c (sh_option_override): Use
31665         TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
31666         * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
31667         condition.
31668         (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
31669         TARGET_SH4.
31670         (udivsi3_i4_single, divsi3_i4_single): Use
31671         TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
31672
31673 2013-03-13  Dave Korn  <dave.korn.cygwin@gmail.com>
31674
31675         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
31676         default setting.
31677
31678 2013-03-13  Richard Biener  <rguenther@suse.de>
31679
31680         PR tree-optimization/56608
31681         * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
31682         calls when vectorizing basic-blocks.
31683
31684 2013-03-13  Jakub Jelinek  <jakub@redhat.com>
31685
31686         PR plugins/45078
31687         * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
31688         tm_file.
31689
31690 2013-03-12  Jakub Jelinek  <jakub@redhat.com>
31691
31692         * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
31693
31694 2013-03-11  Jan Hubicka  <jh@suse.cz>
31695
31696         PR lto/56557
31697         * lto-streamer-out.c (output_symbol_p): Skip references from
31698         constructors of external variables.
31699
31700 2013-03-11  Jan Hubicka  <jh@suse.cz>
31701
31702         PR middle-end/56571
31703         * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
31704         from pseudos.
31705         * emit-rtl.c (verify_rtx_sharing): Likewise.
31706         (copy_insn_1): Likewise.
31707         * rtl.c (copy_rtx): Likewise.
31708
31709 2013-03-11  Georg-Johann Lay  <avr@gjlay.de>
31710
31711         PR target/56591
31712         * config/avr/avr.c (avr_print_operand): Add space after '%c' in
31713         output_operand_lossage message.
31714
31715 2013-03-11  Richard Earnshaw  <rearnsha@arm.com>
31716
31717         PR target/56470
31718         * arm.c (shift_op): Validate RTL pattern on the fly.
31719         (arm_print_operand, case 'S'): Don't use shift_operator to validate
31720         the RTL.
31721
31722 2013-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
31723
31724         PR target/56347
31725         * config/pa/pa.md (call_value): Check for calls to powf and direct to
31726         new call patterns that clobber %fr12.
31727         (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
31728         split and postreload patterns.
31729         * config/pa/pa.c (pa_conditional_register_usage): Revert marking
31730         registers %fr12 and %fr12R as call used.
31731
31732 2013-03-09  Steven Bosscher  <steven@gcc.gnu.org>
31733
31734         * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
31735         (canon_address, record_store, replace_read, check_mem_read_rtx,
31736         scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
31737         dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
31738         rest_of_handle_dse): Likewise.
31739
31740 2013-03-09  Richard Sandiford  <rdsandiford@googlemail.com>
31741
31742         PR middle-end/56524
31743         * tree.h (tree_optimization_option): Rename target_optabs to optabs.
31744         Add base_optabs.
31745         (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
31746         (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
31747         (save_optabs_if_changed): Replace with...
31748         (init_tree_optimization_optabs): ...this.
31749         * optabs.c (save_optabs_if_changed): Rename to...
31750         (init_tree_optimization_optabs): ...this.  Take the optimization node
31751         as argument.  Do nothing if the base optabs are already correct.
31752         Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
31753         to recompute optabs.
31754         * function.h (function): Remove optabs field.
31755         * function.c (invoke_set_current_function_hook): Call
31756         init_tree_optimization_optabs.  Use the result to initialize
31757         this_fn_optabs.
31758
31759 2013-02-27  Aldy Hernandez  <aldyh@redhat.com>
31760
31761         * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
31762         if GTMA_HAS_NO_INSTRUMENTATION.
31763         (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
31764         (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
31765         * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
31766         * gimple-pretty-print.c (dump_gimple_transaction): Handle
31767         GTMA_HAS_NO_INSTRUMENTATION.
31768
31769 2013-03-08  Jakub Jelinek  <jakub@redhat.com>
31770
31771         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
31772         libasan_preinit.o.
31773
31774 2013-03-08  Marek Polacek  <polacek@redhat.com>
31775             Jakub Jelinek  <jakub@redhat.com>
31776
31777         PR tree-optimization/56478
31778         * predict.c (is_comparison_with_loop_invariant_p): Change the
31779         type of loop_step to tree.
31780         (predict_loops): Adjust.
31781         (predict_iv_comparison): Perform the computations on double_ints.
31782
31783 2013-03-08  Richard Biener  <rguenther@suse.de>
31784
31785         PR tree-optimization/56570
31786         * tree-cfg.c (verify_expr_location_1): Verify locations for
31787         DECL_DEBUG_EXPR.
31788         * tree-sra.c (create_access_replacement): Strip locations
31789         from DECL_DEBUG_EXPRs.
31790
31791 2013-03-08  Richard Biener  <rguenther@suse.de>
31792
31793         * tree-inline.c (expand_call_inline): Do not associate
31794         a BLOCK with the location in BLOCK_SOURCE_LOCATION.
31795         * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
31796
31797 2013-03-08  Richard Biener  <rguenther@suse.de>
31798
31799         * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
31800         or block changes with -Og.  Fix for location / block encoding
31801         changes and PHI arguments with locations.
31802
31803 2013-03-07  Steven Bosscher  <steven@gcc.gnu.org>
31804
31805         * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
31806         for all counters.
31807         (struct output_info): Likewise.
31808         (register_overhead): Remove bad gcc_assert.
31809         (bitmap_find_bit): If there is only a single bitmap element, do not
31810         count a miss as a search.
31811         (print_statistics): Update for counter type changes.
31812         (dump_bitmap_statistics): Likewise.  Print headers such that they
31813         are properly lined up with the printed counters.
31814
31815 2013-03-07  Jakub Jelinek  <jakub@redhat.com>
31816
31817         PR tree-optimization/56559
31818         * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
31819         check that it has only a single use.
31820
31821 2013-03-07  Richard Biener  <rguenther@suse.de>
31822
31823         * doc/invoke.texi (fwhole-program): Discourage use in combination
31824         with -flto.
31825
31826 2013-03-06  Jakub Jelinek  <jakub@redhat.com>
31827
31828         * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
31829
31830         PR tree-optimization/56539
31831         * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
31832         instead of GSI_CONTINUE_LINKING as last argument to
31833         force_gimple_operand_gsi.  Adjust function comment.
31834
31835         * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
31836         aarch64-cores.def.
31837
31838         PR middle-end/56548
31839         * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
31840         promoted mode, convert the result back to the original mode.
31841
31842 2013-03-06  Richard Biener  <rguenther@suse.de>
31843
31844         PR middle-end/56294
31845         * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
31846         (insert_updated_phi_nodes_compare_uids): New function.
31847         (update_ssa): Sort symbols_to_rename after UID before
31848         traversing it to insert PHI nodes.
31849
31850 2013-03-06  Richard Biener  <rguenther@suse.de>
31851
31852         PR middle-end/50494
31853         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
31854         Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
31855
31856         Revert
31857         2013-02-13  Richard Biener  <rguenther@suse.de>
31858
31859         PR lto/50494
31860         * varasm.c (output_constant_def_1): Get the decl representing
31861         the constant as argument.
31862         (output_constant_def): Wrap output_constant_def_1.
31863         (make_decl_rtl): Use output_constant_def_1 with the decl
31864         representing the constant.
31865         (build_constant_desc): Optionally re-use a decl already
31866         representing the constant.
31867         (tree_output_constant_def): Adjust.
31868
31869 2013-03-06  Joey Ye  <joey.ye@arm.com>
31870
31871         PR lto/50293
31872         * gcc.c (convert_white_space): New function.
31873         (main): Handles white space in function name.
31874
31875 2013-03-06  Oleg Endo  <olegendo@gcc.gnu.org>
31876
31877         PR target/56529
31878         * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
31879         instead of TARGET_SH2 for call-table case.  Do not set sh_div_strategy
31880         to SH_DIV_CALL_TABLE for TARGET_SH2.
31881         * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
31882         list.
31883         * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
31884         call-table options.
31885
31886 2013-03-05  Sterling Augustine  <saugustine@google.com>
31887             Cary Coutant  <ccoutant@google.com>
31888
31889         PR debug/55364
31890         * dwarf2out.c (resolve_addr): Don't call
31891         remove_loc_list_addr_table_entries a second time for the same
31892         expression.
31893
31894 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
31895
31896         PR debug/56510
31897         * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
31898         (avoid_complex_debug_insns): New function.
31899         (expand_debug_locations): Call it.
31900
31901         PR rtl-optimization/56484
31902         * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
31903         lifetimes of hard registers on small register class machines.
31904
31905 2013-03-05  David Holsgrove  <david.holsgrove@xilinx.com>
31906
31907         * config/microblaze/microblaze-protos.h: Rename
31908         microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
31909         * config/microblaze/microblaze.c (microblaze_attribute_table): Add
31910         fast_interrupt.
31911         (microblaze_fast_interrupt_function_p): New function.
31912         (microblaze_is_interrupt_handler): Rename to
31913         microblaze_is_interrupt_variant and add fast_interrupt check.
31914         (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
31915         (save_restore_insns): Likewise.
31916         (compute_frame_size): Likewise.
31917         (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
31918         (microblaze_globalize_label): Likewise.
31919         * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
31920         * config/microblaze/microblaze.md: Use wrapper
31921         microblaze_is_interrupt_variant.
31922
31923 2013-03-05  Kai Tietz  <ktietz@redhat.com>
31924
31925         * sdbout.c (sdbout_one_type): Switch to current function's section
31926         supporting cold/hot.
31927
31928 2013-03-05  David Holsgrove  <david.holsgrove@xilinx.com>
31929
31930         * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
31931         -mxl-reorder.
31932
31933 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
31934
31935         PR middle-end/56461
31936         * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
31937         if VALGRIND_GET_VBITS is defined, temporarily make object
31938         memory all defined, and restore previous valgrind addressability
31939         and definability afterwards.  Free this_object at the end.
31940
31941         PR middle-end/56461
31942         * lra.c (lra): Call lra_clear_live_ranges if live_p,
31943         right before calling lra_create_live_ranges, also call it
31944         when clearing live_p.  Only call lra_clear_live_ranges
31945         at the end if live_p.
31946
31947         PR middle-end/56461
31948         * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
31949
31950 2013-03-05  Richard Biener  <rguenther@suse.de>
31951
31952         PR tree-optimization/56521
31953         * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
31954         value-id.
31955
31956 2013-03-05  Steven Bosscher  <steven@gcc.gnu.org>
31957
31958         PR c++/55135
31959         * except.h (remove_unreachable_eh_regions): New prototype.
31960         * except.c (remove_eh_handler_splicer): New function, split out
31961         of remove_eh_handler.
31962         (remove_eh_handler): Use remove_eh_handler_splicer.  Add comment
31963         warning about running it on many EH regions one at a time.
31964         (remove_unreachable_eh_regions_worker): New function, walk the
31965         EH tree in depth-first order and remove non-marked regions.
31966         (remove_unreachable_eh_regions): New function.
31967         * tree-eh.c (mark_reachable_handlers): New function, split out
31968         from remove_unreachable_handlers.
31969         (remove_unreachable_handlers): Use mark_reachable_handlers and
31970         remove_unreachable_eh_regions.
31971         (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
31972         and remove_unreachable_eh_regions.
31973
31974 2013-03-05  Richard Biener  <rguenther@suse.de>
31975
31976         PR middle-end/56525
31977         * loop-init.c (fix_loop_structure): Remove loops in two stages,
31978         not freeing them until the end.
31979
31980 2013-03-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31981
31982         * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
31983
31984 2013-03-05  Richard Biener  <rguenther@suse.de>
31985
31986         PR tree-optimization/56270
31987         * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
31988         of loads after scheduling an SLP instance.
31989
31990 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
31991
31992         * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
31993         tic6x.exp.
31994         (check_gcc_parallelize): Run guality.exp as a separate job from
31995         vect.exp with unsorted.exp and $(dg_target_exps) separately from
31996         struct-layout-1.exp with stackalign.exp.
31997
31998         * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
31999
32000         PR middle-end/56461
32001         * tree-vect-slp.c (vect_supported_load_permutation_p): Free
32002         load_index sbitmap even if some bit in it isn't set.
32003
32004         PR middle-end/56461
32005         * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
32006         (discover_iteration_bound_by_body_walk): Change queues to
32007         vec<vec<basic_block> > and queue to vec<basic_block>.  Fix up
32008         spelling in comment.  Call safe_push on queues[bound_index] directly.
32009         Release queues[queue_index] in every iteration unconditionally.
32010         Release bounds vector.
32011
32012         PR middle-end/56461
32013         * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
32014         free_stmt_vec_info on any left-over stmt_vec_info in the vector.
32015         * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
32016         inner_phis vector.
32017
32018 2013-03-05  Richard Biener  <rguenther@suse.de>
32019
32020         PR lto/56515
32021         * tree-inline.c (remap_blocks_to_null): New function.
32022         (expand_call_inline): When expanding a call stmt without
32023         an associated block inline remap all callee blocks to NULL.
32024
32025 2013-03-05  Jakub Jelinek  <jakub@redhat.com>
32026
32027         PR rtl-optimization/56494
32028         * simplify-rtx.c (simplify_truncation): If C is narrower than A,
32029         optimize (truncate:A (subreg:B (truncate:C X) 0)) into
32030         (subreg:A (truncate:C X) 0) instead of (truncate:A X).
32031
32032         PR middle-end/56461
32033         * sel-sched-ir.c (free_sched_pools): Release
32034         succs_info_pool.stack[succs_info_pool.max_top] vectors too
32035         if succs_info_pool.max_top isn't -1.
32036
32037         PR bootstrap/56509
32038         * opts.c (opts_obstack, opts_concat): Moved to...
32039         * opts-common.c (opts_obstack, opts_concat): ... here.
32040
32041 2013-03-04  Jakub Jelinek  <jakub@redhat.com>
32042
32043         PR middle-end/56461
32044         * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
32045
32046 2013-03-04  Martin Jambor  <mjambor@suse.cz>
32047
32048         * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
32049         all appropriate places.
32050
32051 2013-01-04  Eric Botcazou  <ebotcazou@adacore.com>
32052
32053         PR tree-optimization/56424
32054         * ipa-split.c (split_function): Do not set the RSO flag if result is
32055         not by reference and its type is a register type.
32056
32057 2013-03-04  David Holsgrove  <david.holsgrove@xilinx.com>
32058
32059         * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
32060         (microblaze_legitimate_pic_operand): Likewise
32061         * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
32062         new function microblaze_legitimate_pic_operand
32063         * config/microblaze/microblaze-protos.h
32064         (microblaze_legitimate_pic_operand): Declare.
32065
32066 2013-03-04  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
32067
32068         * config/microblaze/predicates.md (call_insn_simple_operand):
32069         New predicate for supported rtx code types.
32070         * config/microblaze/microblaze.md (call_internal1): Use
32071         call_insn_simple_operand predicate.
32072
32073 2013-03-04  Jakub Jelinek  <jakub@redhat.com>
32074
32075         PR middle-end/56461
32076         * tree-loop-distribution.c (ldist_gen): Call partition_free after each
32077         partitions.ordered_remove.
32078
32079         PR middle-end/56461
32080         * tree-vect-stmts.c (vectorizable_conversion): Don't call
32081         vec_oprnds0.create (1) for modifier == NONE.
32082
32083         PR middle-end/56461
32084         * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
32085         on vec_oprnds0 or vec_oprnds1 before loop, only call it on
32086         vec_oprnds1 right before pushing anything to it for
32087         scalar_shift_arg.
32088
32089         PR middle-end/56461
32090         * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
32091         set nbbs to 0 instead of having separate code path.
32092         (vect_analyze_loop_form): Call destroy_loop_vec_info with true
32093         instead of false as last argument if returning NULL.
32094
32095 2013-03-03  Sandra Loosemore  <sandra@codesourcery.com>
32096
32097         * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
32098         the attribute is now called "target" instead of "option".
32099         (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
32100         * doc/tm.texi.in (Target Attributes):  Likewise document the correct
32101         attribute/pragma name for TARGET_OPTION_VALID_P and
32102         TARGET_OPTION_PRAGMA_PARSE.  Also copy-edit and correct markup.
32103         * doc/tm.texi: Regenerated.
32104
32105 2013-03-02  David Holsgrove  <david.holsgrove@xilinx.com>
32106
32107         * config/microblaze/microblaze.c:
32108         Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
32109         * config/microblaze/microblaze.h: Add -mxl-reorder to
32110         DRIVER_SELF_SPECS.
32111         * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
32112         instructions emitted if TARGET_REORDER.
32113         * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
32114         or 0 for -m/-mno case, but initialises as 2 to detect default use case
32115         separately.
32116
32117 2013-03-01  Xinliang David Li  <davidxl@google.com>
32118
32119         * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
32120         walk length.
32121
32122 2013-03-01  Jakub Jelinek  <jakub@redhat.com>
32123
32124         PR middle-end/56461
32125         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
32126         vector even when returning true.  Fix up function comment formatting.
32127
32128         PR middle-end/56461
32129         * ira-build.c (ira_loop_nodes_count): New variable.
32130         (create_loop_tree_nodes): Initialize it.
32131         (finish_loop_tree_nodes): Use it instead of looking at current_loops.
32132
32133         PR middle-end/56461
32134         * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
32135         method on dr_chain and result_chain.
32136         * tree-vect-stmts.c (vectorizable_store): Only call
32137         result_chain.create if j == 0.
32138
32139         PR middle-end/56461
32140         * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
32141         vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
32142         before overwriting it.
32143
32144 2013-03-01  Tobias Burnus  <burnus@net-b.de>
32145
32146         * doc/extended.texi (C Extensions): Change order in @menu
32147         to match @node.
32148         (Other MIPS Built-in Functions): Move last MIPS entry before
32149         "picoChip Built-in Functions".
32150         (SH Built-in Functions): Move after RX Built-in Functions.
32151         * doc/gcc.texi (Introduction): Change order in @menu
32152         to match @node.
32153         * doc/md.texi (Constraints): Ditto.
32154         * gty.texi (Type Information): Ditto.
32155         (User-provided marking routines for template types): Make
32156         subsection.
32157         * doc/invoke.texi (AArch64 Options): Move before
32158         "Adapteva Epiphany Options".
32159
32160 2013-02-28  Konstantin Serebryany  <konstantin.s.serebryany@gmail.com>
32161             Jakub Jelinek  <jakub@redhat.com>
32162
32163         PR sanitizer/56454
32164         * asan.c (gate_asan): Lookup no_sanitize_address instead of
32165         no_address_safety_analysis attribute.
32166         * doc/extend.texi (no_address_safety_attribute): Rename to
32167         no_sanitize_address attribute, mention no_address_safety_analysis
32168         attribute as deprecated alias.
32169
32170 2013-02-28  Jakub Jelinek  <jakub@redhat.com>
32171
32172         PR middle-end/56461
32173         * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
32174         type to vec<vec<tree> > *.
32175         * tree-vect-slp.c (vect_get_slp_defs): Likewise.  Change vec_defs
32176         to be vec<tree> instead of vec<tree> *, set vec_defs
32177         to vNULL and call vec_defs.create (number_of_vects), adjust other
32178         uses of vec_defs.
32179         * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
32180         vectorizable_condition): Adjust vect_get_slp_defs callers.
32181
32182 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
32183
32184         * config/aarch64/aarch64.c
32185         (aarch64_float_const_representable): Remove unused variable.
32186
32187 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
32188
32189         * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
32190
32191 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
32192
32193         * config/aarch64/aarch64-builtins.c
32194         (aarch64_init_simd_builtins): Make static.
32195
32196 2013-02-28  James Greenhalgh  <james.greenhalgh@arm.com>
32197
32198         * config/aarch64/aarch64.c
32199         (aarch64_simd_make_constant): Make static.
32200
32201 2013-02-28  Martin Jambor  <mjambor@suse.cz>
32202
32203         * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
32204         with no initialization to the RHS of debug statements.
32205
32206 2013-02-28  Martin Jambor  <mjambor@suse.cz>
32207
32208         PR tree-optimization/56294
32209         * tree-sra.c (analyze_access_subtree): Create replacement declarations.
32210         Adjust dumping.
32211         (get_access_replacement): Do not call create_access_replacement.
32212         Assert a replacement exists.
32213         (get_repl_default_def_ssa_name): Create the replacement declaration
32214         itself.
32215
32216 2013-02-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
32217
32218         * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
32219         final_end_function.
32220
32221 2013-02-28  Marek Polacek  <polacek@redhat.com>
32222
32223         PR rtl-optimization/56466
32224         * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
32225         if we're changing a loop.
32226         (peel_loops_completely): Likewise.
32227
32228 2013-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
32229
32230         PR c++/55813
32231         * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
32232
32233 2013-02-28  Georg-Johann Lay  <avr@gjlay.de>
32234
32235         PR target/56445
32236         * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
32237         macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
32238         INTX_FTYPE_FX, FX_FTYPE_INTX.
32239         * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
32240
32241 2013-02-28  Georg-Johann Lay  <avr@gjlay.de>
32242
32243         * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
32244         (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
32245         (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
32246         (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
32247         (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
32248         (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
32249         (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
32250         (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
32251         (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
32252         (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
32253         (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
32254         (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
32255         (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
32256         (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
32257         (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
32258         (avrxmega6): Increase max flash segments from 5 to 6.
32259         * config/avr/t-multilib: Regenerate.
32260         * config/avr/avr-tables.opt: Regenerate.
32261         * doc/avr-mmcu.texi: Regenerate.
32262
32263 2013-02-28  Georg-Johann Lay  <avr@gjlay.de>
32264
32265         * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
32266         (avr_device_to_arch): Rename to avr_device_to_ld.
32267         (avr_device_to_as): New prototype.
32268         (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
32269         (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
32270         * config/avr/driver-avr.c (avr_device_to_as): New.
32271         (avr_device_to_arch): Rename to avr_device_to_ld.
32272
32273 2013-02-27  Jakub Jelinek  <jakub@redhat.com>
32274
32275         PR middle-end/56461
32276         * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
32277         method on dr_chain and result_chain.
32278
32279         PR middle-end/56461
32280         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
32281         pointer_set_destroy on not_executed_last_iteration.
32282
32283         PR middle-end/56461
32284         * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
32285
32286         PR middle-end/56461
32287         * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
32288         FOR_EACH_DEFINED_FUNCTION when freeing state.
32289
32290         PR middle-end/56461
32291         * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
32292         pool_free.
32293         (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
32294         overwriting it.
32295
32296         PR middle-end/56461
32297         * ipa-cp.c (decide_whether_version_node): Call vec_free on
32298         known_aggs[i].items and release known_aggs vector.
32299
32300         PR middle-end/56461
32301         * ipa-reference.c (propagate): Free node_info even for alias nodes.
32302
32303 2013-02-27  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
32304
32305         * config/microblaze/microblaze.c (microblaze_emit_compare):
32306         Use xor for EQ/NE comparisions.
32307         * config/microblaze/microblaze.md (cstoresf4): Add constraints
32308         (cbranchsf4): Adjust operator to comparison_operator.
32309
32310 2013-02-27  Jakub Jelinek  <jakub@redhat.com>
32311
32312         PR middle-end/56461
32313         * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
32314         vector.
32315         * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
32316         vec_safe_push, always update *slot.
32317         (redirect_edge_var_map_clear): Use vec_free.
32318         (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
32319         (free_var_map_entry): Use vec_free.
32320         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
32321         FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
32322
32323 2013-02-27  Andrey Belevantsev  <abel@ispras.ru>
32324
32325         PR middle-end/45472
32326         * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
32327         when the may_trap_p bit of the exprs being merged differs.
32328         Reorder tests for speculativeness in the logical and operator.
32329
32330 2013-02-27  Jakub Jelinek  <jakub@redhat.com>
32331
32332         * incpath.c (add_standard_paths): Use reconcat instead of concat
32333         where appropriate and avoid leaking memory.
32334
32335         * opts.h: Include obstack.h.
32336         (opts_concat): New prototype.
32337         (opts_obstack): New declaration.
32338         * opts.c (opts_concat): New function.
32339         (opts_obstack): New variable.
32340         (init_options_struct): Call gcc_init_obstack on opts_obstack.
32341         (finish_options): Use opts_concat instead of concat
32342         and XOBNEWVEC instead of XNEWVEC.
32343         * opts-common.c (generate_canonical_option, decode_cmdline_option,
32344         generate_option): Likewise.
32345         * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
32346         * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
32347
32348         PR target/56455
32349         * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
32350         and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
32351
32352 2013-02-26  Jakub Jelinek  <jakub@redhat.com>
32353
32354         PR middle-end/56461
32355         * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
32356
32357 2013-02-26  Joern Rennecke  <joern.rennecke@embecosm.com>
32358
32359         * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
32360         (arm_block_move_unaligned_straight): Likewise.
32361         (arm_adjust_block_mem): Likewise.
32362
32363 2013-02-26  Joern Rennecke  <joern.rennecke@embecosm.com>
32364
32365         PR target/48901
32366         * config/lm32/lm32.c (gen_int_relational): Remove unused variables
32367         temp, cond and label.
32368         * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
32369
32370         PR target/52500
32371         * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
32372         * config/c6x/c6x.h (dbx_register_map): Update declaration.
32373
32374         PR target/52501
32375         * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
32376         of prologue/epilogue functions.
32377
32378         PR target/52550
32379         * config/tilegx/tilegx.c (tilegx_expand_prologue):
32380         Remove unused variable cfa_offset.
32381         * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
32382
32383         PR target/54639
32384         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
32385         type promotion to unsigned.
32386
32387         PR target/54640
32388         * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
32389         for HOST_WIDE_INT of 32 bit / same size as int.
32390         (arm_block_move_unaligned_straight): Likewise.
32391         (arm_adjust_block_mem): Likewise.
32392
32393         PR target/54662
32394         * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
32395         ALL_CFLAGS.
32396
32397 2013-02-26  Marek Polacek  <polacek@redhat.com>
32398
32399         PR tree-optimization/56426
32400         * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
32401
32402 2013-02-26  Richard Biener  <rguenther@suse.de>
32403
32404         PR target/56444
32405         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
32406         unused variable loops.
32407
32408 2013-02-26  Jakub Jelinek  <jakub@redhat.com>
32409
32410         PR tree-optimization/56448
32411         * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
32412         TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
32413         Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
32414         later operands of the references, or even first operand for
32415         INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
32416
32417         PR tree-optimization/56443
32418         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
32419         overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
32420         to type_for_mode langhook.
32421
32422 2013-02-25  Matt Turner  <mattst88@gmail.com>
32423
32424         * doc/invoke.texi: Document r4700.
32425
32426 2013-02-25  Richard Biener  <rguenther@suse.de>
32427
32428         PR tree-optimization/56175
32429         * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
32430         split out from ...
32431         (simplify_bitwise_binary): ... here.  Also guard the conversion
32432         of (type) X op CST to (type) (X op ((type-x) CST)) with it.
32433
32434 2013-02-25  Catherine Moore  <clm@codesourcery.com>
32435
32436         Revert:
32437         2013-02-24  Catherine Moore  <clm@codesourcery.com>
32438             Maciej W. Rozycki  <macro@codesourcery.com>
32439             Tom de Vries  <tom@codesourcery.com>
32440             Nathan Sidwell  <nathan@codesourcery.com>
32441             Iain Sandoe  <iain@codesourcery.com>
32442             Nathan Froyd  <froydnj@codesourcery.com>
32443             Chao-ying Fu  <fu@mips.com>
32444
32445         * doc/extend.texi: (micromips, nomicromips, nocompression):
32446         Document new function attributes.
32447         * doc/invoke.texi (minterlink-compressed, mmicromips,
32448         m14k, m14ke, m14kec): Document new options.
32449         (minterlink-mips16): Update documentation.
32450         * doc/md.texi (ZC, ZD): Document new constraints.
32451         * configure.ac (gcc_cv_as_micromips): Check if linker
32452         supports the .set micromips directive.
32453         * configure: Regenerate.
32454         * config.in: Regenerate.
32455         * config/mips/mips-tables.opt: Regenerate.
32456         * config/mips/micromips.md: New file.
32457         * constraints.md (ZC, AD): New constraints.
32458         * config/mips/predicates.md (movep_src_register): New predicate.
32459         (movep_src_operand): New predicate.
32460         (non_volatile_mem_operand): New predicate.
32461         * config/mips/mips.md (multimem): New type.
32462         (length): Differentiate between 17-bit and 18-bit branch offsets.
32463         (MOVEP1, MOVEP2): New mode iterator.
32464         (mov_<load>l): Use ZC constraint.
32465         (mov_<load>r): Likewise.
32466         (mov_<store>l): Likewise.
32467         (mov_<store>r): Likewise.
32468         (*branch_equality<mode>_inverted): Add microMIPS support.
32469         (*branch_equality<mode>): Likewise.
32470         (*jump_absolute): Likewise.
32471         (indirect_jump_<mode>): Likewise.
32472         (tablejump_<mode>): Likewise.
32473         (<optab>_internal): Likewise.
32474         (sibcall_internal): Likewise.
32475         (sibcall_value_internal): Likewise.
32476         (prefetch): Use constraint ZD.
32477         * config/mips/mips.opt (minterlink-compressed): New option.
32478         (minterlink-mips16): Now an alias for minterlink-compressed.
32479         (mmicromips): New option.
32480         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
32481         (compare_and_swap_12): Likewise.
32482         (sync_add<mode>): Likewise.
32483         (sync_<optab>_12): Likewise.
32484         (sync_old_<optab>_12): Likewise.
32485         (sync_new_<optab>_12): Likewise.
32486         (sync_nand_12): Likewise.
32487         (sync_old_nand_12): Likewise.
32488         (sync_new_nand_12): Likewise.
32489         (sync_sub<mode>): Likewise.
32490         (sync_old_add<mode>): Likewise.
32491         (sync_old_sub<mode>): Likewise.
32492         (sync_new_add<mode>): Likewise.
32493         (sync_new_sub<mode>): Likewise.
32494         (sync_<optab><mode>): Likewise.
32495         (sync_old_<optab><mode>): Likewise.
32496         (sync_new_<optab><mode>): Likewise.
32497         (sync_nand<mode>): Likewise.
32498         (sync_old_nand<mode>): Likewise.
32499         (sync_new_nand<mode>): Likewise.
32500         (sync_lock_test_and_set<mode>): Likewise.
32501         (test_and_set_12): Likewise.
32502         (atomic_compare_and_swap<mode>): Likewise.
32503         (atomic_exchange<mode>_llsc): Likewise.
32504         (atomic_fetch_add<mode>_llsc): Likewise.
32505         * config/mips/mips-cpus.def (m14kc, m14k): New processors.
32506         * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
32507         (umips_save_restore_pattern_p): Likewise.
32508         (umips_load_store_pair_p): Likewise.
32509         (umips_output_load_store_pair): Likewise.
32510         (umips_movep_target_p): Likewise.
32511         (umips_12bit_offset_address_p): Likewise.
32512         * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
32513         (mips_base_mips16): Rename this...
32514         (mips_base_compression_flags): ...to this. Update all uses.
32515         (mips_attribute_table): Add micromips, nomicromips and nocompression.
32516         (mips_mips16_decl_p): Delete.
32517         (mips_nomips16_decl_p): Delete.
32518         (mips_get_compress_on_flags): New function.
32519         (mips_get_compress_off_flags): New function.
32520         (mips_get_compress_mode): New function.
32521         (mips_get_compress_on_name): New function.
32522         (mips_get_compress_off_name): New function.
32523         (mips_insert_attributes): Support multiple compression types.
32524         (mips_merge_decl_attributes): Likewise.
32525         (umips_12bit_offset_address_p): New function.
32526         (mips_start_function_definition): Emit .set micromips directive.
32527         (mips_call_may_need_jalx_p): New function.
32528         (mips_function_ok_for_sibcall): Add microMIPS support.
32529         (mips_print_operand_punctuation): Support short delay slots and
32530         compact jumps.
32531         (umips_swm_mask, umips_swm_encoding): New.
32532         (umips_build_save_restore): New function.
32533         (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
32534         (was_mips16_p): Remove.
32535         (old_compression_mode): New.
32536         (mips_set_compression_mode): New function.
32537         (mips_set_current_function): Add microMIPS support.
32538         (mips_option_override): Likewise.
32539         (umips_save_restore_pattern_p): New function.
32540         (umips_output_save_restore): New function.
32541         (umips_load_store_pair_p_1): New function.
32542         (umips_load_store_pair_p): New function.
32543         (umips_output_load_store_pair_1): New function.
32544         (umips_output_load_store_pair): New function.
32545         (umips_movep_target_p) New function.
32546         (mips_prepare_pch_save): Add microMIPS support.
32547         * config/mips/mips.h (TARGET_COMPRESSION): New.
32548         (TARGET_CPU_CPP_BUILTINS): Update macro
32549         to use new compression flags and to support microMIPS.
32550         (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
32551         (MIPS_ARCH_FLOAT_SPEC): Likewise.
32552         (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
32553         (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
32554         (ASM_SPEC): Support mmicromips and mno-micromips.
32555         (M16STORE_REG_P): New macro.
32556         (MIPS_CALL): Support TARGET_MICROMIPS.
32557         (MICROMIPS_J): New macro.
32558         (mips_base_mips16): Rename this...
32559         (mips_base_compression_flags): ...to this.
32560         (UMIPS_12BIT_OFFSET_P): New macro.
32561         * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
32562         (MULTILIB_DIRNAMES): Likewise.
32563
32564 2013-02-25  Tom de Vries  <tom@codesourcery.com>
32565
32566         PR rtl-optimization/56131
32567         * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
32568         * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
32569         NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
32570
32571 2013-02-25  Tobias Burnus  <burnus@net-b.de>
32572
32573         * doc/invoke.texi (-fsanitize=): Move from optimization
32574         to debugging options.
32575
32576 2013-02-25  Andrey Belevantsev  <abel@ispras.ru>
32577
32578         * sched-deps.c (sched_analyze_insn): Fix typo in comment.
32579
32580 2013-02-25  Andrey Belevantsev  <abel@ispras.ru>
32581             Alexander Monakov  <amonakov@ispras.ru>
32582
32583         PR middle-end/56077
32584         * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
32585         flush pending lists also on non-jumps.  Adjust comment.
32586
32587 2013-02-24  Catherine Moore  <clm@codesourcery.com>
32588             Maciej W. Rozycki  <macro@codesourcery.com>
32589             Tom de Vries  <tom@codesourcery.com>
32590             Nathan Sidwell  <nathan@codesourcery.com>
32591             Iain Sandoe  <iain@codesourcery.com>
32592             Nathan Froyd  <froydnj@codesourcery.com>
32593             Chao-ying Fu  <fu@mips.com>
32594
32595         * doc/extend.texi: (micromips, nomicromips, nocompression):
32596         Document new function attributes.
32597         * doc/invoke.texi (minterlink-compressed, mmicromips,
32598         m14k, m14ke, m14kec): Document new options.
32599         (minterlink-mips16): Update documentation.
32600         * doc/md.texi (ZC, ZD): Document new constraints.
32601         * configure.ac (gcc_cv_as_micromips): Check if linker
32602         supports the .set micromips directive.
32603         * configure: Regenerate.
32604         * config.in: Regenerate.
32605         * config/mips/mips-tables.opt: Regenerate.
32606         * config/mips/micromips.md: New file.
32607         * constraints.md (ZC, AD): New constraints.
32608         * config/mips/predicates.md (movep_src_register): New predicate.
32609         (movep_src_operand): New predicate.
32610         (non_volatile_mem_operand): New predicate.
32611         * config/mips/mips.md (multimem): New type.
32612         (length): Differentiate between 17-bit and 18-bit branch offsets.
32613         (MOVEP1, MOVEP2): New mode iterator.
32614         (mov_<load>l): Use ZC constraint.
32615         (mov_<load>r): Likewise.
32616         (mov_<store>l): Likewise.
32617         (mov_<store>r): Likewise.
32618         (*branch_equality<mode>_inverted): Add microMIPS support.
32619         (*branch_equality<mode>): Likewise.
32620         (*jump_absolute): Likewise.
32621         (indirect_jump_<mode>): Likewise.
32622         (tablejump_<mode>): Likewise.
32623         (<optab>_internal): Likewise.
32624         (sibcall_internal): Likewise.
32625         (sibcall_value_internal): Likewise.
32626         (prefetch): Use constraint ZD.
32627         * config/mips/mips.opt (minterlink-compressed): New option.
32628         (minterlink-mips16): Now an alias for minterlink-compressed.
32629         (mmicromips): New option.
32630         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
32631         (compare_and_swap_12): Likewise.
32632         (sync_add<mode>): Likewise.
32633         (sync_<optab>_12): Likewise.
32634         (sync_old_<optab>_12): Likewise.
32635         (sync_new_<optab>_12): Likewise.
32636         (sync_nand_12): Likewise.
32637         (sync_old_nand_12): Likewise.
32638         (sync_new_nand_12): Likewise.
32639         (sync_sub<mode>): Likewise.
32640         (sync_old_add<mode>): Likewise.
32641         (sync_old_sub<mode>): Likewise.
32642         (sync_new_add<mode>): Likewise.
32643         (sync_new_sub<mode>): Likewise.
32644         (sync_<optab><mode>): Likewise.
32645         (sync_old_<optab><mode>): Likewise.
32646         (sync_new_<optab><mode>): Likewise.
32647         (sync_nand<mode>): Likewise.
32648         (sync_old_nand<mode>): Likewise.
32649         (sync_new_nand<mode>): Likewise.
32650         (sync_lock_test_and_set<mode>): Likewise.
32651         (test_and_set_12): Likewise.
32652         (atomic_compare_and_swap<mode>): Likewise.
32653         (atomic_exchange<mode>_llsc): Likewise.
32654         (atomic_fetch_add<mode>_llsc): Likewise.
32655         * config/mips/mips-cpus.def (m14kc, m14k): New processors.
32656         * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
32657         (umips_save_restore_pattern_p): Likewise.
32658         (umips_load_store_pair_p): Likewise.
32659         (umips_output_load_store_pair): Likewise.
32660         (umips_movep_target_p): Likewise.
32661         (umips_12bit_offset_address_p): Likewise.
32662         * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
32663         (mips_base_mips16): Rename this...
32664         (mips_base_compression_flags): ...to this. Update all uses.
32665         (mips_attribute_table): Add micromips, nomicromips and nocompression.
32666         (mips_mips16_decl_p): Delete.
32667         (mips_nomips16_decl_p): Delete.
32668         (mips_get_compress_on_flags): New function.
32669         (mips_get_compress_off_flags): New function.
32670         (mips_get_compress_mode): New function.
32671         (mips_get_compress_on_name): New function.
32672         (mips_get_compress_off_name): New function.
32673         (mips_insert_attributes): Support multiple compression types.
32674         (mips_merge_decl_attributes): Likewise.
32675         (umips_12bit_offset_address_p): New function.
32676         (mips_start_function_definition): Emit .set micromips directive.
32677         (mips_call_may_need_jalx_p): New function.
32678         (mips_function_ok_for_sibcall): Add microMIPS support.
32679         (mips_print_operand_punctuation): Support short delay slots and
32680         compact jumps.
32681         (umips_swm_mask, umips_swm_encoding): New.
32682         (umips_build_save_restore): New function.
32683         (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
32684         (was_mips16_p): Remove.
32685         (old_compression_mode): New.
32686         (mips_set_compression_mode): New function.
32687         (mips_set_current_function): Add microMIPS support.
32688         (mips_option_override): Likewise.
32689         (umips_save_restore_pattern_p): New function.
32690         (umips_output_save_restore): New function.
32691         (umips_load_store_pair_p_1): New function.
32692         (umips_load_store_pair_p): New function.
32693         (umips_output_load_store_pair_1): New function.
32694         (umips_output_load_store_pair): New function.
32695         (umips_movep_target_p) New function.
32696         (mips_prepare_pch_save): Add microMIPS support.
32697         * config/mips/mips.h (TARGET_COMPRESSION): New.
32698         (TARGET_CPU_CPP_BUILTINS): Update macro
32699         to use new compression flags and to support microMIPS.
32700         (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
32701         (MIPS_ARCH_FLOAT_SPEC): Likewise.
32702         (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
32703         (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
32704         (ASM_SPEC): Support mmicromips and mno-micromips.
32705         (M16STORE_REG_P): New macro.
32706         (MIPS_CALL): Support TARGET_MICROMIPS.
32707         (MICROMIPS_J): New macro.
32708         (mips_base_mips16): Rename this...
32709         (mips_base_compression_flags): ...to this.
32710         (UMIPS_12BIT_OFFSET_P): New macro.
32711         * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
32712         (MULTILIB_DIRNAMES): Likewise.
32713
32714 2013-02-24  Jakub Jelinek  <jakub@redhat.com>
32715
32716         PR target/52555
32717         * target-globals.c (save_target_globals): For init_reg_sets and
32718         target_reinit remporarily set this_fn_optabs to this_target_optabs.
32719
32720 2013-02-22  James Greenhalgh  <james.greenhalgh@arm.com>
32721
32722         * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
32723         * config/aarch64/t-aarch64
32724         (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
32725
32726 2013-02-22  Vladimir Makarov  <vmakarov@redhat.com>
32727
32728         PR inline-asm/56148
32729         * lra-constraints.c (process_alt_operands): Reload operand
32730         conflicting with earlier clobber only if no more other conflicting
32731         operands.
32732
32733 2013-02-22  Jakub Jelinek  <jakub@redhat.com>
32734
32735         PR sanitizer/56393
32736         * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
32737         if not linking a shared library.
32738
32739 2013-02-22  Seth LaForge  <sethml@google.com>
32740
32741         * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
32742
32743 2013-02-22  Greta Yorsh  <Greta.Yorsh@arm.com>
32744
32745         * config/arm/arm.md (split for extendsidi): Update condition.
32746         (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
32747         * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
32748         (qhs_zextenddi_cstr): Likewise.
32749
32750 2013-02-21  Jakub Jelinek  <jakub@redhat.com>
32751
32752         PR middle-end/56420
32753         * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
32754         avoid signed wrapping.
32755         (expand_mult): Handle properly multiplication by
32756         ((dword_type) -1) << (BITS_PER_WORD - 1).  Improve multiplication by
32757         ((dword_type) 1) << (BITS_PER_WORD - 1).  Avoid undefined behavior
32758         in the compiler if coeff is HOST_WIDE_INT_MIN.
32759         (expand_divmod): Don't make ext_op1 static, change it's type to
32760         uhwi.  Avoid undefined behavior in -INTVAL (op1).
32761
32762         PR rtl-optimization/50339
32763         * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
32764         field.
32765         * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
32766         (compute_costs): Call compute_splitting_shift also for ASHIFTRT
32767         into splitting_ashiftrt field.
32768         (find_decomposable_shift_zext, resolve_shift_zext): Handle also
32769         ASHIFTRT.
32770         (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
32771         choices.
32772
32773 2013-02-20  Aldy Hernandez  <aldyh@redhat.com>
32774
32775         PR middle-end/56108
32776         * trans-mem.c (execute_tm_mark): Do not expand transactions that
32777         are sure to go irrevocable.
32778
32779 2013-02-21  Hans-Peter Nilsson  <hp@axis.com>
32780
32781         * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
32782         scalars are valid operands.
32783
32784 2013-02-21  Martin Jambor  <mjambor@suse.cz>
32785
32786         PR tree-optimization/56310
32787         * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
32788         only matching indices and non-negative final offsets.
32789         (intersect_aggregates_with_edge): Pass src_idx to
32790         agg_replacements_to_vector.  Pass src_idx insstead of index to
32791         intersect_with_agg_replacements.
32792
32793 2013-02-21  Martin Jambor  <mjambor@suse.cz>
32794
32795         * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
32796         instead of hard-wired defaults.
32797
32798 2013-02-21  Maciej W. Rozycki  <macro@codesourcery.com>
32799
32800         * doc/invoke.texi (MIPS Options): Update documentation of the
32801         floating-point multiply-accumulate instruction restrictions.
32802
32803 2013-02-21  Kostya Serebryany  <kcc@google.com>
32804
32805         * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
32806         asan_shadow_offset on x86_64 linux.
32807
32808 2013-02-21  Richard Biener  <rguenther@suse.de>
32809
32810         PR tree-optimization/56415
32811         Revert
32812         2013-02-11  Richard Biener  <rguenther@suse.de>
32813
32814         PR tree-optimization/56273
32815         * tree-vrp.c (simplify_cond_using_ranges): Disable for the
32816         first VRP run.
32817
32818 2013-02-21  Jakub Jelinek  <jakub@redhat.com>
32819
32820         PR bootstrap/56258
32821         * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
32822         instead of @itemx.
32823
32824         PR inline-asm/56405
32825         * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
32826         use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
32827
32828 2013-02-20  Jan Hubicka  <jh@suse.cz>
32829
32830         PR tree-optimization/56265
32831         * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
32832         when target is referenced for first time.
32833
32834 2013-02-20  Richard Biener  <rguenther@suse.de>
32835
32836         * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
32837         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
32838         * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
32839         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
32840         not return anything.
32841         (rename_ssa_copies): Do not remove unused locals.
32842         * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
32843         * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
32844         * passes.c (execute_function_todo): Do not schedule unused locals
32845         removal if cleanup_tree_cfg did something.
32846         * tree-ssa-live.c (remove_unused_locals): Dump statistics
32847         about the number of removed locals.
32848
32849 2013-02-20  Richard Biener  <rguenther@suse.de>
32850
32851         PR tree-optimization/56398
32852         * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
32853
32854 2013-02-20  Martin Jambor  <mjambor@suse.cz>
32855
32856         PR tree-optimization/55334
32857         * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
32858         restricted pointers to arrays.
32859
32860 2013-02-20  Richard Biener  <rguenther@suse.de>
32861             Jakub Jelinek  <jakub@redhat.com>
32862
32863         PR tree-optimization/56396
32864         * tree-ssa-ccp.c (n_const_val): New static variable.
32865         (get_value): Return NULL for SSA names we don't have a lattice
32866         entry for.
32867         (ccp_initialize): Initialize n_const_val.
32868         * tree-ssa-copy.c (n_copy_of): New static variable.
32869         (init_copy_prop): Initialize n_copy_of.
32870         (get_value): Return NULL_TREE for SSA names we don't have a
32871         lattice entry for.
32872
32873 2013-02-20  Martin Jambor  <mjambor@suse.cz>
32874
32875         * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
32876
32877 2013-02-20  Richard Biener  <rguenther@suse.de>
32878
32879         * genpreds.c (write_lookup_constraint): Do not compare first
32880         letter of the constraint again.
32881
32882 2013-02-20  Richard Biener  <rguenther@suse.de>
32883
32884         * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
32885         and ceil_log2.
32886         (get_use_iv_cost): Terminate hashtable walk when coming across
32887         an empty entry.
32888
32889 2013-02-20  Igor Zamyatin  <igor.zamyatin@intel.com>
32890
32891         * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
32892         reassociation for avx2 targets.
32893
32894 2012-02-19  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
32895
32896         * config/microblaze/microblaze.c: microblaze_has_clz = 0
32897         Add version check for v8.10.a to enable microblaze_has_clz
32898         * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
32899         version and TARGET_PATTERN_COMPARE check
32900         * config/microblaze/microblaze.md: New clzsi2 instruction
32901
32902 2012-02-19  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
32903
32904         * config/microblaze/microblaze.md (call_value_intern): Check symbol is
32905         function before branching.
32906
32907 2012-02-19  Andrey Belevantsev  <abel@ispras.ru>
32908
32909         * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
32910         DUMP_INSN_RTX_UID.
32911         (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
32912
32913 2012-02-19  Andrey Belevantsev  <abel@ispras.ru>
32914
32915         PR middle-end/55889
32916         * sel-sched.c: Include ira.h.
32917         (implicit_clobber_conflict_p): New function.
32918         (moveup_expr): Use it.
32919         * Makefile.in (sel-sched.o): Depend on ira.h.
32920
32921 2013-02-19  Richard Biener  <rguenther@suse.de>
32922
32923         PR tree-optimization/56384
32924         * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
32925         (vn_hash_type): Split out from ...
32926         (vn_hash_constant_with_type): ... here.
32927         * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
32928         (vn_phi_eq): Compare types from vn_phi_s structure.
32929         (vn_phi_lookup): Populate vn_phi_s type.
32930         (vn_phi_insert): Likewise.
32931
32932 2013-02-19  Jakub Jelinek  <jakub@redhat.com>
32933
32934         PR tree-optimization/56350
32935         * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
32936         if haven't found reduction or nested cycle operand, rather than
32937         asserting we must find it.
32938
32939         PR tree-optimization/56381
32940         * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
32941         to fold_build3.
32942
32943 2013-02-18  Aldy Hernandez  <aldyh@redhat.com>
32944             Jakub Jelinek  <jakub@redhat.com>
32945
32946         PR target/52555
32947         * genopinit.c (raw_optab_handler): Use this_fn_optabs.
32948         (swap_optab_enable): Same.
32949         (init_all_optabs): Use argument instead of global.
32950         * tree.h (struct tree_optimization_option): New field target_optabs.
32951         * expr.h (init_all_optabs): Add argument to prototype.
32952         (TREE_OPTIMIZATION_OPTABS): New.
32953         (save_optabs_if_changed): Protoize.
32954         * optabs.h: Declare this_fn_optabs.
32955         * optabs.c (save_optabs_if_changed): New.
32956         Declare this_fn_optabs.
32957         (init_optabs): Add argument to init_all_optabs() call.
32958         * function.c (invoke_set_current_function_hook): Handle per
32959         function optabs.
32960         * function.h (struct function): New field optabs.
32961         * config/mips/mips.c (mips_set_mips16_mode): Handle when
32962         optimization_current_node has changed.
32963         * target-globals.h (save_target_globals_default_opts): Protoize.
32964         * target-globals.c (save_target_globals_default_opts): New.
32965
32966 2013-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
32967
32968         PR target/56347
32969         * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
32970         registers %fr12 and %fr12R as call used.
32971
32972         PR target/56214
32973         * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
32974         and HImode, require all displacements to be an integer multiple of
32975         their mode size.
32976         * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
32977         only allow QImode and HImode when reload is in progress and strict is
32978         true.  Likewise for symbolic addresses.  Use base14_operand to check
32979         displacements in REG+BASE addresses.
32980
32981 2013-02-18  Richard Biener  <rguenther@suse.de>
32982
32983         PR tree-optimization/56366
32984         * tree-vect-loop.c (get_initial_def_for_induction): Properly
32985         handle sign-conversion of outer-loop initial induction value.
32986
32987 2013-02-18  Richard Biener  <rguenther@suse.de>
32988
32989         PR middle-end/56349
32990         * cfghooks.c (merge_blocks): If we merge a latch into another
32991         block adjust references to it.
32992         * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
32993         (verify_loop_structure): Verify that a recorded latch is in fact
32994         a latch.
32995
32996 2013-02-18  Richard Biener  <rguenther@suse.de>
32997
32998         PR tree-optimization/56321
32999         * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
33000         order SSA name release and virtual operand unlinking.
33001
33002 2013-02-17  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
33003
33004         * config/microblaze/microblaze.md (save_stack_block): Define.
33005         (restore_stack_block): Likewise.
33006
33007 2013-02-16  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
33008
33009         * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
33010         * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
33011         * config/microblaze/microblaze.c (microblaze_option_override):
33012         Bail out early for PIC modes when target does not support PIC.
33013
33014 2013-02-16  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
33015
33016         * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
33017         Replace with a microblaze version.
33018         (microblaze_trampoline_init): Adapt for microblaze.
33019         * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
33020         microblaze.
33021
33022 2013-02-16  Jakub Jelinek  <jakub@redhat.com>
33023             Dodji Seketeli  <dodji@redhat.com>
33024
33025         PR asan/56330
33026         * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
33027         (instrument_mem_region_access): Do not forget to always put
33028         instrumentation of the of 'base' and 'base + len' in a "if (len !=
33029         0) statement, even for cases where either 'base' or 'base + len'
33030         are not instrumented -- because they have been previously
33031         instrumented.  Simplify the logic by putting all the statements
33032         instrument 'base + len' inside a sequence, and then insert that
33033         sequence right before the current insertion point.  Then, to
33034         instrument 'base + len', just get an iterator on that statement.
33035         And do not forget to update the pointer to iterator the function
33036         received as argument.
33037
33038 2013-02-15  Vladimir Makarov  <vmakarov@redhat.com>
33039
33040         PR rtl-optimization/56348
33041         * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
33042
33043 2013-02-15  Steven Bosscher  <steven@gcc.gnu.org>
33044
33045         * graph.c (start_graph_dump): Print dumpfile base as digraph label.
33046         (clean_graph_dump_file): Pass base to start_graph_dump.
33047
33048 2013-02-14  Richard Henderson  <rth@redhat.com>
33049
33050         PR target/55941
33051         * lower-subreg.c (simple_move): Check dest mode instead of src mode.
33052
33053 2013-02-14  Steven Bosscher  <steven@gcc.gnu.org>
33054
33055         * collect2-aix.h: Define F_LOADONLY.
33056
33057 2013-02-14  Richard Biener  <rguenther@suse.de>
33058
33059         PR lto/50494
33060         * varasm.c (output_constant_def_1): Get the decl representing
33061         the constant as argument.
33062         (output_constant_def): Wrap output_constant_def_1.
33063         (make_decl_rtl): Use output_constant_def_1 with the decl
33064         representing the constant.
33065         (build_constant_desc): Optionally re-use a decl already
33066         representing the constant.
33067         (tree_output_constant_def): Adjust.
33068
33069 2013-02-14  Dodji Seketeli  <dodji@redhat.com>
33070
33071         Fix an asan crash
33072         * asan.c (instrument_builtin_call):  Really put the length of the
33073         second source argument into src1_len.
33074
33075 2013-02-13  Jakub Jelinek  <jakub@redhat.com>
33076
33077         * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
33078         argument.  If it is false, don't create edge from then_bb to
33079         fallthru_bb.
33080         (insert_if_then_before_iter): Pass true to it.
33081         (build_check_stmt): Pass false to it.
33082         (transform_statements): Flush hash table only on extended basic
33083         block boundaries, rather than at the beginning of every bb.
33084         Don't flush hash table on nonfreeing_call_p calls.
33085         * tree-flow.h (nonfreeing_call_p): New prototype.
33086         * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
33087
33088 2013-02-13  David S. Miller  <davem@davemloft.net>
33089
33090         * expmed.c (expand_shift_1): Only strip scalar integer subregs.
33091
33092 2013-02-13  Vladimir Makarov  <vmakarov@redhat.com>
33093
33094         PR target/56184
33095         * ira.c (max_regno_before_ira): Move from ...
33096         (ira): ... here.
33097         (fix_reg_equiv_init): Use max_regno_before_ira instead of
33098         vec_safe_length.
33099
33100 2013-02-13  Jakub Jelinek  <jakub@redhat.com>
33101
33102         * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
33103
33104 2013-02-13  Richard Biener  <rguenther@suse.de>
33105
33106         PR lto/56295
33107         * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
33108         globals in MEM_REFs.
33109
33110 2013-02-13  Richard Biener  <rguenther@suse.de>
33111
33112         * loop-init.c (loop_optimizer_init): Clear loop state when
33113         re-initializing preserved loops.
33114         * loop-unswitch.c (unswitch_single_loop): Return whether
33115         we unswitched the loop.  Do not verify loop state here.
33116         (unswitch_loops): When we unswitched a loop discover new loops.
33117
33118 2013-02-13  Kostya Serebryany  <kcc@google.com>
33119
33120         * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
33121         on x86_64 linux.
33122         * sanitizer.def: Rename __asan_init to __asan_init_v1.
33123
33124 2013-02-12  Dodji Seketeli  <dodji@redhat.com>
33125
33126         Avoid instrumenting duplicated memory access in the same basic block
33127         * Makefile.in (asan.o): Add new dependency on hash-table.h
33128         * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
33129         (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
33130         (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
33131         (free_mem_ref_resources, has_mem_ref_been_instrumented)
33132         (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
33133         (get_mem_ref_of_assignment): New functions.
33134         (get_mem_refs_of_builtin_call): Extract from
33135         instrument_builtin_call and tweak a little bit to make it fit with
33136         the new signature.
33137         (instrument_builtin_call): Use the new
33138         get_mem_refs_of_builtin_call.  Use gimple_call_builtin_p instead
33139         of is_gimple_builtin_call.
33140         (instrument_derefs, instrument_mem_region_access): Insert the
33141         instrumented memory reference into the hash table.
33142         (maybe_instrument_assignment): Renamed instrument_assignment into
33143         this, and change it to advance the iterator when instrumentation
33144         actually happened and return true in that case.  This makes it
33145         homogeneous with maybe_instrument_assignment, and thus give a
33146         chance to callers to be more 'regular'.
33147         (transform_statements): Clear the memory reference hash table
33148         whenever we enter a new BB, when we cross a function call, or when
33149         we are done transforming statements.  Use
33150         maybe_instrument_assignment instead of instrumentation.  No more
33151         need to special case maybe_instrument_assignment and advance the
33152         iterator after calling it; it's now handled just like
33153         maybe_instrument_call.  Update comment.
33154
33155 2013-02-13  Richard Biener  <rguenther@suse.de>
33156
33157         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
33158         Fix loop discovery code.
33159
33160 2013-02-12  Vladimir Makarov  <vmakarov@redhat.com>
33161
33162         PR inline-asm/56148
33163         * lra-constraints.c (process_alt_operands): Match early clobber
33164         operand with itself.  Check conflicts with earlyclobber only if
33165         the operand is not reloaded.  Prefer to reload conflicting operand
33166         if earlyclobber and matching operands are the same.
33167
33168 2013-02-12  Richard Biener  <rguenther@suse.de>
33169
33170         PR lto/56297
33171         * lto-streamer-out.c (write_symbol): Do not output symbols
33172         for hard register variables.
33173
33174 2013-02-12  Georg-Johann Lay  <avr@gjlay.de>
33175
33176         PR target/54222
33177         * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
33178         (umulsidi3_insn, mulsidi3_insn): New insns.
33179
33180 2013-02-12  Christophe Lyon  <christophe.lyon@linaro.org>
33181
33182         * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
33183         (struct tune_params): Add vec_costs field.
33184         * config/arm/arm.c (arm_builtin_vectorization_cost)
33185         (arm_add_stmt_cost): New functions.
33186         (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
33187         (TARGET_VECTORIZE_ADD_STMT_COST): Define.
33188         (arm_default_vec_cost): New struct of type cpu_vec_costs.
33189         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
33190         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
33191         (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
33192         (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
33193
33194 2013-02-12  Richard Biener  <rguenther@suse.de>
33195
33196         PR lto/56295
33197         * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
33198         decls again if possible.
33199
33200 2013-02-12  Richard Biener  <rguenther@suse.de>
33201
33202         PR middle-end/56288
33203         * tree-ssa.c (verify_ssa_name): Fix check, move
33204         SSA_NAME_IN_FREE_LIST check up.
33205
33206 2013-02-12  Jakub Jelinek  <jakub@redhat.com>
33207             Steven Bosscher   <steven@gcc.gnu.org>
33208
33209         PR rtl-optimization/56151
33210         * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
33211         equal to op0 or op1, and last_insn pattern is CODE operation
33212         with MEM dest and one of the operands matches that MEM.
33213
33214 2013-02-11  Sriraman Tallam  <tmsriram@google.com>
33215
33216         * doc/extend.texi: Document Function Multiversioning and "default"
33217         parameter string to target attribute.
33218         * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
33219         target attribute parameter is "default".
33220         (ix86_compare_version_priority): Remove checks for target attribute.
33221         (ix86_mangle_function_version_assembler_name): Change error to sorry.
33222         Remove check for target attribute equal to NULL. Add assert.
33223         (ix86_generate_version_dispatcher_body): Change error to sorry.
33224
33225 2013-02-11  Iain Sandoe  <iain@codesourcery.com>
33226             Jack Howarth  <howarth@bromo.med.uc.edu>
33227             Patrick Marlier  <patrick.marlier@gmail.com>
33228
33229         PR libitm/55693
33230         * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
33231         define ENDFILE_SPEC as TM_DESTRUCTOR.
33232         * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
33233
33234 2013-02-11  Alexander Potapenko  <glider@google.com>
33235             Jack Howarth  <howarth@bromo.med.uc.edu>
33236             Jakub Jelinek  <jakub@redhat.com>
33237
33238         PR sanitizer/55617
33239         * config/darwin.c (cdtor_record): Rename ctor_record.
33240         (sort_cdtor_records): Rename sort_ctor_records.
33241         (finalize_dtors): New routine to sort destructors by
33242         priority before use in assemble_integer.
33243         (machopic_asm_out_destructor): Use finalize_dtors if needed.
33244
33245 2013-02-11  Uros Bizjak  <ubizjak@gmail.com>
33246
33247         PR rtl-optimization/56275
33248         * simplify-rtx.c (avoid_constant_pool_reference): Check that
33249         offset is non-negative and less than cmode size before
33250         calling simplify_subreg.
33251
33252 2013-02-11  Richard Biener  <rguenther@suse.de>
33253
33254         PR tree-optimization/56264
33255         * cfgloop.h (fix_loop_structure): Adjust prototype.
33256         * loop-init.c (fix_loop_structure): Return the number of
33257         newly discovered loops.
33258         * tree-cfgcleanup.c (repair_loop_structures): When new loops
33259         are discovered, do a full loop-closed SSA rewrite.
33260
33261 2013-02-11  Richard Biener  <rguenther@suse.de>
33262
33263         PR tree-optimization/56273
33264         * tree-vrp.c (simplify_cond_using_ranges): Disable for the
33265         first VRP run.
33266         (check_array_ref): Fix missing newline in dumps.
33267         (search_for_addr_array): Likewise.
33268
33269 2013-02-09  David Edelsohn  <dje.gcc@gmail.com>
33270
33271         * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
33272
33273 2013-02-09  Jakub Jelinek  <jakub@redhat.com>
33274
33275         PR target/56256
33276         * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
33277
33278 2013-02-08  Vladimir Makarov  <vmakarov@redhat.com>
33279
33280         PR rtl-optimization/56246
33281         * lra-constraints.c (simplify_operand_subreg): Try to reuse
33282         reload pseudo.
33283         * lra.c (lra): Clear lra_optional_reload_pseudos only when all
33284         constraints are satisfied.
33285
33286 2013-02-08  Jeff Law  <law@redhat.com>
33287
33288         PR debug/53948
33289         * emit-rtl.c (reg_is_parm_p): New function.
33290         * regs.h (reg_is_parm_p): New prototype.
33291         * ira-conflicts.c (ira_build_conflicts): Allow parameters in
33292         callee-clobbered registers.
33293
33294 2013-02-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
33295
33296         PR target/56043
33297         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
33298         If there is no implicit builtin declaration, just return NULL.
33299
33300 2013-02-08  Uros Bizjak  <ubizjak@gmail.com>
33301
33302         * config/i386/sse.md (FMAMODEM): New mode iterator.
33303         (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
33304         mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
33305
33306 2013-02-08  Uros Bizjak  <ubizjak@gmail.com>
33307
33308         * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
33309         when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
33310         * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
33311
33312 2013-02-08  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
33313
33314         * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
33315         (microblaze*-*-elf): Likewise.
33316         * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
33317         LINK_SPEC.
33318         * config/microblaze/microblaze-c.c: Add builtin defines for
33319         _LITTLE_ENDIAN and _BIG_ENDIAN.
33320         * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
33321         add to TARGET_DEFAULT flags.
33322         Expand ASM_SPEC and LINK_SPEC.
33323         Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
33324         * config/microblaze/microblaze.md: Update extendsidi2 and
33325         movdi_internal instructions to use low-order / high-order reg
33326         print_operands.
33327         * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
33328         options and inversemask / mask of LITTLE_ENDIAN.
33329         * config/microblaze/t-microblaze: Expand multilib options to
33330         include mlittle-endian (le) and update exceptions patterns.
33331
33332 2013-02-08  Jakub Jelinek  <jakub@redhat.com>
33333
33334         PR rtl-optimization/56195
33335         * lra-constraints.c (get_reload_reg): Don't reuse regs
33336         if they have smaller mode than requested, if they have
33337         wider mode than requested, try to return a SUBREG.
33338
33339         PR tree-optimization/56250
33340         * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
33341         if type is unsigned and code isn't MULT_EXPR.
33342
33343 2013-02-08  Georg-Johann Lay  <avr@gjlay.de>
33344
33345         PR tree-optimization/56064
33346         * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
33347         bits according to mode.
33348         * fixed-value.h (fixed_from_double_int)
33349         (const_fixed_from_double_int): Adjust comments.
33350
33351 2013-02-08  Richard Biener  <rguenther@suse.de>
33352
33353         PR lto/56231
33354         * lto-streamer.h (struct data_in): Remove current_file, current_line
33355         and current_col members.
33356         * lto-streamer-out.c (lto_output_location): Stream changed bits
33357         en-block for efficiency.
33358         * lto-streamer-in.c (clear_line_info): Remove.
33359         (lto_input_location): Cache current file, line and column
33360         globally via local statics.  Read changed bits en-block.
33361         (input_function): Do not call clear_line_info.
33362         (lto_read_body): Likewise.
33363         (lto_input_toplevel_asms): Likewise.
33364
33365 2013-02-08  Michael Matz  <matz@suse.de>
33366
33367         PR tree-optimization/52448
33368         * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
33369         (nt_call_phase): New static.
33370         (add_or_mark_expr): Only mark accesses with newer phase than any
33371         call seen.
33372         (nonfreeing_call_p): New.
33373         (nt_init_block): Update nt_call_phase, mark blocks as visited.
33374         (nt_fini_block): Keep blocks marked as visited.
33375         (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
33376
33377 2013-02-08  Richard Biener  <rguenther@suse.de>
33378
33379         * ira.c (ira): Free broken dominator information.
33380
33381 2013-02-08  Uros Bizjak  <ubizjak@gmail.com>
33382
33383         * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
33384
33385 2013-02-08  Marek Polacek  <polacek@redhat.com>
33386
33387         * cfgloop.c (verify_loop_structure): Add more checking of headers.
33388
33389 2013-02-08  Richard Biener  <rguenther@suse.de>
33390
33391         PR middle-end/56181
33392         * cfgloop.h (flow_loops_find): Adjust.
33393         (bb_loop_header_p): Declare.
33394         * cfgloop.c (bb_loop_header_p): New function split out from ...
33395         (flow_loops_find): ... here.  Adjust function signature,
33396         support incremental loop structure update.
33397         (verify_loop_structure): Cleanup.  Verify a loop is a loop.
33398         * cfgloopmanip.c (fix_loop_structure): Move ...
33399         * loop-init.c (fix_loop_structure): ... here.
33400         (apply_loop_flags): Split out from ...
33401         (loop_optimizer_init): ... here.
33402         (fix_loop_structure): Use apply_loop_flags.  Use flow_loops_find
33403         in incremental mode, only remove dead loops here.
33404
33405 2013-02-08  Georg-Johann Lay  <avr@gjlay.de>
33406
33407         PR target/54222
33408         * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
33409         * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
33410         (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
33411         (*round<mode>3.libgcc): New insns for fixed-modes.
33412         * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
33413         (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
33414         (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
33415         * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
33416         implementations.  Define to __builtin_avr_absFX,
33417         __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
33418         (roundFX, countlsFX): Define to __builtin_avr_roundFX,
33419         __builtin_avr_countlsFX, respectively.
33420         * config/avr/avr-c.c (target.h): Include it.
33421         (enum avr_builtin_id): New enum.
33422         (avr_resolve_overloaded_builtin): New static function.
33423         (avr_register_target_pragmas): Use it to set
33424         targetm.resolve_overloaded_builtin.
33425         * config/avr/avr.c (avr_init_builtins): Supply myriads of local
33426         tree nodes used by DEF_BUILTIN.
33427         (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
33428         (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
33429         <AVR_BUILTIN_xxBITS>: Same.
33430
33431 2013-02-08  Richard Biener  <rguenther@suse.de>
33432
33433         * cfgloop.c (verify_loop_structure): Properly handle
33434         a loop exiting to another loop header.
33435         * ira-int.h (ira_loops): Remove.
33436         * ira.c (ira_loops): Remove.
33437         (ira): Use loop_optimizer_init and loop_optimizer_finalize.
33438         (do_reload): Use loop_optimizer_finalize.
33439         * ira-build.c (create_loop_tree_nodes): Use get_loops and
33440         number_of_loops to access the loop tree.
33441         (more_one_region_p): Likewise.
33442         (finish_loop_tree_nodes): Likewise.
33443         (rebuild_regno_allocno_maps): Likewise.
33444         (mark_loops_for_removal): Likewise.
33445         (mark_all_loops_for_removal): Likewise.
33446         (remove_unnecessary_regions): Likewise.
33447         (ira_build): Likewise.
33448         * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
33449
33450 2013-02-08  Richard Biener  <rguenther@suse.de>
33451
33452         * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
33453         * ipa-pure-const.c (analyze_function): Avoid calling
33454         mark_irreducible_loops twice.
33455         * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
33456
33457 2013-02-07  David S. Miller  <davem@davemloft.net>
33458
33459         * dwarf2out.c (based_loc_descr): Perform leaf register remapping
33460         on 'reg'.
33461         * var-tracking.c (vt_add_function_parameter): Test the presence of
33462         HAVE_window_save properly and do not remap argument registers when
33463         we have a leaf function.
33464
33465 2013-02-07  Uros Bizjak  <ubizjak@gmail.com>
33466
33467         PR bootstrap/56227
33468         * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
33469         instead of "ll".
33470         * config/i386/i386.c (ix86_print_operand): Ditto.
33471
33472 2013-02-07  Vladimir Makarov  <vmakarov@redhat.com>
33473
33474         * lra-constraints.c (process_alt_operands): Fix recently added comment.
33475
33476 2013-02-07  Vladimir Makarov  <vmakarov@redhat.com>
33477
33478         PR rtl-optimization/56225
33479         * lra-constraints.c (process_alt_operands): Check that reload hard
33480         reg can hold value for strict_low_part.
33481
33482 2013-02-07  Jakub Jelinek  <jakub@redhat.com>
33483
33484         PR debug/56154
33485         * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
33486         dwarf2out_end_function.
33487         (in_first_function_p, maybe_at_text_label_p,
33488         first_loclabel_num_not_at_text_label): New variables.
33489         (dwarf2out_var_location): In the first function find out
33490         lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
33491         (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
33492         functions.
33493
33494 2013-02-07  Eric Botcazou  <ebotcazou@adacore.com>
33495
33496         PR rtl-optimization/56178
33497         * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
33498         SUBREG of a register.  Tidy up related block of code.
33499         * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
33500         note if the source is a register or a SUBREG of a register.
33501
33502 2013-02-07  Jakub Jelinek  <jakub@redhat.com>
33503
33504         PR target/56228
33505         * config/rs6000/rs6000.md (ptrm): New mode attr.
33506         (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
33507         call_value_indirect_aix<pttrsize>,
33508         call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
33509         m in constraints.
33510
33511 2013-02-07  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
33512
33513         * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
33514         if -bnortl. Convert to strcmp and strncmp.
33515
33516 2013-02-07  Alan Modra  <amodra@gmail.com>
33517
33518         PR target/54009
33519         * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
33520         addresses won't wrap when offsetting.
33521         (rs6000_secondary_reload): Provide secondary reloads needed for
33522         wrapping LO_SUM addresses.
33523
33524 2013-02-06  Thomas Schwinge  <thomas@codesourcery.com>
33525
33526         * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
33527         MACH, just __MACH__.
33528
33529 2013-02-06  Richard Biener  <rguenther@suse.de>
33530
33531         * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
33532         instead of calling fix_loop_structure.
33533
33534 2013-02-06  Jakub Jelinek  <jakub@redhat.com>
33535
33536         PR middle-end/56217
33537         * omp-low.c (use_pointer_for_field): Return false if
33538         lower_send_shared_vars doesn't generate any copy-out code.
33539
33540 2013-02-06  Tom de Vries  <tom@codesourcery.com>
33541
33542         PR rtl-optimization/56131
33543         * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
33544         to get the bb of a NOTE_INSN_BASIC_BLOCK.  Handle the case that the bb
33545         of the label is NULL.  Add comment.
33546
33547 2013-02-05  Jakub Jelinek  <jakub@redhat.com>
33548
33549         * tree.h (struct tree_decl_with_vis): Remove thread_local field.
33550
33551         PR sanitizer/55374
33552         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
33553         (STATIC_LIBTSAN_LIBS): Likewise.
33554         * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
33555         (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
33556         is defined, don't add anything else beyond that.
33557         (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
33558         (LINK_COMMAND_SPEC): Use them.
33559
33560         PR tree-optimization/56205
33561         * tree-stdarg.c (check_all_va_list_escapes): Return true if
33562         there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
33563         and some va_list_escape_vars SSA_NAME appears in some PHI argument.
33564
33565 2013-02-05  Richard Biener  <rguenther@suse.de>
33566
33567         PR tree-optimization/53342
33568         PR tree-optimization/53185
33569         * tree-vectorizer.h (vect_check_strided_load): Remove.
33570         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
33571         not disallow peeling for vectorized strided loads.
33572         (vect_check_strided_load): Make static and simplify.
33573         (vect_analyze_data_refs): Adjust.
33574         * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
33575         correctly when vectorizing strided loads.
33576
33577 2013-02-05  Richard Biener  <rguenther@suse.de>
33578
33579         * doc/install.texi: Refer to ISL, not PPL.
33580
33581 2013-02-05  Jan Hubicka  <jh@suse.cz>
33582
33583         PR tree-optimization/55789
33584         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
33585
33586 2013-02-05  Jan Hubicka  <jh@suse.cz>
33587
33588         PR tree-optimization/55789
33589         * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
33590         the dead call anyway.
33591
33592 2013-02-05  Eric Botcazou  <ebotcazou@adacore.com>
33593
33594         PR sanitizer/55374
33595         * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
33596
33597 2013-02-04  Alexander Potapenko  <glider@google.com>
33598             Jack Howarth  <howarth@bromo.med.uc.edu>
33599             Jakub Jelinek  <jakub@redhat.com>
33600
33601         PR sanitizer/55617
33602         * config/darwin.c (sort_ctor_records): Stabilized qsort
33603         on constructor priority by using original position.
33604         (finalize_ctors): New routine to sort constructors by
33605         priority before use in assemble_integer.
33606         (machopic_asm_out_constructor): Use finalize_ctors if needed.
33607
33608 2013-02-04  Jakub Jelinek  <jakub@redhat.com>
33609
33610         PR libstdc++/54314
33611         * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
33612         about visibility on artificial decls.
33613         * config/sol2.c (solaris_assemble_visibility): Likewise.
33614
33615 2013-02-04  Kai Tietz  <ktietz@redhat.com>
33616
33617         PR target/56186
33618         * config/i386/i386.c (function_value_ms_64): Add additional valtype
33619         argument and improve checking of return-argument types for 16-byte
33620         modes.
33621         (ix86_function_value_1): Add additional valtype argument on call
33622         of function_value_64.
33623         (return_in_memory_ms_64): Sync 16-byte sized mode handling with
33624         handling infunction_value_64 function.
33625
33626 2013-02-04  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
33627
33628         * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
33629
33630 2013-02-04  Richard Biener  <rguenther@suse.de>
33631
33632         PR tree-optimization/56188
33633         * tree-ssa-structalias.c (label_visit): Consider case with
33634         initially non-empty points-to set.
33635         (perform_var_substitution): Dump node mapping and clean up.
33636
33637 2013-02-04  Richard Guenther  <rguenther@suse.de>
33638
33639         PR lto/56168
33640         * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
33641         node prevail as last resort.
33642         (lto_symtab_merge_decls): Remove guard on LTRANS here.
33643         (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
33644
33645 2013-02-04  Richard Biener  <rguenther@suse.de>
33646
33647         PR tree-optimization/56113
33648         * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
33649         Merge into ...
33650         (equiv_class_lookup_or_add): ... this.
33651         (label_visit): Adjust and fix error in previous patch.
33652         (perform_var_substitution): Adjust.
33653
33654 2013-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
33655
33656         * config/sh/divtab.c: Fix formatting and comments throughout the file.
33657         * config/sh/sh4-300.md: Likewise.
33658         * config/sh/sh4a.md: Likewise.
33659         * config/sh/constraints.md: Likewise.
33660         * config/sh/sh.md: Likewise.
33661         * config/sh/netbsd-elf.h: Likewise.
33662         * config/sh/predicates.md: Likewise.
33663         * config/sh/sh-protos.h: Likewise.
33664         * config/sh/ushmedia.h: Likewise.
33665         * config/sh/linux.h: Likewise.
33666         * config/sh/sh.c: Likewise.
33667         * config/sh/superh.h: Likewise.
33668         * config/sh/elf.h: Likewise.
33669         * config/sh/sh4.md: Likewise.
33670         * config/sh/sh.h: Likewise.
33671
33672 2013-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
33673
33674         * config/pa/constraints.md: Adjust unused letters.  Change "T"
33675         constraint to match_test floating_point_store_memory_operand().
33676         * config/pa/predicates.md (reg_plus_base_memory_operand): New.
33677         (base14_operand): New.
33678         (floating_point_store_memory_operand): New.
33679         (integer_store_memory_operand): Revise to use base14_operand and
33680         reg_plus_base_memory_operand.
33681         (move_dest_operand): Allow symbolic_memory_operands.
33682         (symbolic_memory_operand): Check for LO_SOM.
33683         (symbolic_operand): Change default case to break.
33684         * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
33685         CONST_DOUBLE values to be reloaded by putting them into memory when
33686         the destination is a floating point register.
33687         (movdf): Remove code to handle CONST_DOUBLE.
33688         (movsf): Likewise.
33689         (reload_indf_r1): New.
33690         (reload_insf_r1): New.
33691         Consistently use "Q" and "T" constraints with integer and floating
33692         point move instructions, respectively.
33693         (movdi): Remove FAIL.
33694         Change predicate for source operand unamed DImode move from
33695         general_operand to move_src_operand.
33696         (umulsidi3): Change predicate for destination operand to
33697         register_operand.
33698         Likewise for similar unamed patterns.
33699         * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
33700         * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
33701         (hppa_legitimize_address): Simplify mask calculation.
33702         (pa_emit_move_sequence): Revised handling of secondary reloads from
33703         REG+D addresses for floating point loads and stores.  Directly handle
33704         loading CONST0_RTX (mode) to a floating point register.
33705         (pa_secondary_reload): Handle reloading DF and SFmode constant values
33706         to floating point registers.  Don't restrict secondary reloads to
33707         floating point registers to integer modes.  Revise some comments and
33708         cleanup some code.
33709         (TARGET_LEGITIMATE_ADDRESS_P): Define.
33710         (pa_legitimate_address_p): New.
33711         (pa_legitimize_reload_address): New.
33712         * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
33713         (STRICT_REG_OK_FOR_BASE_P): New.
33714         (GO_IF_LEGITIMATE_ADDRESS): Delete.  Update some related comments.
33715         (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
33716
33717 2013-02-03  David Edelsohn  <dje.gcc@gmail.com>
33718             Andrew Dixie  <andrewd@gentrack.com>
33719
33720         * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
33721         flag set.
33722
33723 2013-02-03  Richard Sandiford  <rdsandiford@googlemail.com>
33724
33725         * expmed.c (extract_bit_field_1): Pass the full width of the
33726         structure to get_best_reg_extraction_insn.
33727
33728 2013-02-01  David Edelsohn  <dje.gcc@gmail.com>
33729
33730         PR target/54601
33731         * configure.ac (use_cxa_atexit): Add AIX.
33732         * configure: Regenerate.
33733
33734         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
33735
33736 2013-02-01  Jakub Jelinek  <jakub@redhat.com>
33737
33738         PR debug/54793
33739         * final.c (need_profile_function): New variable.
33740         (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
33741         If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
33742         is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
33743         notes, targetm.asm_out.function_prologue doesn't emit anything,
33744         HAVE_prologue and profiler should be emitted before prologue,
33745         set need_profile_function instead of emitting it.
33746         (final_scan_insn): If need_profile_function, emit
33747         profile_function on the first NOTE_INSN_BASIC_BLOCK or
33748         NOTE_INSN_FUNCTION_BEG note.
33749
33750 2013-02-01  Richard Henderson  <rth@redhat.com>
33751
33752         * config/rs6000/rs6000.md (smulditi3): New.
33753         (umulditi3): New.
33754
33755         * config/alpha/alpha.md (umulditi3): New.
33756
33757 2013-02-01  David Edelsohn  <dje.gcc@gmail.com>
33758
33759         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
33760         (ASM_OUTPUT_ALIGNED_LOCAL): New.
33761
33762 2013-02-01  Richard Biener  <rguenther@suse.de>
33763
33764         PR tree-optimization/56113
33765         * tree-ssa-structalias.c (label_visit): Reduce work for
33766         single-predecessor nodes.
33767
33768 2013-02-01  Eric Botcazou  <ebotcazou@adacore.com>
33769
33770         * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
33771         range isn't testing for zero.
33772
33773 2013-01-31  Steven Bosscher  <steven@gcc.gnu.org>
33774
33775         PR middle-end/56113
33776         * fwprop.c (fwprop_init): Set up loops without CFG modifications.
33777
33778 2013-01-31  Hiroyuki Ono  <hiroyuki.ono.jc@renesas.com>
33779             Nick Clifton  <nickc@redhat.com>
33780
33781         * config/v850/constraints.md (Q): Define as a memory constraint.
33782         * config/v850/predicates.md (label_ref_operand): New predicate.
33783         (e3v5_shift_operand): New predicate.
33784         (ior_operator): New predicate.
33785         * config/v850/t-v850: Add e3v5 multilib.
33786         * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
33787         (v850_gen_movdi): Prototype.
33788         * config/v850/v850.c: Add support for e3v5 architecture.
33789         Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
33790         TARGET_V850E_UP.
33791         (construct_save_jarl): Add e3v5 long JARL support.
33792         (v850_adjust_insn_length): New function.  Adjust length of call
33793         insns when using e3v5 instructions.
33794         (v850_gen_movdi): New function: Generate instructions to move a
33795         DImode value.
33796         * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
33797         (CPP_SPEC): Define __v850e3v5__ as appropriate.
33798         (TARGET_USE_FPU): Enable for e3v5.
33799         (CONST_OK_FOR_W): New macro.
33800         (ADJUST_INSN_LENGTH): Define.
33801         * config/v850/v850.md (UNSPEC_LOOP): Define.
33802         (attr cpu): Add v850e3v5.
33803         Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
33804         (movdi): New pattern.
33805         (movdi_internal): New pattern.
33806         (cbranchsf4): Conditionalize on TARGET_USE_FPU.
33807         (cbranchdf4): Conditionalize on TARGET_USE_FPU.
33808         (cstoresf4): Likewise.
33809         (cstoredf4): Likewise.
33810         (insv): New pattern.
33811         (rotlso3_a): New pattern.
33812         (rotlsi3_b): New pattern
33813         (rotlsi3_v850e3v5): New pattern.
33814         (doloop_begin): New pattern.
33815         (fix_loop_counter): New pattern.
33816         (doloop_end): New pattern.
33817         (branch_normal): Add e3v5 long branch support.
33818         (branch_invert): Likewise.
33819         (branch_z_normal): Likewise.
33820         (branch_z_invert): Likewise.
33821         (branch_nz_normal): Likewise.
33822         (branch_nz_invert): Likewise.
33823         (call_internal_short): Add e3v5 register-indirect JARL support.
33824         (call_internal_long): Likewise.
33825         (call_value_internal_short): Likewise.
33826         (call_value_internal_long): Likewise.
33827         * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
33828         (mloop): New option.
33829         * config.gcc: Add support for configuring v840e3v5 target.
33830         * doc/invoke.texi: Document new v850 specific command line options.
33831
33832 2013-01-31  Paul Koning  <ni1d@arrl.net>
33833
33834         PR debug/55059
33835         PR debug/54508
33836         * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
33837         children if parent is a class.
33838         (prune_unused_types_prune): Don't add DW_AT_declaration.
33839
33840 2013-01-31  Richard Biener  <rguenther@suse.de>
33841
33842         PR tree-optimization/56157
33843         * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
33844         match up operand with SLP child.
33845
33846 2013-01-31  Jason Merrill  <jason@redhat.com>
33847
33848         PR debug/54410
33849         * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
33850         parameters the first time.
33851         (gen_scheduled_generic_parms_dies): Check completeness here.
33852
33853 2013-01-31  Richard Biener  <rguenther@suse.de>
33854
33855         PR middle-end/53073
33856         * common.opt (faggressive-loop-optimizations): New flag,
33857         enabled by default.
33858         * doc/invoke.texi (faggressive-loop-optimizations): Document.
33859         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
33860         infer_loop_bounds_from_undefined by it.
33861
33862 2013-01-31  Richard Biener  <rguenther@suse.de>
33863
33864         PR tree-optimization/56150
33865         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
33866         visit virtual operands.
33867         (find_uses_to_rename_bb): Likewise.
33868
33869 2013-01-31  Richard Biener  <rguenther@suse.de>
33870
33871         PR tree-optimization/56150
33872         * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
33873         mixed store non-store stmts.
33874
33875 2013-01-30  Jakub Jelinek  <jakub@redhat.com>
33876
33877         PR sanitizer/55374
33878         * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
33879         LIBASAN_EARLY_SPEC is defined.
33880         (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
33881         (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
33882         before %o.
33883         * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
33884
33885         PR c++/55742
33886         * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
33887         invalid args instead of ICEing on it.
33888         (ix86_valid_target_attribute_tree): Return error_mark_node if
33889         ix86_valid_target_attribute_inner_p failed.
33890         (ix86_valid_target_attribute_p): Return false only if
33891         ix86_valid_target_attribute_tree returned error_mark_node.  Allow
33892         target("default") attribute.
33893         (sorted_attr_string): Change argument from const char * to tree,
33894         merge in all target attribute arguments rather than just one.
33895         Formatting fix.  Use XNEWVEC instead of xmalloc and XDELETEVEC
33896         instead of free.  Avoid using strcat.
33897         (ix86_mangle_function_version_assembler_name): Mangle
33898         target("default") as if no target attribute is present.  Adjust
33899         sorted_attr_string caller.  Avoid leaking memory.  Use XNEWVEC
33900         instead of xmalloc and XDELETEVEC instead of free.
33901         (ix86_function_versions): Don't return true if one of the decls
33902         doesn't have target attribute.  If they don't and one of the decls
33903         is DECL_FUNCTION_VERSIONED, report an error.  Adjust
33904         sorted_attr_string caller.  Use XDELETEVEC instead of free.
33905         (ix86_supports_function_versions): Remove.
33906         (make_name): Fix up formatting.
33907         (make_dispatcher_decl): Remove resolver_name and its initialization.
33908         Avoid leaking memory.
33909         (is_function_default_version): Return true if there is
33910         target("default") attribute rather than no target attribute at all.
33911         (make_resolver_func): Avoid leaking memory.
33912         (ix86_generate_version_dispatcher_body): Likewise.
33913         (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
33914         * target.def (supports_function_versions): Remove.
33915         * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
33916         * doc/tm.texi: Regenerated.
33917
33918 2013-01-30  Vladimir Makarov  <vmakarov@redhat.com>
33919
33920         PR rtl-optimization/56144
33921         * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
33922         for values with side effects.
33923
33924 2013-01-30  Richard Biener  <rguenther@suse.de>
33925
33926         * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
33927         (sparseset_pop): Likewise.
33928         * cfganal.c (compute_idf): Likewise.  Increase work-stack size
33929         to be able to use quick_push in the worker loop.
33930
33931 2013-01-30  Marek Polacek  <polacek@redhat.com>
33932
33933         * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
33934
33935 2013-01-30  Richard Biener  <rguenther@suse.de>
33936
33937         PR lto/56147
33938         * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
33939
33940 2013-01-30  Georg-Johann Lay  <avr@gjlay.de>
33941
33942         PR tree-optimization/56064
33943         * fixed-value.c (fixed_from_double_int): New function.
33944         * fixed-value.h (fixed_from_double_int): New prototype.
33945         (const_fixed_from_double_int): New static inline function.
33946         * fold-const.c (native_interpret_fixed): New static function.
33947         (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
33948         (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
33949         (native_encode_fixed): New static function.
33950         (native_encode_expr) <FIXED_CST>: Use it.
33951         (native_interpret_int): Move double_int worker code to...
33952         * double-int.c (double_int::from_buffer): ...this new static method.
33953         * double-int.h (double_int::from_buffer): Prototype it.
33954
33955 2013-01-30  Richard Biener  <rguenther@suse.de>
33956
33957         * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
33958         New pointer-map and obstack.
33959         (init_alias_vars): Allocate pointer-map and obstack.
33960         (delete_points_to_sets): Free them.
33961         (find_what_var_points_to): Cache result.
33962         (find_what_p_points_to): Adjust for changed interface of
33963         find_what_var_points_to.
33964         (compute_points_to_sets): Likewise.
33965         (ipa_pta_execute): Likewise.
33966
33967 2013-01-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33968
33969         * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
33970         * configure: Regenerate.
33971         * config.in: Regenerate.
33972         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
33973         #nobits/#progbits if supported.
33974
33975 2013-01-29  Oleg Endo  <olegendo@gcc.gnu.org>
33976
33977         PR target/56121
33978         * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
33979         bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
33980         bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
33981
33982 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
33983
33984         * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
33985         (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
33986
33987 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
33988
33989         * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
33990         * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
33991
33992 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
33993
33994         * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
33995         declaration.
33996         * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
33997         * config/arm/cortex-a7.md: New bypasses using
33998         arm_mac_accumulator_is_result.
33999
34000 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
34001
34002         * config/arm/cortex-a7.md (cortex_a7_neon_mul):  New reservation.
34003         (cortex_a7_neon_mla): Likewise.
34004         (cortex_a7_fpfmad): New reservation.
34005         (cortex_a7_fpmacs): Use ffmas and update required units.
34006         (cortex_a7_fpmuld): Update required units and latency.
34007         (cortex_a7_fpmacd): Likewise.
34008         (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
34009         (cortex_a7_neon). Likewise.
34010         (bypass) Update participating units.
34011
34012 2013-01-29  Greta Yorsh  <Greta.Yorsh@arm.com>
34013
34014         * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
34015         * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
34016         from fmac to ffma.
34017         * config/arm/vfp11.md (vfp_farith): Use ffmas.
34018         (vfp_fmul): Use ffmad.
34019         * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
34020         (cortex_r4_fmacd): Use ffmad.
34021         * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
34022         * config/arm/cortex-a9.md (cortex_a9_fmacs):  Use ffmas.
34023         (cortex_a9_fmacd): Use ffmad.
34024         * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
34025         (cortex_a8_vfp_macd): Use ffmad.
34026         * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
34027         (cortex_a5_fpmacd): Use ffmad.
34028         * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
34029         (cortex_a15_vfp_macd): Use ffmad.
34030         * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
34031
34032 2013-01-29  Jason Merrill  <jason@redhat.com>
34033
34034         PR libstdc++/54314
34035         * varasm.c (default_assemble_visibility): Don't warn about
34036         visibility on artificial decls.
34037
34038 2013-01-29  Richard Biener  <rguenther@suse.de>
34039
34040         PR tree-optimization/56113
34041         * tree-ssa-structalias.c (equiv_class_lookup): Also return
34042         the bitmap leader.
34043         (label_visit): Free duplicate bitmaps and record the leader instead.
34044         (perform_var_substitution): Adjust.
34045
34046 2013-01-29  Richard Biener  <rguenther@suse.de>
34047
34048         PR tree-optimization/55270
34049         * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
34050         the CFG, schedule loops for fixup.
34051
34052 2013-01-29  Nick Clifton  <nickc@redhat.com>
34053
34054         * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
34055         SP_REG.
34056
34057 2013-01-28  Leif Ekblad  <leif@rdos.net>
34058
34059         * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
34060         * config/i386/i386.h (TARGET_RDOS): New macro.
34061         (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
34062         * config/i386/i386.c (ix86_option_override_internal): For 64bit
34063         TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
34064         * config/i386/i386.opt (mlarge-data-threshold): Initialize to
34065         DEFAULT_LARGE_SECTION_THRESHOLD.
34066         * config/i386/i386.md (R14_REG, R15_REG): New constants.
34067         * config/i386/rdos.h: New file.
34068         * config/i386/rdos64.h: New file.
34069
34070 2013-01-28  Bernd Schmidt  <bernds@codesourcery.com>
34071
34072         PR other/54814
34073         * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
34074         TEST_HARD_REG_BIT.
34075
34076 2013-01-28  Jakub Jelinek  <jakub@redhat.com>
34077
34078         PR rtl-optimization/56117
34079         * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
34080         call cselib_lookup_from_insn on the MEM before calling
34081         add_insn_mem_dependence.
34082
34083 2013-01-28  Richard Biener  <rguenther@suse.de>
34084
34085         * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
34086         to a stmt that didn't have one.
34087         (copy_phis_for_bb): Likewise for PHI arguments.
34088         (copy_debug_stmt): Likewise for debug stmts.
34089
34090 2013-01-28  Richard Biener  <rguenther@suse.de>
34091
34092         PR tree-optimization/56034
34093         * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
34094         (partition_builtin_p): Adjust.
34095         (generate_code_for_partition): Handle PKIND_REDUCTION.  Assert
34096         it is the last partition.
34097         (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
34098         up the vertex for the definition.
34099         (classify_partition): Classify whether a partition is a
34100         PKIND_REDUCTION, thus has uses outside of the loop.
34101         (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
34102         Merge all PKIND_REDUCTION partitions into the last partition.
34103         (tree_loop_distribution): Seed partitions from reductions as well.
34104
34105 2013-01-28  Jakub Jelinek  <jakub@redhat.com>
34106
34107         PR tree-optimization/56125
34108         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
34109         pow(x,c) into sqrt(x) * powi(x, n/2) or
34110         1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
34111         optimizing for size.
34112         Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
34113         1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
34114         integer.
34115
34116         PR tree-optimization/56094
34117         * gimplify.c (force_gimple_operand_1): Temporarily set input_location
34118         to UNKNOWN_LOCATION while gimplifying expr.
34119
34120 2013-01-27  Uros Bizjak  <ubizjak@gmail.com>
34121
34122         PR target/56114
34123         * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
34124         operand 0 in movabs insn template for -masm=intel asm alternative.
34125         (*movabs<mode>_2): Ditto for operand 1.
34126
34127 2013-01-26  David Holsgrove  <david.holsgrove@xilinx.com>
34128
34129         PR target/54663
34130         * config.gcc (microblaze*-linux*): Add tmake_file to allow building
34131         of microblaze-c.o
34132
34133 2013-01-26  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
34134
34135         * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
34136         tm_file.
34137
34138 2013-01-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
34139
34140         * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
34141         Undef to avoid warning.
34142
34143 2013-01-25  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
34144
34145         * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
34146         * configure: Regenerate.
34147
34148 2013-01-25  Jakub Jelinek  <jakub@redhat.com>
34149
34150         PR tree-optimization/56098
34151         * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
34152         for stmts with volatile ops.
34153         (cond_store_replacement): Don't optimize if assign has volatile ops.
34154         (cond_if_else_store_replacement_1): Don't optimize if either
34155         then_assign or else_assign have volatile ops.
34156         (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
34157         volatile ops.
34158
34159 2013-01-25  Georg-Johann Lay  <avr@gjlay.de>
34160
34161         * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
34162
34163 2013-01-25  Georg-Johann Lay  <avr@gjlay.de>
34164
34165         * doc/extend.texi (Example of asm with clobbered asm reg): Fix
34166         missing ':' in asm example.
34167
34168 2013-01-25  Tejas Belagod  <tejas.belagod@arm.com>
34169
34170         * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
34171         entries into lane and laneq entries.
34172         * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
34173         Remove AdvSIMD scalar modes.
34174         (aarch64_sq<r>dmulh_laneq<mode>): New.
34175         (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
34176         modes.
34177         * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
34178         builtin implementations to relfect changes in RTL in aarch64-simd.md.
34179         * config/aarch64/iterators.md (VCOND): New.
34180         (VCONQ): New.
34181
34182 2013-01-25  Georg-Johann Lay  <avr@gjlay.de>
34183
34184         PR target/54222
34185         * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
34186         Add NULL LIBNAME argument to existing definitions.
34187         (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
34188         * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
34189         * config/avr/avr.c (DEF_BUILTIN): Same.
34190         (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
34191         (avr_expand_builtin): Expand to a vanilla call if a libgcc
34192         implementation is available (DECL_ASSEMBLER_NAME is set).
34193         (avr_fold_absfx): New static function.
34194         (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
34195         AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
34196         AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
34197         AVR_BUILTIN_ABSLLK.
34198         * config/avr/stdfix.h (abshr, absr, abslr, absllr)
34199         (abshk, absk, abslk, absllk): Provide as static inline functions.
34200
34201 2013-01-25  Marek Polacek  <polacek@redhat.com>
34202
34203         PR tree-optimization/56035
34204         * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
34205
34206 2012-01-24  Uros Bizjak  <ubizjak@gmail.com>
34207
34208         * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
34209         (*movtf_internal_rex64): Add (!o,C) alternative
34210         (*movxf_internal_rex64): Ditto.
34211         (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
34212
34213 2013-01-24  Shenghou Ma  <minux.ma@gmail.com>
34214
34215         * doc/invoke.texi: fix typo.
34216         * doc/objc.texi: fix typo.
34217
34218 2013-01-24  Richard Sandiford  <rdsandiford@googlemail.com>
34219
34220         * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
34221         for the first two alternatives.
34222
34223 2013-01-24  Diego Novillo  <dnovillo@google.com>
34224
34225         * Makefile.in (GGC): Remove.  Replace all instances with ggc-page.o.
34226         (ggc-zone.o): Remove.
34227         * configure.ac: Remove option --with-gc.
34228         * configure: Re-generate.
34229         * doc/install.texi: Remove documentation for --with-gc.
34230         * gengtype.c (write_enum_defn): Remove.  Update all users.
34231         (write_Types_process_field): Remove generation of gt_e_* argument.
34232         (output_type_enum): Remove.  Update all users.
34233         (write_enum_defn): Remove.  Update all users.
34234         (enum alloc_zone): Remove.  Update all users.
34235         (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
34236         * ggc-common.c (ggc_splay_alloc): Remove first argument.
34237         Update all callers.
34238         (struct ptr_data): Remove field TYPE.  Update all users.
34239         (gt_pch_note_object): Remove argument TYPE.  Update all users.
34240         * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
34241         Update all users.
34242         * ggc-none.c (ggc_alloc_typed_stat): Remove.
34243         (struct alloc_zone): Remove.
34244         (ggc_internal_alloc_zone_stat): Remove.
34245         (ggc_internal_cleared_alloc_zone_stat): Remove.
34246         * ggc-page.c (ggc_alloc_typed_stat): Remove.
34247         (ggc_pch_count_object): Remove last argument.  Update all users.
34248         (ggc_pch_alloc_object): Remove last argument.  Update all users.
34249         (struct alloc_zone): Remove.
34250         * ggc-zone.c: Remove.
34251         * ggc.h (gt_pch_note_object): Remove last argument.  Update all users.
34252         (struct alloc_zone): Remove.
34253         (ggc_alloc_typed_stat): Remove.
34254         (ggc_alloc_typed): Remove.
34255         (ggc_splay_alloc): Remove first argument.
34256         (rtl_zone): Remove.  Update all users.
34257         (tree_zone): Remove.  Update all users.
34258         (tree_id_zone): Remove.  Update all users.
34259         (ggc_internal_zone_alloc_stat): Remove.  Update all users.
34260         (ggc_internal_zone_cleared_alloc_stat): Remove.  Update all users.
34261         (ggc_internal_zone_vec_alloc_stat): Remove.  Update all users.
34262         * tree-ssanames.c: Remove references to zone allocator in comments.
34263
34264 2013-01-24  Georg-Johann Lay  <avr@gjlay.de>
34265
34266         * config/avr/avr.c (avr_out_fract): Make register numbers that
34267         might be outside of source operand signed.
34268
34269 2013-01-24  Uros Bizjak  <ubizjak@gmail.com>
34270
34271         * config/i386/constraints.md (Yf): New constraint.
34272         * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
34273         of f constraint to conditionaly disable x87 register preferences.
34274         (*movdf_internal): Ditto.
34275         (*movsf_internal): Ditto.
34276
34277 2013-01-24  Steven Bosscher  <steven@gcc.gnu.org>
34278
34279         PR inline-asm/55934
34280         * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
34281         that have operands with impossible constraints.
34282         Add a FIXME for a speed-up opportunity.
34283         * lra-constraints.c (process_alt_operands): Verify that a class
34284         selected from constraints on asms is valid for the operand mode.
34285         (curr_insn_transform): Remove incorrect comment.
34286
34287 2013-01-23  David Edelsohn  <dje.gcc@gmail.com>
34288
34289         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
34290         TOC operand is a valid symbol ref in the constant pool.
34291
34292 2013-01-23  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
34293
34294         * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
34295
34296 2013-01-23  Georg-Johann Lay  <avr@gjlay.de>
34297
34298         PR target/54222
34299         * config/avr/stdfix.h: New file.
34300         * t-avr (stdfix-gcc.h): New rule to build it.
34301         (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
34302
34303 2013-01-23  Kostya Serebryany  <kcc@google.com>
34304
34305         * config/darwin.h: remove dependency on
34306         CoreFoundation (asan on Mac OS).
34307
34308 2013-01-23  Jakub Jelinek  <jakub@redhat.com>
34309
34310         PR target/49069
34311         * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
34312         instead of cmpdi_operand for first comparison operand.
34313         Don't assert that comparison operands aren't both constants.
34314
34315 2013-01-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
34316
34317         * doc/install.texi (Downloading the Source): Update references to
34318         downloading separate components.
34319
34320 2013-01-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
34321
34322         * doc/extend.texi (__int128): Improve grammar.
34323
34324 2013-01-22  Uros Bizjak  <ubizjak@gmail.com>
34325
34326         PR target/56028
34327         * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
34328         alternative to (o,r).
34329         (*movdi_internal_rex64): Remove (!o,n) alternative.
34330         (DImode immediate->memory splitter): Remove.
34331         (DImode immediate->memory peephole2): Remove.
34332         (movtf): Enable for TARGET_64BIT || TARGET_SSE.
34333         (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
34334         alternative to (!o,*r).
34335         (*movtf_internal_sse): New pattern.
34336         (*movxf_internal_rex64): New pattern.
34337         (*movxf_internal): Disable for TARGET_64BIT.
34338         (*movdf_internal_rex64): Remove (!o,F) alternative.
34339
34340 2013-01-22  Jakub Jelinek  <jakub@redhat.com>
34341
34342         PR middle-end/56074
34343         * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
34344         isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
34345         * tree-vect-loop-manip.c (find_loop_location): Also ignore
34346         stmt locations where LOCATION_LOCUS of the stmt location is
34347         UNKNOWN_LOCATION or BUILTINS_LOCATION.
34348
34349         PR target/55686
34350         * config/i386/i386.md (UNSPEC_STOS): New.
34351         (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
34352         *strsetqi_1): Add UNSPEC_STOS.
34353
34354 2013-01-22  Paolo Carlini  <paolo.carlini@oracle.com>
34355
34356         PR c++/56067
34357         * doc/invoke.texi: Remove left over -Wsynth example.
34358
34359 2013-01-21  Jakub Jelinek  <jakub@redhat.com>
34360
34361         PR tree-optimization/56051
34362         * fold-const.c (fold_binary_loc): Don't fold
34363         X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
34364         a narrowing conversion, or widening conversion from signed
34365         to unsigned.
34366
34367 2013-01-21  Uros Bizjak  <ubizjak@gmail.com>
34368
34369         PR rtl-optimization/56023
34370         * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
34371         dependent on debug instruction.
34372
34373 2013-01-21  Martin Jambor  <mjambor@suse.cz>
34374
34375         PR middle-end/56022
34376         * function.c (allocate_struct_function): Call
34377         invoke_set_current_function_hook earlier.
34378
34379 2013-01-21  Jakub Jelinek  <jakub@redhat.com>
34380
34381         * reload1.c (init_reload): Only initialize reload_obstack
34382         during the first call.
34383
34384 2013-01-21  Marek Polacek  <polacek@redhat.com>
34385
34386         * cfgloop.c (verify_loop_structure): Fix up grammar.
34387
34388 2013-01-21  Yi-Hsiu Hsu  <ahsu@marvell.com>
34389
34390         * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
34391         pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
34392
34393 2013-01-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34394
34395         PR target/56058
34396         * config/arm/marvell-pj4.md: Update copyright year.
34397         Fix up use of alu to alu_reg and simple_alu_imm.
34398
34399 2013-01-21  Uros Bizjak  <ubizjak@gmail.com>
34400
34401         * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
34402
34403 2013-01-20  Vladimir Makarov  <vmakarov@redhat.com>
34404
34405         PR target/55433
34406         * lra-constraints.c (curr_insn_transform): Don't reuse original
34407         insn for secondary memory move when memory mode should be different.
34408
34409 2013-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34410
34411         * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
34412         atomic_storedi_1): New patterns.
34413
34414 2013-01-20  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
34415
34416         btver2 pipeline descriptions.
34417         * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
34418         descriptions.
34419         * config/i386/i386.md (btver2_decode): New type attributes.
34420         * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
34421         type attributes.
34422         * config/i386/btver2.md: New file describing btver2 pipelines.
34423
34424 2013-01-19  Andrew Pinski  <apinski@cavium.com>
34425
34426         PR tree-optimization/52631
34427         * tree-ssa-sccvn (visit_use): Before looking up the original
34428         statement, try looking up the simplified expression.
34429
34430 2013-01-19  Anthony Green  <green@moxielogic.com>
34431
34432         * config/moxie/moxie.c (moxie_expand_prologue): Set
34433         current_function_static_stack_size.
34434
34435 2013-01-18  Jakub Jelinek  <jakub@redhat.com>
34436
34437         PR tree-optimization/56029
34438         * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
34439         gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
34440
34441 2013-01-18  Sharad Singhai  <singhai@google.com>
34442
34443         PR tree-optimization/55995
34444         * dumpfile.c (dump_loc): Print location only if available.
34445         * tree-vectorizer.c (increase_alignment): Intialize vect_location.
34446
34447 2013-01-18  Vladimir Makarov  <vmakarov@redhat.com>
34448
34449         PR target/55433
34450         * lra-constraints.c (curr_insn_transform): Reuse original insn for
34451         secondary memory move.
34452         (inherit_reload_reg): Use rclass instead of cl for
34453         check_secondary_memory_needed_p.
34454
34455 2013-01-18  Jakub Jelinek  <jakub@redhat.com>
34456
34457         PR middle-end/56015
34458         * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
34459         the case where writing real complex part of target modifies op1.
34460
34461 2013-01-18  James Greenhalgh  <james.greenhalgh@arm.com>
34462
34463         * config/aarch64/aarch64-simd.md
34464         (aarch64_vcond_internal<mode>): Handle unordered cases.
34465         * config/aarch64/iterators.md (v_cmp_result): New.
34466
34467 2013-01-18  Yi-Hsiu Hsu  <ahsu@marvell.com>
34468             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34469
34470         * config/arm/marvell-pj4.md: New file.
34471         * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
34472         * config/arm/arm.md (generic_sched): Add marvell_pj4.
34473         (generic_vfp): Likewise.
34474         * config/arm/arm-cores.def: Add marvell-pj4.
34475         * config/arm/arm-tune.md: Regenerate.
34476         * config/arm/arm-tables.opt: Regenerate.
34477         * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
34478         * doc/invoke.texi: Document marvell-pj4.
34479
34480 2013-01-18  Tejas Belagod  <tejas.belagod@arm.com>
34481
34482         * config/aarch64/arm_neon.h: Map scalar types to standard types.
34483
34484 2013-01-18  Alexandre Oliva  <aoliva@redhat.com>
34485
34486         PR debug/54114
34487         PR debug/54402
34488         PR debug/49888
34489         * var-tracking.c (negative_power_of_two_p): New.
34490         (global_get_addr_cache, local_get_addr_cache): New.
34491         (get_addr_from_global_cache, get_addr_from_local_cache): New.
34492         (vt_canonicalize_addr): Rewrite using the above.  Adjust the
34493         heading comment.
34494         (vt_stack_offset_p): Remove.
34495         (vt_canon_true_dep): Always canonicalize loc's address.
34496         (clobber_overlapping_mems): Make sure we have a MEM.
34497         (local_get_addr_clear_given_value): New.
34498         (val_reset): Clear local cached entries.
34499         (compute_bb_dataflow): Create and release the local cache.
34500         Disable duplicate MEMs clobbering.
34501         (emit_notes_in_bb): Clobber MEMs likewise.
34502         (vt_emit_notes): Create and release the local cache.
34503         (vt_initialize, vt_finalize): Create and release the global
34504         cache, respectively.
34505         * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
34506
34507 2013-01-18  Alexandre Oliva  <aoliva@redhat.com>
34508
34509         PR libmudflap/53359
34510         * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
34511         not found in the symtab.
34512
34513 2013-01-18  Alexandre Oliva  <aoliva@redhat.com>
34514
34515         PR debug/56006
34516         PR rtl-optimization/55547
34517         PR rtl-optimization/53827
34518         PR debug/53671
34519         PR debug/49888
34520         * alias.c (offset_overlap_p): New, factored out of...
34521         (memrefs_conflict_p): ... this.  Use absolute sizes.  Retain
34522         the conservative special case for symbolic constants.  Don't
34523         adjust zero sizes on alignment.
34524
34525 2013-01-18  Bernd Schmidt  <bernds@codesourcery.com>
34526
34527         PR rtl-optimization/52573
34528         * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
34529         REG_UNUSED for the same register.
34530
34531 2013-01-17  Richard Biener  <rguenther@suse.de>
34532             Marek Polacek  <polacek@redhat.com>
34533
34534         PR rtl-optimization/55833
34535         * loop-unswitch.c (unswitch_loops): Move loop verification...
34536         (unswitch_single_loop): ...here.  Call mark_irreducible_loops.
34537         * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
34538         Set it to true when we're removing a loop from hierarchy tree in
34539         an irreducible region.
34540         (fix_bb_placements): Adjust caller.
34541         (fix_loop_placements): Likewise.
34542
34543 2013-01-17  Georg-Johann Lay  <avr@gjlay.de>
34544
34545         * config/avr/builtins.def (DEF_BUILTIN): Factor out
34546         "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
34547         Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
34548         Remove ID.  Adjust comments.
34549         * config/avr/avr-c.c (avr_builtin_name): Remove.
34550         (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
34551         * config/avr/avr.c (avr_tolower): New static function.
34552         (DEF_BUILTIN): Remove parameter ID.  Prefix ICODE by 'CODE_FOR_'.
34553         Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
34554         (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
34555         default expansion.
34556
34557 2013-01-17  Jan Hubicka  <jh@suse.cz>
34558
34559         PR tree-optimization/55273
34560         * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
34561
34562 2013-01-17  Uros Bizjak  <ubizjak@gmail.com>
34563
34564         PR target/55981
34565         * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
34566         store through atomic_store<mode>_1.
34567         (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
34568
34569 2013-01-17  Martin Jambor  <mjambor@suse.cz>
34570
34571         PR tree-optimizations/55264
34572         * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
34573         for virtual methods.
34574         * ipa.c (symtab_remove_unreachable_nodes): Never return true for
34575         virtual methods before inlining is over.
34576         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
34577         virtual functions.
34578         * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
34579         non-virtual.
34580
34581 2013-01-16  Vladimir Makarov  <vmakarov@redhat.com>
34582
34583         PR rtl-optimization/56005
34584         * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
34585         pending reads for prefetch.
34586
34587 2013-01-16  Ian Bolton  <ian.bolton@arm.com>
34588
34589         * config/aarch64/aarch64.md
34590         (*cstoresi_neg_uxtw): New pattern.
34591         (*cmovsi_insn_uxtw): New pattern.
34592         (*<optab>si3_uxtw): New pattern.
34593         (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
34594         (*<optab>si3_insn_uxtw): New pattern.
34595         (*bswapsi2_uxtw): New pattern.
34596
34597 2013-01-16  Richard Biener  <rguenther@suse.de>
34598
34599         * tree-inline.c (tree_function_versioning): Remove set but
34600         never used variable.
34601
34602 2013-01-16  Richard Biener  <rguenther@suse.de>
34603
34604         PR tree-optimization/55964
34605         * tree-flow.h (rename_variables_in_loop): Remove.
34606         (rename_variables_in_bb): Likewise.
34607         * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
34608         (copy_loop_before): Adjust and delete update-ssa status.
34609         * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
34610         (rename_variables_in_bb): Likewise.  Properly walk over predecessors.
34611         (rename_variables_in_loop): Remove.
34612         (slpeel_update_phis_for_duplicate_loop): Likewise.
34613         (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
34614         use available cfg machinery instead of duplicating it.
34615         Update PHI nodes and perform poor-mans SSA update here.
34616         (slpeel_tree_peel_loop_to_edge): Adjust.
34617
34618 2013-01-16  Richard Biener  <rguenther@suse.de>
34619
34620         PR tree-optimization/54767
34621         PR tree-optimization/53465
34622         * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
34623         (vrp_visit_phi_node): For PHI arguments coming via backedges
34624         drop all symbolical range information.
34625         (execute_vrp): Compute backedges.
34626
34627 2013-01-16  Richard Biener  <rguenther@suse.de>
34628
34629         * doc/install.texi: Update CLooG and ISL requirements to
34630         0.18.0 and 0.11.1.
34631
34632 2013-01-16  Christian Bruel  <christian.bruel@st.com>
34633
34634         PR target/55301
34635         * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
34636         (broken_move): Handle UNSPECV_SP_SWITCH_B.
34637         * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
34638
34639 2013-01-16  DJ Delorie  <dj@redhat.com>
34640
34641         * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
34642         (UNSPECV_SP_SWITCH_E): New.
34643         (sp_switch_1): Change to an unspec.
34644         (sp_switch_2): Change to an unspec.  Don't use post-inc when we
34645         replace $r15.
34646
34647 2013-01-16  Uros Bizjak  <ubizjak@gmail.com>
34648
34649         * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
34650         with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
34651         * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
34652         (expand_mem_thread_fence): Ditto.
34653         (expand_mem_signal_fence): Ditto.
34654         (expand_atomic_load): Ditto.
34655         (expand_atomic_store): Ditto.
34656
34657 2013-01-16  Alexandre Oliva  <aoliva@redhat.com>
34658
34659         PR rtl-optimization/55547
34660         PR rtl-optimization/53827
34661         PR debug/53671
34662         PR debug/49888
34663         * alias.c (memrefs_conflict_p): Set sizes to negative after
34664         AND adjustments.
34665
34666 2013-01-15  Jakub Jelinek  <jakub@redhat.com>
34667
34668         PR target/55940
34669         * function.c (thread_prologue_and_epilogue_insns): Always
34670         add crtl->drap_reg to set_up_by_prologue.set, even if
34671         stack_realign_drap is false.
34672
34673 2013-01-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
34674
34675         * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
34676         and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
34677         *call): Fix indention.
34678
34679 2013-01-15  Tom de Vries  <tom@codesourcery.com>
34680
34681         PR target/55876
34682         * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
34683         Update comment.
34684
34685 2013-01-15  Vladimir Makarov  <vmakarov@redhat.com>
34686
34687         PR rtl-optimization/55153
34688         * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
34689
34690 2013-01-15  Martin Jambor  <mjambor@suse.cz>
34691
34692         PR tree-optimization/55920
34693         * tree-sra.c (analyze_access_subtree): Do not mark non-removable
34694         accesses as grp_to_be_debug_replaced.
34695
34696 2013-01-15  Jakub Jelinek  <jakub@redhat.com>
34697
34698         PR tree-optimization/55920
34699         * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
34700         there is non-useless type conversion needed from debug rhs to lhs,
34701         use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
34702
34703 2013-01-15  Joseph Myers  <joseph@codesourcery.com>
34704             Mikael Pettersson  <mikpe@it.uu.se>
34705
34706         PR target/43961
34707         * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
34708         Thumb.
34709         (ASM_OUTPUT_CASE_LABEL): Remove.
34710         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
34711         * final.c (shorten_branches): Update alignment of labels before
34712         jump tables if CASE_VECTOR_SHORTEN_MODE.
34713
34714 2013-01-15  Richard Biener  <rguenther@suse.de>
34715
34716         PR bootstrap/55961
34717         * system.h: Do not include gmp.h for building host tools.
34718
34719 2013-01-15  Richard Biener  <rguenther@suse.de>
34720
34721         PR middle-end/55882
34722         * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
34723         account for bitpos when computing alignment.
34724
34725 2013-01-15  Vladimir Yakovlev  <vladimir.b.yakovlev@intel.com>
34726
34727         * config/i386/i386-c.c (ix86_target_macros_internal): New case.
34728         (ix86_target_macros_internal): Likewise.
34729
34730         * config/i386/i386.c (m_CORE2I7): Removed.
34731         (m_CORE_HASWELL): New macro.
34732         (m_CORE_ALL): Likewise.
34733         (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
34734         (initial_ix86_arch_features): Likewise.
34735         (processor_target_table): Initializations for Core avx2.
34736         (cpu_names): New names "core-avx2".
34737         (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
34738         PROCESSOR_CORE_HASWELL.
34739         (ix86_issue_rate): New case.
34740         (ia32_multipass_dfa_lookahead): Likewise.
34741         (ix86_sched_init_global): Likewise.
34742
34743         * config/i386/i386.h (TARGET_HASWELL): New macro.
34744         (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
34745         (processor_type): New PROCESSOR_HASWELL.
34746
34747 2013-01-15  Jakub Jelinek  <jakub@redhat.com>
34748
34749         PR tree-optimization/55955
34750         * tree-vect-loop.c (vectorizable_reduction): Give up early on
34751         *SHIFT_EXPR and *ROTATE_EXPR codes.
34752
34753         PR tree-optimization/48766
34754         * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
34755         -ftrapv disable -fwrapv.
34756
34757 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
34758
34759         PR target/55974
34760         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
34761         etc. to 1 and not to __flash.
34762         Use LL suffix for __INT24_MAX__ with -mint8.
34763         Use ULL suffix for __UINT24_MAX__ with -mint8.
34764
34765 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
34766
34767         * config/avr/avr-arch.h
34768         (struct base_arch_s): Use typedef avr_arch_t instead.
34769         (struct arch_info_s): Use typedef avr_arch_info_t instead.
34770         (struct mcu_type_s): Use typedef avr_mcu_t instead.
34771         * config/avr/avr.c: Same.
34772         * config/avr/avr-devices.c: Same.
34773         * config/avr/driver-avr.c: Same.
34774         * config/avr/gen-avr-mmcu-texi.c: Same.
34775         * config/avr/avr-mcus.def: Adjust comment.
34776
34777 2013-01-14  Tejas Belagod  <tejas.belagod@arm.com>
34778
34779         * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
34780         * config/aarch64/iterators.md (VALLDI): New.
34781
34782 2013-01-14  Uros Bizjak  <ubizjak@gmail.com>
34783             Andi Kleen  <ak@linux.intel.com>
34784
34785         PR target/55948
34786         * config/i386/sync.md (atomic_store<mode>_1): New pattern.
34787         (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
34788         memmodel flag.
34789
34790 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
34791
34792         * config/avr/avr-stdint.h: Remove trailing blanks.
34793         * config/avr/avr-log.h: Same.
34794         * config/avr/avr-arch.h: Same.
34795         * config/avr/avr-devices.c: Same.
34796         * config/avr/avr-dimode.md: Same.
34797         * config/avr/predicates.md: Same.
34798         * config/avr/avr-c.c: Same.  And fix typo.
34799
34800         * config/avr/avr-protos.h: Same.  And:
34801         (function_arg_regno_p): Rename to avr_function_arg_regno_p.
34802         (init_cumulative_args): Rename to avr_init_cumulative_args.
34803         (expand_prologue): Rename to avr_expand_prologue.
34804         (expand_epilogue): Rename to avr_expand_epilogue.
34805         (adjust_insn_length): Rename to avr_adjust_insn_length.
34806         (notice_update_cc): Rename to avr_notice_update_cc.
34807         (final_prescan_insn): Rename to avr_final_prescan_insn.
34808         * config/avr/avr.c: Same.
34809         * config/avr/avr.h: Same.
34810         * config/avr/avr.md: Remove trailing blanks.
34811         (prologue): Use avr_expand_prologue.
34812         (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
34813
34814 2013-01-14  Richard Biener  <rguenther@suse.de>
34815
34816         * tree-cfg.c (verify_expr_location, verify_expr_location_1,
34817         verify_location, collect_subblocks): New functions.
34818         (verify_gimple_in_cfg): Verify that locations only reference
34819         BLOCKs in the functions BLOCK tree.
34820
34821 2013-01-14  Richard Biener  <rguenther@suse.de>
34822
34823         * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
34824         PHI argument.
34825         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
34826         unshare reference.
34827         (insert_out_of_ssa_copy_on_edge): Likewise.
34828         (rewrite_close_phi_out_of_ssa): Likewise.
34829         * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
34830         debug expressions.
34831         * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
34832         propagated constants.
34833         * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
34834         can not be shared.
34835
34836 2013-01-14  Georg-Johann Lay  <avr@gjlay.de>
34837
34838         * config/avr/avr-modes.def: Add GPL copyright notice.
34839
34840 2013-01-13  Uros Bizjak  <ubizjak@gmail.com>
34841
34842         * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
34843         MEMMODEL_MASK to determine memory model.
34844         (atomic_store<mode>): Ditto from operands[2].
34845         * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
34846
34847 2013-01-13  Jakub Jelinek  <jakub@redhat.com>
34848
34849         PR fortran/55935
34850         * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
34851         (fold_gimple_assign): Don't call unshare_expr here.
34852         (fold_ctor_reference): Call unshare_expr.
34853
34854 2013-01-13  Terry Guo  <terry.guo@arm.com>
34855
34856         * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
34857         * doc/fragments.texi: Document MULTILIB_REUSE.
34858         * gcc.c (multilib_reuse): New internal spec.
34859         (set_multilib_dir): Also search multilib from multilib_reuse.
34860         * genmultilib (tmpmultilib3): Refactor code.
34861         (tmpmultilib4): Ditto.
34862         (multilib_reuse): New multilib argument.
34863
34864 2013-01-13  Richard Sandiford  <rdsandiford@googlemail.com>
34865
34866         * Makefile.in: Update copyright.
34867
34868 2013-01-12  Tom de Vries  <tom@codesourcery.com>
34869
34870         PR middle-end/55890
34871         * calls.c (expand_call): Check if arg_nr is valid.
34872
34873 2013-01-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
34874
34875         * doc/extend.texi (X86 Built-in Functions): Add whitespace in
34876         __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
34877         documentation.  Add missing '__' in front of
34878         __builtin_ia32_packssdw256.
34879
34880 2013-01-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34881
34882         PR target/55719
34883         * config/s390/s390.c (s390_preferred_reload_class): Do not return
34884         NO_REGS for larl operands.
34885         (s390_reload_larl_operand): Use s390_load_address instead of
34886         emit_move_insn.
34887
34888 2013-01-11  Richard Biener  <rguenther@suse.de>
34889
34890         * tree-cfg.c (verify_node_sharing_1): Split out from ...
34891         (verify_node_sharing): ... here.
34892         (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
34893
34894 2013-01-11  Eric Botcazou  <ebotcazou@adacore.com>
34895
34896         * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
34897         Substitute TREECHECKING.
34898         * configure: Regenerate.
34899         * Makefile.in (TREECHECKING): New.
34900
34901 2013-01-11  Richard Guenther  <rguenther@suse.de>
34902
34903         PR tree-optimization/44061
34904         * tree-vrp.c (extract_range_basic): Compute zero as
34905         value-range for __builtin_constant_p of function parameters.
34906
34907 2013-01-10  Richard Sandiford  <rdsandiford@googlemail.com>
34908
34909         Update copyright years.
34910
34911 2013-01-10  Vladimir Makarov  <vmakarov@redhat.com>
34912
34913         PR rtl-optimization/55672
34914         * lra-eliminations.c (mark_not_eliminable): Permit addition with
34915         const to be eliminable.
34916
34917 2013-01-10  David Edelsohn  <dje.gcc@gmail.com>
34918
34919         * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
34920         * configure: Regenerate.
34921
34922 2013-01-10  Richard Biener  <rguenther@suse.de>
34923
34924         * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
34925
34926 2013-01-10  Richard Biener  <rguenther@suse.de>
34927
34928         PR bootstrap/55792
34929         * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
34930         locations for virtual PHI arguments.
34931         (rewrite_update_phi_arguments): Likewise.
34932
34933 2013-01-10  Joel Sherrill  <joel.sherrill@OARcorp.com>
34934
34935         * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
34936         on to assembler.
34937
34938 2013-01-10  Jakub Jelinek  <jakub@redhat.com>
34939
34940         PR tree-optimization/55921
34941         * tree-complex.c (expand_complex_asm): New function.
34942         (expand_complex_operations_1): Call it for GIMPLE_ASM.
34943
34944 2013-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34945
34946         PR target/55718
34947         * config/s390/s390.c (s390_symref_operand_p)
34948         (s390_loadrelative_operand_p): Merge the two functions.
34949         (s390_check_qrst_address, print_operand_address): Add parameters
34950         to s390_loadrelative_operand_p invokation.
34951         (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
34952         (s390_reload_larl_operand, s390_secondary_reload): Use
34953         s390_loadrelative_operand_p instead of s390_symref_operand_p.
34954         (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
34955
34956 2013-01-09  Mike Stump  <mikestump@comcast.net>
34957
34958         * dse.c (record_store): Remove unnecessary assert.
34959
34960 2013-01-09  Jan Hubicka  <jh@suse.cz>
34961
34962         PR tree-optimization/55569
34963         * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
34964         * cfgloop.h (scale_loop_profile): Likewise.
34965
34966 2013-01-09  Jan Hubicka  <jh@suse.cz>
34967
34968         PR lto/45375
34969         * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
34970         functions.
34971         * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
34972
34973 2013-01-09  Richard Sandiford  <rdsandiford@googlemail.com>
34974
34975         PR middle-end/55114
34976         * expr.h (maybe_emit_group_store): Declare.
34977         * expr.c (maybe_emit_group_store): New function.
34978         * builtins.c (expand_builtin_int_roundingfn): Call it.
34979         (expand_builtin_int_roundingfn_2): Likewise.
34980
34981 2013-01-09  Vladimir Makarov  <vmakarov@redhat.com>
34982
34983         PR rtl-optimization/55829
34984         * lra-constraints.c (match_reload): Add code for absent output.
34985         (curr_insn_transform): Add code for reloads of matched inputs
34986         without output.
34987
34988 2013-01-09  Uros Bizjak  <ubizjak@gmail.com>
34989
34990         * config/i386/sse.md (*vec_interleave_highv2df): Change mode
34991         attribute of movddup insn to DF.
34992         (*vec_interleave_lowv2df): Ditto.
34993         (vec_dupv2df): Ditto.
34994
34995 2013-01-09  Jan Hubicka  <jh@suse.cz>
34996
34997         PR tree-optimiation/55875
34998         * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
34999         EVERY_ITERATION parameter.
35000         (number_of_iterations_exit): Check if exit is executed every iteration.
35001         (idx_infer_loop_bounds): Similarly here.
35002         (n_of_executions_at_most): Simplify
35003         to only test for cases where statement is dominated by the
35004         particular bound; handle correctly the "postdominance" test.
35005         (scev_probably_wraps_p): Use max loop iterations info
35006         as a global bound first.
35007
35008 2013-01-09  Nguyen Duy Dat  <dat.nguyen.yn@rvc.renesas.com>
35009             Nick Clifton  <nickc@redhat.com>
35010
35011         * config/v850/v850.md (cbranchsf4): New pattern.
35012         (cstoresf4): New pattern.
35013         (cbranchdf4): New pattern.
35014         (cstoredf4): New pattern.
35015         (movsicc): Disallow floating point comparisons.
35016         (cmpsf_le_insn): Fix order of operators.
35017         (cmpsf_lt_insn): Likewise.
35018         (cmpsf_eq_insn): Likewise.
35019         (cmpdf_le_insn): Likewise.
35020         (cmpdf_lt_insn): Likewise.
35021         (cmpdf_eq_insn): Likewise.
35022         (cmpsf_ge_insn): Use LE comparison.
35023         (cmpdf_ge_insn): Likewise.
35024         (cmpsf_gt_insn): Use LT comparison.
35025         (cmpdf_gt_insn): Likewise.
35026         (cmpsf_ne_insn): Delete pattern.
35027         (cmpdf_ne_insn): Delete pattern.
35028         * config/v850/v850.c (v850_gen_float_compare): Use
35029         gen_cmpdf_eq_insn for NE comparison.
35030         (v850_float_z_comparison_operator)
35031         (v850_float_nz_comparison_operator): Move from here ...
35032         * config/v850/predicates.md: ... to here.  Move GT and GE
35033         comparisons into v850_float_z_comparison_operator.
35034         * config/v850/v850-protos.h (v850_float_z_comparison_operator):
35035         Delete prototype.
35036         (v850_float_nz_comparison_operator): Likewise.
35037
35038 2013-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35039
35040         * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
35041         with calls to gen_insvsi/gen_insvdi.
35042
35043 2013-01-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
35044
35045         * config/i386/i386.c (initial_ix86_tune_features): Set up
35046         X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
35047
35048 2013-01-09  Steven Bosscher  <steven@gcc.gnu.org>
35049             Jakub Jelinek  <jakub@redhat.com>
35050
35051         PR tree-optimization/48189
35052         * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
35053         If nitercst is 0, don't predict the exit edge.
35054
35055 2013-01-08  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
35056
35057         * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
35058         in asm_fprintf with reg_names.
35059         (aarch64_print_operand_address): Likewise.
35060         (aarch64_return_addr): Likewise.
35061         * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
35062
35063 2013-01-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35064
35065         * config/pa/pa.h (VAL_U6_BITS_P): Define.
35066         (INT_U6_BITS): Likewise.
35067         * config/pa/predicates.md (uint6_operand): New predicate.
35068         (shift5_operand, shift6_operand): Likewise.
35069         * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
35070         arith32_operand.
35071         (lshrdi3): Use shift6_operand.
35072         (shrpsi4, shrpdi4): New insn patterns.
35073         (extzv): Delete expander.
35074         (extzvsi, extzvdi): New expanders.  Use uint5_operand and uint6_operand
35075         predicates in unamed zero extract patterns.  Tighten common constraint.
35076         (extv): Delete expander.
35077         (extvsi, extvdi): New expanders.  Use uint5_operand and uint6_operand
35078         predicates in unamed sign extract patterns.  Tighten common constraint.
35079         (insv): Delete expander.
35080         (insvsi, insvdi): New expanders.  Use uint5_operand and uint6_operand
35081         predicates in unamed insert patterns.  Tighten common constraint.
35082         Change uint32_operand predicate to uint6_operand predicate in unamed
35083         DImode pattern to insert constant values of type 1...1xxxx.
35084
35085 2013-01-04  Jan Hubicka  <jh@suse.cz>
35086
35087         PR tree-optimization/55823
35088         * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
35089         issue.
35090
35091 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
35092             Uros Bizjak  <ubizjak@gmail.com>
35093
35094         PR rtl-optimization/55845
35095         * df-problems.c (can_move_insns_across): Stop scanning at
35096         volatile_insn_p source instruction or give up if
35097         across_from .. across_to range contains any volatile_insn_p
35098         instructions.
35099
35100 2013-01-08  Tejas Belagod  <tejas.belagod@arm.com>
35101
35102         * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
35103         * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
35104         Declare.
35105         * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
35106         aarch64_simd_make_constant, aarch64_expand_vector_init): New.
35107
35108 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
35109
35110         PR fortran/55341
35111         * asan.c (asan_clear_shadow): New function.
35112         (asan_emit_stack_protection): Use it.
35113
35114 2013-01-08  Tejas Belagod  <tejas.belagod@arm.com>
35115
35116         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
35117         aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
35118         with tab instead of space.
35119
35120 2013-01-08  Nick Clifton  <nickc@redhat.com>
35121
35122         * config/rl78/rl78.c (rl78_expand_prologue): Always select
35123         register bank 0 at the start of an interrupt handler.
35124         * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
35125         MDBH registers.
35126
35127 2013-01-08  James Greenhalgh  <james.greenhalgh@arm.com>
35128
35129         * config/aarch64/aarch64-simd.md
35130         (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
35131         (aarch64_simd_bsl): Likewise.
35132         (aarch64_vcond_internal<mode>): Likewise.
35133         (vcond<mode><mode>): Likewise.
35134         (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
35135         * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
35136
35137 2013-01-08  James Greenhalgh  <james.greenhalgh@arm.com>
35138
35139         * config/aarch64/aarch64-builtins.c
35140         (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
35141
35142 2013-01-08  Martin Jambor  <mjambor@suse.cz>
35143
35144         PR debug/55579
35145         * tree-sra.c (analyze_access_subtree): Return true also after
35146         potentially creating a debug-only replacement.
35147
35148 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
35149
35150         PR middle-end/55890
35151         * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
35152
35153         PR tree-optimization/54120
35154         * tree-vrp.c (range_fits_type_p): Don't allow
35155         src_precision < precision from signed vr to unsigned_p
35156         if vr->min or vr->max is negative.
35157         (simplify_float_conversion_using_ranges): Test can_float_p
35158         against CODE_FOR_nothing.
35159
35160 2013-01-08  Jakub Jelinek  <jakub@redhat.com>
35161             Richard Biener  <rguenther@suse.de>
35162
35163         PR middle-end/55851
35164         * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
35165         types instead of just INTEGER_TYPE types.
35166
35167 2013-01-07  Mark Kettenis  <kettenis@openbsd.org>
35168
35169         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
35170         TF_SIZE): Define.
35171
35172 2013-01-07  Steve Ellcey  <sellcey@mips.com>
35173
35174         PR target/42661
35175         * config/mips/mips.opt: Change mad to mmad to match documentation.
35176
35177 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
35178
35179         PR target/55897
35180         * doc/extend.texi (AVR Named Address Spaces): __memx goes into
35181         .progmemx.data now.
35182
35183 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
35184
35185         PR target/55897
35186         * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
35187         (avr_addrspace_t): Add .section_name field.
35188         * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
35189         array size.
35190         (avr_addrspace): Same.  Initialize .section_name.  Remove last
35191         NULL entry.  Put __memx into .progmemx.data.
35192         (progmem_section_prefix): Remove.
35193         (avr_asm_init_sections): No need to initialize progmem_section.
35194         (avr_asm_named_section): Use avr_addrspace[].section_name to get
35195         section name prefix.
35196         (avr_asm_select_section): Ditto.  And use get_unnamed_section to
35197         retrieve the progmem section.
35198         * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
35199         boundary to run over avr_addrspace[].
35200         (avr_register_target_pragmas): Ditto.
35201
35202 2013-01-06  Jakub Jelinek  <jakub@redhat.com>
35203
35204         * varasm.c (output_constant_def_contents): For asan_protect_global
35205         protected strings, adjust DECL_ALIGN if needed, before testing for
35206         anchored symbols.
35207         (place_block_symbol): Adjust size for asan protected STRING_CSTs if
35208         TREE_CONSTANT_POOL_ADDRESS_P.  Increase alignment for asan protected
35209         normal decls.
35210         (output_object_block): For asan protected decls, emit asan padding
35211         after their contents.
35212         * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
35213         (asan_finish_file): Test it here instead.
35214
35215 2013-01-07  Nick Clifton  <nickc@redhat.com>
35216             Matthias Klose  <doko@debian.org>
35217             Doug Kwan  <dougkwan@google.com>
35218             H.J. Lu  <hongjiu.lu@intel.com>
35219
35220         PR driver/55470
35221         * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
35222
35223         * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
35224
35225         * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
35226
35227         * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
35228
35229         * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
35230
35231 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
35232
35233         PR target/54461
35234         * doc/install.texi (Cross-Compiler-Specific Options): Document
35235         --with-avrlibc.
35236
35237 2013-01-07  Tejas Belagod  <tejas.belagod@arm.com>
35238
35239         * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
35240         vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
35241         vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
35242         vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
35243         vqmovun_high_s64): Fix source operand number and update copyright.
35244
35245 2013-01-07  Richard Biener  <rguenther@suse.de>
35246
35247         PR middle-end/55890
35248         * gimple.h (gimple_call_builtin_p): New overload.
35249         * gimple.c (validate_call): New function.
35250         (gimple_call_builtin_p): Likewise.
35251         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
35252         Use gimple_call_builtin_p.
35253         (find_func_clobbers): Likewise.
35254         * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
35255         (strlen_optimize_stmt): Likewise.
35256
35257 2013-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
35258
35259         * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
35260         (vld1q_dup_*): Likewise.
35261         (vld1_*): Likewise.
35262         (vld1q_*): Likewise.
35263         (vld1_lane_*): Likewise.
35264         (vld1q_lane_*): Likewise.
35265
35266 2013-01-07  Richard Biener  <rguenther@suse.de>
35267
35268         * lto-streamer.h (LTO_minor_version): Bump to 2.
35269
35270 2013-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
35271
35272         * config/aarch64/aarch64-protos.h
35273         (aarch64_const_double_zero_rtx_p): Rename to...
35274         (aarch64_float_const_zero_rtx_p): ...this.
35275         (aarch64_float_const_representable_p): New.
35276         (aarch64_output_simd_mov_immediate): Likewise.
35277         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
35278         move immediate case.
35279         * config/aarch64/aarch64.c
35280         (aarch64_const_double_zero_rtx_p): Rename to...
35281         (aarch64_float_const_zero_rtx_p): ...this.
35282         (aarch64_print_operand): Allow printing of new constants.
35283         (aarch64_valid_floating_const): New.
35284         (aarch64_legitimate_constant_p): Check for valid floating-point
35285         constants.
35286         (aarch64_simd_valid_immediate): Likewise.
35287         (aarch64_vect_float_const_representable_p): New.
35288         (aarch64_float_const_representable_p): Likewise.
35289         (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
35290         (aarch64_output_simd_mov_immediate): New.
35291         * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
35292         (*movdf_aarch64): Likewise.
35293         * config/aarch64/constraints.md (Ufc): New.
35294         (Y): call aarch64_float_const_zero_rtx.
35295         * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
35296
35297 2013-01-07  Richard Biener  <rguenther@suse.de>
35298
35299         PR tree-optimization/55888
35300         PR tree-optimization/55862
35301         * tree-ssa-pre.c (phi_translate_1): Revert previous change.
35302         (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
35303         not if it is contained therein.
35304
35305 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
35306
35307         * config/avr/t-avr: Typo.
35308
35309 2013-01-07  Georg-Johann Lay  <avr@gjlay.de>
35310
35311         PR55243
35312         * config/avr/t-avr: Don't automatically rebuild
35313         $(srcdir)/config/avr/t-multilib
35314         $(srcdir)/config/avr/avr-tables.opt
35315         $(srcdir)/doc/avr-mmcu.texi
35316         (avr-mcus): New phony target to build them on request.
35317         (s-avr-mlib, s-avr-mmcu-texi): Remove.
35318         * avr/avr-mcus.def: Adjust comments.
35319
35320 2013-01-07  Uros Bizjak  <ubizjak@gmail.com>
35321
35322         * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
35323
35324 2013-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
35325
35326         * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
35327
35328 2013-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
35329
35330         * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
35331
35332 2013-01-05  David Edelsohn  <dje.gcc@gmail.com>
35333
35334         * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
35335         to generate profiling.
35336         * config/rs6000/aix64.h (LIB_SPEC): Same.
35337
35338 2013-01-04  Andrew Pinski  <apinski@cavium.com>
35339
35340         * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
35341         New function.
35342         (TARGET_FIXED_CONDITION_CODE_REGS): Define.
35343
35344 2013-01-04  Uros Bizjak  <ubizjak@gmail.com>
35345
35346         * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
35347         unconditionally.
35348         (ix86_expand_move): Ditto.
35349         (ix86_zero_extend_to_Pmode): Ditto.
35350         (ix86_expand_call): Ditto.
35351         (ix86_expand_special_args_builtin): Ditto.
35352         (ix86_expand_builtin): Ditto.
35353
35354 2013-01-04  Richard Biener  <rguenther@suse.de>
35355
35356         PR tree-optimization/55862
35357         * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
35358         translating them through PHI nodes.
35359
35360 2013-01-04  Martin Jambor  <mjambor@suse.cz>
35361
35362         PR tree-optimization/55755
35363         * tree-sra.c (sra_modify_assign): Do not check that an access has no
35364         children when trying to avoid producing a VIEW_CONVERT_EXPR.
35365
35366 2013-01-04  Marek Polacek  <polacek@redhat.com>
35367
35368         PR middle-end/55859
35369         * opts.c (default_options_optimization): Clarify error message.
35370
35371 2013-01-04  Richard Biener  <rguenther@suse.de>
35372
35373         PR middle-end/55863
35374         * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
35375         reassociation.
35376
35377 2013-01-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35378
35379         PR target/53789
35380         * config/pa/pa.md (movsi): Revert previous change.
35381         * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
35382         references.
35383
35384 2013-01-03  Richard Henderson  <rth@redhat.com>
35385
35386         * config/i386/i386.c (ix86_expand_move): Always assign to op1
35387         after eliminating TLS symbols.
35388
35389 2013-01-03  Marc Glisse  <marc.glisse@inria.fr>
35390
35391         PR bootstrap/50167
35392         * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
35393         * graphite-poly.c (debug_gmp_value): Likewise.
35394
35395 2013-01-03  Uros Bizjak  <ubizjak@gmail.com>
35396
35397         PR target/55712
35398         * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
35399         selected code model, define __code_mode_small__, __code_model_medium__,
35400         __code_model_large__, __code_model_32__ or __code_model_kernel__.
35401         * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
35402         xchg temporary register with %k.  Declare temporary register as
35403         early clobbered.
35404         [__x86_64__]: For medium and large code models, preserve %rbx register.
35405
35406 2013-01-03  Richard Biener  <rguenther@suse.de>
35407
35408         * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
35409         (dump_subscript): Adjust.
35410         (finalize_ddr_dependent): Do not dump redundant info.
35411         (analyze_siv_subscript): Adjust.
35412         (subscript_dependence_tester): Likewise.
35413         (compute_affine_dependence): Likewise.
35414
35415 2013-01-03  Richard Biener  <rguenther@suse.de>
35416
35417         Revert
35418         2013-01-03  Richard Biener  <rguenther@suse.de>
35419
35420         PR tree-optimization/55857
35421         * tree-vect-stmts.c (vectorizable_load): Do not setup
35422         re-alignment for invariant loads.
35423
35424         2013-01-02  Richard Biener  <rguenther@suse.de>
35425
35426         * tree-vect-stmts.c (vectorizable_load): When vectorizing an
35427         invariant load do not generate a vector load from the scalar location.
35428
35429 2013-01-03  Richard Biener  <rguenther@suse.de>
35430
35431         * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
35432         for not vectorizing.
35433         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
35434         not build INDIRECT_REFs, call get_name once only.
35435         (vect_create_data_ref_ptr): Likewise.  Dump base object kind
35436         based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
35437
35438 2013-01-03  Richard Biener  <rguenther@suse.de>
35439
35440         PR tree-optimization/55857
35441         * tree-vect-stmts.c (vectorizable_load): Do not setup
35442         re-alignment for invariant loads.
35443
35444 2013-01-03  Richard Biener  <rguenther@suse.de>
35445
35446         PR lto/55848
35447         * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
35448         prefer a built-in decl.
35449
35450 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
35451
35452         * gcc.c (process_command): Update copyright notice dates.
35453         * gcov.c (print_version): Likewise.
35454         * gcov-dump.c (print_version): Likewise.
35455
35456         PR rtl-optimization/55838
35457         * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
35458         iv0.step, iv1.step and step.
35459
35460 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
35461             Marc Glisse  <marc.glisse@inria.fr>
35462
35463         PR tree-optimization/55832
35464         * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
35465         ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
35466         integer_{one,zero}_node.
35467
35468 2013-01-03  Jakub Jelinek  <jakub@redhat.com>
35469
35470         PR debug/54402
35471         * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
35472         * var-tracking.c (reverse_op): Don't add reverse ops to
35473         VALUEs that have already
35474         PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
35475
35476 2013-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
35477
35478         * doc/contrib.texi: Note years as release manager for Mark Mitchell.
35479
35480 2013-01-02  Teresa Johnson  <tejohnson@google.com>
35481
35482         * dumpfile.c (dump_loc): Print filename with location.
35483         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
35484         new location_t parameter to emit complete unroll message with
35485         new dump framework.
35486         (canonicalize_loop_induction_variables): Compute loops location
35487         and pass to try_unroll_loop_completely.
35488         * loop-unroll.c (report_unroll_peel): New function.
35489         (peel_loops_completely): Use new dump format with location
35490         for main dumpfile message, and invoke report_unroll_peel on success.
35491         (decide_unrolling_and_peeling): Ditto.
35492         (decide_peel_once_rolling): Remove old dumpfile message subsumed
35493         by report_unroll_peel.
35494         (decide_peel_completely): Ditto.
35495         (decide_unroll_constant_iterations): Ditto.
35496         (decide_unroll_runtime_iterations): Ditto.
35497         (decide_peel_simple): Ditto.
35498         (decide_unroll_stupid): Ditto.
35499         * cfgloop.c (get_loop_location): New function.
35500         * cfgloop.h (get_loop_location): Declare.
35501
35502 2013-01-02  Sriraman Tallam  <tmsriram@google.com>
35503
35504         * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
35505         NULL.
35506
35507 2013-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
35508
35509         PR middle-end/55198
35510         * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
35511         BLKmode objects when EXPAND_MEMORY is specified.
35512
35513 2013-01-02  Sriraman Tallam  <tmsriram@google.com>
35514
35515         * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
35516         in loop predicate.
35517         (fold_builtin_cpu): Do not share cpu model decls across statements.
35518
35519 2013-01-02  Jason Merrill  <jason@redhat.com>
35520
35521         PR c++/55804
35522         * tree.c (build_array_type_1): Revert earlier change.
35523
35524 2013-01-02  Yufeng Zhang  <yufeng.zhang@arm.com>
35525
35526         * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
35527         "cortex-a57".
35528         * config/aarch64/aarch64-tune.md: Re-generate.
35529
35530 2013-01-02  Richard Biener  <rguenther@suse.de>
35531
35532         * tree-vect-stmts.c (vectorizable_load): When vectorizing an
35533         invariant load do not generate a vector load from the scalar location.
35534
35535 2013-01-02  Richard Biener  <rguenther@suse.de>
35536
35537         PR bootstrap/55784
35538         * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
35539         * configure: Regenerate.
35540
35541 2013-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
35542
35543         * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
35544         (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
35545         (expand_builtin_int_roundingfn_2): Keep the original target around
35546         for the fallback case.
35547
35548 2013-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
35549
35550         * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
35551         to be clear for sign changes.
35552
35553 2013-01-01  Jan Hubicka  <jh@suse.cz>
35554
35555         * ipa-inline-analysis.c: Fix formatting.
35556
35557 2013-01-01  Jakub Jelinek  <jakub@redhat.com>
35558
35559         PR tree-optimization/55831
35560         * tree-vect-loop.c (get_initial_def_for_induction): Use
35561         gsi_after_labels instead of gsi_start_bb.
35562 \f
35563 Copyright (C) 2013 Free Software Foundation, Inc.
35564
35565 Copying and distribution of this file, with or without modification,
35566 are permitted in any medium without royalty provided the copyright
35567 notice and this notice are preserved.