OSDN Git Service

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