OSDN Git Service

9956f1aa0267d1311fa0d914b1ba094019154cd3
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-04-19  Xinliang David Li  <davidxl@google.com>
2         
3         * ipa-cp.c (ipcp_update_profiling): asserting
4         scale_completement is not negative.
5
6 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
7
8         PR target/48678
9         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
10         is a SUBREG with non-MODE_INT mode inside of it.
11
12 2011-04-19  Martin Jambor  <mjambor@suse.cz>
13
14         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
15         also according to actual contants.
16         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
17         (gimple_fold_call): Use it.
18         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
19
20 2011-04-19  Martin Jambor  <mjambor@suse.cz>
21
22         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
23         non-pointer assignments.
24
25 2011-04-19  Martin Jambor  <mjambor@suse.cz>
26
27         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
28         account anc_offset and otr_type from the indirect edge info.
29         * ipa-prop.c (get_ancestor_addr_info): New function.
30         (compute_complex_ancestor_jump_func): Assignment analysis moved to
31         get_ancestor_addr_info, call it.
32         (ipa_note_param_call): Do not initialize information about polymorphic
33         calls, return the indirect call graph edge.  Remove the last
34         parameter, adjust all callers.
35         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
36         parameters.  Initialize polymorphic information in the indirect edge.
37
38 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
39
40         PR lto/48148
41         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
42         the types if they have different enumeration identifiers.
43
44 2011-04-19  Jan Hubicka  <jh@suse.cz>
45
46         * cgraph.h (cgraph_optimize_for_size_p): Declare.
47         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
48         * predict.c (cgraph_optimize_for_size_p): Break out from ...
49         (optimize_function_for_size_p) ... here.
50
51 2011-04-19  Richard Guenther  <rguenther@suse.de>
52
53         PR lto/48207
54         * tree.c (free_lang_data): Do not reset the decl-assembler-name
55         langhook.
56
57 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
58
59         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
60         if DECL_NO_INLINE_WARNING_P is set on the function.
61
62 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
63
64         PR fortran/47976
65         * reload1.c (inc_for_reload): Return void. All callers changed.
66         (emit_input_reload_insns): Don't try to delete previous output
67         reloads to a register, or record spill_reg_store for autoincs.
68
69 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
70
71         * gengtype.h: Updated copyright year.
72         (struct input_file_st): Add inpisplugin field.
73         (type_fileloc): New function.
74         * gengtype.c
75         (write_typed_struct_alloc_def): Add gcc_assert.
76         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
77         (write_typed_alloc_defns): Don't output for plugin files.
78         (input_file_by_name): Clear inpisplugin field.
79         (main): Set inpisplugin field for plugin files.
80
81 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
82
83         * gengtype-state.c (string_eq): New.
84         (read_state): Use string_eq instead of strcmp when creating the
85         state_ident_tab.
86
87 2011-04-19  Wei Guozhi  <carrot@google.com>
88
89         PR target/47855
90         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
91         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
92         linkage.
93         * config/arm/constraints.md (Uu): New constraint.
94         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
95
96 2011-04-19  Tristan Gingold  <gingold@adacore.com>
97
98         * config.gcc (-*-*-*vms): Added.
99         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
100         definitions moved.
101         * config/vms/vms-ld.c: New file.
102         * config/vms/vms-ar.c: New file.
103         * config/vms/t-vmsnative: New file.
104
105 2011-04-18  Xinliang David Li  <davidxl@google.com>
106
107         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
108
109 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
110
111         PR middle-end/48661
112         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
113         if TREE_TYPE (v) is non-NULL.
114
115         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
116         gimple_get_virt_mehtod_for_binfo.
117         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
118         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
119         callers.
120         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
121
122 2011-04-18  Michael Matz  <matz@suse.de>
123             Steve Ellcey  <sje@cup.hp.com>
124
125         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
126         use its mode as source mode if it isn't VOIDmode.
127
128 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
129
130         * doc/passes.texi: Fill crossref nodes.
131
132 2011-04-18  Jim Meyering  <meyering@redhat.com>
133
134         Fix doubled-word typos in comments and strings
135         * config/alpha/vms-unwind.h: s/for for/for/
136         * config/arm/unwind-arm.h: Likewise.
137         * config/microblaze/microblaze.c: Likewise.
138         * config/sh/constraints.md: s/in in/in/
139         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
140
141 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
142
143         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
144         (AVX_FLOAT_MODE_P): Ditto.
145         (AVX128_VEC_FLOAT_MODE_P): Ditto.
146         (AVX256_VEC_FLOAT_MODE_P): Ditto.
147         (AVX_VEC_FLOAT_MODE_P): Ditto.
148         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
149         (UNSPEC_MASKSTORE): Ditto.
150         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
151         Merge from <sse>_movmsk<ssemodesuffix> and
152         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
153         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
154         iterator.
155         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
156         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
157         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
158
159 2011-04-18  Jan Hubicka  <jh@suse.cz>
160
161         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
162
163         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
164         (want_inline_function_called_once_p): Break out the logic from
165         ipa_inline.
166         (edge_badness): Ensure that profile is not misupdated.
167         (lookup_recursive_calls): Prioritize by call frequencies.
168         (inline_small_functions): Move program size estimates here;
169         actually process whole queue even when unit growth has been
170         met. (to properly compute inline_failed reasons and for the
171         case unit size decrease.) Revisit comments on recursive inlining.
172         (ipa_inline): Remove unit summary code; first inline hot calls
173         of functions called once, cold calls next.
174         (order, nnodes): Remove unused variables.
175         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
176         (GTFILES): Remove ipa-inline.c
177         * sel-sched.c (fill_insns): Silence uninitialized var warning.
178
179 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
180
181         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
182
183 2011-04-18  Jie Zhang  <jie@codesourcery.com>
184             Richard Earnshaw  <rearnsha@arm.com>
185
186         * arm.c (neon_builtin_type_bits): Remove.
187         (typedef enum neon_builtin_mode): New.
188         (T_MAX): Don't define.
189         (typedef enum neon_builtin_datum): Remove bits, codes[],
190         num_vars and base_fcode.  Add mode, code and fcode.
191         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
192         VAR10): Change accordingly.
193         (neon_builtin_data[]): Change accordingly
194         (arm_init_neon_builtins): Change accordingly.
195         (neon_builtin_compare): Remove.
196         (locate_neon_builtin_icode): Remove.
197         (arm_expand_neon_builtin): Change accordingly.
198
199         * arm.h (enum arm_builtins): Move to ...
200         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
201
202         * arm.c (arm_builtin_decl): Declare.
203         (TARGET_BUILTIN_DECL): Define.
204         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
205         (arm_builtin_decls[]): New.
206         (arm_init_neon_builtins): Store builtin declarations in
207         arm_builtin_decls[].
208         (arm_init_tls_builtins): Likewise.
209         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
210         (arm_builtin_decl): New.
211
212 2011-04-18  Richard Guenther  <rguenther@suse.de>
213
214         * tree.c (upper_bound_in_type): Build properly canonicalized
215         INTEGER_CSTs.
216         (lower_bound_in_type): Likewise.
217
218 2011-04-18  Richard Guenther  <rguenther@suse.de>
219
220         * gimple.h (gimple_call_addr_fndecl): New function.
221         (gimple_call_fndecl): Use it.
222         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
223         for direct calls.
224         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
225         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
226
227 2011-04-18  Richard Guenther  <rguenther@suse.de>
228
229         PR middle-end/48650
230         * tree.c (build_string): STRING_CST is now derived from tree_typed.
231
232 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
233
234         PR lto/48492
235         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
236         DECL_IN_CONSTANT_POOL without RTL.
237
238 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
239             Ira Rosen  <ira.rosen@linaro.org>
240
241         PR target/48252
242         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
243         to match neon_vzip/vuzp/vtrn_internal.
244         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
245         outputs explicitly dependent on both inputs.
246         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
247
248 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
249
250         PR tree-optimization/48616
251         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
252         whether the shift is by scalar or vector based on whether all SLP
253         scalar stmts have the same rhs.
254
255 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
256
257         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
258         memory operands.
259
260 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
261
262         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
263         registers.
264
265 2011-04-17  Jan Hubicka  <jh@suse.cz>
266
267         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
268         * cgrpahunit.c (cgraph_finalize_function): Do not set
269         finalized_by_frontend.
270         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
271         finalized_by_frontend.
272
273 2011-04-17  Jan Hubicka  <jh@suse.cz>
274
275         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
276         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
277         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
278         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
279         method.
280         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
281         gimple-fold.c
282         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
283
284 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
285
286         PR lto/48538
287         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
288         is non-null before accessing it.
289         (input_cgraph): Remove trailing spaces.
290
291 2011-04-17  Revital Eres  <revital.eres@linaro.org>
292
293         * params.def (sms-min-sc): New param flag.
294         * modulo-sched.c (sms_schedule): Use it.
295         * doc/invoke.texi (sms-min-sc): Document it.
296
297 2011-04-17  Jan Hubicka  <jh@suse.cz>
298
299         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
300         present, also set gimple_call_set_cannot_inline.
301         * ipa-inline.c: Update toplevel comment.
302         (MAX_TIME): Remove.
303         (cgraph_clone_inlined_nodes): Fix linebreaks.
304         (cgraph_check_inline_limits): Restructure to ...
305         (caller_growth_limits): ... this one; be more tolerant
306         on growth in nested inline chains; add explanatory comment;
307         fix stack accounting thinko introduced by previous patch.
308         (cgraph_default_inline_p): Remove.
309         (report_inline_failed_reason): New function.
310         (can_inline_edge_p): New function.
311         (can_early_inline_edge_p): New function.
312         (leaf_node_p): Move upwards in file.
313         (want_early_inline_function_p): New function.
314         (want_inline_small_function_p): New function.
315         (want_inline_self_recursive_call_p): New function.
316         (cgraph_edge_badness): Rename to ...
317         (edge_badness) ... this one; fix linebreaks.
318         (update_edge_key): Update call of edge_baddness; add
319         detailed dump about queue updates.
320         (update_caller_keys): Use can_inline_edge_p and
321         want_inline_small_function_p.
322         (cgraph_decide_recursive_inlining): Rename to...
323         (recursive_inlining): Use can_inline_edge_p and
324         want_inline_self_recursive_call_p; simplify and remove no longer
325         valid FIXME.
326         (cgraph_set_inline_failed): Remove.
327         (add_new_edges_to_heap): Use can_inline_edge_p and
328         want_inline_small_function_p.
329         (cgraph_decide_inlining_of_small_functions): Rename to ...
330         (inline_small_functions): ... this one; cleanup; use
331         can/want predicates; cleanup debug ouput; work edges till fibheap
332         is exhausted and do not stop once unit growth is reached; remove
333         later loop processing remaining edges.
334         (cgraph_flatten): Rename to ...
335         (flatten_function): ... this one; use can_inline_edge_p
336         and can_early_inline_edge_p predicates.
337         (cgraph_decide_inlining): Rename to ...
338         (ipa_inline): ... this one; remove unreachable nodes before
339         inlining functions called once; simplify the pass.
340         (cgraph_perform_always_inlining): Rename to ...
341         (inline_always_inline_functions): ... this one; use
342         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
343         (cgraph_decide_inlining_incrementally): Rename to ...
344         (early_inline_small_functions): ... this one; simplify
345         using new predicates; cleanup; make dumps prettier.
346         (cgraph_early_inlining): Rename to ...
347         (early_inliner): newer inline regular functions into always-inlines;
348         fix updating of call stmt summaries.
349         (pass_early_inline): Update for new names.
350         (inline_transform): Fix formating.
351         (gate_cgraph_decide_inlining): Rename to ...
352         (pass_ipa_inline): ... this one.
353         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
354         * ipa-inline-analysis.c (dump_inline_summary): Update.
355         (compute_inline_parameters): Do not compute disregard_inline_limits;
356         look for mismatching arguments.
357         (estimate_growth): Fix handlig of non-trivial self recursion.
358         (inline_read_summary): Do not read info->disregard_inline_limits.
359         (inline_write_summary): Do not write info->disregard_inline_limits.
360         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
361         and move all checks into can_inline_edge_p predicate; re-enable code
362         comparing optimization levels.
363         (expand_call_inline): Do not test inline_forbidden_into_p.
364         * Makefile.in (ipa-inline.o): Update arguments.
365
366 2011-04-17  Revital Eres  <revital.eres@linaro.org>
367
368         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
369
370 2011-04-17  Revital Eres  <revital.eres@linaro.org>
371
372         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
373
374 2011-04-17  Michael Matz  <matz@suse.de>
375
376         PR tree-optimization/48622
377         PR lto/48645
378         * ipa-inline-analysis.c (inline_read_summary): Read size/time
379         in same order as they're written.
380
381 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
382
383         * config/pa/predicates.md: Reorganize and simplify predicates.
384         Eliminate duplicate code checks.
385         (arith_operand): Rename to arith14_operand
386         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
387         * config/pa/pa.md: Use renamed operands.
388         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
389         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
390         arith11_operand, adddi3_operand, indexed_memory_operand,
391         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
392         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
393         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
394         move_dest_operand, move_src_operand, prefetch_cc_operand,
395         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
396         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
397         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
398         div_operand, int5_operand, movb_comparison_operator,
399         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
400         arith_double_operand, ireg_operand, lhs_lshift_operand,
401         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
402         integer_store_memory_operand): Likewise.
403         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
404         (integer_store_memory_operand, read_only_operand,
405         function_label_operand, borx_reg_operand,
406         non_hard_reg_operand): Likewise.
407         (eq_neq_comparison_operator): Delete unused operator.
408         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
409         function_label_operand.
410         (emit_move_sequence): Likewise.
411
412 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
413
414         * config/i386/sse.md (sseunpackmode): New mode attribute.
415         (ssepackmode): Ditto.
416         (vec_pack_trunc_<mode>): Macroize expander from
417         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
418         (vec_unpacks_lo_<mode>): Macroize expander from
419         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
420         (vec_unpacks_hi_<mode>): Macroize expander from
421         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
422         (vec_unpacku_lo_<mode>): Macroize expander from
423         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
424         (vec_unpacku_hi_<mode>): Macroize expander from
425         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
426         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
427         ix86_expand_sse4_unpack.
428         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
429
430 2011-04-16  Jan Hubicka  <jh@suse.cz>
431
432         * cgraphbuild.c: Include ipa-inline.h.
433         (reset_inline_failed): Use initialize_inline_failed.
434         * cgraph.c: Include ipa-inline.h.
435         (cgraph_create_node_1): Do not initialize estimated_growth.
436         (initialize_inline_failed): More to ipa-inline-analysis.c
437         (dump_cgraph_node): Do not dump inline flags.
438         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
439         and disregard_inline_limits flags.
440         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
441         time, size, estimated_growth.
442         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
443         Update.
444         * cgraphunit.c (cgraph_decide_is_function_needed): Use
445         DECL_DISREGARD_INLINE_LIMITS.
446         (cgraph_analyze_function): Do not initialize
447         node->local.disregard_inline_limits.
448         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
449         inlinable, versionable and disregard_inline_limits.
450         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
451         cgraph_check_inline_limits, cgraph_default_inline_p,
452         cgraph_edge_badness, update_caller_keys, update_callee_keys,
453         add_new_edges_to_heap): Update.
454         (cgraph_decide_inlining_of_small_function): Update; set
455         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
456         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
457         cgraph_decide_inlining_incrementally): Update.
458         * ipa-inline.h (inline_summary): Add inlinable, versionable,
459         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
460         time, size and estimated_growth parameters.
461         (estimate_edge_growth): Update.
462         (initialize_inline_failed): Declare.
463         * ipa-split.c: Include ipa-inline.h
464         (execute_split_functions): Update.
465         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
466         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
467         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
468         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
469         estimated_growth to INT_MIN.
470         (inline_node_duplication_hook): Likewise.
471         (dump_inline_summary): Dump new fields.
472         (compute_inline_parameters): Update.
473         (estimate_edge_time, estimate_time_after_inlining,
474         estimate_size_after_inlining, estimate_growth, inline_read_summary,
475         inline_write_summary):
476         (initialize_inline_failed): Move here from cgraph.c.
477         * tree-sra.c: Include ipa-inline.h.
478         (ipa_sra_preliminary_function_checks): Update.
479         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
480         ipa-inline.h.
481
482 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
483
484         * config/i386/sse.md (V16): New mode iterator.
485         (VI1, VI8): Ditto.
486         (AVXMODEQI, AVXMODEDI): Remove.
487         (sse2, sse3): New mode attribute.
488         (mov<mode>): Use V16 mode iterator.
489         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
490         (push<mode>1): Use V16 mode iterator.
491         (movmisalign<mode>): Ditto.
492         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
493         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
494         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
495         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
496         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
497         avx_movdqu<avxmodesuffix>.
498         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
499         *avx_movdqu<avxmodesuffix>.
500         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
501         avx_lddqu<avxmodesuffix>.
502         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
503         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
504         avx_movnt<AVXMODEDI:mode>.
505         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
506         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
507
508 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
509
510         PR target/48629
511         * haifa-sched.c (prune_ready_list, schedule_block): Use
512         sched_pressure_p rather than flag_sched_pressure.
513
514 2011-04-15  Pat Haugen <pthaugen@us.ibm.com>
515
516         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
517         cgraph_get_node instead of cgraph_get_create_node.
518
519 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
520
521         * cfgexpand.c (expand_debug_expr): Use
522         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
523
524 2011-04-15  Michael Matz  <matz@suse.de>
525
526         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
527         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
528         * function.c (gimplify_parameters): Ditto.
529         * gimplify.c (gimplify_vla_decl): Ditto.
530
531         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
532         (gimple_call_set_alloca_for_var): New inline function.
533         (gimple_call_alloca_for_var_p): Ditto.
534         * gimple.c (gimple_build_call_from_tree): Remember
535         CALL_ALLOCA_FOR_VAR_P state.
536         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
537
538         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
539         calls if they were for VLA objects.
540
541 2011-04-15  Martin Jambor  <mjambor@suse.cz>
542
543         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
544         of ADR_EXPRs.
545
546 2011-04-15  Martin Jambor  <mjambor@suse.cz>
547
548         PR middle-end/48601
549         * tree-emutls.c (lower_emutls_function_body): Call
550         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
551         result is non-NULL.
552
553 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
554
555         * c-decl.c (detect_field_duplicates): Call
556         objc_detect_field_duplicates instead of objc_get_interface_ivars.
557
558 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
559
560         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
561         * gimple.c (gimple_asm_clobbers_memory_p): Define.
562         * ipa-pure-const.c (check_stmt): Call it.
563         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
564
565 2011-04-15  Richard Guenther  <rguenther@suse.de>
566
567         PR tree-optimization/48290
568         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
569         Properly decide inhibiting propagation based on the valueized
570         operand.  Do loop-closed SSA form preserving here ...
571         (init_copy_prop): ... not here.
572
573 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
574
575         PR target/48612
576         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
577         (*ieee_smax<mode>3): Likewise.
578
579 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
580
581         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
582         Replace match_operand with match_dup for the third operand in
583         these expanders.
584
585 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
586
587         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
588         to track processing of conditionals.  Update all callers.
589         (try_combine, simplify_if_then_else): Update.
590
591 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
592
593         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
594         -fsched-pressure.
595
596 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
597
598         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
599         instead of match_operand for operand 3.
600
601 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
602
603         * recog.h (insn_operand_data): Add an "allows_mem" field.
604         * genoutput.c (output_operand_data): Initialize it.
605         * optabs.c (maybe_legitimize_operand_same_code): New function.
606         (maybe_legitimize_operand): Use it when matching the original
607         op->value.
608
609 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
610
611         * gimplify.c: Fix issues in comments throughout.
612         (voidify_wrapper_expr): Fix long line.
613         (build_stack_save_restore): Likewise.
614         (gimplify_loop_expr): Likewise.
615         (gimplify_compound_lval): Likewise.
616         (gimplify_init_ctor_eval): Likewise.
617         (gimplify_modify_expr_rhs): Likewise.
618         (omp_notice_threadprivate_variable): Likewise.
619
620 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
621
622         * cfgexpand.c (expand_call_stmt): Convert the function type to the
623         original one if this is not a builtin function.
624
625 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
626
627         PR target/48605
628         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
629         offset it as needed based on top 2 bits in operands[3], change
630         MEM mode to SFmode and mask those 2 bits away from operands[3].
631
632 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
633
634         * c-parser.c (c_parser_objc_protocol_definition): Updated for
635         change from objc_declare_protocols() to objc_declare_protocol().
636
637 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
638
639         * config/i386/sse.md (sse4_1): New mode attribute.
640         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
641         avx_blend<ssemodesuffix><avxmodesuffix> and
642         sse4_1_blend<ssemodesuffix> using VF mode iterator.
643         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
644         avx_blendv<ssemodesuffix><avxmodesuffix> and
645         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
646         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
647         avx_dp<ssemodesuffix><avxmodesuffix> and
648         sse4_1_dp<ssemodesuffix> using VF mode iterator.
649         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
650         (sse4_1_packusdw): Merge with *avx_packusdw.
651         (sse4_1_pblendvb): Merge with *avx_pblendvb.
652         (sse4_1_pblendw): Merge with *avx_pblendw.
653         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
654         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
655         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
656         VF mode iterator.
657         (sse4_1_round<ssescalarmodesuffix>): Merge with
658         *avx_round<ssescalarmodesuffix>.
659         (aesenc): Merge with *avx_aesenc.
660         (aesenclast): Merge with *avx_aesenclast.
661         (aesdec): Merge with *avx_aesdec.
662         (aesdeclast): Merge with *avx_aesdeclast.
663         (pclmulqdq): Merge with *pclmulqdq.
664         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
665         New predicate.
666         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
667
668 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
669
670         PR middle-end/48608
671         * cfgexpand.c (get_decl_align_unit): Renamed to ...
672         (align_local_variable): This.  Update DECL_ALIGN.
673         (add_stack_var): Updated.
674         (expand_one_stack_var): Likewise.
675
676 2011-04-14  Richard Guenther  <rguenther@suse.de>
677
678         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
679         Remove.
680         (dse_initialize_block_local_data, dse_leave_block,
681         record_voperand_set, get_stmt_uid): Likewise.
682         (dse_possible_dead_store_p): Allow any kind of killing stmt.
683         (dse_optimize_stmt): Remove voperand set handling code.
684         Simplify and improve to handle any kind of killing stmt.
685         (dse_record_phi): Remove.
686         (dse_enter_block): Simplify.
687         (tree_ssa_dse): Likewise.
688         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
689
690 2011-04-14  Jan Hubicka  <jh@suse.cz>
691
692         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
693         * cgraph.h (struct inline_summary): Move to ipa-inline.h
694         (cgraph_local_info): Remove inline_summary.
695         * ipa-cp.c: Include ipa-inline.h.
696         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
697         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
698         accesor.
699         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
700         (input_overwrite_node): Do not set inline summary.
701         (input_node): Do not stream inline summary.
702         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
703         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
704         growth; we do not have inline parameters computed for that anyway.
705         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
706         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
707         (inline_summary_t): New type and VECtor.
708         (debug_inline_summary, dump_inline_summaries): Declare.
709         (inline_summary): Use VOCtor.
710         (estimate_edge_growth): Kill hack computing call stmt size directly.
711         * lto-section-in.c (lto_section_name): Add inline section.
712         * ipa-inline-analysis.c: Include lto-streamer.h
713         (node_removal_hook_holder, node_duplication_hook_holder): New holders
714         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
715         (inline_summary_vec): Define.
716         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
717         dump_inline_summaries): New functions.
718         (estimate_function_body_sizes): Properly compute size/time of outgoing
719         calls.
720         (compute_inline_parameters): Alloc inline_summary; do not compute
721         size/time of incomming calls.
722         (estimate_edge_time): Avoid missing time summary hack.
723         (inline_read_summary): Read inline summary info.
724         (inline_write_summary): Write inline summary info.
725         (inline_free_summary): Free all hooks and inline summary vector.
726         * lto-streamer.h: Add LTO_section_inline_summary section.
727         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
728         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
729
730 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
731
732         * tree-vectorizer.h (vect_strided_store_supported): Add a
733         HOST_WIDE_INT argument.
734         (vect_strided_load_supported): Likewise.
735         (vect_permute_store_chain): Return void.
736         (vect_transform_strided_load): Likewise.
737         (vect_permute_load_chain): Delete.
738         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
739         count argument.  Check that the count is a power of two.
740         (vect_strided_load_supported): Likewise.
741         (vect_permute_store_chain): Return void.  Update after above changes.
742         Assert that the access is supported.
743         (vect_permute_load_chain): Likewise.
744         (vect_transform_strided_load): Return void.
745         * tree-vect-stmts.c (vectorizable_store): Update calls after
746         above interface changes.
747         (vectorizable_load): Likewise.
748         (vect_analyze_stmt): Don't check for strided powers of two here.
749
750 2011-04-14  Richard Guenther  <rguenther@suse.de>
751
752         PR tree-optimization/48590
753         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
754         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
755         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
756         BUILT_IN_STACK_SAVE.
757         * tree-ssa-dce.c (propagate_necessity): Handle
758         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
759
760 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
761
762         * c-parser.c (c_parser_objc_class_declaration): Updated call to
763         objc_declare_class.
764
765 2011-04-14  Richard Guenther  <rguenther@suse.de>
766
767         * tree.h (get_object_alignment_1): Declare.
768         * builtins.c (get_object_alignment_1): Split out worker from ...
769         (get_object_alignment): ... here.
770         * fold-const.c (get_pointer_modulus_and_residue): Use
771         get_object_alignment_1.
772
773 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
774
775         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
776         type parameter.
777         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
778         parameter.  Generalise code to handle arrays as well as vectors.
779         (vect_setup_realignment): Update accordingly.
780         * tree-vect-stmts.c (vectorizable_store): Likewise.
781         (vectorizable_load): Likewise.
782
783 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
784
785         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
786         within the per-copy loop.
787
788 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
789
790         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
791         in the dump file.
792
793 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
794
795         * doc/options.texi (Negative): Explicitly mention that the
796         Negative chain must be circular.
797
798 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
799
800         * function.h (block_chainon): Declare.
801         * function.c (block_chainon): Define.
802
803 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
804             Eric Weddington  <eric.weddington@atmel.com>
805             Georg-Johann Lay <avr@gjlay.de>
806
807         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
808         New Includes
809         (avr_init_builtins, avr_expand_builtin,
810         avr_expand_delay_cycles, avr_expand_unop_builtin,
811         avr_expand_binop_builtin ): New functions.
812         (avr_builtin_id): New enum
813         (struct avr_builtin_description): New struct
814         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
815         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
816
817         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
818         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
819         UNSPECV_DELAY_CYCLES): new enumeration values
820         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
821         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
822         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
823         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
824         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
825         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
826         "fmulsu"): New insns
827
828         * config/avr/avr-c.c: fix line endings
829         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
830         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
831         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
832         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
833         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
834
835         * doc/extend.texi (AVR Built-in Functions): New node
836         (Target Builtins): Add documentation of AVR
837         built-in functions.
838
839 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
840
841         PR target/44643
842         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
843         alone. Error if non-const data has attribute progmem.
844
845 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
846
847         * tree.h (struct tree_constructor): Include tree_typed instead of
848         tree_common.
849         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
850         TS_TYPED instead of TS_COMMON.
851
852 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
853
854         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
855         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
856         (sse2_psadbw): Merge with *avx_psadbw.
857         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
858         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
859         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
860         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
861         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
862         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
863         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
864         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
865         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
866         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
867         (ssse3_palignrti): Merge with *avx_palignrti.
868
869 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
870
871         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
872         * tree-ssanames.c (fini_ssanames): VEC_free it.
873         (make_ssa_name_fn): Update for VECness of free_ssanames.
874         (release_ssa_name, release_dead_ssa_names): Likewise.
875         * tree.h (struct tree_ssa_name): Include tree_typed instead of
876         tree_common.
877         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
878         TS_TYPED instead of TS_COMMON.
879
880 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
881
882         * postreload-gcse.c (gcse_after_reload_main): Add calls to
883         statistics_counter_event.
884         * tree-ssa-copyrename.c (stats): Define.
885         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
886         statistics_counter_event.
887         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
888         (bswap_stats, widen_mul_stats): Define.
889         (insert_reciprocals): Increment rdivs_inserted.
890         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
891         rfuncs_inserted.  Add calls to statistics_counter_event.
892         (execute_cse_sincos_1): Increment inserted.
893         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
894         statistics_counter_event.
895         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
896         of bswap_stats.  Add calls to statistics_counter_event.
897         (convert_mult_to_widen): Increment widen_mults_inserted.
898         (convert_plusminus_to_widen): Increment maccs_inserted.
899         (convert_mult_to_fma): Increment fmas_inserted.
900         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
901         calls to statistics_counter_event.
902
903 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
904
905         PR rtl-optimization/48455
906         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
907         `temp_costs->mem_cost'.
908
909 2011-04-13  Jan Hubicka  <jh@suse.cz>
910
911         * ipa-inline.h: New file.
912         * ipa-inline-analysis.c: New file. Broken out of ...
913         * ipa-inline.c: ... this file; update toplevel comment;
914         include ipa-inline.h
915         (inline_summary): Move to ipa-inline.h
916         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
917         ipa-inline-analysis.c.
918         (cgraph_estimate_time_after_inlining): Rename to
919         estiamte_time_after_inlining; move to ipa-inline-analysis.c
920         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
921         to estimate_edge_growth.
922         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
923         rename to estimate_size_after_inlining.
924         (cgraph_mark_inline_edge): Update for new naming convention.
925         (cgraph_check_inline_limits): Likewise.
926         (cgraph_edge_badness): Likewise.
927         (cgraph_decide_recursive_inlining): Likewise.
928         (cgraph_decide_inlining_of_small_functions): Likewise.
929         (cgraph_decide_inlining_incrementally): Likewise.
930         (cgraph_estimate_growth): Rename to estimate_growth; move to
931         ipa-inline-analysis.c.
932         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
933         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
934         (compute_inline_parameters): Likewise.
935         (compute_inline_parameters_for_current): Likewise.
936         (pass_inline_parameters): Likewise.
937         (inline_indirect_intraprocedural_analysis): Likewise.
938         (analyze_function): Rename to inline_analyze_function; likewise.
939         (add_new_function): Move to ipa-inline-analysis.c.
940         (inline_generate_summary): Likewise.
941         (inline_read_summary): Likewise.
942         (inline_write_summary): Likewise.
943         * Makefile.in (ipa-inline-analysis.c): New file.
944
945 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
946
947         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
948         * configure: Regenerate.
949
950 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
951
952         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
953         instead of tree_common.
954         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
955         Likewise.
956         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
957         TS_TYPED rather than TS_COMMON.
958         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
959
960 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
961
962         PR target/45263
963         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
964         r20 around calls of __tablejump_elpm__
965
966 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
967
968         PR middle-end/48591
969         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
970         NULL.
971         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
972
973 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
974
975         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
976         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
977         (cfi_vec): New typedef.
978         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
979         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
980         (cie_cfi_vec): New static variable.
981         (cie_cfi_head): Delete.
982         (add_cfi): Accept a cfi_vec * as first argument. All callers and
983         declaration changed. Use vector rather than list operations.
984         (new_cfi): Don't initialize the dw_cfi_next field.
985         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
986         rather than list operations.
987         (lookup_cfa): Use vector rather than list operations.
988         (output_cfis): New argument upto. Accept a cfi_vec rather than
989         a dw_cfi_ref list head as argument. All callers changed.
990         Iterate over the vector using upto as a maximum index.
991         (output_all_cfis): New static function.
992         (output_fde): Use vector rather than list operations. Use the
993         new upto argument for output_cfis rather than manipulating a
994         list.
995         (dwarf2out_begin_prologue): Change initializations to match
996         new struct members.
997         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
998         from the vector length rather than searching for the end of a list.
999         Use output_all_cfis.
1000         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
1001
1002 2011-04-13  Nick Clifton  <nickc@redhat.com>
1003
1004         * config/rx/rx.md (movmemsi): Do not use this pattern when
1005         volatile pointers are involved.
1006
1007 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
1008
1009         * config/i386/sse.md (pinsrbits): Remove.
1010         (sse2_packsswb): Merge with *avx_packsswb.
1011         (sse2_packssdw): Merge with *avx_packssdw.
1012         (sse2_packuswb): Merge with *avx_packuswb.
1013         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
1014         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
1015         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
1016         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
1017         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
1018         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
1019         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
1020         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
1021         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
1022         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
1023         (sse2_loadld): Merge with *avx_loadld.
1024         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
1025         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
1026         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
1027         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
1028         (vec_concatv2di): Merge with *vec_concatv2di_avx.
1029
1030 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
1031
1032         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
1033         calling TREE_CHAIN.
1034         * print-tree.c (print_node): Likewise.
1035         * tree-inline.c (copy_tree_r): Likewise.
1036         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
1037         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
1038         instead of TS_COMMON.
1039         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
1040         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
1041         (copy_node_stat): Zero TREE_CHAIN only if necessary.
1042         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
1043         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
1044         ...and these...
1045         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
1046         * tree.h: ...here.
1047         (TREE_CHAIN): Check for a TS_COMMON structure.
1048         (TREE_TYPE): Check for a TS_TYPED structure.
1049
1050 2011-04-12  Pat Haugen <pthaugen@us.ibm.com>
1051
1052         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
1053         cgraph_get_create_node instead of cgraph_node.
1054
1055 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
1056
1057         * c-parser.c (c_parser_initelt): Updated call to
1058         objc_build_message_expr.
1059         (c_parser_postfix_expression): Likewise.
1060
1061 2011-04-12  Kai Tietz  <ktietz@redhat.com>
1062
1063         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
1064         MASK_MS_BITFIELD_LAYOUT bit.
1065
1066 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
1067
1068         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
1069         assert it is always true.
1070         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
1071         moves.
1072
1073 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
1074
1075         * c-parser.c (c_lex_one_token): Rewritten conditional used when
1076         compiling Objective-C to be more efficient.
1077
1078 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
1079
1080         * opts-common.c (decode_cmdline_options_to_array): Remove variable
1081         argv_copied.
1082
1083 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
1084
1085         * recog.h, genoutput.c, optabs.c: Revert last patch.
1086
1087 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1088
1089         PR target/48090
1090         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
1091
1092 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
1093
1094         * recog.h (insn_operand_data): Add an "allows_mem" field.
1095         * genoutput.c (output_operand_data): Initialize it.
1096         * optabs.c (maybe_legitimize_operand_same_code): New function.
1097         (maybe_legitimize_operand): Use it when matching the original
1098         op->value.
1099
1100 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
1101
1102         * genpreds.c (process_define_predicate): Move most processing
1103         to gensupport.c.  Continue to validate the expression.
1104         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
1105         (process_define_predicate): Move processing to gensupport.c.
1106         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
1107         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
1108         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
1109         argument.
1110         (valid_predicate_name_p): New function, split out from old
1111         genpreds.c:process_define_predicate.
1112         (process_define_predicate): New function, combining code from
1113         old genpreds.c and genrecog.c functions.
1114         (process_rtx): Call it for DEFINE_PREDICATE and
1115         DEFINE_SPECIAL_PREDICATE.
1116
1117 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
1118
1119         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
1120         size of a '%A' memory reference.
1121         (T_DREG, T_QREG): New neon_builtin_type_bits.
1122         (arm_init_neon_builtins): Assert that the load and store operands
1123         are neon_struct_operands.
1124         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
1125         (NEON_ARG_MEMORY): New builtin_arg.
1126         (neon_dereference_pointer): New function.
1127         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
1128         Handle NEON_ARG_MEMORY.
1129         (arm_expand_neon_builtin): Update after above interface changes.
1130         Use NEON_ARG_MEMORY for loads and stores.
1131         * config/arm/predicates.md (neon_struct_operand): New predicate.
1132         * config/arm/iterators.md (V_two_elem): Tweak formatting.
1133         (V_three_elem): Use BLKmode for accesses that have no associated mode.
1134         (V_four_elem): Tweak formatting.
1135         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
1136         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
1137         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
1138         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
1139         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
1140         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
1141         (neon_vst4<mode>): Replace pointer operand with a memory operand.
1142         Use %A in the output template.
1143         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
1144         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
1145         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
1146         the width of the memory access.  Remove post-increment.
1147         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
1148
1149 2011-04-12  Nick Clifton  <nickc@redhat.com>
1150
1151         * config/v850/v850.c (expand_prologue): Do not use the CALLT
1152         instruction for interrupt handlers if the target is the basic V850
1153         architecture.
1154         (expand_epilogue): Likewise.
1155
1156 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
1157
1158         PR rtl-optimization/48549
1159         * combine.c (propagate_for_debug): Also stop after BB_END of
1160         this_basic_block.  Process LAST and just stop processing after it.
1161         (combine_instructions): If last_combined_insn has been deleted,
1162         set last_combined_insn to its PREV_INSN.
1163
1164 2011-04-12  Richard Guenther  <rguenther@suse.de>
1165
1166         PR tree-optimization/46076
1167         * gimple.h (struct gimple_statement_call): Add fntype field.
1168         (gimple_call_fntype): Adjust.
1169         (gimple_call_set_fntype): New function.
1170         * gimple.c (gimple_build_call_1): Set the call function type.
1171         * gimplify.c (gimplify_call_expr): Preserve the function
1172         type the frontend used for the call.
1173         (gimplify_modify_expr): Likewise.
1174         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
1175         function type.
1176         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
1177         function type.
1178         * tree-ssa.c (useless_type_conversion_p): Function pointer
1179         conversions are useless.
1180
1181 2011-04-12  Martin Jambor  <mjambor@suse.cz>
1182
1183         * cgraph.h (cgraph_node): Remove function declaration.
1184         (cgraph_create_node): Declare.
1185         (cgraph_get_create_node): Likewise.
1186         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
1187         Updated all callers.
1188         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
1189         the decl does not already exist.  Call cgraph_get_create_node instead
1190         of cgraph_node.
1191         (cgraph_get_create_node): New function.
1192         (cgraph_same_body_alias): Update comment.
1193         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
1194         assert it does not return NULL.
1195         (cgraph_update_edges_for_call_stmt): Likewise.
1196         (cgraph_clone_edge): Likewise.
1197         (cgraph_create_virtual_clone): Likewise.
1198         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
1199         instead of cgraph_node.
1200         (cgraph_add_new_function): Call cgraph_create_node or
1201         cgraph_get_create_node instead of cgraph_node.
1202         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
1203         instead of cgraph_node.
1204         (record_eh_tables): Likewise.
1205         (mark_address): Likewise.
1206         (mark_load): Likewise.
1207         (build_cgraph_edges): Call cgraph_get_create_node instead
1208         of cgraph_node.
1209         (rebuild_cgraph_edges): Likewise.
1210         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
1211         instead of cgraph_node.
1212         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
1213         cgraph_node.
1214         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
1215         cgraph_create_node instead of cgraph_node.
1216         * c-decl.c (finish_function): Call cgraph_get_create_node instead
1217         of cgraph_node.
1218         * lto-cgraph.c (input_node): Likewise.
1219         * lto-streamer-in.c (input_function): Likewise.
1220         * varasm.c (mark_decl_referenced): Likewise.
1221         (assemble_alias): Likewise.
1222
1223 2011-04-12  Martin Jambor  <mjambor@suse.cz>
1224
1225         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
1226         instead of cgraph_node and assert it does not return NULL.
1227         * lto-streamer-in.c (lto_read_body): Likewise.
1228         * omp-low.c (new_omp_context): Likewise.
1229         (create_task_copyfn): Likewise.
1230         * tree-emutls.c (lower_emutls_function_body): Likewise.
1231         * matrix-reorg.c (transform_allocation_sites): Likewise.
1232
1233 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
1234
1235         PR c/48552
1236         * c-typeck.c (build_asm_expr): Error out on attempts to use
1237         void type outputs or inputs for constraints that allow reg or
1238         don't allow memory.
1239
1240 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
1241             Richard Earnshaw  <rearnsha@arm.com>
1242
1243         PR target/48250
1244         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
1245         to use sign-magnitude offsets. Reject unsupported unaligned
1246         cases. Add detailed description in comments.
1247         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
1248         condition from TARGET_32BIT to TARGET_ARM.
1249
1250 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
1251
1252         * tree.h (struct typed_tree): New.
1253         (struct tree_common): Include it instead of tree_base.
1254         (TREE_TYPE): Update for new location of type field.
1255         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
1256         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
1257         (union tree_node): Add typed field.
1258         * treestruct.def (TS_TYPED): New.
1259         * lto-streamer.c (check_handled_ts_structures): Handle it.
1260         * tree.c (MARK_TS_TYPED): New macro.
1261         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
1262
1263 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
1264
1265         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
1266         (force_nonfallthru): Do not alter the loop nest if no basic block
1267         was created.
1268
1269 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
1270
1271         * config/i386/sse.md (VI): New mode iterator.
1272         (SSEMODEI): Remove.
1273         (AVX256MODEI): Ditto.
1274         (AVXMODEF4P): Ditto.
1275         (avxvecpsmode): Ditto.
1276         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
1277         (sse2_andnot<mode>3): New expander.
1278         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
1279         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
1280         (<any_logic:code><mode>3): Use VI mode iterator.
1281         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
1282         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
1283         (*andnottf3): Handle AVX three-operand constraints.
1284         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
1285
1286 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1287             Robert Millan  <rmh@gnu.org>
1288
1289         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
1290         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
1291         GNU_USER_DYNAMIC_LINKER64): Define.
1292         (REG_NAME): Don't undefine.
1293         (MD_UNWIND_SUPPORT): Undefine.
1294         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
1295         (REG_NAME): Don't undefine.
1296         (MD_UNWIND_SUPPORT): Undefine.
1297         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
1298
1299 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1300
1301         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
1302         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
1303
1304 2011-04-11  Xinliang David Li  <davidxl@google.com>
1305
1306         * value-profile.c (check_ic_target): New function.
1307         (gimple_ic_transform): Sanity check indirect call target.
1308         * gimple-low.c (gimple_check_call_args): Interface change.
1309         (gimple_check_call_matching_types): New function.
1310         * tree-inline.c (tree_can_inline_p): Call new function.
1311
1312 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
1313
1314         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
1315         tree-pretty-print.h & realmpfr.h.
1316
1317 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
1318
1319         PR middle-end/48464
1320         * ira.c (setup_pressure_classes): Fix typo in loop condition.
1321         (setup_allocno_and_important_classes): Ditto.
1322
1323 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1324
1325         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
1326         GNU_USER_DYNAMIC_LINKER.
1327         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
1328         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1329         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
1330         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1331         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
1332         GNU_USER_TARGET_OS_CPP_BUILTINS.
1333         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
1334         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1335         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
1336         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1337         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
1338         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1339         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
1340         GNU_USER_TARGET_OS_CPP_BUILTINS.
1341         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1342         GNU_USER_DYNAMIC_LINKER.
1343         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1344         GNU_USER_TARGET_OS_CPP_BUILTINS.
1345         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
1346         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1347         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
1348         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1349         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
1350         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
1351         GNU_USER_DYNAMIC_LINKER64): Remove.
1352         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
1353         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1354         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1355         GNU_USER_DYNAMIC_LINKER.
1356         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1357         GNU_USER_TARGET_OS_CPP_BUILTINS.
1358         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1359         GNU_USER_TARGET_OS_CPP_BUILTINS.
1360         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
1361         to GNU_USER_TARGET_OS_CPP_BUILTINS.
1362         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
1363         GNU_USER_TARGET_OS_CPP_BUILTINS.
1364         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
1365         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
1366         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
1367         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
1368         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1369         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1370         GNU_USER_DYNAMIC_LINKER.
1371         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
1372         GNU_USER_TARGET_OS_CPP_BUILTINS.
1373         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
1374         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1375         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1376         GNU_USER_DYNAMIC_LINKER.
1377         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
1378         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1379         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
1380         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1381         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1382         GNU_USER_DYNAMIC_LINKER.
1383         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
1384         GNU_USER_DYNAMIC_LINKERN32.
1385         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
1386         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
1387         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
1388         GNU_USER_DYNAMIC_LINKER32.
1389         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
1390         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1391         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1392         GNU_USER_DYNAMIC_LINKER.
1393         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
1394         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1395         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
1396         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1397         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1398         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
1399         GNU_USER_DYNAMIC_LINKER32.
1400         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
1401         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
1402         GNU_USER_DYNAMIC_LINKER.
1403         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
1404         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1405         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
1406         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
1407         GNU_USER_DYNAMIC_LINKER64.
1408         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
1409         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1410         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1411         GNU_USER_DYNAMIC_LINKER.
1412         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
1413         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1414         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
1415         GNU_USER_DYNAMIC_LINKER.
1416         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
1417         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1418         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
1419         GNU_USER_DYNAMIC_LINKER32.
1420         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
1421         GNU_USER_DYNAMIC_LINKER64.
1422         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
1423         GNU_USER_DYNAMIC_LINKER64.
1424         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
1425         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1426         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
1427         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
1428         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
1429
1430 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1431
1432         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
1433         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
1434         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
1435         GNU_USER_DYNAMIC_LINKER.
1436         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
1437         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
1438         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
1439         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
1440         GNU_USER_DYNAMIC_LINKER64.
1441         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
1442         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
1443         GNU_USER_LINK_EMULATION.
1444         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
1445         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
1446         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
1447         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
1448         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
1449         CPP_SPEC, CC1_SPEC): Remove.
1450         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
1451         (GNU_USER_DYNAMIC_LINKER): Define.
1452         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
1453         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
1454         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
1455         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
1456         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
1457         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
1458         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
1459         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
1460         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
1461         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
1462         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
1463         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
1464         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
1465         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
1466         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
1467         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
1468         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1469         GNU_USER_DYNAMIC_LINKER.
1470         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1471         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
1472         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1473         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
1474         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
1475         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
1476         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
1477         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
1478         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
1479         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
1480
1481 2011-04-11  Kai Tietz  <ktietz@redhat.com>
1482
1483         PR target/9601
1484         PR target/11772
1485         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
1486         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
1487         comment.
1488         (ix86_is_msabi_thiscall): Removed.
1489         (ix86_is_type_thiscall): Likewise.
1490         (ix86_get_callcvt): New function.
1491         (ix86_comp_type_attributes): Simplify check.
1492         (ix86_function_regparm): Use ix86_get_callcvt for calling
1493         convention attribute checks.
1494         (ix86_return_pops_args): Likewise.
1495         (ix86_static_chain): Likewise.
1496         (x86_this_parameter): Likewise.
1497         (x86_output_mi_thunk): Likewise.
1498         (ix86_function_type_abi): Optimize check for types without attributes.
1499         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
1500         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
1501         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
1502         by flag-values.
1503         (IX86_BASE_CALLCVT): Helper macro.
1504         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
1505         Use ix86_get_callcvt for calling convention attribute checks and avoid
1506         symbol-decoration for stdcall in TARGET_RTD case.
1507         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
1508         Likewise.
1509         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
1510         for declaration.
1511
1512 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
1513
1514         * config/i386/sse.md (VI_128): New mode iterator.
1515         (VI12_128): Rename from SSEMODE12.
1516         (VI14_128): Rename from SSEMODE14.
1517         (VI124_128): New mode iterator.
1518         (VI24_128): Rename from SSEMODE248.
1519         (VI248_128): Rename from SSEMODE248.
1520         (SSEMODE124C8): Remove.
1521         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
1522         (*sse2_<plusminus_insn><mode>3): Merge with
1523         *avx_<plusminus_insn><mode>3.
1524         (*mulv8hi3): Merge with *avx_mulv8hi3.
1525         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
1526         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
1527         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
1528         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
1529         (ashr<mode>3): Merge with *avx_ashr<mode>3.
1530         (lshr<mode>3): Merge with *avx_lshr<mode>3.
1531         (ashl<mode>3): Merge with *avx_ashl<mode>3.
1532         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
1533         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
1534         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
1535         (*<smaxmin:code>v8hi3): Ditto.
1536         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
1537         (*<smaxmin:code>v16qi3): Ditto.
1538         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
1539         (*sse2_eq<mode>3): Ditto.
1540         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
1541         (*sse2_gt<mode>3): Ditto.
1542         (vcondv2di): Split out of vcond<mode>.
1543         (vconduv2di): Split out of vcondu<mode>.
1544
1545 2011-04-11  Richard Guenther  <rguenther@suse.de>
1546
1547         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
1548         before calling tree_low_cst.
1549
1550 2011-04-11  Richard Guenther  <rguenther@suse.de>
1551
1552         * stor-layout.c (layout_type): Compute all array index size operations
1553         in the original type.
1554         (initialize_sizetypes): Add comment.
1555         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
1556
1557 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
1558
1559         * common.opt (Tbss=, Tdata=, Ttext=): New options.
1560
1561 2011-04-11  Martin Jambor  <mjambor@suse.cz>
1562
1563         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
1564         of cgraph_node, handle NULL return value.
1565         (cgraph_global_info): Likewise.
1566         (cgraph_rtl_info): Likewise.
1567         * tree-inline.c (estimate_num_insns): Likewise.
1568         * gimplify.c (unshare_body): Likewise.
1569         (unvisit_body): Likewise.
1570         (gimplify_body): Likewise.
1571         * predict.c (optimize_function_for_size_p): Likewise.
1572         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
1573         (call_may_clobber_ref_p_1): Likewise.
1574         * varasm.c (function_section_1): Likewise.
1575         (assemble_start_function): Likewise.
1576
1577 2011-04-11  Martin Jambor  <mjambor@suse.cz>
1578
1579         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
1580         of cgraph_node.
1581         * final.c (rest_of_clean_state): Likewise.
1582         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
1583         * passes.c (pass_init_dump_file): Likewise.
1584         (execute_all_ipa_transforms): Likewise.
1585         (function_called_by_processed_nodes_p): Likewise.
1586         * predict.c (maybe_hot_frequency_p): Likewise.
1587         (probably_never_executed_bb_p): Likewise.
1588         (compute_function_frequency): Likewise.
1589         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
1590         (unnest_nesting_tree_1): Likewise.
1591         (lower_nested_functions): Likewise.
1592         * tree-optimize.c (execute_fixup_cfg): Likewise.
1593         (tree_rest_of_compilation): Likewise.
1594         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
1595         * tree-sra.c (ipa_early_sra): Likewise.
1596         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
1597         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
1598         * ipa.c (record_cdtor_fn): Likewise.
1599         * ipa-inline.c (cgraph_early_inlining): Likewise.
1600         (compute_inline_parameters_for_current): Likewise.
1601         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
1602         * ipa-pure-const.c (local_pure_const): Likewise.
1603         * ipa-split.c (split_function): Likewise.
1604         (execute_split_functions): Likewise.
1605         * cgraphbuild.c (build_cgraph_edges): Likewise.
1606         (rebuild_cgraph_edges): Likewise.
1607         (cgraph_rebuild_references): Likewise.
1608         (remove_cgraph_callee_edges): Likewise.
1609         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
1610         (verify_cgraph_node): Likewise.
1611         (cgraph_analyze_functions): Likewise.
1612         (cgraph_preserve_function_body_p): Likewise.
1613         (save_inline_function_body): Likewise.
1614         (save_inline_function_body): Likewise.
1615         * tree-inline.c (copy_bb): Likewise.
1616         (optimize_inline_calls): Likewise.
1617
1618 2011-04-11  Martin Jambor  <mjambor@suse.cz>
1619
1620         PR tree-optimization/48195
1621         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
1622         ipa_check_create_edge_args.
1623         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
1624         ipa_check_create_edge_args.
1625         * ipa-inline.c (inline_generate_summary): Do not call
1626         ipa_check_create_node_params and ipa_check_create_edge_args.
1627         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
1628         ipa_check_create_edge_args.
1629
1630 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
1631
1632         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
1633         instead of loop.
1634         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
1635         * function.c (record_hard_reg_sets): Likewise.
1636         * ira.c (compute_regs_asm_clobbered): Likewise.
1637         * sched-deps.c (sched_analyze_1): Likewise.
1638         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
1639
1640 2011-04-09  Xinliang David Li  <davidxl@google.com>
1641
1642         PR tree-optimization/PR48484
1643         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
1644         has_valid_pred lazily
1645
1646 2011-04-09  Duncan Sands  <baldrick@free.fr>
1647
1648         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
1649
1650 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
1651
1652         * combine.c (combine_validate_cost): Adjust comments.  Set registered
1653         cost of I0 to zero at the end, if any.
1654
1655 2011-04-08  Xinliang David Li  <davidxl@google.com>
1656
1657         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
1658         to insane profile data.
1659
1660 2011-04-08  Xinliang David Li  <davidxl@google.com>
1661
1662         * ipa-cp.c (ipcp_update_profiling): Correct
1663          negative scale factor due to insane profile data.
1664
1665 2011-04-08  Xinliang David Li  <davidxl@google.com>
1666
1667         * final.c (dump_basic_block_info): New function.
1668         (final): Dump basic block.
1669         (final_scan_insn): Remove old dump.
1670
1671 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
1672
1673         PR target/47829
1674         * config.gcc (i386-*-freebsd): Disable unwind table generation for
1675         crtbegin/crtend.
1676
1677 2011-04-08  Michael Matz  <matz@suse.de>
1678
1679         PR middle-end/48389
1680         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
1681         functions.
1682         (rebuild_jump_labels): Call rebuild_jump_labels_1.
1683         * rtl.h (rebuild_jump_labels_chain): Declare.
1684         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
1685         insns inserted on edges.
1686
1687 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
1688
1689         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
1690         * config/arm/arm-arches.def: New.
1691         * config/arm/arm-opts.h: New.
1692         * config/arm/genopt.sh: New.
1693         * config/arm/arm-tables.opt: New (generated).
1694         * config/arm/arm.c (arm_handle_option, arm_target_help,
1695         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
1696         (all_architectures): Get most table contents from arm-arches.def.
1697         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
1698         arm_selected_tune here.
1699         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
1700         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
1701         (march=, mcpu=, mtune=): Use Enum and Var.
1702         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
1703         (arm.o): Update dependencies.
1704
1705 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
1706
1707         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
1708         of header_file.
1709         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
1710         (write_typed_alloc_defns): Likewise.
1711         (main): Calls write_typed_alloc_defns with output_header.
1712
1713 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
1714
1715         PR inline-asm/48435
1716         * ira-color.c (setup_profitable_hard_regs): Add comments.
1717         Don't take prohibited hard regs into account.
1718         (setup_conflict_profitable_regs): Rename to
1719         get_conflict_profitable_regs.
1720         (check_hard_reg_p): Check prohibited hard regs.
1721
1722 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
1723
1724         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
1725         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
1726         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
1727
1728 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1729
1730         PR target/48366
1731         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
1732         move from floating point to shift amount register.
1733         (emit_move_sequence): Remove secondary reload support for floating
1734         point to shift amount amount register copies.
1735         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
1736         amount register copies.
1737         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
1738         register, return false if mode isn't a scalar integer mode.
1739         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
1740
1741 2011-04-08  Richard Guenther  <rguenther@suse.de>
1742
1743         * gimple.c (gimple_call_flags): Remove kludge.
1744
1745 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1746
1747         * sel-sched.c (sel_region_init): Move call to
1748         sel_setup_region_sched_flags after setup_current_loop_nest.
1749
1750 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
1751
1752         PR rtl-optimization/48272
1753         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
1754         init_insn_reg_pressure_info.  Adjust a caller.
1755         * sched-int.h (init_insn_reg_pressure_info): Declare.
1756         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
1757         when sched-pressure is enabled.
1758
1759 2011-04-08  Richard Guenther  <rguenther@suse.de>
1760
1761         * gimple.c (gimple_set_modified): Do not queue calls to
1762         MODIFIED_NORETURN_CALLS here ...
1763         * tree-ssa-operands.c (update_stmt_operands): ... but here.
1764
1765 2011-04-08  Richard Guenther  <rguenther@suse.de>
1766
1767         PR lto/48467
1768         * toplev.c (lang_dependent_init): Do not open asm_out_file
1769         in WPA mode, nor perform debug machinery initialization.
1770         (finalize): Do not unlink asm_out_file in WPA mode.
1771
1772 2011-04-08  Richard Guenther  <rguenther@suse.de>
1773
1774         * gimple.h (gimple_call_fntype): New function.
1775         (gimple_call_return_type): Use it.
1776         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
1777         * gimple-low.c (gimple_check_call_args): Likewise.
1778         * gimple.c (gimple_call_flags): Likewise.
1779         (gimple_call_arg_flags): Likewise.
1780         (gimple_call_return_flags): Likewise.
1781         * tree-cfg.c (verify_gimple_call): Likewise.
1782         (do_warn_unused_result): Likewise.
1783         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
1784         * value-prof.c (gimple_ic_transform): Fix fndecl check.
1785
1786 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
1787
1788         PR rtl-optimization/48235
1789         * sel-sched.c (code_motion_process_successors): Recompute the last
1790         insn in basic block if control flow changed.
1791         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
1792         Update condition for ilist_remove.
1793
1794 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1795
1796         PR rtl-optimization/48302
1797         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
1798         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
1799         it to record added preheader blocks.
1800         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
1801         on to sel_add_loop_preheaders.
1802         (sel_region_init): Move call to setup_current_loop_nest after
1803         sel_init_bbs.
1804
1805 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1806
1807         PR target/48273
1808         * cfgloop.h (loop_has_exit_edges): New helper.
1809         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
1810         non-clonable.
1811         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
1812         that have no exit edges.
1813
1814 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
1815
1816         PR rtl-optimization/48442
1817         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
1818         all callers.  Adjust assert.
1819
1820 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
1821
1822         PR tree-optimization/48377
1823         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
1824         is_packed to true even for types with smaller TYPE_ALIGN than
1825         TYPE_SIZE.
1826
1827 2011-04-08  Richard Guenther  <rguenther@suse.de>
1828
1829         PR bootstrap/48513
1830         * doc/tm.texi: Re-generate.
1831
1832 2011-04-08  Wei Guozhi  <carrot@google.com>
1833
1834         PR target/47855
1835         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
1836         * config/arm/arm.c (arm_attr_length_push_multi): New function.
1837         * config/arm/arm.md (*push_multi): Change the length computation to
1838         call a C function.
1839
1840 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
1841
1842         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
1843         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
1844         * doc/tm.texi: Regenerate.
1845         * system.h (ASM_OUTPUT_BSS): Poison.
1846         * varasm.c (asm_output_bss): Remove function.
1847         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
1848
1849         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
1850         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
1851         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
1852         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
1853         Likewise.
1854         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
1855         Likewise.
1856         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
1857         Likewise.
1858         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
1859
1860 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
1861
1862         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
1863         EnumValue lines.
1864
1865 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
1866
1867         * config/m68k/m68k.c (m68k_handle_option): Don't handle
1868         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
1869         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
1870         OPT_mcpu32.
1871         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
1872         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
1873         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
1874         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
1875         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
1876         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
1877         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
1878         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
1879         options.  Don't map other m68k options manually.  Don't handle
1880         old-style options as canonical.
1881         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
1882         * doc/install.texi (m68k-*-*): Document binutils version requirement.
1883
1884 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
1885
1886         * basic-block.h (force_nonfallthru): Move to...
1887         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
1888         (force_nonfallthru): ...here.
1889         * cfghooks.c (force_nonfallthru): New function.
1890         * cfgrtl.c (force_nonfallthru): Rename into...
1891         (rtl_force_nonfallthru): ...this.
1892         (commit_one_edge_insertion): Do not set AUX field.
1893         (commit_edge_insertions): Do not discover new basic blocks.
1894         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
1895         (cfg_layout_rtl_cfg_hooks): Likewise.
1896         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
1897         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
1898         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
1899
1900 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
1901
1902         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
1903         Remove macros.
1904
1905 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
1906
1907         * config/i386/sse.md: Update copyright year.
1908         (avxcvtvecmode): Remove.
1909         (sse_movhlps): Merge with *avx_movhlps.
1910         (sse_movlhps): Merge with *avx_movlhps.
1911         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
1912         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
1913         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
1914         (sse_loadhps): Merge with *avx_loadhps.
1915         (sse_storelps): Merge with *avx_storelps.
1916         (sse_loadlps): Merge with *avx_loadlps.
1917         (sse_movss): Merge with *avx_movss.
1918         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
1919         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
1920         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
1921         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
1922         (vec_set<mode>_0): Ditto.
1923         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
1924         (sse4_1_insertps): Merge with *avx_insertps.
1925         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
1926         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
1927         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
1928         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
1929         (sse2_storehpd): Merge with *avx_storehpd.
1930         (sse2_loadhpd): Merge with *avx_loadhpd.
1931         (sse2_loadlpd): Merge with *avx_loadlpd.
1932         (sse2_movsd): Merge with *avx_movsd.
1933         (*vec_concatv2df): Merge with *vec_concatv2df.
1934
1935 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
1936
1937         PR debug/48343
1938         * combine.c (combine_instructions): Add last_combined_insn,
1939         update it if insn is after it, pass it to all try_combine calls.
1940         (try_combine): Add last_combined_insn parameter, pass it instead of
1941         i3 to propagate_for_debug.
1942
1943 2011-04-07  Nick Clifton  <nickc@redhat.com>
1944
1945         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
1946         to handle MDR <-> data register transfers.
1947         (movhi_internal): Likewise.
1948
1949 2011-04-07  Alan Modra  <amodra@gmail.com>
1950
1951         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
1952         previous stack info.
1953
1954 2011-04-07  Tom de Vries  <tom@codesourcery.com>
1955
1956         PR target/43920
1957         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
1958         flow_find_cross_jump.  Swap variables to implement backward replacement.
1959         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
1960
1961 2011-04-07  Tom de Vries  <tom@codesourcery.com>
1962
1963         PR target/43920
1964         * cfgcleanup.c (walk_to_nondebug_insn): New function.
1965         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
1966         and bb2.
1967         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
1968         src1 or src2.  Redirect edges to the last basic block.  Update
1969         frequency and count on multiple basic blocks in case of fallthru.
1970
1971 2011-04-07  Tom de Vries  <tom@codesourcery.com>
1972
1973         PR target/43920
1974         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
1975         function.
1976         (old_insns_match_p): Change return type.  Replace return false/true
1977         with return dir_none/dir_both.  Use can_replace_by.
1978         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
1979         direction from dir_p.  Register replacement direction in dir, last_dir
1980         and afterlast_dir.  Handle new return type of old_insns_match_p using
1981         merge_dir.  Return replacement direction in dir_p.
1982         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
1983         return type of old_insns_match_p.
1984         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
1985         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
1986         flow_find_cross_jump.
1987         * basic-block.h (enum replace_direction): New type.
1988         (flow_find_cross_jump): Add parameter to declaration.
1989
1990 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
1991
1992         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
1993         (AVXMODEDCVTPS2DQ): Ditto.
1994         (VEC_FLOAT_MODE): Ditto.
1995         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
1996         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
1997         (<any_logic:code><mode>3): Use VF mode iterator.
1998         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
1999         Use VF mode iterator.
2000         (copysign<mode>3): Use VF mode iterator.
2001         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
2002         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
2003         (*<any_logic:code><MODEF:mode>3): Merge with
2004         *avx_<any_logic:code><MODEF:mode>3.
2005         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
2006         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
2007         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
2008         (avx_cvtdq2ps<avxmodesuffix>): Remove.
2009         (sse2_cvtdq2ps): Use %v modifier.
2010         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
2011         (avx_cvtps2dq<avxmodesuffix>): Remove.
2012         (sse2_cvtps2dq): Use %v modifier.
2013         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
2014         (avx_cvttps2dq<avxmodesuffix>): Remove.
2015         (sse2_cvttps2dq): Use %v modifier.
2016         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
2017         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
2018         (sse2_cvtsd2siq): Fix insn template.
2019         (sse2_cvtsd2siq_2): Ditto.
2020         (sse2_cvttsd2siq): Ditto.
2021         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
2022         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
2023
2024 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
2025
2026         * gcov-io.c: Use GCC Runtime Library Exception.
2027
2028 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
2029
2030         PR debug/48466
2031         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
2032         as base_reg whatever register reg has been eliminated to, instead
2033         of hardcoding STACK_POINTER_REGNUM.
2034
2035 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
2036
2037         * doc/tm.texi.in: Document C target hooks as separate from general
2038         target hooks.
2039         * doc/tm.texi: Regenerate.
2040         * genhooks.c (struct hook_desc): Add docname field.
2041         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
2042         docname field.
2043         (hook_array): Include c-target.def.
2044         (emit_documentation): Use docname field in output.
2045         (emit_init_macros): Take docname argument.  Only emit definitions
2046         for hooks matching docname.
2047         (main): Expect additional arguments in all cases.  Pass argument
2048         to emit_init_macros.
2049         * target.def: Move initial macro definitions and comments to
2050         target-hooks-macros.h.
2051         (gcc_targetcm): Move to c-family/c-target.def.
2052         * target.h (targetcm): Move declaration to c-family/c-target.h.
2053         * targhooks.c (default_handle_c_option): Move to
2054         c-family/c-opts.c.
2055         * targhooks.h (default_handle_c_option): Move declaration to
2056         c-family/c-common.h.
2057         * target-hooks-macros.h: New file.
2058         * config.gcc (target_has_targetcm): Define and use to add to
2059         c_target_objs and cxx_target_objs.
2060         * config/default-c.c: New file.
2061         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
2062         of target.h and target-def.h.
2063         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
2064         (darwin_objc_construct_string, darwin_cfstring_ref_p,
2065         darwin_check_cfstring_format_arg): Make static.
2066         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
2067         TARGET_STRING_OBJECT_REF_TYPE_P,
2068         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
2069         * config/darwin-protos.h (darwin_objc_construct_string,
2070         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
2071         declare.
2072         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
2073         TARGET_STRING_OBJECT_REF_TYPE_P,
2074         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
2075         * config/t-darwin (darwin-c.o): Update dependencies.
2076         * system.h (TARGET_HAS_TARGETCM): Poison.
2077         * Makefile.in (TARGET_H): Update.
2078         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
2079         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
2080         (default-c.o): New target.
2081         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
2082         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
2083         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
2084         c-target.def.
2085         (build/genhooks.o): Update dependencies.
2086
2087 2011-04-06  Richard Guenther  <rguenther@suse.de>
2088
2089         * ipa-inline.c (enum inlining_mode): Remove.
2090         (cgraph_flatten): Use some other token.
2091         (cgraph_edge_early_inlinable_p): New function, split out from ...
2092         (cgraph_perform_always_inlining): New function, split out from ...
2093         (cgraph_decide_inlining_incrementally): ... here.
2094         (cgraph_mark_inline_edge): Adjust.
2095         (cgraph_early_inlining): Re-structure.
2096         (pass_early_inline): Require SSA form.
2097
2098 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
2099             Julian Brown  <julian@codesourcery.com>
2100             Mark Shinwell  <shinwell@codesourcery.com>
2101
2102         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
2103         LO_REGS only for Thumb-1.
2104         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
2105         be used in short instructions when optimising for size on Thumb-2.
2106
2107 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
2108
2109         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
2110         associated with user returns to be preserved.
2111
2112 2011-04-06  Tristan Gingold  <gingold@adacore.com>
2113
2114         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
2115         symbol_queue_size, DBXOUT_DECR_NESTING,
2116         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
2117         if XCOFF_DEBUGGING_INFO.
2118
2119 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
2120
2121         * config/i386/i386.md (attribute isa): New.
2122         (attribute enabled): New.
2123         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
2124         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
2125         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
2126         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
2127         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
2128         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
2129         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
2130         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
2131
2132         * config/i386/sse.md (VF): New mode iterator.
2133         (VF1): Ditto.
2134         (VF2): Ditto.
2135         (VF_128): Ditto.
2136         (SSEMODEF4): Remove.
2137         (attribute sse): Handle V8SF and V4DF modes.
2138         (<absneg:code><mode>2): Use VF mode iterator.
2139         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
2140         mode iterator.
2141         (<plusminus_insn><mode>3): Use VF mode iterator.
2142         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
2143         Use VF mode iterator.
2144         (<sse>_vm<plusminus_insn><mode>3): Merge with
2145         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
2146         (mul<mode>3): Use VF mode iterator.
2147         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
2148         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
2149         mode iterator.
2150         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
2151         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
2152         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
2153         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
2154         mode iterator.
2155         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
2156         Use VF1 mode iterator.
2157         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
2158         (sqrt<VF2:mode>2): New expander.
2159         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
2160         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
2161         and sqrtv2df2.  Use VF mode iterator.
2162         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
2163         mode iterator.
2164         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
2165         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
2166         Use VF1 mode iterator.
2167         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
2168         (<smaxmin:code><mode>3): Use VF mode iterator.
2169         (*<smaxmin:code><mode>3_finite): Merge with
2170         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
2171         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
2172         (<sse>_vm<smaxmin:code><mode>2): Merge with
2173         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
2174         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
2175         mode iterator.
2176         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
2177         mode iterator.
2178         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
2179         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
2180         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
2181         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
2182         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
2183         VF mode iterator.
2184         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
2185         Use VF_128 mode iterator.
2186         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
2187         mode iterator.
2188         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
2189         VF_128 mode iterator.
2190         (vcond<mode>): Use VF mode iterator.
2191         * config/i386/predicates.md (sse_comparison_operator): Merge with
2192         avx_comparison_float_operator.  Do not declare as special_predicate.
2193         * config/i386/i386.c (struct builtin_description): Update for renamed
2194         compare patterns.
2195         (ix86_expand_args_builtin): Ditto.
2196         (ix86_expand_sse_compare_mask): Ditto.
2197
2198 2011-04-06  Richard Guenther  <rguenther@suse.de>
2199
2200         * tree-inline.c (estimate_num_insns): For calls simply account
2201         for all passed arguments and a used return value.
2202
2203 2011-04-06  Richard Guenther  <rguenther@suse.de>
2204
2205         PR tree-optimization/47663
2206         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
2207         call_stmt_time fields.
2208         (cgraph_edge_inlinable_p): Declare.
2209         (cgraph_edge_recursive_p): New inline function.
2210         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
2211         (cgraph_clone_edge): Copy it.
2212         * ipa-inline.c (cgraph_estimate_edge_time): New function.
2213         Account for call stmt time.
2214         (cgraph_estimate_time_after_inlining): Take edge argument.
2215         (cgraph_estimate_edge_growth): Account call stmt size.
2216         (cgraph_estimate_size_after_inlining): Take edge argument.
2217         (cgraph_mark_inline_edge): Adjust.
2218         (cgraph_check_inline_limits): Likewise.
2219         (cgraph_recursive_inlining_p): Remove.
2220         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
2221         (cgraph_decide_recursive_inlining): Take edge argument and
2222         adjust.
2223         (cgraph_decide_inlining_of_small_functions): Do not avoid
2224         diags for recursive inlining here.
2225         (cgraph_flatten): Adjust.
2226         (cgraph_decide_inlining_incrementally): Likewise.
2227         (estimate_function_body_sizes): Remove call cost handling.
2228         (compute_inline_parameters): Initialize caller edge call costs.
2229         (cgraph_estimate_edge_growth): New function.
2230         (cgraph_estimate_growth): Use it.
2231         (cgraph_edge_badness): Likewise.
2232         (cgraph_check_inline_limits): Take an edge argument.
2233         (cgraph_decide_inlining_of_small_functions): Adjust.
2234         (cgraph_decide_inlining): Likewise.
2235         * tree-inline.c (estimate_num_insns): Only account for call
2236         return value if it is used.
2237         (expand_call_inline): Avoid diagnostics on recursive inline
2238         functions here.
2239         * lto-cgraph.c (lto_output_edge): Output edge call costs.
2240         (input_edge): Input edge call costs.
2241
2242 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2243
2244         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
2245
2246 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
2247
2248         * doc/invoke.texi (Spec Files): Fix typo.
2249
2250 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
2251
2252         * profile.c (branch_prob): Move declaration of local variable.  Remove
2253         obsolete ??? comment.  Expand the location explicitly instead of using
2254         the LOCATION_FILE and LOCATION_LINE macros.
2255
2256 2011-04-06  Wei Guozhi  <carrot@google.com>
2257
2258         PR target/47855
2259         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
2260         (arm_cond_branch): Likewise.
2261         (arm_cond_branch_reversed): Likewise.
2262         (arm_jump): Likewise.
2263         (push_multi): Likewise.
2264         * config/arm/constraints.md (Py): New constraint.
2265
2266 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2267
2268         PR bootstrap/48471
2269         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
2270         Move these...
2271         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
2272         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
2273         #ifdef DBX_DEBUGGING_INFO.
2274
2275 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
2276
2277         PR bootstrap/48403
2278         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
2279         if old and new states differ.
2280
2281 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
2282
2283         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
2284         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
2285         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
2286         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
2287         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
2288         mcfv4e): Use Alias.
2289         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
2290         ColdFire options to -mcpu= options.
2291
2292 2011-04-05  Jeff Law  <law@redhat.com>
2293
2294         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
2295         check if BB is a successor of LOOP->header and return
2296         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
2297
2298 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
2299
2300         * cprop.c (struct reg_use): Remove.
2301         (reg_use_table): Make an array of RTX.
2302         (find_used_regs, constprop_register, local_cprop_pass,
2303         bypass_block): Simplify users of reg_use_table.
2304         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
2305         on one of the uses found by find_used_regs.
2306
2307 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2308
2309         PR bootstrap/48469
2310         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
2311         declaration.
2312
2313 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2314
2315         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
2316         as an rtx.
2317         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
2318
2319 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
2320
2321         PR middle-end/48441
2322         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
2323
2324 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2325
2326         * combine.c: Include obstack.h.
2327         (struct insn_link): Define.
2328         (uid_log_links): Adjust type.
2329         (FOR_EACH_LOG_LINK): New macro.
2330         (insn_link_obstack): Declare.
2331         (alloc_insn_link): Define.
2332         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
2333         type of link variables.
2334         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
2335         (try_combine, record_promoted_values, distribute_notes): Likewise.
2336         (distribute_links): Likewise.  Tweak prototype.
2337         (clear_log_links): Delete.
2338         (adjust_for_new_dest): Call alloc_insn_link.
2339         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
2340
2341 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2342
2343         * gcse.c (modify_mem_list): Convert to an array of VECs.
2344         (canon_modify_mem_list, compute_transp): Tweak formatting.
2345         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
2346         (load_killed_in_block_p): Likewise.
2347         (record_last_mem_set_info): Likewise.
2348         (clear_modify_mem_tables): Likewise.
2349
2350 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2351
2352         PR middle-end/48461
2353         * function.c (emit_use_return_register_into_block): Only define if
2354         HAVE_return.
2355
2356 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
2357
2358         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
2359
2360 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
2361
2362         * config/rx/rx-opts.h: New.
2363         * config/rx/rx.c (rx_cpu_type): Remove.
2364         (rx_handle_option): Don't assert that global structures are in
2365         use.  Access variables via opts pointer.  Defer most handling of
2366         OPT_mint_register_.  Use error_at.
2367         (rx_option_override): Handle deferred OPT_mint_register_ here.
2368         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
2369         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
2370         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
2371         (rx_cpu_types): New Enum and EnumValue entries.
2372         (mint-register=): Use Defer and use Var accordingly.
2373
2374 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2375
2376         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
2377         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
2378         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
2379         Move these...
2380         (debug_free_queue, debug_nesting, symbol_queue_index):
2381         ...and these...
2382         * dbxout.c: ...to here.  Make static.
2383
2384 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
2385
2386         * gcse.c (modify_pair): Define.  Define a VEC of it.
2387         (canon_modify_mem_list): Convert to an array of VECs.
2388         (free_insn_expr_list_list): Delete.
2389         (clear_modify_mem_tables): Call VEC_free instead.
2390         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
2391         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
2392         (canon_list_insert, compute_transp): Likewise.
2393
2394 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2395
2396         PR target/43920
2397         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
2398         for size.
2399
2400 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2401
2402         PR target/43920
2403         * function.c (emit_use_return_register_into_block): New function.
2404         (thread_prologue_and_epilogue_insns): Use
2405         emit_use_return_register_into_block.
2406
2407 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2408
2409         PR target/43920
2410         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
2411         insn.
2412
2413 2011-04-05  Tom de Vries  <tom@codesourcery.com>
2414
2415         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
2416
2417 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
2418
2419         * config/arm/arm.md (define_constants for unspec): Replace with
2420         define_c_enum.
2421         (define_constants for unspecv): Replace with define_c_enum.
2422         * config/arm/neon.md (define_constants for unspec): Replace with
2423         define_c_enum.
2424
2425 2011-04-04  Richard Henderson  <rth@redhat.com>
2426
2427         PR bootstrap/48400
2428         * dwarf2out.c (output_line_info): Always emit line info from
2429         at least one section.
2430         (dwarf2out_init): Create text_section_line_info here ...
2431         (set_cur_line_info_table): ... not here.
2432
2433 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
2434
2435         PR target/48380
2436         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
2437         not called.
2438
2439         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
2440
2441 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
2442
2443         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
2444         (expr_equiv_p): Remove.
2445         (insert_set_in_table): Look at <dest, src> pair instead of expr.
2446         (hash_scan_set): Update call to insert_set_in_table.
2447         (dump_hash_table): Dump <dest, src> pair.
2448         (lookup_set): Simplify.  Lookup <dest, src> pair.
2449         (compute_transp): Remove, fold heavily simplified code into...
2450         (compute_local_properties): ...here.  Expect COMP and TRANSP
2451         unconditionally.
2452         (find_avail_set): Take set directly from struct expr.
2453         (find_bypass-set): Likewise.
2454         (bypass_block): Likewise.
2455         (cprop_insn): Likewise.  Remove redundant INSN_P test.
2456
2457         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
2458         checks on form of COND from find_implicit_sets to here.
2459         (find_implicit_sets): Cleanup control flow. Split critical edges
2460         if it exposes implicit sets.  Allocate/resize implicit_sets as
2461         necessary.
2462         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
2463         changed something.  Run df_analyze after find_implicit_sets if any
2464         edges were split.  Do not allocate implicit_sets here.
2465
2466         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
2467         (gcse_obstack): Renamed to cprop_obstack.
2468         (GNEW, GNEWVEC, GNEWVAR): Remove.
2469         (gmalloc): Remove.
2470         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
2471         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
2472         (gcse_alloc): Likewise, and rename to cprop_alloc.
2473         (alloc_gcse_men, free_gcse_mem): Remove.
2474         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
2475         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
2476         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
2477
2478         * cprop.c (oprs_not_set_p): Remove.
2479         (mark_set, mark_clobber): Remove.
2480         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
2481         (reg_not_set_p): New function.
2482         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
2483         (cprop_insn): Likewise.
2484         (cprop_jump): Use FOR_EACH_EDGE.
2485
2486 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
2487
2488         PR bootstrap/48403
2489         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
2490         (rank_for_schedule): Use scheduled_insns vector instead of
2491         last_scheduled_insn.
2492         (ok_for_early_queue_removal): Likewise.
2493         (queue_to_ready): Search forward in nonscheduled_insns_begin if
2494         we have a dbg_cnt.
2495         (choose_ready): Likewise.
2496         (commit_schedule): Use VEC_iterate.
2497         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
2498         a dbg_cnt, use it and ensure the first insn is in the ready list.
2499         (haifa_sched_init): Allocate scheduled_insns.
2500         (sched_extend_ready_list): Don't allocate it; reserve space.
2501         (haifa_sched_finish): Free it.
2502
2503 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
2504
2505         * optc-gen.awk: Always remove type from Variable entry before
2506         recording in var_seen.
2507
2508 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
2509
2510         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
2511         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
2512         call to tidy_fallthru_edges.
2513
2514 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
2515
2516         * doc/options.texi (ToLower): Document.
2517         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
2518         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
2519         * opts.h (cl_option): Add cl_tolower field.
2520         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
2521         arguments with lowercase strings.
2522         * config/rx/rx.opt (mcpu=): Add ToLower.
2523         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
2524         argument.
2525
2526 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
2527
2528         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
2529
2530 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
2531
2532         * config/vax/vax.c: Include reload.h.
2533
2534 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
2535
2536         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
2537         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
2538         (sparc_preferred_reload_class): New function.
2539
2540 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
2541
2542         PR debug/48401
2543         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
2544         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
2545
2546 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
2547
2548         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
2549         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
2550
2551 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
2552
2553         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
2554         (ASM_OUTPUT_ALIGNED_BSS): Define.
2555
2556 2011-04-03  Michael Matz  <matz@suse.de>
2557
2558         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
2559         and next_slot members.
2560         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
2561         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
2562         (lto_streamer_cache_append): Declare.
2563         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
2564         unsigned index, remove offset parameter, ensure that we append
2565         or update existing entries.
2566         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
2567         parameter, update next_slot for append.
2568         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
2569         parameter.
2570         (lto_streamer_cache_insert_at): Likewise.
2571         (lto_streamer_cache_append): New function.
2572         (lto_streamer_cache_lookup): Use unsigned index.
2573         (lto_streamer_cache_get): Likewise.
2574         (lto_record_common_node): Don't test tree_node_can_be_shared.
2575         (preload_common_node): Adjust call to lto_streamer_cache_insert.
2576         (lto_streamer_cache_delete): Don't free offsets member.
2577         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
2578         (lto_output_string_with_length): Use lto_output_data_stream.
2579         (lto_output_tree_header): Remove ix parameter, don't write it.
2580         (lto_output_builtin_tree): Likewise.
2581         (lto_write_tree): Adjust callers to above, don't track and write
2582         offset, write unsigned index.
2583         (output_unreferenced_globals): Don't emit all global vars.
2584         (write_global_references): Use unsigned indices.
2585         (lto_output_decl_state_refs): Likewise.
2586         (write_symbol): Likewise.
2587         * lto-streamer-in.c (lto_input_chain): Move earlier.
2588         (input_function): Use unsigned index.
2589         (input_alias_pairs): Don't read and then ignore all global vars.
2590         (lto_materialize_tree): Remove ix_p parameter, don't read index,
2591         don't pass it back, use lto_streamer_cache_append.
2592         (lto_register_var_decl_in_symtab): Use unsigned index.
2593         (lto_register_function_decl_in_symtab): Likewise.
2594         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
2595         index.
2596         (lto_get_builtin_tree): Don't read index, use
2597         lto_streamer_cache_append.
2598         (lto_read_tree): Adjust call to lto_materialize_tree.
2599
2600         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
2601         don't use function calls in arguments to MIN.
2602
2603         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
2604         twice.
2605
2606         * gimple.c (gimple_type_leader_entry): Mark deletable.
2607
2608 2011-04-03  Alan Modra  <amodra@gmail.com>
2609
2610         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
2611
2612 2011-04-03  Michael Matz  <matz@suse.de>
2613
2614         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
2615         an integer.
2616         * tree.h (tree_decl_non_common.vindex): Adjust comment.
2617
2618 2011-04-03  Michael Matz  <matz@suse.de>
2619
2620         * cgraphbuild.c (record_reference): Canonicalize constructor values.
2621         * gimple-fold.c (canonicalize_constructor_val): Accept being called
2622         without function context.
2623         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
2624         current_function_decl and cfun.
2625
2626 2011-04-03  Michael Matz  <matz@suse.de>
2627
2628         * tree.c (decl_init_priority_insert): Don't create entry for
2629         default priority.
2630         (decl_fini_priority_insert): Ditto.
2631         (fields_compatible_p, find_compatible_field): Remove.
2632         * tree.h (fields_compatible_p, find_compatible_field): Remove.
2633         * gimple.c (gimple_compare_field_offset): Adjust block comment.
2634
2635 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
2636
2637         * combine.c (try_combine): Remove useless local variable.
2638
2639 2011-04-03  Richard Guenther  <rguenther@suse.de>
2640             Ira Rosen  <ira.rosen@linaro.org>
2641
2642         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
2643         non-variable offsets and compare the remaining bases of the two
2644         accesses instead of looking for exact same data-ref.
2645
2646 2011-04-02  Kai Tietz  <ktietz@redhat.com>
2647
2648         PR target/48416
2649         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
2650
2651         * i386.c (ix86_is_msabi_thiscall): New helper function.
2652         (ix86_is_type_thiscall): New helper function.
2653         (ix86_comp_type_attributes): Handle thiscall for method-functions
2654         special.
2655         (init_cumulative_args): Likewise.
2656         (find_drap_reg): Likewise.
2657         (ix86_static_chain): Likewise.
2658         (x86_this_parameter): Likewise.
2659         (x86_output_mi_thunk): Likewise.
2660
2661 2011-04-01  Olivier Hainque  <hainque@adacore.com>
2662             Nicolas Setton  <setton@adacore.com>
2663             Eric Botcazou  <ebotcazou@adacore.com>
2664
2665         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
2666         (add_gnat_descriptive_type_attribute): New function.
2667         (gen_array_type_die): Call it.
2668         (gen_enumeration_type_die): Likewise.
2669         (gen_struct_or_union_type_die): Likewise.
2670         (modified_type_die): Likewise.
2671         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
2672         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
2673         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
2674
2675 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
2676
2677         PR bootstrap/48148
2678         * dwarf2out.c (resolve_addr): Don't call force_decl_die
2679         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
2680
2681         Revert:
2682         2011-03-17  Richard Guenther  <rguenther@suse.de>
2683
2684         PR bootstrap/48148
2685         * lto-cgraph.c (input_overwrite_node): Clear the abstract
2686         origin for decls in other ltrans units.
2687         (input_varpool_node): Likewise.
2688
2689 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
2690
2691         PR middle-end/48335
2692         * expr.c (expand_assignment): Handle all possibilities
2693         if TO_RTX is CONCAT.
2694         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
2695         (store_split_bit_field): If SUBREG_REG (op0) or
2696         op0 itself has smaller mode than word, return it
2697         for offset 0 and const0_rtx for out-of-bounds stores.
2698         If word is const0_rtx, skip it.
2699
2700 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
2701
2702         * config/h8300/h8300.c (print_operand_address): Rename to...
2703         (h8300_print_operand_address): ...this. Make static. Adjust comments.
2704         Call h8300_print_operand and h8300_print_operand_address instead of
2705         print_operand and print_operand_address. Declare.
2706         (print_operand): Renake to...
2707         (h8300_print_operand): ...this. Make static. Adjust comments.
2708         Call h8300_print_operand instead of print_operand. Declare.
2709         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
2710         (h8300_register_move_cost): Likewise.
2711         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
2712         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
2713         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
2714         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
2715         * config/h8300/h8300-protos.h (print_operand): Delete.
2716         (print_operand_address): Delete.
2717
2718 2011-04-01  Richard Henderson  <rth@redhat.com>
2719
2720         PR 48400
2721         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
2722         in strict mode before dwarf4.  Re-order tests to early out
2723         before switching sections.
2724
2725 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
2726
2727         * config/h8300/constraints.md: New file.
2728         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
2729         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
2730         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
2731         * config/h8300/predicates.md (bit_operand): Likewise.
2732         (incdec_operand): Use satisfies_constraint_M and
2733         satisfies_constraint_O.  Don't use C code block.
2734         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
2735         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
2736         (compute_mov_length): Use satisfies_constraint_G.
2737         (fix_bit_operand): Use satisfies_constraint_U.
2738         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
2739         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
2740         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
2741         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
2742         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
2743         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
2744         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
2745         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
2746         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
2747         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
2748         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
2749         (EXTRA_MEMORY_CONSTRAINT): Delete.
2750
2751 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
2752             Michael Meissner  <meissner@linux.vnet.ibm.com>
2753
2754         PR target/48262
2755         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
2756         operands, as per the specifications.
2757
2758         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
2759         (vec_extract_evenv4sf): Ditto.
2760         (vec_extract_evenv8hi): Ditto.
2761         (vec_extract_evenv16qi): Ditto.
2762         (vec_extract_oddv4si): Ditto.
2763
2764 2011-03-31  Mark Wielaard  <mjw@redhat.com>
2765
2766         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
2767         high_pc attribute if the CU has no associated code. Only output
2768         DW_AT_entry_pc for CU if not generating strict dwarf and
2769         dwarf_version < 4.
2770
2771 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
2772
2773         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
2774         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
2775         out of ...
2776         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
2777         * final.c (final_start_function): Call the new function rather
2778         than using a NULL argument for dwarf2out_frame_debug.
2779
2780         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
2781         that contains the prologue.
2782
2783         * haifa-sched.c (queue_insn): New arg REASON.  All callers
2784         changed.  Print it in debugging output.
2785
2786         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
2787
2788         * sched-ebb.c (begin_schedule_ready): Remove second argument.
2789         Split most of the code into...
2790         (begin_move_insn): ... here.  New function.
2791         (ebb_sched_info): Add a pointer to it.
2792         * haifa-sched.c (scheduled_insns): New static variable.
2793         (sched_extend_ready_list): Allocate it.
2794         (schedule_block): Use it to record the order of scheduled insns.
2795         Perform RTL changes to move insns only after all scheduling
2796         decisions have been made.
2797         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
2798         begin_move_insn field.
2799         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
2800         * sched-int.h (struct haifa_sched_info): Remove second argument
2801         from begin_schedule_ready hook.  Add new member begin_move_insn.
2802         * sched-rgn.c (begin_schedule_ready): Remove second argument.
2803         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
2804
2805         * haifa-sched.c (prune_ready_list): New function, broken out of
2806         schedule_block.
2807         (schedule_block): Use it.
2808
2809 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2810
2811         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
2812
2813 2011-04-01  Kai Tietz  <ktietz@redhat.com>
2814
2815         * config.gcc (*-*-mingw*): Allow as option the
2816         posix threading model.
2817         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
2818         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
2819         definition.
2820         (CPP_SPEC): Add pthread/no-pthread handling.
2821         (LIB_SPEC): Likewise.
2822         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
2823         (LIB_SPEC): Likewise.
2824         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
2825         flag to pass -pthread option for shared libgcc build.
2826         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
2827         for shared libgcc build.
2828         * config/i386/t-mingw-pthread: New file.
2829         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
2830         New define to enable use of library pthread by default.
2831         * config/i386/mingw.opt (pthread): New driver option.
2832         (no-pthread): New driver option.
2833         * config/i386/cygming.opt: Make sure trailing empty line is retained.
2834         * config/i386/mingw-w64.opt: Likewise.
2835
2836 2011-04-01  Gary Funck <gary@intrepid.com>
2837
2838         * c-decl.c (grokdeclarator): Fix formatting.
2839
2840 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
2841
2842         * expr.c (emit_block_move_via_movmem): Use n_generator_args
2843         instead of n_operands.
2844         (set_storage_via_setmem): Likewise.
2845         * optabs.c (maybe_gen_insn): Likewise.
2846         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
2847         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
2848         (mips_expand_builtin_direct): Likewise.
2849         * config/spu/spu.c (expand_builtin_args): Likewise.
2850
2851 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
2852
2853         * recog.h (insn_data_d): Add n_generator_args.
2854         * genoutput.c (data): Likewise.
2855         (output_insn_data): Print it.
2856         (max_opno, num_dups): Delete.
2857         (scan_operands): Just fill in "d->operand[...]".
2858         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
2859
2860 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
2861
2862         * gensupport.h (pattern_stats): New structure.
2863         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
2864         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
2865         (max_operand_1, max_operand_vec): Delete.
2866         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
2867
2868 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
2869
2870         * emit-rtl.c (emit_pattern_after_setloc): New function.
2871         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
2872         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
2873         (emit_pattern_after): New function.
2874         (emit_insn_after, emit_jump_insn_after): Call it.
2875         (emit_call_insn_after, emit_debug_insn_after): Likewise.
2876         (emit_pattern_before_setloc): New function.
2877         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
2878         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
2879         Likewise.
2880         (emit_pattern_before): New function.
2881         (emit_insn_before, emit_jump_insn_before): Call it.
2882         (emit_call_insn_before, emit_debug_insn_before): Likewise.
2883
2884 2011-03-31  Richard Henderson  <rth@redhat.com>
2885
2886         * dwarf2out.c (dw_separate_line_info_ref): Remove.
2887         (dw_separate_line_info_entry): Remove.
2888         (enum dw_line_info_opcode): New.
2889         (dw_line_info_entry): Use it.
2890         (dw_line_info_table, dw_line_info_table_p): New.
2891         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
2892         (line_info_table, line_info_label_num): Remove.
2893         (line_info_table_in_use): Remove.
2894         (separate_line_info_table): Remove.
2895         (separate_line_info_table_allocated): Remove.
2896         (separate_line_info_table_in_use): Remove.
2897         (LINE_INFO_TABLE_INCREMENT): Remove.
2898         (line_info_label_num): New.
2899         (cur_line_info_table): New.
2900         (text_section_line_info, cold_text_section_line_info): New.
2901         (separate_line_info): New.
2902         (SEPARATE_LINE_CODE_LABEL): Remove.
2903         (print_dwarf_line_table): Remove.
2904         (debug_dwarf): Don't dump it.
2905         (output_one_line_info_table): New.
2906         (output_line_info): Use it.
2907         (new_line_info_table): New.
2908         (set_cur_line_info_table): New.
2909         (dwarf2out_switch_text_section): Use it.
2910         (dwarf2out_begin_function): Likewise.
2911         (push_dw_line_info_entry): New.
2912         (dwarf2out_source_line): Rewrite for new line info tables.
2913         (dwarf2out_init): Remove dead initailizations.
2914
2915 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
2916
2917         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
2918         various flags.
2919         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
2920         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
2921         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
2922         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
2923         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
2924         * opt-functions.awk (flag_init, switch_bit_fields): New.
2925         (switch_flags): Don't handle flags moved to bit-fields.  Don't
2926         generate CL_MISSING_OK or CL_SAVE.
2927         * optc-gen.awk: Update to generate bit-field output as well as
2928         flags field.
2929         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
2930         bit-field instead of CL_REJECT_DRIVER flag.
2931         * opts-common.c (generate_canonical_option,
2932         decode_cmdline_option): Use bit-fields instead of CL_* flags.
2933         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
2934         instead of CL_REJECT_NEGATIVE flag.
2935         * toplev.c (print_switch_values): Use cl_report bit-field instead
2936         of CL_REPORT flag.
2937
2938 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
2939
2940         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
2941         a zero minimum index only if it is redundant.
2942
2943 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
2944
2945         PR rtl-optimization/48381
2946         * ira-color.c (assign_hard_reg): Use hard reg set intersection
2947         instead of ira_class_hard_reg_index for calculating conflicting
2948         hard registers.
2949
2950 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
2951
2952         * cprop.c: Clean up hash table building.
2953         (reg_avail_info): Remove.
2954         (oprs_available_p): Remove.
2955         (record_last_reg_set_info): Remove.
2956         (record_last_set_info): Remove.
2957         (reg_available_p): New function.
2958         (gcse_constant_p): Do not treat unfolded conditions as constants.
2959         (make_set_regs_unavailable): New function.
2960         (hash_scan_set): Simplify with new reg_available_p.
2961         (compute_hash_table_work): Traverse insns stream only once.
2962         Do not compute reg_avail_info. Traverse insns in reverse order.
2963         Record implicit sets after recording explicit sets from the block.
2964
2965 2011-03-31  Michael Matz  <matz@suse.de>
2966
2967         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
2968
2969 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
2970
2971         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
2972         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
2973         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
2974         (h8300_mode_dependent_address_p): New function.
2975         (h8300_get_index): Make static.
2976
2977 2011-03-31  Jeff Law  <law@redhat.com>
2978
2979         * reload1.c (elimination_effects): Fix typo in recent change.
2980
2981         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
2982         typo potentially leading to null pointer dereference.
2983
2984         * caller-save.c (new_saved_hard_reg): Eliminate return value.
2985         (setup_save_areas): Corresponding changes to avoid useless
2986         assignments.
2987
2988         * jump.c (reversed_comparison_code_parts): Avoid successive return
2989         statements when REVERSE_CONDITION is defined.
2990
2991         * expr.c (expand_assignment): Avoid useless assignments.
2992         (expand_expr_real_1): Likewise.
2993         (expand_expr_real_2): Avoid useless statements.
2994
2995         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
2996
2997         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
2998
2999         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
3000         statements.
3001
3002         * stmt.c (expand_expr_stmt): Avoid useless assignment.
3003
3004 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
3005
3006         PR target/47109
3007         * doc/tm.texi.in (TARGET_VERSION): Remove.
3008         * doc/tm.texi: Regenerate.
3009         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
3010         * collect2.c (main): Don't use TARGET_VERSION.
3011         * mips-tdump.c (main): Don't use TARGET_VERSION.
3012         * mips-tfile.c (main): Don't use TARGET_VERSION.
3013         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
3014         * config/rs6000/vxworksae.h: Remove.
3015         * config/alpha/alpha.h (TARGET_VERSION): Remove.
3016         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
3017         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
3018         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
3019         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
3020         * config/arm/arm.h (TARGET_VERSION): Remove.
3021         * config/arm/coff.h (TARGET_VERSION): Remove.
3022         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
3023         * config/arm/elf.h (TARGET_VERSION): Remove.
3024         * config/arm/freebsd.h (TARGET_VERSION): Remove.
3025         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
3026         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
3027         * config/arm/pe.h (TARGET_VERSION): Remove.
3028         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
3029         * config/arm/semi.h (TARGET_VERSION): Remove.
3030         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
3031         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
3032         * config/arm/vxworks.h (TARGET_VERSION): Remove.
3033         * config/avr/avr.h (TARGET_VERSION): Remove.
3034         * config/bfin/bfin.h (TARGET_VERSION): Remove.
3035         * config/fr30/fr30.h (TARGET_VERSION): Remove.
3036         * config/frv/frv.h (TARGET_VERSION): Remove.
3037         * config/h8300/h8300.h (TARGET_VERSION): Remove.
3038         * config/i386/cygwin.h (TARGET_VERSION): Remove.
3039         * config/i386/darwin.h (TARGET_VERSION): Remove.
3040         * config/i386/darwin64.h (TARGET_VERSION): Remove.
3041         * config/i386/djgpp.h (TARGET_VERSION): Remove.
3042         * config/i386/freebsd.h (TARGET_VERSION): Remove.
3043         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
3044         * config/i386/gnu.h (TARGET_VERSION): Remove.
3045         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
3046         * config/i386/i386elf.h (TARGET_VERSION): Remove.
3047         * config/i386/linux.h (TARGET_VERSION): Remove.
3048         * config/i386/linux64.h (TARGET_VERSION): Remove.
3049         * config/i386/lynx.h (TARGET_VERSION): Remove.
3050         * config/i386/mingw32.h (TARGET_VERSION): Remove.
3051         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
3052         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
3053         * config/i386/netware.h (TARGET_VERSION): Remove.
3054         * config/i386/nto.h (TARGET_VERSION): Remove.
3055         * config/i386/openbsd.h (TARGET_VERSION): Remove.
3056         * config/i386/vxworks.h (TARGET_VERSION): Remove.
3057         * config/ia64/elf.h (TARGET_VERSION): Remove.
3058         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
3059         * config/ia64/hpux.h (TARGET_VERSION): Remove.
3060         * config/ia64/linux.h (TARGET_VERSION): Remove.
3061         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
3062         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
3063         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
3064         * config/lm32/lm32.h (TARGET_VERSION): Remove.
3065         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
3066         * config/m32c/m32c.h (TARGET_VERSION): Remove.
3067         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
3068         * config/m32r/m32r.h (TARGET_VERSION): Remove.
3069         * config/m68k/linux.h (TARGET_VERSION): Remove.
3070         * config/m68k/m68k.h (TARGET_VERSION): Remove.
3071         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
3072         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
3073         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
3074         * config/mep/mep.h (TARGET_VERSION): Remove.
3075         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
3076         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
3077         * config/mips/iris6.h (MACHINE_TYPE): Remove.
3078         * config/mips/linux.h (TARGET_VERSION): Remove.
3079         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
3080         * config/mips/vxworks.h (TARGET_VERSION): Remove.
3081         * config/mmix/mmix.h (TARGET_VERSION): Remove.
3082         * config/mn10300/linux.h (TARGET_VERSION): Remove.
3083         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
3084         * config/pa/pa.h (TARGET_VERSION): Remove.
3085         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
3086         * config/picochip/picochip.h (TARGET_VERSION): Remove.
3087         * config/rs6000/aix.h (TARGET_VERSION): Remove.
3088         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
3089         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
3090         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
3091         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
3092         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
3093         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
3094         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
3095         * config/rs6000/linux.h (TARGET_VERSION): Remove.
3096         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
3097         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
3098         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
3099         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
3100         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
3101         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
3102         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
3103         * config/s390/linux.h (TARGET_VERSION): Remove.
3104         * config/s390/s390.h (TARGET_VERSION): Remove.
3105         * config/s390/tpf.h (TARGET_VERSION): Remove.
3106         * config/score/score.h (TARGET_VERSION): Remove.
3107         * config/sh/linux.h (TARGET_VERSION): Remove.
3108         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
3109         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
3110         * config/sh/sh.h (TARGET_VERSION): Remove.
3111         * config/sh/sh64.h (TARGET_VERSION): Remove.
3112         * config/sh/superh.h (TARGET_VERSION): Remove.
3113         * config/sh/vxworks.h (TARGET_VERSION): Remove.
3114         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
3115         * config/sparc/linux.h (TARGET_VERSION): Remove.
3116         * config/sparc/linux64.h (TARGET_VERSION): Remove.
3117         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
3118         TARGET_NAME32, TARGET_NAME): Remove.
3119         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
3120         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
3121         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
3122         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
3123         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
3124         * config/spu/spu.h (TARGET_VERSION): Remove.
3125         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
3126         * config/v850/v850.h (TARGET_VERSION): Remove.
3127         * config/vax/linux.h (TARGET_VERSION): Remove.
3128         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
3129         * config/xtensa/elf.h (TARGET_VERSION): Remove.
3130         * config/xtensa/linux.h (TARGET_VERSION): Remove.
3131
3132 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
3133
3134         PR target/48142
3135         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
3136         frame-related from frame-unrelated adjustments to the stack pointer.
3137
3138 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
3139
3140         * common.opt (fdebug-types-section): Move earlier.
3141         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
3142
3143 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
3144
3145         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
3146         var.
3147
3148 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
3149
3150         * tree.h (CASE_CHAIN): Define.
3151         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
3152         (gimple_redirect_edge_and_branch): Likewise.
3153
3154 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
3155
3156         PR middle-end/48367
3157         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
3158         calculation.
3159
3160 2011-03-30  Jeff Law  <law@redhat.com>
3161
3162         * PR bootstrap/48371
3163         * reload1.c (reload): Fix botch in last change.
3164
3165         * reload.h (struct reload): Fix typo introduced in last change.
3166
3167 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
3168
3169         * config/arm/arm.opt (mhard-float, msoft-float): Mark
3170         Undocumented.  Remove help text.
3171         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
3172         -mhard-float.
3173
3174 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
3175
3176         * doc/options.texi (NegativeAlias): Document.
3177         (Alias): Mention NegativeAlias.
3178         * opt-functions.awk: Handle NegativeAlias.
3179         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
3180         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
3181         * opts.h (CL_NEGATIVE_ALIAS): Define.
3182         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
3183         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
3184         OPT_mspe_.
3185         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
3186         Alias entries.
3187         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
3188         mno-spe and mno-isel instead of mspe=no and -misel=no.
3189
3190 2011-03-29  Mark Wielaard  <mjw@redhat.com>
3191
3192         * common.opt (fdebug-types-section): New flag.
3193         * doc/invoke.texi: Document new -fno-debug-types-section flag.
3194         * dwarf2out.c (use_debug_types): New define.
3195         (struct die_struct): Mark die_id with GTY desc use_debug_types.
3196         (print_die): Guard output of type unit signatures using
3197         use_debug_types.
3198         (build_abbrev_table): Replace assert of dwarf_version >= 4
3199         with assert on use_debug_types.
3200         (size_of_die): Likewise.
3201         (unmark_dies): Likewise.
3202         (value_format): Decide AT_ref_external form on use_debug_types.
3203         (output_die): Replace dwarf_version version check guard with
3204         use_debug_types where appropriate.
3205         (modified_type_die): Likewise.
3206         (gen_reference_type_die): Likewise.
3207         (dwarf2out_start_source_file): Likewise.
3208         (dwarf2out_end_source_file): Likewise.
3209         (prune_unused_types_walk_attribs): Likewise.
3210         (dwarf2out_finish): Likewise.
3211
3212 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
3213
3214         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
3215
3216 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
3217
3218         PR rtl-optimization/48332
3219         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
3220         mode of input operand N and modeN to its actual mode.
3221
3222 2011-03-30  Jeff Law  <law@redhat.com>
3223
3224         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
3225         define accessor macro.
3226         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
3227         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
3228         (reg_equiv_init): Likewise.
3229         (reg_equivs_size): New variable.
3230         (reg_equiv_init_size): Remove.
3231         (allocate_initial_values): Move prototype to here from....
3232         * integrate.h (allocate_initial_values): Remove prototype.
3233         * integrate.c: Include reload.h.
3234         (allocate_initial_values): Corresponding changes.
3235         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
3236         (fix_reg_equiv_init, no_equiv): Corresponding changes.
3237         (update_equiv_regs): Corresponding changes.
3238         (ira): Corresponding changes.
3239         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
3240         (push_secondary_reload): Corresponding changes.
3241         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
3242         (make_memloc, find_reloads_address): Corresponding changes.
3243         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
3244         (find_reloads_address_1): Corresponding changes.
3245         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
3246         (refers_to_regno_for_reload_p): Corresponding changes.
3247         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
3248         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
3249         * reload1.c: Include ggc.h.
3250         (grow_reg_equivs): New function.
3251         (replace_pseudos_in, reload): Corresponding changes.
3252         (calculate_needs_all_insns, alter_regs): Corresponding changes.
3253         (eliminate_regs_1, elimination_effects): Corresponding changes.
3254         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
3255         (delete_output_reload): Likewise.
3256         * caller-save.c (mark_referenced_regs): Corresponding changes.
3257         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
3258         * frv/predicates.md (frv_load_operand): Corresponding changes.
3259         * microblaze/microblaze.c (double_memory_operand): Corresponding
3260         changes.
3261         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
3262         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
3263         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
3264         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
3265         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
3266         changes.
3267         * pa/pa.c (emit_move_sequence): Corresponding changes.
3268         * vax/vax.c (nonindexed_address_p): Corresponding changes.
3269
3270 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
3271
3272         PR target/47551
3273         * config/arm/arm.c (coproc_secondary_reload_class): Handle
3274         structure modes.  Don't check neon_vector_mem_operand for
3275         vector or structure modes.
3276
3277 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
3278             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3279
3280         PR target/43590
3281         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
3282         operand 1 and reshuffle the operands to match.
3283         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
3284
3285 2011-03-30  Christian Schüler  <cschueler@gmx.de>
3286
3287         PR driver/48208
3288         * config/c.opt (F): Added 'Driver' to -F option.
3289
3290         PR driver/48260
3291         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
3292           handler function.
3293         * config/darwin.opt: Added '-arch' option.
3294
3295 2011-03-30  Nick Clifton  <nickc@redhat.com>
3296
3297         * config/rx/rx.md: Add peepholes and patterns to combine
3298         extending loads and simple arithmetic instructions.
3299         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
3300         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
3301         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
3302         modes to use pre-decrement and post-increment addressing.
3303         (rx_is_restricted_memory_address): Add range checking of REG+INT
3304         addresses.
3305         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
3306         (rx_memory_move_cost): Adjust cost of stores.
3307         (rx_adjust_insn_length): New function.
3308
3309 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
3310
3311         PR c/48305
3312         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
3313         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
3314         matching arg00/arg01 types.
3315
3316 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
3317
3318         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
3319         last_location to UNKNOWN_LOCATION.
3320
3321 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
3322
3323         PR target/48349
3324         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
3325         FLOAT_SSE_REGS.
3326
3327 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
3328             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3329
3330         PR bootstrap/48337
3331         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
3332         Init(PROCESSOR_V7).
3333         (sparc_cpu): Likewise.
3334         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
3335         PROCESSOR_V7.
3336
3337 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
3338
3339         PR target/48336
3340         PR middle-end/48342
3341         PR rtl-optimization/48345
3342         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
3343         hard regs for given mode from profitable regs when doing secondary
3344         allocation.
3345
3346 2011-03-29  Jeff Law  <law@redhat.com>
3347
3348         PR bootstrap/48327
3349         * tree-ssa-threadupdate.c (struct redirection_data): Remove
3350         do_not_duplicate field.
3351         (lookup_redirection_data): Corresponding changes.
3352         (create_duplicates): Always create a template block.
3353         (redirect_edges): Remove code which reused the original block
3354         when it was going to become unreachable code.
3355         (thread_block): Don't set do_not_duplicate field.
3356
3357 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
3358
3359         * lto-opts.c (register_user_option_p, lto_register_user_option):
3360         Make type argument unsigned.
3361         * lto-streamer.h (lto_register_user_option): Make type argument
3362         unsigned.
3363         * opth-gen.awk: Make CL_* macros unsigned.
3364         * opts-common.c (find_opt): Make lang_mask argument unsigned.
3365         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
3366         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
3367         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
3368         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
3369         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
3370         (find_opt): Make lang_mask argument unsigned.
3371
3372 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
3373
3374         PR rtl-optimization/48331
3375         PR rtl-optimization/48334
3376         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
3377         for any used algorithm.
3378
3379 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
3380
3381         * ira-conflicts.c (build_object_conflicts): Add unused attribute
3382         to parent_max.
3383
3384 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
3385
3386         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
3387         (alpha_option_override): Don't set alpha_sr_alias_set.
3388         (emit_frame_store_1): Use gen_frame_mem rather than calling
3389         set_mem_alias_set.
3390         (alpha_expand_epilogue): Ditto.
3391
3392 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
3393
3394         PR tree-optimization/48290
3395         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
3396         vectorization, check that relevant phis in the basic block after
3397         the inner loop are really inner loop's exit phis.
3398
3399 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
3400
3401         PR debug/48190
3402         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
3403         (cached_dw_loc_list_def): New structure.
3404         (cached_dw_loc_list): New typedef.
3405         (cached_dw_loc_list_table): New variable.
3406         (cached_dw_loc_list_table_hash): New function.
3407         (cached_dw_loc_list_table_eq): Likewise.
3408         (add_location_or_const_value_attribute): Take a bool cache_p.
3409         Cache the list when the parameter is true.
3410         (gen_formal_parameter_die): Update caller.
3411         (gen_variable_die): Likewise.
3412         (dwarf2out_finish): Likewise.
3413         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
3414         while generating debug info for the decl.
3415         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
3416         (dwarf2out_init): Initialize cached_dw_loc_list_table.
3417         (resolve_addr): Cache the result of resolving a chain of
3418         location lists.
3419
3420 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
3421
3422         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
3423         conflict object hard regset nodes have intersecting hard reg sets.
3424
3425         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
3426         after regstat_init_n_sets_and_refs.
3427
3428         * ira.c: Add more comments at the top.
3429         (setup_stack_reg_pressure_class, setup_pressure_classes):
3430         Add comments how we compute the register pressure classes.
3431         (setup_allocno_and_important_classes): Add more comments.
3432         (setup_class_translate_array, reorder_important_classes)
3433         (setup_reg_class_relations): Add comments.
3434
3435         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
3436         start of the file.
3437
3438         * ira-color.c: Add 2011 to the Copyright line.
3439         (assign_hard_reg):  Add more comments.
3440         (improve_allocation): Ditto.
3441
3442         * ira-costs.c: Add 2011 to the Copyright line.
3443         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
3444         comments.
3445         (setup_regno_cost_classes_by_mode): Ditto.
3446
3447         Initial patches from ira-improv branch:
3448
3449         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
3450
3451         * ira-build.c (ira_create_object): Remove initialization of
3452         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
3453         (ira_create_allocno): Remove initialization of
3454         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
3455         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
3456         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
3457         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
3458         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
3459         Initialize ALLOCNO_ADD_DATA.
3460         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
3461         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
3462         ALLOCNO_REG.
3463         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
3464         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
3465
3466         * ira.c (ira_reallocate): Remove.
3467         (setup_pressure_classes): Call
3468         ira_init_register_move_cost_if_necessary.  Use
3469         ira_register_move_cost instead of ira_get_register_move_cost.
3470         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
3471         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
3472
3473         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
3474         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
3475         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
3476         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
3477         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
3478         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
3479         Fix formatting.
3480         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
3481         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
3482         (struct allocno_color_data): New.
3483         (allocno_color_data_t): New typedef.
3484         (allocno_color_data): New definition.
3485         (ALLOCNO_COLOR_DATA): New macro.
3486         (struct object_color_data): New.
3487         (object_color_data_t): New typedef.
3488         (object_color_data): New definition.
3489         (OBJECT_COLOR_DATA): New macro.
3490         (update_copy_costs, calculate_allocno_spill_cost): Call
3491         ira_init_register_move_cost_if_necessary.  Use
3492         ira_register_move_cost instead of ira_get_register_move_cost.
3493         (move_spill_restore, update_curr_costs): Ditto.
3494         (allocno_spill_priority): Make it inline.
3495         (color_pass): Allocate and free allocno_color_dat and object_color_data.
3496         (struct coalesce_data, coalesce_data_t): New.
3497         (allocno_coalesce_data): New definition.
3498         (ALLOCNO_COALESCE_DATA): New macro.
3499         (merge_allocnos, coalesced_allocno_conflict_p): Use
3500         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
3501         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
3502         (coalesce_allocnos): Ditto.
3503         (setup_coalesced_allocno_costs_and_nums): Ditto.
3504         (collect_spilled_coalesced_allocnos): Ditto.
3505         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
3506         (setup_slot_coalesced_allocno_live_ranges): Ditto.
3507         (coalesce_spill_slots): Ditto.
3508         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
3509         free allocno_coalesce_data.
3510
3511         * ira-conflicts.c: Fix formatting.
3512         (process_regs_for_copy): Call
3513         ira_init_register_move_cost_if_necessary.  Use
3514         ira_register_move_cost instead of ira_get_register_move_cost.
3515         (build_object_conflicts): Optimize.
3516
3517         * ira-costs.c (record_reg_classes): Optimize.  Call
3518         ira_init_register_move_cost_if_necessary.  Use
3519         ira_register_move_cost, ira_may_move_in_cost, and
3520         ira_may_move_out_cost instead of ira_get_register_move_cost and
3521         ira_get_may_move_cost.
3522         (record_address_regs): Ditto.
3523         (scan_one_insn): Optimize.
3524         (find_costs_and_classes): Optimize.
3525         (process_bb_node_for_hard_reg_moves): Call
3526         ira_init_register_move_cost_if_necessary.  Use
3527         ira_register_move_cost instead of ira_get_register_move_cost.
3528
3529         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
3530         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
3531         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
3532         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
3533         definitions.
3534         (ira_initiate_emit_data, ira_finish_emit_data)
3535         (create_new_allocno): New functions.
3536         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
3537         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
3538         Use ira_register_move_cost instead of ira_get_register_move_cost.
3539
3540         * ira-int.h: Fix some comments.
3541         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
3542         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
3543         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
3544         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
3545         add_data.
3546         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
3547         bitfield after mode.  Make hard_regno a short int.  Make
3548         hard_regno short.  Remove first_coalesced_allocno and
3549         next_coalesced_allocno.  Move mem_optimized_dest_p,
3550         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
3551         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
3552         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
3553         temp, colorable_p.  Add new member add_data.
3554         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
3555         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
3556         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
3557         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
3558         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
3559         (ALLOCNO_ADD_DATA): New macro.
3560         (ira_emit_data_t): New typedef.
3561         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
3562         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
3563         from struct ira_allocno.
3564         (ALLOCNO_EMIT_DATA): New macro.
3565         (ira_allocno_emit_data, allocno_emit_reg): New.
3566         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
3567         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
3568         (OBJECT_ADD_DATA): New macro.
3569         (ira_reallocate): Remove.
3570         (ira_initiate_emit_data, ira_finish_emit_data): New.
3571         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
3572         (ira_init_register_move_cost_if_necessary): New.
3573         (ira_object_conflict_iter_next): Merge into
3574         ira_object_conflict_iter_cond.
3575         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
3576
3577         * ira-live.c (process_single_reg_class_operands): Call
3578         ira_init_register_move_cost_if_necessary.  Use
3579         ira_register_move_cost instead of ira_get_register_move_cost.
3580
3581         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
3582
3583         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
3584
3585         * ira-costs.c: Fix formatting.
3586         (cost_classes, cost_classes_num): Remove.
3587         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
3588         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
3589         (cost_classes_del, cost_classes_htab): New.
3590         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
3591         (initiate_regno_cost_classes, setup_cost_classes): New.
3592         (setup_regno_cost_classes_by_aclass): New.
3593         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
3594         (record_reg_classes): Use regno_cost_classes instead of
3595         cost_classes.  Move checking opposite operand up.
3596         (record_address_regs): Use regno_cost_classes
3597         instead of cost_classes.
3598         (scan_one_insn): Ditto.  Use always general register.
3599         (print_allocno_costs): Use regno_cost_classes instead of
3600         cost_classes.
3601         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
3602         (find_costs_and_classes): Set up cost classes for each registers.
3603         Use also their mode for this.  Use regno_cost_classes instead of
3604         cost_classes.
3605         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
3606         cost_classes.
3607         (free_ira_costs, ira_init_costs): Don't use cost_classes.
3608         (ira_costs, ira_set_pseudo_classes): Call
3609         initiate_regno_cost_classes and finish_regno_cost_classes.
3610
3611         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
3612
3613         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
3614
3615         * target.def (ira_cover_classes): Remove.
3616
3617         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
3618
3619         * doc/tm.texi.in: Ditto.
3620
3621         * ira-conflicts.c: Remove mentioning cover classes from the file.
3622         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
3623         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
3624
3625         * targhooks.c (default_ira_cover_classes): Remove.
3626
3627         * targhooks.h (default_ira_cover_classes): Ditto.
3628
3629         * haifa-sched.c: Remove mentioning cover classes from the file.
3630         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
3631         ira_pressure_classes and ira_pressure_classes_num instead of
3632         ira_reg_class_cover_size and ira_reg_class_cover.  Use
3633         sched_regno_pressure_class instead of sched_regno_cover_class.
3634         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
3635         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
3636
3637         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
3638         classes from the file.
3639         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
3640         (struct object_hard_regs, struct object_hard_regs_node): New.
3641         (struct ira_object): New members profitable_hard_regs,
3642         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
3643         (struct ira_allocno): Rename cover_class to aclass.  Rename
3644         cover_class_cost and updated_cover_class_cost to class_cost and
3645         updated_class_cost.  Remove splay_removed_p and
3646         left_conflict_size.  Add new members colorable_p.
3647         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
3648         (ALLOCNO_COLORABLE_P): New macro.
3649         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
3650         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
3651         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
3652         (OBJECT_...): Rename parameter C to O.
3653         (OBJECT_PROFITABLE_HARD_REGS): New macro.
3654         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
3655         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
3656         (struct target_ira_int): New members x_ira_max_memory_move_cost,
3657         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
3658         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
3659         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
3660         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
3661         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
3662         x_ira_reg_class_subunion.
3663         (ira_max_memory_move_cost, ira_max_register_move_cost)
3664         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
3665         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
3666         (ira_important_class_nums, ira_reg_class_superunion): New macros.
3667         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
3668         (ira_reg_class_union): Rename to ira_reg_class_subunion.
3669         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
3670         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
3671         (ira_tune_allocno_costs_and_cover_classes): Rename to
3672         ira_tune_allocno_costs.
3673         (ira_debug_hard_regs_forest): New.
3674         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
3675         (ira_object_conflict_iter_next): Fix comments.
3676         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
3677         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
3678         cover_class to aclass.
3679         (ira_allocate_and_accumulate_costs): Ditto.
3680         (ira_allocate_and_set_or_copy_costs): Ditto.
3681
3682         * opts.c (decode_options): Remove ira_cover_class check.
3683
3684         * ira-color.c: Remove mentioning cover classes from the file.  Use
3685         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
3686         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
3687         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
3688         (splay-tree.h): Remove include.
3689         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
3690         before copy_freq_compare_func.
3691         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
3692         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
3693         New definitions.
3694         (hard_regs_roots, hard_regs_node_vec): Ditto.
3695         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
3696         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
3697         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
3698         (create_new_object_hard_regs_node): Ditto.
3699         (add_new_object_hard_regs_node_to_forest): Ditto.
3700         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
3701         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
3702         Ditto.
3703         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
3704         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
3705         (remove_unused_object_hard_regs_nodes): Ditto.
3706         (enumerate_object_hard_regs_nodes): Ditto.
3707         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
3708         (object_hard_regs_subnode_t): Ditto.
3709         (struct object_hard_regs_subnode): Ditto.
3710         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
3711         (setup_object_hard_regs_subnode_index): Ditto.
3712         (get_object_hard_regs_subnodes_num): Ditto.
3713         (form_object_hard_regs_nodes_forest): Ditto.
3714         (finish_object_hard_regs_nodes_tree): Ditto.
3715         (finish_object_hard_regs_nodes_forest): Ditto.
3716         (allocnos_have_intersected_live_ranges_p): Rename to
3717         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
3718         (pseudos_have_intersected_live_ranges_p): Rename to
3719         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
3720         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
3721         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
3722         (update_copy_costs): Remove assert.  Skip cost update if the hard
3723         reg does not belong the class.
3724         (assign_hard_reg): Process only profitable hard regs.
3725         (uncolorable_allocnos_num): Make it scalar.
3726         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
3727         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
3728         and ira_reg_class_max_nregs.
3729         (bucket_allocno_compare_func): Check frequency first.
3730         (sort_bucket): Add compare function as a parameter.
3731         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
3732         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
3733         (push_allocno_to_stack): Rewrite for checking new allocno
3734         colorability.
3735         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
3736         (push_only_colorable): Pass new parameter to sort_bucket.
3737         (push_allocno_to_spill): Remove.
3738         (allocno_spill_priority_compare): Make it inline and rewrite.
3739         (splay_tree_allocate, splay_tree_free): Remove.
3740         (allocno_spill_sort_compare): New function.
3741         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
3742         build and use splay tree.  Choose first allocno in uncolorable
3743         allocno bucket to spill.  Remove setting spill cost.
3744         (all_conflicting_hard_regs): Remove.
3745         (setup_allocno_available_regs_num): Check only profitable hard
3746         regs.  Print info about hard regs nodes.
3747         (setup_allocno_left_conflicts_size): Remove.
3748         (put_allocno_into_bucket): Don't call
3749         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
3750         (improve_allocation): New.
3751         (color_allocnos): Call setup_profitable_hard_regs,
3752         form_object_hard_regs_nodes_forest, improve_allocation,
3753         finish_object_hard_regs_nodes_forest.  Setup spill cost.
3754         (print_loop_title): Use pressure classes.
3755         (color_allocnso): Ditto.
3756         (do_coloring): Remove allocation and freeing splay_tree_node_pool
3757         and allocnos_for_spilling.
3758         (ira_sort_regnos_for_alter_reg): Don't setup members
3759         {first,next}_coalesced_allocno.
3760         (color): Remove allocating and freeing removed_splay_allocno_vec.
3761         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
3762         prohibited_class_mode_regs.
3763
3764         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
3765         formatting.
3766         (update_allocno_pressure_excess_length): Use pressure classes.
3767         (inc_register_pressure, dec_register_pressure): Check for pressure
3768         class.
3769         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
3770         pressure class.  Use ira_reg_class_nregs instead of
3771         ira_reg_class_max_nregs.
3772         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
3773         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
3774         (single_reg_class): Use ira_reg_class_nregs instead of
3775         ira_reg_class_max_nregs.
3776         (process_bb_node_lives): Use pressure classes.
3777
3778         * ira-emit.c: Remove mentioning cover classes from the file.  Use
3779         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
3780         (change_loop): Use pressure classes.
3781         (modify_move_list): Call ira_set_allocno_class instead of
3782         ira_set_allocno_cover_class.
3783
3784         * ira-build.c: Remove mentioning cover classes from the file.  Use
3785         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
3786         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
3787         ALLOCNO_UPDATED_CLASS_COST instead of
3788         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
3789         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
3790         (ira_create_allocno): Remove initialization of
3791         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
3792         ALLOCNO_COLORABLE_P.
3793         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
3794         Update conflict regs for the objects.
3795         (create_cap_allocno): Remove assert.  Don't propagate
3796         ALLOCNO_AVAILABLE_REGS_NUM.
3797         (ira_free_allocno_costs): New function.
3798         (finish_allocno): Change a part of code into call of
3799         ira_free_allocno_costs.
3800         (low_pressure_loop_node_p): Use pressure classes.
3801         (object_range_compare_func): Don't compare classes.
3802         (setup_min_max_conflict_allocno_ids): Ditto.
3803
3804         * loop-invariant.c: Remove mentioning cover classes from the file.
3805         Use ira_pressure_classes and ira_pressure_classes_num instead of
3806         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
3807         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
3808         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
3809         Use reg_allocno_class instead of reg_cover_class.
3810         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
3811         STACK_REG_COVER_CLASS.
3812         (get_regno_cover_class): Rename to get_regno_pressure_class.
3813         (move_loop_invariants): Initialize and finalize regstat.
3814
3815         * ira.c: Remove mentioning cover classes from the file.  Add
3816         comments about coloring without cover classes.  Use ALLOCNO_CLASS
3817         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
3818         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
3819         setup_class_subset_and_memory_move_costs.
3820         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
3821         (setup_cover_and_important_classes): Rename to
3822         setup_allocno_and_important_classes.
3823         (setup_class_translate_array): New.
3824         (setup_class_translate): Call it for allocno and pressure classes.
3825         (cover_class_order): Rename to allocno_class_order.
3826         (comp_reg_classes_func): Use ira_allocno_class_translate instead
3827         of ira_class_translate.
3828         (reorder_important_classes): Set up ira_important_class_nums.
3829         (setup_reg_class_relations): Set up ira_reg_class_superunion.
3830         (print_class_cover): Rename to print_classes.  Add parameter.
3831         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
3832         Print pressure classes too.
3833         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
3834         setup_reg_subclasses.
3835         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
3836         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
3837         (setup_prohibited_class_mode_regs): Use
3838         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
3839         (clarify_prohibited_class_mode_regs): New function.
3840         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
3841         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
3842         (ira_init_once): Initialize them.
3843         (free_register_move_costs): Process them.
3844         (ira_init): Move calls of find_reg_classes and
3845         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
3846         Call clarify_prohibited_class_mode_regs.
3847         (ira_no_alloc_reg): Remove.
3848         (too_high_register_pressure_p): Use pressure classes.
3849
3850         * sched-deps.c: Remove mentioning cover classes from the file.
3851         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
3852         ira_pressure_classes and ira_pressure_classes_num instead of
3853         ira_reg_class_cover_size and ira_reg_class_cover.
3854         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
3855         sched_regno_pressure_class instead of sched_regno_cover_class.
3856         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
3857         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
3858
3859         * ira.h: Add 2010 to Copyright.
3860         (ira_no_alloc_reg): Remove external.
3861         (struct target_ira): Rename x_ira_hard_regno_cover_class,
3862         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
3863         x_ira_class_translate to x_ira_hard_regno_allocno_class,
3864         x_ira_allocno_classes_num, x_ira_allocno_classes, and
3865         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
3866         x_ira_pressure_classes, x_ira_pressure_class_translate, and
3867         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
3868         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
3869         x_ira_no_alloc_regs.
3870         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
3871         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
3872         ira_allocno_classes_num and ira_allocno_classes.
3873         (ira_class_translate): Rename to ira_allocno_class_translate.
3874         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
3875         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
3876         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
3877         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
3878         (ira_no_alloc_regs): New.
3879
3880         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
3881         classes from the file.  Use ALLOCNO_CLASS instead of
3882         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
3883         ALLOCNO_COVER_CLASS_COST.
3884         (regno_cover_class): Rename to regno_aclass.
3885         (record_reg_classes): Use ira_reg_class_subunion instead of
3886         ira_reg_class_union.
3887         (record_address_regs): Check overflow.
3888         (scan_one_insn): Ditto.
3889         (print_allocno_costs): Print total mem cost fore regional allocation.
3890         (print_pseudo_costs): Use REG_N_REFS.
3891         (find_costs_and_classes): Use classes intersected with them on the
3892         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
3893         ira_reg_class_union.  Use ira_allocno_class_translate and
3894         regno_aclass instead of ira_class_translate and regno_cover_class.
3895         Modify code for finding regno_aclass.  Setup preferred classes for
3896         the next pass.
3897         (setup_allocno_cover_class_and_costs): Rename to
3898         setup_allocno_class_and_costs.  Use regno_aclass instead of
3899         regno_cover_class.  Use ira_set_allocno_class instead of
3900         ira_set_allocno_cover_class.
3901         (init_costs, finish_costs): Use regno_aclass instead of
3902         regno_cover_class.
3903         (ira_costs): Use setup_allocno_class_and_costs instead of
3904         setup_allocno_cover_class_and_costs.
3905         (ira_tune_allocno_costs_and_cover_classes): Rename to
3906         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
3907         by processing objects.  Use ira_reg_class_max_nregs instead of
3908         ira_reg_class_nregs.
3909
3910         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
3911
3912         * sched-int.h: Remove mentioning cover classes from the file.
3913         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
3914
3915         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
3916         classes from the file.
3917         (struct reg_pref): Rename coverclass into allocnoclass.
3918         (reg_cover_class): Rename to reg_allocno_class.
3919